前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统架构师论文-论软件需求分析方法和工具的选用

系统架构师论文-论软件需求分析方法和工具的选用

作者头像
cwl_java
发布2019-10-26 21:02:46
5800
发布2019-10-26 21:02:46
举报
文章被收录于专栏:cwl_Javacwl_Java

论软件需求分析方法和工具的选用

【摘要】

本文通过一个集成电路设计有关的软件项目,讨论了该项目的主要特点和本人所担任的工作,着重讨论了在项目需求分析过程中采用的具体方法和工具以及选用的理由。 由于项目的专业领域的特殊性,分两类不同的需求讨论了需求分析中遇到的问题及解决方法;在这个过程中给出了対选用的具体工具和方法的效果的描述。接着本文讨论了対使用方法的改进的一些想法以及具体的实现过程。最后提出了我対需求分析的某些看法,强调了与客户沟通的重耍性。

【正文】

近年,我一直从事某企业中有关IT项目的开发,有一个系统是用于计箕机辅助电路设计的,包括了从上流设计(注:日式说法)到下流设计(注:日式说法)的所有流程,如用于可设计百万门数量级的逻辑门电路。有关方面把电路中路径的提取、过滤以及表示的某软件开发任务交给我公司,我有幸担任了该部分的需求分析以及设计。 我所设计部分为一单独可启动的软件,主要是解析文件中的连线路径,以列表视图和用直方图等把它们显示出来,还可以执行诸如查找与过滤等功能。委托方対此提供了很初歩的需求说明,把一些基本功能及性能要求描述了一下。我在需求分析时的工作主要有两点:第一,対该软件的界面等详细需求要自己重新进行分析提取。第二,対于已提供的功能要求需要深化和细化,以形成真正完整的需求分析文档。在接到需求分析任务后,我分析了一下所要完成的工作。发现由于是专用领域的软件,対专业领域要求相当高,所以准备把此项目分成两部分: (1)界面所受专业领域影响几乎没有,但由于全部没有任何要求,反而会感到风险和改动可能是最大的。 (2)功能方面由于委托方的许多功能都可以调用相应模块来得到,并且已有了相应的书面的简单需求,相应来说只是完成深化。対界面,我采用了部分RUP的思想迭代与渐进。而対功能需求采取了分层细化,每细化一层就要求委托方确认、修改和补充。 首先把风险较大的部分完成,这是现代软件开发的基本常识。我选择先进行界面的需求分析。第一歩是根据功能描述抽取出逻辑模型,并使逻辑模型与界面元素及功能一一対应,大体上决定了界面应有的功能,然后根据该界面功能描述,确定具体的控件,这时,我参考了委托方已初歩完成的主窗口的界面布局及控件的使用规律,然后根据需要完成的功能从Qt(由于要支持Windows和Unix双平台,所以控件库采用Qt)的类库中选择相应的控件。在 提取和抽象逻辑模型时,我采用了 Rose 2000中的用例图,即以USEVASE图来描述与外部的关系。之所以采用Rose,我是基于以下的原因:第一,在已开发的部分中,委托方统一要求我们使用Rose进行类和顺序图等的设计和代码生成。第二,Rose提供了标准的图来描述系统与外部的关系,在全球范围已是一种标准结构。第三,使用上的方便性。我用Rose的USE-CASE图,理清了我们的软件窗口(日式说法,即:沟通人员)与委托方主窗口(日式说法, 同上)以及外部角色(操作者)之间的相互关系。 在确定了界面元素后,考虑到文档的可理解性不是很强,我采用Visio 2000把界面的外观绘制出来,写上了基本的控件作用,随后送给委托方评审,幸运的是除了几个小功能的修改,委托方基本批准了我的方案。下面的工作是为控件的行为及状态变化制定相应的状态迁移图,我选用的工具仍是Rose.我用了状态图和时序图,把重耍的控件状态变化及相应顺序进行了描述,随后的几天把相应的DOC文档建好写明,基本上界面设计就完成了。 下面的需求是针対功能需求的。虽然委托方技术部门有初歩的需求文档,但由于领域的专门化不対,我不清楚其中复杂的路径提取关系及较深入的专业术语,一直有一种举歩雄艰的感觉。只能采用分层细化的原则,从最初的几条深入一层变成十几条。这样的话,不会一下子碰到太深的专业问题,可以循序渐进从委托方与文献的解答中不断学习,深化自己対专业领域的了解,这样在设计中自己始终是层层推进的,不至于碰到无法逾越的专业障碍。我都把结果交付委托方审核,由他们进行提出何时能终止细化,大把问题结果(可分为已清楚、仍不太清楚、不清楚、尚未回答)均我可以很好地了解自己工作中的核心问题,并有了解决它的方向, 在这一阶段的开发中,由于一直是与自己不熟悉的专业领域打交道,所以我觉得一些辅助设计工具似乎无法发挥应有的功能。在这期间,対我帮助最大的应是公司的E-Mail系统,所有不清楚的问题的提出,以及対问题的解答都通过它进行周转。换句话说,在需求分析阶段,它起到了一个与客户的交流沟通和客户需求的提取作用。所以,我认为在这一阶段,E-Mail系统是対我帮助最大的工具,其次是Excel,我用它建立了问题跟疎图表,対每一个提出的问题,均需要记录上去,记录下来,根据这些表,提高了工作效率。每进行一层的细化, 约在八层细化后,対方认为已达到了效果,确认可以结東。至此,分析工作全部完成,项目的需求分析基本成功了。在这次需求分析中,我认为取得成功的原因主要是方法和工具选择得正确。在界面设计中采用了流行的辅助工具,対需求及逻辑模型的建立提供很大的帮助,可以更方便帮助自己理清思路。选用了迭代法,把一些错误的影响在功能分析和界面分析的不断迭代过程中加以改正。在后期,以功能需求为主时,我主要依赖的是沟通工具和表格工具,这也说明辅助工具不是万能的,需求分析的关谜之关谜,应是与客户的交流与沟通。 通过这次案例,我认为在软件的需求分析工作中,方法的重耍性应远超过工具的使用,应当首先确定分析中的风险,把风险分类,用不同的方法去解决各类风险,而工具的选择不仅是要看影响力和名气,而是要真正为我所用,应把握其精髓,即是此工具到底可以対开发有什么帮助,而不是仅限于如何使用。我认为在需求分析中工具的作用不外乎两个:一是实际系统与环境模型等的抽象工具,二是需求表达工具。第一类的代表是Rose,第二类的代表是Word, WPS, Vision,在这次项目中由于地理上的限制还用到了沟通工具,Web浏E-Mail服务系统。 最后我还是总结一下,在需求分析中工具方法都只是辅助项目成功的因素,真正的决定因素还是一直与客户的沟通.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论软件需求分析方法和工具的选用
    • 【摘要】
      • 【正文】
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档