软件工程----02. 需求分析
02. 需求分析
1、需求
-
软件需求:软件需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事,完成什么样的功能,达到什么样的性能。
-
需求分析方法:结构化方法和面向对象方法
-
需求类型:
- 功能需求:用户希望系统能够执行的活动
- 性能需求:系统整体应该拥有的性能特征
- 质量属性:系统完成工作的质量
- 对外接口:系统和环境中其他系统之间需要建立的接口
- 约束:进行系统构造需要的约束,如编程语言、硬件设施
-
需求工程管理:
-
需求获取:
- 面谈和问卷调查
- 小组讨论
- 情景串联
- 参与、观察业务流程
- 现有产品和竞争对手的描述文档
- 市场资料
-
需求分析:
- 需求建模
-
需求规格说明书编写:
- 软件需求规格说明书(SRS)
-
需求验证:
- 正确性
- 一致性
- 可行性
- 必要性
- 可验证性
- 可跟踪性
-
需求变更:
- 确定变更控制过程
- 建立变更控制委员会
- 变更影响分析
- 跟踪变更影响的产品
- 建立基准和控制版本
- 维护变更的历史记录
- 跟踪每项需求的状态
- 衡量需求的稳定性
2、结构化需求分析方法
-
结构化分析方法(SA) 将现实世界描绘为数据在信息系统中的流动,以及数据在流动过程中向信息的转化,帮助开发人员定义系统需求要做什么。数据流图(DFD)、数据字典(DD)、系统流程图都是结构化分析技术。
-
数据流图:
- 数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
- 数据流图采用分层的形式来描述系统数据流向,每一层次都代表了系统数据流向
- 数据流图表示法(Gane-Sarson模型):
数据源点和数据汇点:指系统以外又与系统有联系的人或事物。
用来表达该系统数据的外部来源和去向。数据流:指处理功能的输入或输出,箭头表示数据流向。
加工或处理:指对数据进行处理加工,使数据变换。
数据存储:表示某种独居保存后的逻辑统称,一般为表结构。
-
系统流程图:
- 系统流程图是概括的描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个具体部件(程序、文件、数据库、表格、人工过程等),表达数据在系统各个部件之间流动的情况。
-
实体关系图:
-
实体关系图也被称为 ERD、ER 图、实体联系模型、实体联系模式图或 ER 模型,是一种用于数据库设计的结构图。一幅 ERD 包含不同的符号和连接符,用于显示两个重要的资讯:系统范围内的主要实体,以及这些实体之间的相互关系。用来描述现实世界的概念模型。
-
在ER图中四个成分:
- 矩形框:表示实体,在框中记入实体名。
- 菱形框:表示联系,在框中记入联系名。
- 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
- 连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
-
3、面向对象需求分析方法
-
面向对象分析方法(OOA) 是确定需求或者业务的角度,按照面向对象的思想来分析业务。例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
-
面向对象分析的基本步骤:
- 获取客户系统需求
- 确定对象和类
- 查找对象
- 筛选对象并确定关联
- 标识对象并确定关联
- 标识对象的属性并定于操作
- 识别类之间的关系
-
面向对象的需求分析中常用的UML图示有:
- 用例图:从用户角度描述系统功能。
- 类图:描述系统中类的静态结构。
- 对象图:系统中的多个对象在某一时刻的状态。
- 状态图:是描述状态到状态控制流,常用于动态特性建模
- 活动图:描述了业务实现用例的工作流程
- 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
- 协作图:描述对象之间的协助关系
- 构件图:一种特殊的UML图来描述系统的静态实现视图
- 部署图:定义系统中软硬件的物理体系结构
- 包图:对构成系统的模型元素进行分组整理的图
- 时序图: 表示生命线状态变化的图
- 组合结构图:表示类或者构建内部结构的图
- 交互概览图:用活动图来表示多个交互之间的控制关系的图
UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。
4、原型设计
- 软件原型是指在项目前期,系统分析人员根据对用户需求的理解和用户希望实现的结果,快速的给出一个实实在在的产品雏形,然后与用户反复协商修改。
5、需求规格说明文档
软件需求说明书,又称为软件规格说明书,是分析员在需求分析阶段需要完成的文档,是软件需求分析的最终结果。它的作用主要是:作为软件人员与用户之间事实上的技术合同说明;作为软件人员下一步进行设计和编码的基础;作为测试和验收的依据。SRS必须用统一格式的文档进行描述,为了使需求分析描述具有统一的风格,可以采用已有的且能满足项目需要的模板,也可以根据项目特点和软件开发小组的特点对标准进行适当的改动,形成自己的模板。软件需求说明主要包括引言、任务概述、需求规定、运行环境规定和附录等内容。
软件需求说明书应该完整、一致、精确、无二义性,同时又要简明、易懂、易修改。由于软件需求说明书最终要得到开发者和用户双方的认可,所以用户要能看得懂,并且还能发现和指出其中的错误,这对于保证软件系统的质量有很大的作用。这就要求需求说明书尽可能少用或不用计算机领域的概念和术语。
- 软件需求说明书包含的内容:
- 概述:说明开发软件系统的目的、意义和背景
- 需求说明:功能说明、性能说明、输入输出要求
- 数据描述:数据流图·数据字典·接口说明
- 运行环境规定:说明软件运行所需的硬件设备
- 限制:说明软件开发在成本、进度、设计和实现方面的限制。