系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理
目录
本章重难点:
- 理解软件需求分析的概念和特点、目的和原则。
- 熟悉软件系统需求分析的任务及步骤
- 掌握软件需求分析方法及描述工具,学会编写“软件需求说明书”。
3.1 需求分析概述
3.1.1 软件需求分析的概念
软件需求分析的概念
“需求”就是用户的需要,包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。
软件需求分为三个层次:业务需求、用户需求、功能需求,此外还包括某些类别的非功能需求。
软件需求分析的重要作用
软件需求分析是软件项目立项决定开发后的首要工作
软件需求分析的特点
3.1.2 软件需求分析的目的和原则
软件需求分析的目的及重点
软件需求分析主要目的是获取用户及项目的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程, 为软件的进一步设计和实现提供依据:
软件需求分析的原则
3.2 软件需求分析的任务及过程
3.2.1 软件需求分析的任务
需求分析的基本任务是通过软件开发人员与用户的交流和讨论,准确地分析理解原系统,定义新系统的基本功能、性能、开发时间、投资情况人员安排等,并获得需求规格说明书。
需求分析的具体任务包括:
1.确定目标系统的具体要求
在可行性研究的基础上,确定对问题的综合需求,包括:功能需求、性能需求、环境需求和用户界面需求;另外还有系统的可靠性、安全性、可移植性和可维护性等方面的需求。
(1)确定功能需求,画出功能结构图,完成新系统的功能点列表,即功能模型。有时将性能模型、界面模型和接口模型的内容都合并其中,功能模型可用Use Case矩阵/图表示。
(2) 获取性能需求
性能需求是为了保证软件功能的实现和正确运行,对软件所规定的效率、可靠性、安全性等规约
(3) 明确处理关系,列出接口列表
(4) 确定系统运行环境及界面
2.建立目标系统的逻辑模型
软件系统的逻辑模型分为:数据模型、功能模型和行为模型。
数据模型采用E-R图描述;
功能模型常用数据流图来描述;
行为模型常用状态转换图来描绘系统的各种行为模式(状态)和不同状态间的转换;
数据字典用来描述软件使用或产生的所有数据对象。
3.编写需求文档 ,验证确认需求
3.2.2 软件需求分析的过程
软件需求分析的过程也称为需求开发,可分为需求获取、综合与描述、需求验证和编写文档等步骤,是一个不断深入与完善的迭代过程,需求分析应有用户参加,随时进行沟通交流,并最终征得用户认可。
3.3 软件需求分析方法
3.3.1 软件需求分析方法的种类
目前常用的需求分析方法分为4种:功能分解法、结构化分析法、信息建模法和面向对象的分析方法。
3.3.2 需求分析方法对比
分析方法名称 |
目 的 |
优缺点 |
适用范围 |
面向功能分析 |
获取功能模型 |
简单明了 |
系统软件和应用软件 |
面向对象分析 |
获取对象模型 |
复杂抽象 |
系统软件和应用软件 |
面向数据分析 |
获取数据模型 |
抓住本质 |
关系数据库信息系统 |
3.3.3 需求分析技巧
3.4 结构化分析方法
结构化开发方法(Structured Developing Method)是软件开发方法中最成熟、应用最广泛的方法。
主要特点: 快速、自然和便捷。
主要缺点: 不太适应规模大的复杂项目,难以解决软件重用问题,较难适应需求变化,难以彻底解决维护问题
结构化开发方法 由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成。
3.4.1 结构化分析方法的基本思想
结构化分析(Structured Analysis,SA)方法是面向数据流的需求分析方法,SA方法根据软件内部的数据传递、变换关系,自顶向下、逐层分解,绘出满足功能要求的模型。
结构化方法总的指导思想是“自顶向下、逐步求精”,其基本原则是抽象与分解。
3.4.2 结构化分析步骤
3.4.3 结构化分析的流程
结构化分析导出的分析模型包括 数据模型、功能模型和行为模型,这些模型以“数据字典”为核心
实体关系图(E-R图Entity Relationship Diagram)作为数据建模的基础;
数据流图(DFD,Data Flow Diagram)作为功能建模的基础;
状态转换图(STD,State Transition Diagram)作为行为建模的基础。
3.5 结构化分析建模工具
3.5.1 实体-关系图
实体关系图(Entity Relationship Diagram,E-R图)是目前最常用的数据建模方法。主要用于在需求分析阶段清晰地表达目标系统中数据之间的联系及其组织方式,建立系统的实体数据模型(E-R模型)。
实体模型由 实体、联系和属性 三个基本成分组成。
E-R图由矩形框、菱形框、椭圆或圆角矩形及连线组成。
其中,矩形框表示实体,菱形框表示关系,椭圆或圆角矩形表示实体(或关系)的属性。
3.5.2 数据流图
数据流图的概念和作用
数据流图(Data Flow Diagram,DFD)运用图形方式描述系统内部的数据流程,表达系统的各处理环节之间的数据联系,是结构化系统分析方法的主要表达工具
基本图形符号
数据流图的附加符号
有时有两个以上的数据流进入或流出同一个加工,这样,多个数据流之间往往存在一定的关系
DFD绘制方法
注意事项
3.5.3 数据字典
数据词典(Data Dictionary,DD)是指存储数据源定义和属性(描述说明)文档
DD以一种准确无二义性的说明方式,为软件分析、设计及维护提供了有关数据元素一致的定义和详细描述。
数据字典要求: 完整性、一致性和可用性。
数据字典有4类条目: 数据流、数据项、文件及基本加工。
(1)数据流条目。给出了DFD中数据流的定义,通常对数据流的简单描述为列出该数据流的各组成数据项。主要包括:数据流名称、别名及简述、数据流来源和去处、数据流组成、流通量。
(2)文件条目。给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流,还可指出文件的组织方式。
(3)数据项条目。给出某个数据单项的定义,通常是该数据项的值类型、允许值等。
(4)加工条目。是对DFD的补充,实际是“加工小说明”。由于“加工”是DFD的重要组成部分,一般应单独进行说明。因此,数据字典是对DFD中所包含各种元素定义(数据项、结构、特征、加工、流向等)的集合。对 4 类条目描述:数据流、数据项、文件及基本加工。
3.5.4 处理过程描述
结构化语言
判定树
判定表
例如:
3.5.5 状态转换图
在对系统进行需求分析时,除建立系统的数据模型和功能模型外,有时还需要建立系统的行为模型
3.6 软件需求分析文档
3.6.1 软件需求文档概述
软件需求分析文档主要包括:
系统(子系统)需求规格说明(SSS) (对整个系统或子系统需求分析的说明性文档)、软件需求规格说明(SRS)、接口需求规格说明(IRS)、数据需求说明(DRD),软件需求相关说明书的评审记录表、需求变更管理表等。