软件工程与实践-三软件需求分析-知识梳理
《软件工程与实践》 |(三)软件需求分析 知识梳理
系列索引:
目录
本章重难点:
- 理解软件需求分析的概念和特点、目的和原则。
- 熟悉软件系统需求分析的任务及步骤
- 掌握软件需求分析方法及描述工具,学会编写“软件需求说明书”。
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),软件需求相关说明书的评审记录表、需求变更管理表等。