文章目录
- 软件工程
-
- 第三章 结构化分析与设计——分析
-
- 3.1 需求分析的任务与步骤
- 3.2 需求获取的常用方法
- 3.3 分析建模
-
-
- 结构化分析模型
- 面向对象分析模型
-
- 3.4 软件需求说明
- 3.5 结构化分析方法
-
-
- 画数据流图的原则
- 确定数据定义与加工策略
- DFD的复审
-
软件工程
第三章 结构化分析与设计——分析
软件需求分析是软件开发的第一个阶段,本章知识是基于已完成软件计划的基础上进行的。
3.1 需求分析的任务与步骤
软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档——软件需求规格说明书。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。主要有两个任务:
- 建立分析模型:数据、功能和行为模型
- 描述软件需求的一组模型;
- 精确记录用域对原始问题和目标系统的描述;
- 帮助分析人员发现用户需求中的不一致性,排除不合理的部分,挖掘潜在的用户需求。
- 编写需求说明书
- 准确性和一致性
- 清晰性和无二义性
- 直观、易读和易于修改
分析阶段中常用的模型(逻辑模型):
- 数据流图(DFD)
- 实体-联系图(ERD)
- 层次方框图、IPO图、Warnier图
- 类图、实例图、时序图
- 状态图、协作图、活动图
- 事件列表
- 数据流定义
- 数据元素定义
编写软件需求规格说明:主要包括描述目标系统概貌、功能要求、性能要求、运行要求和将来可能提出的要求。数据流图、用IPO图或其他工具简要描述的系统主要算法都是该份文档的重要组成部分。此外,该文档还应包括用户需求与系统功能之间的关系、设计约束等文字描述。
软件需求规格说明是需求分析阶段的最终成果。
需求分析的步骤:
- 需求获取(目的):清楚地理解所要解决的问题,完整地获取用户需求;
- 需求提炼(任务):分析建模;
- 需求描述(结果):软件需求说明书
- 需求验证:改善需求说明的完整性,确保它可作为软件设计和系统验收的依据。
3.2 需求获取的常用方法
- 联合分析小组:用户代表、领域专家、系统分析员;
- 客户访谈
- 问题分析与确认
需求获取的内容:
- 功能:系统做什么时做时及如何修改或升级/li>
- 性能:软件开发的技术性指标,如存储容量限制、执行速度、响应时间、吞吐量。
- 环境:硬件设备:机型、外设、接口、温度、磁场干扰等;软件:操作系统、 络、数据库。
- 界面:规定数据格式、规定数据存储介质。
- 用户或人的因素:用户类型、用户熟练程度、需受何种训练、用户误操作的可能性。
- 文档:需要哪些文档档针对哪些读者/li>
- 数据:输入、输出数据的格式受、发送数据的频率据流量据的准确性和精度/li>
- 资源:软件运行时所需的数据、软件、内存空间等资源;软件开发、维护所需的人力、支撑软件、开发设备等。
- 安全保密:需对访问系统或系统信息加以控制吗何隔离用户之间的数据户程序如何与其他程序和操作系统隔离统备份要求/li>
- 软件成本消耗与开发进度:开发有规定的时间表吗硬件投资有无限制/li>
- 质量保证:系统可靠性要求统可移植性定系统平均出错时间护是否包括对系统的改进/li>
3.3 分析建模
模型就是某一事物的抽象表示方式。经过软件需求分析建立起来的模型可以称之为分析模型或者需求模型。
- 功能模型。常用数据流图(DFD)描述,所以由称为数据流模型。
- 数据模型。常用实体-联系图(ERD)描述,ERD包含三种基本元素,即实体、属性、关系。通常,用矩形表示实体即数据对象,用圆角矩形或多元性表示实体的属性,用菱形连接相关实体表示关系。
- 数据对象:只封装数据,不包含作用于对象的操作;
- 属性:定义了数据对象的性质;
- 关系:数据对象彼此之间是有关联的,也被称为关系。
- 行为模型。常用状态转换图(简称状态图)来描述,它又称为状态机模型。系统的状态机模型可以理解为在任意时刻,系统处于有限可能的状态中的一个状态,当某一激励(条件)到达时,它激发系统从一个状态转换到另一个新状态。
- 事件
- 状态
- 行为
- 数据字典。用于描述软件系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。其作用是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。软件中的数据可分为三种情况:
- 只含一个数据的数据项(或数据元素);
- 由多个相关数据项组成的数据流;
- 数据文件或数据库。
结构化分析模型
分析工具:
- 基本组成:DFD、DD和PSPEC(加工说明)
- 扩展:CFD、CSPEC(控制说明)和STD
- 扩展(复杂数据结构可以使用):E-R图
- 数据流图(DFD)
以图形的方式反映信息在系统中流动和处理的逻辑模型。常作为交流信息的工具、结构化分析和设计的工具。由四种基本元素组成:
- 加工、处理或变换
- 数据文件或数据库
- 数据流
- 数据原点或终点
- 数据字典(DD)
是描述数据信息的集合(DFD中所有数据元素的定义集合),它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,以保持数据在系统中的一致性,是数据流图的补充工具。数据流图与数据字典构成了系统逻辑模型的主题。
软件中的数据,可分为三种情况:
- 由多个相关数据项组成的数据流;
- 数据文件或数据库;
- 只含一个数据的数据项(或数据元素)。
实现数据字典的途径:
- 全人工过程;
- 利用数据字典处理程序的全自动化过程;
- 加工说明(PSPEC)
说明DFD中的每个加工,加工逻辑说明描述实现加工的策略,是加工说明的主体。在需求分析阶段,策略仅需要指出“做什么”,而不管“怎么做”。
加工说明(PSPEC)的描述工具有:
- 结构化语言。无确定语法,可分层、嵌套。
- 判定表或判定树。
- 判定表采用表格的形式描述加工逻辑,适合于描述包含复杂判断的加工处理;
- 判定树采用树形图的形式描述加工逻辑,同样适合于描述包含复杂判断的加工处理,是判定表的图形表示。
- 层次方框图
- 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。
- Warnier图
- 类似于层次方框图,但Warnier图可以指出一类信息或一个信息粮食重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。
- IPO(Input-Process-Output)图
- 能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
- CFD和CSPEC(控制流图和控制说明)
- 适合实时系统的分析
- 与DFD和PSPEC类似
- 和DFD与PSPEC配合使用
- 表示控制流和控制加工
CFD:对于哪些由事件驱动而不是数据驱动,产生的是控制信息而不是数据值,以及处理信息时必须依赖于时间的应用,只建立数据流模型是不够的,还需要使用控制流图来建模,才能清楚地描述系统。
CSPEC:用于指明会激活哪些加工,它主要用于描述:
- 当事件或控制信息被感知时,软件如何行动;
- 作为事件发生的结果,那些加工将被激活。
- 状态转换图(STD)
- 描述软件状态变迁
- 符 表示
- 矩形:系统状态
- 箭头:状态转变方向
- 规则表达式:事件/触发行为
- E-R图
用于对复杂数据的数据分析和建模,有三个相互关联的部分构成:
- 实体:事物、事件、角色、机构等;
- 属性:名称、描述、参考属性、含有一个标识属性(关键字);
- 关系:事物、事件、角色、机构等。
面向对象分析模型
分析工具:
- 用例图、类对象图
- 对象-关系图
- 对象-行为图
3.4 软件需求说明
IEEE 830-1998 标准和国家标准GB856D-88
3.5 结构化分析方法
使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档。
基本步骤:
- 自顶向下,功能分解
- 画分层DFD
- 由后向前,定义数据和加工策略
- DD,PSPEC
- 根据需要,分析复杂数据和动态模型
- E-R图、CFD、CSPEC、STD
- 编写SRS
画数据流图的原则
- 找出数据的源点和终点;
- 把软件系统看成一个大的加工,根据外部实体的输出数据流和输入数据流,画出系统的输入和输出图,即顶层图;
- 根据系统的逻辑要求,从外部实体的输出数据流出发,把顶层图中的加工分解成若干子加工,并用数据流把这些加工连接起来,此时的系统内部图称为0层图;
- 进行检查和修改;
- 按照上述步骤,再从各加工出发,画出所需的子图。
DFD可以用来表示一个系统或软件在任何层次上抽象。较大型软件系统DFD分成多层(子图、父图概念),可以表示数据流和功能的进一步的细节。
确定数据定义与加工策略
最低一层DFD图包含了系统的全部数据和加工,分析时一般从数据的终点开始,因为终点的数据代表系统的输出,从这里沿着DFD图一步一步向数据源点回溯,这样容易看清数据流中每一数据项的来龙去脉,有利于减少错误和遗漏。
DFD的复审
- 父图和子图的不平衡
- 未区分局部文件和局部外部项
- 分解的速度太快
- 不遵守加工编 规则
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!