课程
03-requirements-analysis
需求分析
定义:软件定义时期的最后一个阶段,也是软件工程中最重要的一个环节。主要工作是准确回答“系统必须做什么”这个问题。需求分析的结果要产生一份详尽的《需求规格说明书》
意义:
- 需求分析是软件开发的基础和前提。必须了解用户需求,才能开发处符合用户要求的软件。
- 需求分析是最终目标软件系统验收的标准
- 需求分析能避免或者尽早剔除早期的错误,确定对系统的综合要求
任务: 1、确定对系统的综合要求
- 功能需求
- 性能需求
- 可靠性和可用性需求
- 出错处理需求
- 接口需求
- 约束
- 逆向需求
- 将来可能提出的要求 2、分析系统的数据要求
- 建立数据模型
- 描绘数据结构:层次方框图、Warnier图、IPO图 3、导出系统的逻辑模型
- 数据流图
- 数据字典
- 实体联系图
- 状态转换图 4、修正系统开发计划
与用户沟通获取需求的方法: 1、访谈
- 基本形式:正式会谈、非正式会谈
- 技术方法:调查表、情景分析 2、面向数据流自顶向下求精
- 分析跟踪、补充修正、细化数据流图 3、简易的应用规格说明技术
- 一种面向团队的需求收集法 4、快速建立软件原型
- 旨在演示目标系统主要功能的可运行的程序
- 特性是快速、容易修改
分析模型:
- 数据模型(实体-联系图):描绘数据对象及数据对象之间的关系
- 功能模型(数据流图):描绘数据在系统中流动时被处理的逻辑过程,指明系统具有的变换数据的功能
- 行为模型(状态转换图):描绘系统的各种行为模式在不同状态间转换方式
《软件需求规格说明》: 软件需求分析阶段得出的最主要的文档
通常用自然语言完整、准确、具体地描述系统的数据需求、功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的需求。
选择题:
- 软件需求分析的任务不包括()。
- A 问题分析
- B 信息域分析
- ==C 结构化设计==
- D 确定逻辑结构
- 软件需求规格说明书的内容不应包括对()的描述。
- A 主要功能
- ==B 算法的详细过程==
- C 用户界面及运行环境
- D 软件的性能
- 需求分析阶段研究的对象是软件项目的()。
- ==A 用户需求==
- B 合理需求
- C 模糊需求
- D 技术人员的需求
- 需求分析阶段的任务是确定()。
- A 软件开发方法
- B 软件开发工具
- C 软件开发费用
- ==D 软件系统功能==
- 需求分析最终的结果是产生()。
- A 项目开发计划
- ==B 需求规格说明书==
- C 设计说明书
- D 可行性研究报告
- 结构化分析方法的基本思想是()。
- A 自底向上逐步分解
- ==B 自顶向下逐步分解==
- C 自底向上逐步抽象
- D 自顶向下逐步抽象
实体联系图
数据模型
定义:一种面向问题的数据模型,是按照用户的观点对数据建立的模型。描述了从用户角度看到的数据,反映了用户的现实环境,而且在于软件系统中的实现方法无关。
构成:
- 数据对象:对软件必须理解的复合信息的抽象
- 属性:属性定义了数据对象的性质
- 联系:数据对象彼此之间相互连接的方式称为联系,也称为关系
- 一对一(1 : 1)
- 一对多(1 : N)
- 多对多(M : N)
实体联系图(E-R图)
定义:使用实体联系图可以建立数据模型,利用E-R图描绘的数据模型称之为E-R模型。用于描述数据流图中的数据存储及其之间的关系,可用于数据库的概念设计。实体联系图可以作为用户与分析员之间有效的交流工具。
- 实体:描述的数据对象
- 属性:描述数据对象的性质
- 联系:描述数据对象之间的交互方式
表示方式:
- 矩形方框:实体
- 菱形框:联系
- 圆角矩形:属性
实例:一个学生可选修多门课,一门课有若干名学生选修;一个教师可以讲授多门课,一门课只有一个教师讲授;学生选修一门课,产生成绩。学生的属性有学号、姓名等;教师的属性有教师编号、教师姓名等;课程的属性有课程号、课程名等。请画出E-R图。
- 找出所有的实体
- 确定实体之间的联系
- 完善实体间的属性 ![[assets/Pasted image 20260110222151.png|325]]
选择题:
- 在E-R图中,包含以下基本成分()。
- A 数据、对象、实体
- B 控制、联系、对象
- ==C 实体、联系、属性==
- D 实体、属性、操作
- ()可用于描述数据流图中的数据存储及其之间的联系,最初用于数据库概念设计。
- ==A 关系实体图==
- B 数据字典
- C IPO图
- D 判定表
- 在E-R图中,用于表示实体联系的图形是()。
- A 椭圆
- B 矩形
- ==C 菱形==
- D 三角形
状态转换图
状态转换图STD:通过描绘系统的状态及引起系统状态转换的实践来表示系统的行为
状态:状态是指任何可以被观察到的系统行为模式,规定了系统对事件的相应方式
事件:事件指在某个特定时刻发生的事情,就是引起系统做动作或转换状态的控制信息
符号表示:
- 初态:实心圆
- 终态:同心圆,内为实心
- 状态:圆角矩形 ![[assets/Pasted image 20260110223436.png|500]]
其他图形工具
层次方框图
定义:用树形结构的一系列矩形描绘数据的层次结构
优点:随着结构的逐步精细,对数据的描绘也越来越详细
![[assets/Pasted image 20260110223719.png|400]]
Warmer图
定义:用树形结构描绘信息的层次结构
优点:可以表明信息的逻辑组织;可以表明某些信息出现的条件或者是否重复出现
![[assets/Pasted image 20260110223831.png|450]]
IPO图
定义:是输入、处理、输出图的简称,能够方便的描绘输入数据、对数据的处理和输出数据之间的关系
优点:简略描绘系统主要算法
![[assets/Pasted image 20260110224012.png|450]]
选择题:
- 状态转换图属于()。
- A 行为模型
- B 状态模型
- C 功能模型
- D 数据模型
- 在需求分析阶段常用的图形工具有()、Warnier图、IPO图。
- A 层次图
- B 层次方框图
- C 系统结构图
- D 组织结构图
- IPO图是()。
- A 系统结构图
- B 组织结构图
- C 数据结构图
- D 模块展开的输入处理输出图
验证软件需求
四个方面:
- 一致性:所有需求必须保持一致,不能自相矛盾
- 完整性:需求规格说明书应该包括用户需要的所有完整功能
- 现实性:需求必须是能用现有的硬件和软件技术实现的
- 有效性:必须证明需求是正确有效的,确实能解决用户面临的问题的
验证方法:
- 验证一致性:自然语言描述需求、形式化语言描述需求、使用软件工具验证
- 验证现实性:参照开发经验
- 验证完整性和有效性:建立软件原型
用于需求分析的软件工具:
- PSL(问题陈述语言)
- PSA(问题陈述分析程序)
判断题:
- 再进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×)
- SA(结构化分析)法是面向数据流,建立在数据封闭原则上的需求分析方法。(√)
- 在进行需求分析时需要同时考虑维护性问题。(√)
- 软件需求分析的任务是建立软件模块结构图。(×)
- 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√)













