软件工程——软件需求分析

软件生命周期由三部分组成:软件定义、软件开发、软件维护。
其中软件定义时期又可以分为三个阶段:问题定义、可行性研究、需求分析。

软件需求分析

  • 需求分析
    • 需求分析的特点
    • 需求分析的原则
    • 需求分析的任务
    • 需求分析的方法

需求分析

需求分析处于软件定义时期的最后一个阶段,同时又处于软件正式开发起始阶段,关系到整个软件的开发和维护。
基本任务是回答“系统必须做什么”这个问题。该阶段要提交详细的数据流图、数据字典和算法描述。

需求分析的特点

困难点:
1.需求易变性
用户在开始时提出一些功能需求,当对系统有一定的了解后,会提出一些需求。以后随着理解的深入会不断提出新的需求。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。

2.问题的复杂性
一方面是由用户所涉及的因素繁多引起的,如运行环境和系统功能等;另一方面是扩展的应用领域本身的复杂性。

3.交流障碍
涉及人员较多,系统分析员要与软件系统用户、问题领域专家、需求工程师、项目管理员等进行交流。但是这些人具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。

4.不完备性和不一致性
由于用户各类人员对于系统的要求所处的角度不一样,所以对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。需求分析要消除其矛盾,形成完美及一致的定义。

需求分析的原则

为使需求分析科学化,在软件工程的分析阶段中提出了许多需求分析方法。但要遵循一下原则:
(1)把复杂问题按功能进行分解并逐层细化。
(2)必须能够表达和理解问题的数据域和功能域。
(3)建立模型。

需求分析的任务

1.问题明确定义
在可行性研究的基础上,双方通过交流,对问题都有进一步的认识,所以可确定对问题的综合需求:
(1)功能需求
(2)性能需求
(2)环境需求
(2)用户界面需求
(2)系统的可靠性、安全性。可移植性、可维护性等需求

2.导出软件的逻辑模型
分析人员根据前面获取的需求资料,要进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。同时对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分。最后要用图文结合的形式,建立起新系统的逻辑模型。

3.编写文档
通过分析确定了系统必须具有的功能和性能,定义了系统中的数据,描述了数据处理的主要算法。应该把分析的结果用正式的文件记录下来,作为最终软件的部分材料。

需求分析的方法

1.功能分解法(将一个系统看成是若干功能的集合)
功能分解=功能+子功能+功能接口

2.结构化分析方法(研究数据如何流动以及各端点如何处理)
结构化分析=数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典

3.信息建模方法
信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象

4.面向对象的分析
面向对象=对象、类+结构与连接+继承+封装+消息通信

来源:Rucooo

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月26日
下一篇 2020年9月26日

相关推荐