软件工程复习(三):需求分析
软件工程复习(三):需求分析
需求分析的概念
定义
需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题,对目标系统提出完整、准确、清晰、具体的要求。
系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。
不同层次下的软件需求
功能性需求
业务需求(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事件则指定在该状态下的动作。
需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。
事件表达式
格式:事件说明[守卫条件]/动作表达式
事件说明格式:事件名(参数表)。
守卫条件是一个过程表达式。