目录

软件工程与实践-三软件需求分析-知识梳理

《软件工程与实践》 |(三)软件需求分析 知识梳理

系列索引:


目录


本章重难点:

  • 理解软件需求分析的概念和特点、目的和原则。
  • 熟悉软件系统需求分析的任务及步骤
  • 掌握软件需求分析方法及描述工具,学会编写“软件需求说明书”。

3.1 需求分析概述

https://i-blog.csdnimg.cn/blog_migrate/d61a09725b9a5b1d1e0062bf8049be76.png

3.1.1 软件需求分析的概念

软件需求分析的概念

“需求”就是 用户的需要 ,包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为 文档 形式。

软件需求分为三个层次: 业务需求、用户需求、功能需求 ,此外还包括某些类别的非功能需求。

https://i-blog.csdnimg.cn/blog_migrate/b48a3121e73996b29da54572d3d4e726.png

软件需求分析的重要作用

软件需求分析是软件项目立项决定开发后的 首要工作

软件需求分析的特点

https://i-blog.csdnimg.cn/blog_migrate/daf4e1988f9fb3a8a88d135cf15cb01d.png

3.1.2  软件需求分析的目的和原则

软件需求分析的目的及重点

软件需求分析主要目的是 获取用户及项目的具体需求 ,通过对实际需求的 获取、分析、文档化和验证 等需求分析过程, 为软件的进一步设计和实现提供依据:

软件需求分析的原则

https://i-blog.csdnimg.cn/blog_migrate/41b580508c85be92b0dac1633af40938.png

3.2 软件需求分析的任务及过程

3.2.1 软件需求分析的任务

需求分析的基本任务是通过软件开发人员与用户的交流和讨论,准确地分析理解原系统,定义新系统的基本功能、性能、开发时间、投资情况人员安排等,并获得需求规格说明书。

需求分析的具体任务 包括:

1. 确定目标系统的具体要求

在可行性研究的基础上,确定对问题的综合需求,包括: 功能需求、性能需求、环境需求和用户界面需求;另外还有系统的可靠性、安全性、可移植性和可维护性等方面的需求。

(1)确定功能需求 , 画出功能结构图,完成新系统的功能点列表,即功能模型 。有时将性能模型、界面模型和接口模型的内容都合并其中,功能模型可用Use Case矩阵/图表示。

(2) 获取性能需求

性能需求是为了保证软件功能的实现和正确运行,对软件所规定的效率、可靠性、安全性等规约

(3) 明确处理关系,列出接口列表

(4) 确定系统运行环境及界面

2. 建立目标系统的逻辑模型

软件系统的逻辑模型分为: 数据模型、功能模型和行为模型 。

数据模型 采用 E-R图 描述;

功能模型 常用 数据流图 来描述;

行为模型 常用 状态转换图 来描绘系统的各种行为模式(状态)和不同状态间的转换;

数据字典 用来描述 软件使用或产生的所有数据对象 。

3. 编写需求文档 ,验证确认需求

3.2.2  软件需求分析的过程

软件需求分析的过程 也称为 需求开发 ,可分为 需求获取、综合与描述、需求验证和编写文档 等步骤,是一个不断深入与完善的 迭代过程 ,需求分析应有用户参加,随时进行沟通交流,并最终征得用户认可。

https://i-blog.csdnimg.cn/blog_migrate/76c87c1131d5d947b0c17778ccf747d7.png https://i-blog.csdnimg.cn/blog_migrate/3039a17db15a346c615296adb3ac10d3.png

3.3 软件需求分析方法

3.3.1 软件需求分析方法的种类

目前常用的需求分析方法分为4种: 功能分解法、结构化分析法、信息建模法和面向对象的分析方法 。

https://i-blog.csdnimg.cn/blog_migrate/a5d08c55500389742c564242999e7bc8.png

3.3.2 需求分析方法对比

分析方法名称目   的优缺点适用范围
面向功能分析获取功能模型简单明了系统软件和应用软件
面向对象分析获取对象模型复杂抽象系统软件和应用软件
面向数据分析获取数据模型抓住本质关系数据库信息系统

3.3.3 需求分析技巧

https://i-blog.csdnimg.cn/blog_migrate/f986014200188486bc8521c90a44d437.png

3.4 结构化分析方法

结构化开发方法(Structured Developing Method)是软件开发方法中最成熟、应用最广泛的方法。

主要特点 : 快速、自然和便捷 。

主要缺点:

不太适应规模大的复杂项目,难以解决软件重用问题,较难适应需求变化,难以彻底解决维护问题

结构化开发方法 由 结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成 。

3.4.1 结构化分析方法的基本思想

结构化分析(Structured Analysis,SA)方法是 面向数据流 的需求分析方法,SA方法根据软件内部的数据传递、变换关系,自顶向下、逐层分解,绘出满足功能要求的模型。

结构化方法总的 指导思想 是“ 自顶向下、逐步求精 ”,其 基本原则 是 抽象与分解 。 https://i-blog.csdnimg.cn/blog_migrate/01af79233a9cdcb954215aae2fda8475.png

3.4.2  结构化分析步骤

https://i-blog.csdnimg.cn/blog_migrate/bbc6a3c5916c501c815fa10bad5df462.png

3.4.3 结构化分析的流程

结构化分析导出的分析模型包括 数据模型、功能模型和行为模型 ,这些模型 以“ 数据字典 ”为核心

