视频加载失败

课程

3430 字
约 10 分钟

03-requirements-analysis

软件工程notes/se-review-obsidian·更新于 2026-09-15

需求分析

定义:软件定义时期的最后一个阶段,也是软件工程中最重要的一个环节。主要工作是准确回答“系统必须做什么”这个问题。需求分析的结果要产生一份详尽的《需求规格说明书》

意义

  • 需求分析是软件开发的基础和前提。必须了解用户需求,才能开发处符合用户要求的软件。
  • 需求分析是最终目标软件系统验收的标准
  • 需求分析能避免或者尽早剔除早期的错误,确定对系统的综合要求

任务: 1、确定对系统的综合要求

  • 功能需求
  • 性能需求
  • 可靠性和可用性需求
  • 出错处理需求
  • 接口需求
  • 约束
  • 逆向需求
  • 将来可能提出的要求 2、分析系统的数据要求
  • 建立数据模型
  • 描绘数据结构:层次方框图、Warnier图、IPO图 3、导出系统的逻辑模型
  • 数据流图
  • 数据字典
  • 实体联系图
  • 状态转换图 4、修正系统开发计划

与用户沟通获取需求的方法: 1、访谈

  • 基本形式:正式会谈、非正式会谈
  • 技术方法:调查表、情景分析 2、面向数据流自顶向下求精
  • 分析跟踪、补充修正、细化数据流图 3、简易的应用规格说明技术
  • 一种面向团队的需求收集法 4、快速建立软件原型
  • 旨在演示目标系统主要功能的可运行的程序
  • 特性是快速、容易修改

分析模型

  • 数据模型(实体-联系图):描绘数据对象及数据对象之间的关系
  • 功能模型(数据流图):描绘数据在系统中流动时被处理的逻辑过程,指明系统具有的变换数据的功能
  • 行为模型(状态转换图):描绘系统的各种行为模式在不同状态间转换方式

《软件需求规格说明》: 软件需求分析阶段得出的最主要的文档

通常用自然语言完整、准确、具体地描述系统的数据需求、功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的需求。

选择题

  1. 软件需求分析的任务不包括()。
  • A 问题分析
  • B 信息域分析
  • ==C 结构化设计==
  • D 确定逻辑结构
  1. 软件需求规格说明书的内容不应包括对()的描述。
  • A 主要功能
  • ==B 算法的详细过程==
  • C 用户界面及运行环境
  • D 软件的性能
  1. 需求分析阶段研究的对象是软件项目的()。
  • ==A 用户需求==
  • B 合理需求
  • C 模糊需求
  • D 技术人员的需求
  1. 需求分析阶段的任务是确定()。
  • A 软件开发方法
  • B 软件开发工具
  • C 软件开发费用
  • ==D 软件系统功能==
  1. 需求分析最终的结果是产生()。
  • A 项目开发计划
  • ==B 需求规格说明书==
  • C 设计说明书
  • D 可行性研究报告
  1. 结构化分析方法的基本思想是()。
  • A 自底向上逐步分解
  • ==B 自顶向下逐步分解==
  • C 自底向上逐步抽象
  • D 自顶向下逐步抽象

实体联系图

数据模型

定义:一种面向问题的数据模型,是按照用户的观点对数据建立的模型。描述了从用户角度看到的数据,反映了用户的现实环境,而且在于软件系统中的实现方法无关。

构成

  • 数据对象:对软件必须理解的复合信息的抽象
  • 属性:属性定义了数据对象的性质
  • 联系:数据对象彼此之间相互连接的方式称为联系,也称为关系
    • 一对一(1 : 1)
    • 一对多(1 : N)
    • 多对多(M : N)

实体联系图(E-R图)

定义:使用实体联系图可以建立数据模型,利用E-R图描绘的数据模型称之为E-R模型。用于描述数据流图中的数据存储及其之间的关系,可用于数据库的概念设计。实体联系图可以作为用户与分析员之间有效的交流工具。

  • 实体:描述的数据对象
  • 属性:描述数据对象的性质
  • 联系:描述数据对象之间的交互方式

表示方式

  • 矩形方框:实体
  • 菱形框:联系
  • 圆角矩形:属性

实例:一个学生可选修多门课,一门课有若干名学生选修;一个教师可以讲授多门课,一门课只有一个教师讲授;学生选修一门课,产生成绩。学生的属性有学号、姓名等;教师的属性有教师编号、教师姓名等;课程的属性有课程号、课程名等。请画出E-R图。

  • 找出所有的实体
  • 确定实体之间的联系
  • 完善实体间的属性 ![[assets/Pasted image 20260110222151.png|325]]

选择题

  1. 在E-R图中,包含以下基本成分()。
  • A 数据、对象、实体
  • B 控制、联系、对象
  • ==C 实体、联系、属性==
  • D 实体、属性、操作
  1. ()可用于描述数据流图中的数据存储及其之间的联系,最初用于数据库概念设计。
  • ==A 关系实体图==
  • B 数据字典
  • C IPO图
  • D 判定表
  1. 在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]]

选择题

  1. 状态转换图属于()。
  • A 行为模型
  • B 状态模型
  • C 功能模型
  • D 数据模型
  1. 在需求分析阶段常用的图形工具有()、Warnier图、IPO图。
  • A 层次图
  • B 层次方框图
  • C 系统结构图
  • D 组织结构图
  1. IPO图是()。
  • A 系统结构图
  • B 组织结构图
  • C 数据结构图
  • D 模块展开的输入处理输出图

验证软件需求

四个方面

  • 一致性:所有需求必须保持一致,不能自相矛盾
  • 完整性:需求规格说明书应该包括用户需要的所有完整功能
  • 现实性:需求必须是能用现有的硬件和软件技术实现的
  • 有效性:必须证明需求是正确有效的,确实能解决用户面临的问题的

验证方法

  • 验证一致性:自然语言描述需求、形式化语言描述需求、使用软件工具验证
  • 验证现实性:参照开发经验
  • 验证完整性和有效性:建立软件原型

用于需求分析的软件工具

  • PSL(问题陈述语言)
  • PSA(问题陈述分析程序)

判断题

  1. 再进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×)
  2. SA(结构化分析)法是面向数据流,建立在数据封闭原则上的需求分析方法。(√)
  3. 在进行需求分析时需要同时考虑维护性问题。(√)
  4. 软件需求分析的任务是建立软件模块结构图。(×)
  5. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√)
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录