软件工程 · 第 2 章

第 2 章 需求分析

需求三分类与 SRS;数据流图四要素与画法规则、分层与平衡原则;数据字典的作用。

2.1 需求分析的任务与分类

需求分析 = 把"用户嘴里的想法"翻译成"开发能执行的说明书"。

需求类型含义例子
功能需求系统"必须做什么"用户能注册、能下单、能导出报表
非功能需求对"做到什么程度"的约束响应时间 < 2 秒、支持 1000 人并发、可用性 99.9%
设计约束对实现方式的限制必须用 Java、必须部署在内网、必须兼容 Chrome
需求分析阶段的产出
  • 需求规格说明书(SRS)——最重要的文档,是后续设计、测试验收的依据。
  • 数据流图(DFD)与数据字典——结构化分析的"图 + 词典"。
  • (面向对象方法里对应的是用例模型等,初级了解即可。)
课堂练习(2 题)
  1. "系统必须在 3 秒内返回查询结果"属于哪类需求? 答:非功能需求(性能需求)。
  2. 需求分析阶段最重要的交付物是什么? 答:需求规格说明书(SRS)。

2.2 数据流图(DFD):四要素画出来 ★

数据流图 DFD 四要素与示例
图 2-1 DFD 四要素:外部实体、加工、数据存储、数据流

软考画图题的常客:给一段业务描述,识别四要素、补全数据流。

DFD 的四种元素(必背,含画法):

元素含义惯例画法
外部实体数据的源头或终点(人、外部系统)矩形(或平行四边形)
加工(处理)对数据做变换的动作圆角矩形 / 圆
数据存储数据停留的地方(表、文件)开口矩形(两条平行线)
数据流数据流动的管道(带箭头的线)箭头 + 名字
示例:学生选课系统的顶层 DFD

   学生 ──选课请求──→ ( 选课系统 ) ──选课结果──→ 学生
                          ↕ 读写
                     [ 课程表 / 选课表 ]

要点:
① 外部实体和加工之间才有数据流;外部实体不能"绕过加工"直接连数据存储;
② 数据流必须有名字(除了流向数据存储/从存储流出的可省略?——考试以规范为准,能命名就命名);
③ 每个加工至少要有一条输入流和一条输出流("黑洞"和"奇迹"都不允许)。
分层 DFD 与平衡原则
  • 从顶层(一个加工 + 所有外部实体)逐层细化:0 层、1 层……
  • 平衡原则:子图的输入输出数据流必须与父图中对应加工的输入输出一一对应——这是补画数据流题的核心判断依据。
易错
  • 把"数据存储"当成"外部实体"(存储系统内部用,外部实体是系统边界外的角色)。
  • 加工之间直接互连是允许的(一个加工的输出直接喂给下一个加工),但没有数据流经过的"空连接"不算。
课堂练习(3 题)
  1. DFD 的四种基本元素是什么? 答:外部实体、加工(处理)、数据存储、数据流。
  2. "图书馆管理系统"中,"读者"和"借书证信息表"分别属于哪种元素? 答:读者是外部实体;借书证信息表是数据存储。
  3. 平衡原则指什么? 答:子图与父图在同一加工处,输入、输出数据流必须一一对应、保持一致。

2.3 数据字典:DFD 的说明书

图 + 词典配套,才是一套完整的分析结果。

  • 数据字典(DD)——对 DFD 中所有元素(数据流、数据项、数据存储、加工)的精确定义。
  • 内容举例:
    • 数据项:考生号 = 14 位数字字符;
    • 数据流:成绩通知单 = 考生姓名 + 准考证号 + 各科成绩;
    • 加工的说明:对该加工的输入输出、处理逻辑的文字描述(不用流程图)。
  • 作用:保证分析、设计、编码各阶段对同一数据的理解完全一致。
课堂练习(2 题)
  1. 数据字典的作用是什么? 答:精确定义 DFD 中的每个数据项/数据流/存储/加工,是各方对数据理解的唯一依据。
  2. 数据字典和 DFD 是什么关系? 答:配套使用——DFD 描述"数据怎么流",数据字典描述"数据长什么样"。