实体关系图(E-R图 Entity Relationship Diagram)作为 数据建模 的基础;

数据流图 (DFD,Data Flow Diagram)作为 功能建模 的基础;

状态转换图 (STD,State Transition Diagram)作为 行为建模 的基础。

https://i-blog.csdnimg.cn/blog_migrate/e762c0477840f65fe13d2c86887facb8.png

3.5 结构化分析建模工具

https://i-blog.csdnimg.cn/blog_migrate/85a19872c2496bcef8ced3ff6519d6a5.png

3.5.1 实体-关系图

实体关系图(Entity Relationship Diagram,E-R图)是目前 最常用 的数据建模方法。主要用于 在需求分析阶段 清晰地表达目标系统中 数据之间的联系及其组织方式 ,建立系统的实体 数据模型 (E-R模型)。

实体模型由 实体、联系和属性 三个 基本成分 组成。

https://i-blog.csdnimg.cn/blog_migrate/40f9b158d2d09513d569f523a15dab53.png

E-R图由矩形框、菱形框、椭圆或圆角矩形及连线组成。

其中, 矩形框表示实体,菱形框表示关系,椭圆或圆角矩形表示实体(或关系)的属性 。

3.5.2 数据流图

数据流图的概念和作用

数据流图(Data Flow Diagram,DFD)运用图形方式描述系统内部的数据流程,表达系统的 各处理环节之间的数据联系 ,是 结构化系统分析方法 的主要表达工具

基本图形符号

https://i-blog.csdnimg.cn/blog_migrate/04deca55f2460e7909df063ddda11112.png https://i-blog.csdnimg.cn/blog_migrate/89a9a20aae0bc72a8440e04c0d8a6b02.png https://i-blog.csdnimg.cn/blog_migrate/5ff144858d324e28796b59323b89917c.png

数据流图的附加符号

有时有两个以上的数据流进入或流出同一个加工,这样,多个数据流之间往往存在一定的关系

https://i-blog.csdnimg.cn/blog_migrate/936c132fef4ec9318968b660fd78e8a9.png

DFD绘制方法

https://i-blog.csdnimg.cn/blog_migrate/0bb1de0222c5cb112664989e81107954.png https://i-blog.csdnimg.cn/blog_migrate/6ff8fde86f5fe299e2b2eac389721b03.png https://i-blog.csdnimg.cn/blog_migrate/da0f49c0e49b40a84e6b5d0915ed61ff.png https://i-blog.csdnimg.cn/blog_migrate/09304906483232bbadcc3f0d3e24695a.png

注意事项

https://i-blog.csdnimg.cn/blog_migrate/425362b87245f00d77b7d47846a5d441.png

3.5.3 数据字典

数据词典(Data Dictionary,DD)是指 存储数据源定义和属性 (描述说明)文档

DD以一种准确无二义性的说明方式,为软件分析、设计及维护提供了有关数据元素一致的定义和详细描述。

数据字典 要求 : 完整性、一致性和可用性 。

数据字典有 4类条目 : 数据流、数据项、文件及基本加工 。

(1)数据流条目。给出了DFD中数据流的定义,通常对数据流的简单描述为列出该数据流的各组成数据项。主要包括:数据流名称、别名及简述、数据流来源和去处、数据流组成、流通量。

(2)文件条目。给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流,还可指出文件的组织方式。

(3)数据项条目。给出某个数据单项的定义,通常是该数据项的值类型、允许值等。

(4)加工条目。是对DFD的补充,实际是“加工小说明”。由于“加工”是DFD的重要组成部分,一般应单独进行说明。因此,数据字典是对DFD中所包含各种元素定义(数据项、结构、特征、加工、流向等)的集合。对 4 类条目描述:数据流、数据项、文件及基本加工。

3.5.4 处理过程描述

结构化语言

https://i-blog.csdnimg.cn/blog_migrate/d565d58f7aefb1c0cfd109d888feff1d.png

判定树

https://i-blog.csdnimg.cn/blog_migrate/30dd5d9877b97b5ee002f16671e4c5a8.png

判定表

https://i-blog.csdnimg.cn/blog_migrate/4b4d4386b602cc91b9fbcad26a35d7fe.png

https://i-blog.csdnimg.cn/blog_migrate/ffa1df8c11a3d30f801ba90f8a1a11b0.png

例如: https://i-blog.csdnimg.cn/blog_migrate/dab2b6501144b72be91767eb764bcac6.png

3.5.5  状态转换图

在对系统进行需求分析时,除建立系统的数据模型和功能模型外,有时还需要 建立系统的行为模型

https://i-blog.csdnimg.cn/blog_migrate/3d3cf091db5f3a21595bdda699827cac.png

3.6 软件需求分析文档

3.6.1 软件需求文档概述

软件需求分析文档主要包括:

系统(子系统)需求规格说明(SSS) (对整个系统或子系统需求分析的说明性文档)、软件需求规格说明(SRS)、接口需求规格说明(IRS)、数据需求说明(DRD),软件需求相关说明书的评审记录表、需求变更管理表等。

https://i-blog.csdnimg.cn/blog_migrate/d30631538e872e5196d3e34bd8e597b5.png

3.6.2 软件需求文档编写

https://i-blog.csdnimg.cn/blog_migrate/8cbc5913f1da28f193f60a6c8a9d35bb.png

3.7本章小结

https://i-blog.csdnimg.cn/blog_migrate/79ae699ea0115189632acd11c9a73ba5.png