【软件工程】第四章 结构化分析

4.1 结构化分析方法的概念

4.1.1 软件开发方法学

举例:

  1. 结构化方法
  2. 面向对象方法
  3. 面向数据结构方法
  4. 敏捷开发方法
  5. Open source

对比:

  • 软件开发方法:软件开发过程中所遵循的办法和步骤。
  • 软件开发方法学:指的是规则、方法和工具的集成。

4.1.2 结构化方法的组成

结构化软件开发方法的组成:

【软件工程】第四章 结构化分析_第1张图片

4.1.3 结构化分析

分析的目标:

对需求陈述进行分析,解决其中的歧义、不一致等问题,以系统化的形式表达用户的需求,即给出问题的形式化或半形式化的描述(亦称概念模型、系统的需求规约、需求规格说明)。

怎么分析:

  1. 提供一组术语(符号)
  2. 给出表达模型的工具
  3. 给出过程指导

4.2 结构化分析模型

4.2.1 基本术语

【软件工程】第四章 结构化分析_第2张图片

4.2.2 模型表达工具

4.2.2.1 数据流(DFD)图:

一种表达系统功能模型的工具,用于描述数据变换。

举例(一个飞机票预定系统的数据流图):

【软件工程】第四章 结构化分析_第3张图片
4.2.2.2 数据字典:

定义数据流和数据存储结构,并给出基本数据类型

引入逻辑操作符用于定义数据结构:

【软件工程】第四章 结构化分析_第4张图片

举例:

【软件工程】第四章 结构化分析_第5张图片
4.2.2.3 加工说明

描述加工逻辑及相关信息,包括执行条件、优先级、执行频率、出错处理等。

判定表基本格式:

条件类别 条件组合
操作 操作执行

举例1(用结构化自然语言描述,适用于较为简单的加工):

举例2(用判定表描述,适用于较复杂的加工描述):

考试总分 >=620 >=620 <620
单科成绩 有满分 有不及格 有满分
发升级通知书 y y n
发留级通知书 n n y
发重修通知书 n y n

举例3(用判定树描述,适用于较复杂的加工描述):

【软件工程】第四章 结构化分析_第6张图片

4.3 结构化分析过程

4.3.2 分析步骤

① 使用数据流图(DFD)建立系统的功能模型:建立顶层数据流图,确定边界,自顶而下,按照层次逐步分解。
② 使用逻辑操作符建立数据字典:定义数据流、数据存储、数据项等。
③ 使用判定表或树给出加工小说明:集中描述一个加工“做什么”,包含执行条件、优先级、执行频率、出错处理等。

4.3.2 实例

需求陈述:

建立一个简化的商业自动化系统,营业员记录每日销售商品(商品名、编号、单价、数量、销售时间),收款员记录收到的现金额和购物余额,经理统计每日销售额,在必要时查看某商品的销售情况。

【第一步】建立顶层数据流图:

【软件工程】第四章 结构化分析_第7张图片
  • 数据流:销售的商品、日销售额等
  • 数据源:营业员、经理、收款员
  • 数据潭:经理收款员
  • 加工名:要建立的系统名字

【第二步】分解至0层数据流图:

【软件工程】第四章 结构化分析_第8张图片

引入文件,使之形成一个有机整体

【第三步】分解至1层数据流图:

【软件工程】第四章 结构化分析_第9张图片

引入加工

【第四步】建立数据字典

【软件工程】第四章 结构化分析_第10张图片

【第五步】给出第五层的加工小说明:

模板:

  • 加工编号
  • 加工名
  • 输入流
  • 输出流
  • 加工逻辑(结构化自然语言、判定表、判定树)

4.3.3 注意的问题

模型平衡问题:

  1. 父图与子图边界应保持一致。
  2. DFD中的数据流与数据字典应保持一致。
  3. DFD中的最底层加工与小说明应保持一致。
  4. 小说明和数据流图的图形表达应保持一致。

信息组织复杂性控制问题:

  1. 上层数据可打包。
  2. 图元个数控制在7±2以内。
  3. 数据流的数目应适中。
  4. 确定是否所有输入信息都用于产生输出信息。
  5. 确定一个加工产生的输出是否都能由该加工的输入信息导出。

4.4 需求规格说明书

模板:

【软件工程】第四章 结构化分析_第11张图片
【软件工程】第四章 结构化分析_第12张图片
【软件工程】第四章 结构化分析_第13张图片

(完)

你可能感兴趣的:(《软件工程》学习笔记,计算机理论与基础)