软件工程复习(三):需求分析

需求分析的概念

定义

需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题,对目标系统提出完整、准确、清晰、具体的要求。
系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。

不同层次下的软件需求

功能性需求

业务需求(Business Requirements):客户对于系统的高层次目标要求,定义了项目的远景和范畴。

用户需求(User Requirements):从用户角度描述的系统功能需求与非功能需求,通常只涉及系统的外部行为而不涉及内部特性。

系统需求(System Requirements, SR):系统应该提供的功能或服务,通常涉及用户或外部系统与该系统之间的交互,不考虑系统内部的实现细节。

非功能性需求(质量、性能)

描述了不直接关联到系统功能行为的系统的方方面面。从各个角度对系统进行约束和限制,反映了客户对软件系统质量和性能的额外要求,如可靠性、可用性、性能、可支持性等。详细如响应时间、数据精度、可靠性等。

需求分析的任务

确定对系统的综合要求

1.功能需求
2.性能需求
3.可靠性和可用性需求
4.出错处理需求
5.接口需求
6.约束
7.逆向需求
8.将来可能提出的要求

分析系统的数据要求

建立数据模型 ——ER图。
描绘数据结构—— 层次方框图和 Warnier 图。
数据结构规范化。

导出系统的逻辑模型

根据前两项分析结果导出详细的逻辑模型,通常用 数据流图、实体- 联系图(ER图)、状态转换图 、 数据字典和主要的处理算法描述这个逻辑模型。

修正系统开发计划

分析建模与规格说明

模型:对事物的一种无歧义的书面描述 。

分析建模(重要)

软件工程复习(三):需求分析

软件需求规格说明

需求分析阶段得出的最主要的文档。

实体-联系图

概念性数据模型反映了用户的现实环境,且与软件系统中的实现方法无关。
数据模型包含三种互相关联的信息:

数据对象,矩形框表示
数据对象的属性,菱形框表示
数据对象彼此之间相互连接的关系,圆角矩阵或椭圆形表示。

状态转换图(重点)

通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。

状态

是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。

初态:用实心圆表示,只能有 1 个
终态:用一对同心圆( 内圆为实心圆) 表示,可能有 0 ~ 多个
中间状态:用圆角矩形表示,分成上、中、下3 部分。

上面部分----- 为状态的名称;
中间部分----- 为状态变量的名字和值;
下面部分----- 是活动表。

状态转换:带箭头的连线,箭头指明转换方向。
软件工程复习(三):需求分析

活动

活动表

格式:事件名(参数表)/动作表达式**
“事件名”可以是任何事件的名称。

常用的3种标准事件:
1、entry事件指定进入该状态的动作;
2、exit事件指定退出该状态的动作;
3、do事件则指定在该状态下的动作。

需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。

事件表达式

格式:事件说明[守卫条件]/动作表达式

事件说明格式:事件名(参数表)。
守卫条件是一个过程表达式。

实例

软件工程复习(三):需求分析