Download presentation
Presentation is loading. Please wait.
1
软件工程 第四章 结构化分析与设计 制作者 程丽
2
本章介绍以下内容 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
3
课程的任务、目的和基本要求 掌握结构化分析和设计的基本概念和原理 掌握结构化分析和设计的步骤 会应用结构化分析方法画分层数据流图,并建立相应的数据字典 会判断分层数据流图的合理性 会应用结构化设计方法画结构图,并掌握优化结构图的基本手段
4
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
5
概述 发展历史 提出:20世纪60年代末到70年代初 成熟:20世纪70年代末到80年代中期 结构化开发方法包括 结构化分析方法(SA法) 结构化设计方法(SD法) 结构化程序设计方法(SP法)
6
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
7
本节介绍以下内容 自顶向下逐层分解的分析策略 描述工具 SA分析步骤
8
自顶向下逐层分解的分析策略 结构化分析法 结构化分析简称SA,是面向数据流进行需求分析的方法,遵循自顶向下、逐步求精原则 SA法的基本思想 结构化分析方法的基本思想是“分解”和“抽象” 分解 对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决
9
自顶向下逐层分解的分析策略 分解 对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决
10
自顶向下逐层分解的分析策略 抽象 分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”
11
描述工具 图形工具 分层的数据流图DFD 说明性工具 数据词典DD 描述加工逻辑的工具 结构化语言 判定表 判定树
12
SA分析步骤 建立当前系统的物理模型 用系统流程图描述当前系统,便于用户理解 抽象出当前系统的逻辑模型 分析系统的物理模型,抽象出其本质的因素,排除次要因素,抽象出当前系统的逻辑模型 建立目标系统的逻辑模型 分析目标系统与当前系统逻辑上的差别,找出需要改变的部分,将其抽象为“加工”,确定这个加工的外部环境和输入、输出 作进一步补充和优化 为了对目标系统作完整的描述,还需考虑人机界面、输入/输出格式和其它一些问题
13
数据字典是模型的核心,它包含了软件使用和产生所有数据的描述
结构化分析模型的描述 数据字典是模型的核心,它包含了软件使用和产生所有数据的描述 数据流图:用于功能建模,描述系统的输入数据流如何经过一系列的加工变换逐步变换成系统的输出数据流 实体—关系图:用于数据建模,描述数据字典中数据之间的关系 实体-关系图 数据流图 状态转换图 控 制 规 约 数据字典 加 工 规 约 数 据 对 象 描 述 状态转换图:用于行为建模,描述系统接收哪些外部事件,以及在外部事件的作用下的状态迁移情况
14
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
15
本节介绍以下内容 基本图形符号 画数据流图 SA方法的应用
16
数据流图 数据流图简称DFD图 描述逻辑模型的图形工具 从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。 表示系统内部信息的流向,并表示系统的逻辑处理功能。 可以用来表示一个系统或软件在任何层次上的抽象
17
基本图形符号 数据流 加工 数据存储 数据源点和终点
18
基本图形符号 数据流 数据流是数据在系统内传播的路径,由一组固定的数据项组成。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。 如:运动会管理系统中,报名单(数据流)由队名、姓名、性别、参赛项目等数据组成
19
基本图形符号 数据流的流向 从一个加工流向另一个加工 从加工流向文件(写文件) 从文件流向加工(读文件) 从源流向加工 从加工流向宿
20
基本图形符号 加工 加工也称为数据处理,它对数据流进行某些操作或变换。 每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。 在分层的数据流图中,加工还应有编号。 每个加工至少有一个输入数据流和一个输出流
21
数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织 由加工进行读写 流向数据存储的数据流可理解为写入文件,或查询文件
基本图形符号 数据存储 数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织 由加工进行读写 流向数据存储的数据流可理解为写入文件,或查询文件 从数据存储流出的数据可理解为从文件读数据或得到查询结果
22
基本图形符号 数据源点和终点 数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体 一般只出现在数据流图的顶层图中 当数据流从该符号流出时表示是源 当数据流流向该符号时表示是宿 当两者皆有时表示既是源又是宿
23
示例:图书订购系统DFD 图书库存 入库单 图书代理商 书库 管理 收费 制作 财务报表 经理 帐务数据库 发书单 图书 订购 核准的订购单
顾客 收费数据 帐单
24
画数据流图 数据流图的分层 对于复杂系统,无法一次描述所有的细节。所以必须用分层的方法,将一个复杂流程图分解成几个流程图分别表示 分层的方式 顶层:说明系统的边界,系统的输入输出数据流。只有一张。 底层:由基本处理(不必再分解的处理逻辑)组成。 中间层:处于顶层和底层之间,描述了某个加工的分解,而它的组成部分又要进一步分解
26
画数据流图 分层DFD图画法 画出顶层的DFD图 逐层分解顶层DFD图,获得若干中间层DFD图 画出底层的DFD图
27
画数据流图 父图与子图 父图 上层图称为下层图的父图 子图 下层图称为上层图的子图
28
画数据流图 绘图步骤 (1)画系统的输入/输出(顶层数据流图) 先画顶层数据流图,只包含一个加工,用来标识被开发的系统,然后找出系统输入数据源点和输入数据,找出系统数据终点和输出数据 (2)画内部系统(下层数据流图) 从0层图开始编号,按系统功能分解顶层数据流图,按加工分解0层图,依次得到1层图、2层图…。数据流的组成和值发生变化的需要设置加工
29
画数据流图 绘图原则(1) 数据流图上所有数据仅限于数据流图基本符号 主图上必须包含前述四种基本元素,缺一不可。 封闭原则 数据流必须封闭在外部实体之间,不允许出现无源的输入数据和无目标的输出数据 守恒原则 加工的输入输出数据流要匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流
30
画数据流图 绘图原则(2) 加工分解的原则 自然性:概念上合理、清晰; 均匀性:理想的分解是将一个问题分解成大小均匀的几个部分; 分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。 易理解性:简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)
31
画数据流图 绘图原则(3) 合理编号 子图的编号是父图相应处理逻辑的编号。 子图处理逻辑的编号由子图号、小数点和局部编号组成。 按层给加工编号,编号表明该加工处于哪一层 子图与父图“平衡”原则 加工分解过程中输入与输出不能丢失。应该保证所有输入输出在父层、子层出现一一对应
32
画数据流图 子图与父图不平衡
33
画数据流图 如果有如下数据条目: 订货单 =客户+帐号+数量 则子、父图平衡
34
画数据流图 绘图原则(4) 合理使用数据存储 当数据存储作为某些加工之间的交界面时,数据存储必须画出来,一旦数据存储作为数据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来 合理命名 为每个元素取的名字要能够反映该元素的整体内容,无二义性、准确、具体。 若给某个数据流或处理命名比较困难,说明数据流图分解不甚合理,可以考虑重新分解
35
SA方法应用 实例 1 考务处理系统功能 (1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站; (3)对阅卷站送来的成绩清单进行检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩合格/不合格标志)送给考生; (5)按地区进行成绩分类统计和试题难度分析,产生分类统计表和难度分析表送考试中心。
36
SA方法应用 考务处理系统绘图步骤 1.确定系统的输入数据源点和输出数据终点 2.找出系统输入数据 3.找出系统输出数据
考生、阅卷站、考试中心 2.找出系统输入数据 考生:报名单 阅卷站:成绩单 考试中心:合格标准 3.找出系统输出数据 考生:准考证、考生通知单 阅卷站:考生名单 考试中心:分类统计表、难度分析表
37
考 试 中 心 实例 1 顶层数据流图 考 生 考务 处理系统 阅卷站 不合格报名单 难度分析表 报名单 分类统计表 准考证 合格标准
实例 1 顶层数据流图 不合格报名单 考 生 难度分析表 考 试 中 心 报名单 考务 处理系统 分类统计表 准考证 合格标准 考生名 单 考生通知单 成 绩 清单 错误成绩清单 阅卷站
38
实例 1 0层数据流图 1 2 考试 统计 报名 成绩 考前 考后 考生通知单 报名单 分类统计表 不合格 报名单 难度分析表 错 准考证
实例 1 0层数据流图 考生通知单 报名单 分类统计表 1 考试 报名 不合格 报名单 2 统计 成绩 难度分析表 错 准考证 误 考生名 单 合 格 标 准 成 成 绩 绩 清 清 单 单 考生名册 考前 考后
39
实例 1 一层数据流图 (考前) 报名单 合格 报名单 1.2 编准考 证号 1.1 检查 报名单 不合格 报名单 准考证 正式报名单 1.3 登记 考生 考生名单 考生名册
40
实例 1 一层数据流图 (考后) 正确 成绩清单 合格 标准 2.2审定 合格者 2.1检查 成绩清单 成绩清单 错误 成绩清单 正式
实例 1 一层数据流图 (考后) 正确 成绩清单 合格 标准 2.2审定 合格者 2.1检查 成绩清单 成绩清单 错误 成绩清单 正式 成绩清单 试题得分清单 2.5分析 试题难度 2.4分类 统计成绩 考生 通知单 2.3制作 通知单 分类 统计表 难度 分析表 考生名册
41
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
42
数据字典 数据字典 数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算有共同的理解
43
数据字典 数据字典与流图之间关系 数据流图描述了系统的“分解”; 依靠“数据字典”来说明各个成分的含义; 数据流图中所有名字的定义就构成一本词典; 数据流图和数据字典同是“需求说明书”的一部分; 数据流图中出现的每一个数据流名、每一个文件名和每一个加工名在词典中都应该有一个条目给出这个名字的定义。 数据字典是关于数据基本信息的集合,是数据流图的补充工具
44
数据字典 需要用数据字典描述的对象 数据流条目 数据存储条目 数据项条目 加工条目 源或宿条目
45
给出了数据流图中数据流的定义,通常列出该数据流的各组成数据项
数据字典 数据流条目 给出了数据流图中数据流的定义,通常列出该数据流的各组成数据项
46
数据流来源:描述数据流从哪个加工或源流出 数据流去向:描述数据流流入哪个加工或宿 数据量:系统中该数据流的总量
数据流条目主要内容 名称:数据流名(可以是中文名或英文名) 别名:名称的另一个名字 简述:对数据流的简单说明 数据流组成:描述数据流由哪些数据项组成 数据流来源:描述数据流从哪个加工或源流出 数据流去向:描述数据流流入哪个加工或宿 数据量:系统中该数据流的总量 如考务处理系统中“报名单”的总量是100000张 或者单位时间处理的数据流数量,如80000张/天 峰值:某时段处理的最大数量 如每天上午9:00至11:00处理60000张表单 注解:对该数据流的其它补充说明
47
数据项条目:最小数据单位,不可再分 名称:数据项名 别名:同数据流条目 简述:对数据项的简单描述 数据类型:描述数据项的类型,如整型、实型、字符串等 计量单位:指明数据项值的计量单位,如公斤、吨等 取值范围:描述数据项允许的值域,如1…100 编辑方式:描述该数据项外部表示的编辑方式,如23,345.67 与其它数据项的关系:描述该数据项与数据字典中其它数据项的关系 注解:对数据项的其它补充说明
48
数据存储条目 名称:文件名 别名:同数据流条目 简述:对文件的简单说明
文件组成:描述文件的记录由哪些数据项组成(与数据流条目中的文件组成描述方法相同) 写文件的加工:描述哪些加工写文件 读文件的加工:描述哪些加工读文件 文件组织:描述文件的存储方式(顺序、索引),排序的关键字 使用权限:描述各类用户对文件读、写、修改的使用权限 数据量:文件的最大记录个数 存取频率:描述对该文件的读写频率 注解:对该文件的其它补充说明
49
加工条目 名称:加工名 别名:同数据流条目 加工号:加工在DFD中的编号 简述:对加工的功能的简要说明
输入数据流:描述加工的输入数据流,包括读哪些文件名 输出数据流:描述加工的输出数据流,包括写哪些文件名 加工逻辑:简要描述加工逻辑,或者对加工规约的索引 异常处理:描述加工处理过程中可能出现的异常情况,及其处理方式 加工激发条件:描述执行加工的条件,如,“身份认证正确”,“收到报名单” 执行频率:描述加工的执行频率,如,每月执行一次,每天0点执行 注解:对加工的其它补充说明
50
数据字典 源或宿条目条 名称:源或宿的名(外部实体名) 别名:同数据流条目 简要描述:对源或宿的简要描述(包括指明该外部实体在DFD中是用作“源”,还是“宿”,还是“既是源又是宿”) 输入数据流:描述源向系统提供哪些输入数据流 输出数据流:描述系统向宿提供哪些输出数据流 注解:对源或宿的其它补充说明
51
发票=单位名称+{商品名+数量+单价+金额} +总金额+日期+(营业员)
数据字典 发票=单位名称+{商品名+数量+单价+金额} +总金额+日期+(营业员) 单位名称: 商品名 数量 单价 金额 总金额 数据流组成示例(发票) 日期 营业员
52
例 考务处理系统-数据项 名称:准考证号 别名:无 简述:给考生编排的考试座号 数据类型:整形 计量单位:无 取值范围: 第1位:[1|2 |3] (福州/厦门/南平) 第2~5位:0000~9999(人工编排的号码) 编辑方式:如:10000~39999 与其它数据项的关系:无直接关系 注解:无
53
例 考务处理系统-数据存储 名称:考生名册 别名:无 简述:记录考生个人情况和成绩的文件 文件组成 考生名册=序号+姓名+文化程度+职业+考试级别+通信地址+准考证号+地区 写文件的加工:1 登记报名单、1.3 登记考生 读文件的加工:2 统计成绩、2.3 制作通知单、2.4 分析统计成绩 文件组织:准考证号为关键字 使用权限:只有考务管理人员能添加、修改、删除 数据量:20万条 存取频率:200条/天 注解:无
54
例 考务处理系统-加工条目 名称:检查报名单 别名:无 编号:1.1 简述:检查报名单的正确性 输入数据流:报名单 输出数据流:合格报名单、不合格报名单 加工逻辑: 判断输入项是否满足书写要求,满足,输出合格报名单,不满足,输出不合格报名单 异常处理:无 加工激发条件:收到报名单 执行频率:收到报名单 注解:无
55
数据字典 定义数据字典的方法 首先,分析数据元素的基本类型 顺序类型 选择类型 重复类型 实际应用中,任何复杂数据基本是由数据元素反复使用顺序、选择和重复三种方式而形成的
56
数据字典定义式中出现的符号
59
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
60
本节介绍以下内容 结构化语言 判定表 判定树
61
结构化语言 结构化语言是介于自然语言和形式语言之间的一种半形式语言,是自然语言的一个受限子集。 一般分为两层结构: 外层语法较具体,为控制结构(顺序、选择、循环) 内层较灵活,表达“做什么”
62
结构化语言 例一 考务处理系统“检查报名单” IF 输入项满足书写要求 Then 输出合格报名单 Else 输出不合格报名单 ENDIF
63
结构化语言 例二 “确定能否供货”的加工逻辑:根据库存记录 IF 订单项目的数量 < 该项目库存量的临界值 THEN 可供货处理 ELSE 此订单缺货,登录,待进货后再处理 ENDIF
64
结构化语言 结构化语言的特点 简单 易学 少二义性 不好处理组合条件
65
判定表 判定表是一种二维的表格,常用于较复杂的组合条件。通常由四部分组成 条件框—条件定义 操作框—操作定义 条件条目—各条件取值的组合 操作条目—在取值组合下所执行的操作
66
判定表 例如:对商店每天的营业额所收税率
67
判定表 判定表的特点 可处理较复杂的组合条件 但不易理解、不易输入计算机
68
判定表 例 一图书销售系统,其中一加工为“优先处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。 分析 共有3个判定条件,有8种可能的组合情况,化简后,得到下图
70
判定树
71
判定树 判定树的特点 描述一般组合条件较清晰 易理解 不易输入计算机
72
接下来介绍 概述 结构化分析 数据流图 数据字典 加工逻辑的描述 结构化设计
73
本节介绍以下内容 数据流图的类型 设计过程 变换分析设计 事务分析设计 综合型数据流图与分层数据流图映射成软件结构的设计
74
结构化设计 什么是结构化设计(SD) 结构化设计是以结构化分析产生的数据流图为基础,按一定步骤映射成软件结构的过程 结构化设计方法 结构化设计方法所提供的方法与原则主要是为了确定软件的体系结构和接口。 SD方法提供了一种称为SC图(structure chart结构图)的描述工具,专门描述软件的总体结构 描述一个软件系统由哪些模块组成,以及模块之间的调用关系
75
结构化设计 结构图的基本成分有:模块、调用和数据 O Q N R a a,c b c d a,d MS f j P T S W g h i
76
结构化设计 模块是指具有一定功能的可以用模块名调用的一组程序语句,如函数、子程序等 它们是组成程序的基本单元 一个模块具有其外部特征和内部特征 外部特征包括:模块的接口(模块名、输入/输出参数、返回值等)和模块的功能 内部特征包括:模块的内部数据和完成其功能的程序代码 在SD中,我们只关注模块的外部特征,而忽略其内部特征
77
结构化设计 调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者 为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块 数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示
78
结构化设计 结构图中的辅助符号 D B C A 条件调用 循环调用 递归调用
79
数据流图的类型 变换型数据流图 事务型数据流图
80
数据流图的类型 变换型数据流图 传入部分 变换中心 传出部分 物理 输入 传入 变换 传出 物理 输出 逻 辑 输 入 逻 辑 输 出 特点:具有明确的传入、变换(或称主加工)和传 出界面的DFD
81
数据流图的类型 事务型数据流图 接收 部分 事务 中心 动作1 接收 事务 分析 动作2 动作3
82
设计过程 软件结构特征 变换型结构 事务型结构
83
设计过程 变换型软件结构 MC MA MT ME 输入 模块 变换中心模块 输出 模块
84
设计过程 事务型软件结构
85
设计过程 面向数据流设计方法的设计步骤 (1)精化DFD (2)确定DFD类型 (3)分解上层模块,设计中下层模块结构 (4)根据优化准则对软件结构求精 (5)描述模块功能、接口及全局数据结构 (6)复查,如果有错,转(2)修改完善,否则进入详细设计
86
面向数据流方法的设计过程 精化数据流图 区分事务中心 和数据加工路径 映射成变换结构 流图类型 区分变换中心、输入和输出分支 映射成事务结构
用软件结构设计优化准则精化软件结构 导出接口描述和全程数据结构 复查 详细设计 “事务” “变换” 事务分析 变换分析
87
B C A D E Q P R W U V a b c e d r p u w v 变换分析设计 步骤
(1)确定DFD中的变换中心、逻辑输入和逻辑输出 B C A D E Q P R W U V a b c e d r p u w v 变换中心 逻辑输入 逻辑输出
88
a b W w c r P R p u d e v D E Q U V MA MT ME 变换分析设计
(2)设计软件结构的顶层和第一层——变换结构 a b W A B C w c r P R p u d e v D E Q U V MC 输入 模块 变换中心模块 MA MT ME 输出 模块
89
变换分析设计 (3)设计中、下层模块 对第一层的输入、变换及输出模块自顶向下、逐层分解 输入控制模块的分解:从变换中心的边界开始,沿着输入路径向外移动,把输入路径上的每个加工映射成结构图中受输入控制模块控制的一个低层模块 输出控制模块的分解:从变换中心的边界开始,沿着输出路径向外移动,把输出路径上的每个加工映射成结构图中受输出控制模块控制的一个低层模块 变换控制模块的分解:把变换中心的每个加工映射成结构图中受变换控制模块控制的一个低层模块
90
示例:统计成绩子图的输入、输出流边界 2.7 打印难度 分析表 2.5 分析 试题难度 难度分析结果 难度分析表 2.6 打印分类 统计表
2.4 分类 统计成绩 分类统计结果 分类统计表 考生名册 2.2 审定 合格者 2.8 打印考生 通知单 2.3 产生考生 通知信息 考生通知信息 考生通知单 正式成绩清单 合格标准 2.1 检查 成绩清单 正确成绩清单 试题得分清单 错误成绩清单
91
“统计成绩”第一级分解的结构图 统计成绩 统计成绩 输入控制 统计成绩 处理模块 统计成绩 输出控制
92
“统计成绩”第二级分解的结构图
93
“考试报名”第一级分解的结构图 考试报名 输入控制 报名处理 输出控制
94
“考试报名”第二级分解的结构图 考试报名 输入控制 报名处理 输出控制 检查报名单 编准考证号 登记考生 打印准考证 输出考生名单
11 10 10 11 13 14 输入控制 报名处理 输出控制 12 14 10 11 13 12 13 10 14 11 检查报名单 编准考证号 登记考生 打印准考证 输出考生名单 打印报名单出错信息 9 输入报名单
95
事务分析设计 步骤 (1)确定DFD中的事务中心和加工路径 (2)设计软件结构的顶层和第一层——事务结构 (3)事务结构中、下层模块的设计、优化(同变换结构)
96
事务分析的映射方法
97
初始结构图的改进 对结构图改进的依据就是观察这种改进是否符合软件设计的准则和启发式设计策略 因此结构图的改进没有明显的步骤,也很难定义终止条件 设计改进往往伴随着折中 例如提取多个模块中的相同功能可以提高模块的独立性和复用程度,但会增加模块间的联系 改进往往不是一次完成的,需要进行多次的反复,有时还需要在多个改进方案进行选择
98
“考试报名”结构图的改进-1 “考试报名”部分的结构图: “输入报名单”模块比较简单,可以和“检查报名单”合并 将“打印报名单出错信息”模块合并到“检查报名单”模块,降低模块间的耦合度 最终三者合并为“输入并检查报名单”
99
其中: 9:报名单 10:合格报名单 11:准考证 12:正式报名单 13:考生名单 14:不合格报名单
“输入报名单”模块比较简单,可以和“检查报名单”合并 输入控制 考试报名 输出控制 报名处理 检查报名单 编准考证号 登记考生 打印准考证 输出考生名单 10 11 12 13 其中: 9:报名单 :合格报名单 11:准考证 12:正式报名单 13:考生名单 :不合格报名单 输入报名单 9 14 打印报名单出错信息
100
其中: 9:报名单 10:合格报名单 11:准考证 12:正式报名单 13:考生名单 14:不合格报名单
“输入报名单”模块比较简单,可以和“检查报名单”合并 输入控制 考试报名 输出控制 报名处理 输入并检查报名单 编准考证号 登记考生 打印准考证 输出考生名单 10 11 12 13 其中: 9:报名单 :合格报名单 11:准考证 12:正式报名单 13:考生名单 :不合格报名单 14 打印报名单出错信息
101
其中: 9:报名单 10:合格报名单 11:准考证 12:正式报名单 13:考生名单 14:不合格报名单
将“打印报名单出错信息”模块合并到“检查报名单”模块,降低模块间的耦合度 输入控制 考试报名 输出控制 报名处理 输入并检查报名单 编准考证号 登记考生 打印准考证 输出考生名单 10 11 12 13 其中: 9:报名单 :合格报名单 11:准考证 12:正式报名单 13:考生名单 :不合格报名单 14 打印报名单出错信息
102
将“打印报名单出错信息”模块合并到“检查报名单”模块,降低模块间的耦合度
输入控制 输入并检查报名单 10 考试报名 11,13 ,13 输出控制 输出 考生名单 打印 准考证 11 13 报名处理 编 准考证号 登记考生 11,12 12
103
“考试报名”结构图的改进-2 准考证在“编准考证号”模块产生,一直要到“打印准考证”模块才使用,因此可以将二者合并成“编制并打印准考证” “登记考生”和“输出考生名单”也可合并成“登记并输出考生名单”
104
准考证在“编准考证号”模块产生,一直要到“打印准考证”模块才使用,因此可以将二者合并成“编制并打印准考证”
输入控制 输入并检查报名单 10 考试报名 11,13 ,13 输出控制 输出 考生名单 打印 准考证 11 13 报名处理 编 准考证号 登记考生 11,12 12
105
准考证在“编准考证号”模块产生,一直要到“打印准考证”模块才使用,因此可以将二者合并成“编制并打印准考证”
输入控制 输入并检查报名单 10 考试报名 11,13 输出控制 输出 考生名单 13 报名处理 编制 并打印准考证 登记考生 12
106
“登记考生”和“输出考生名单”也可合并成“登记并输出考生名单”
输入控制 输入并检查报名单 10 考试报名 13 输出控制 输出 考生名单 报名处理 编制 并打印准考证 登记考生 12
107
“登记考生”和“输出考生名单”也可合并成“登记并输出考生名单”
输入控制 输入并检查报名单 10 考试报名 输出控制 报名处理 编制并打印准考证 登记并输出考生名单 12
108
“输出控制”模块的作用是调用三个输出模块,现在这三个输出模块都合并到其它模块中去了,因此,“输出控制”可以删去
“考试报名”结构图的改进-3 “输出控制”模块的作用是调用三个输出模块,现在这三个输出模块都合并到其它模块中去了,因此,“输出控制”可以删去 对于“输入控制模块”和“报名处理”模块,它们除了调用低层模块并传递参数外,没有其它实质性的工作,这种模块称为管道模块,可以将其删除,其低层模块改由其上层模块调用 输入并检查 报名单 考试报名 10 登记并输出 考生名单 编制并打印 准考证 12
109
将一些比较简单的模块合并到与其功能相一致的模块中,减少耦合度
“统计成绩 ”结构图的改进-1 将一些比较简单的模块合并到与其功能相一致的模块中,减少耦合度 将“输入成绩清单”、“检查成绩清单”、“打印成绩单出错信息”合并成“输入并检查成绩清单” 将“输入合格标准”与“审定合格者”合并,仍取名“审定合格者”,但它包含读入合格标准功能 将“产生考生通知单”与“打印考生通知单”合并成“产生并打印考生通知单” 统计成绩 输入控制 输入并检查 成绩清单 2 ,7 处理模块 审定 合格者 产生并打印 通知单 4 分析 试题难度 分类 6 7 输出控制 打印 分类统计表 难度分析表 6,7
110
将“打印难度分析表”模块和“打印分类统计表”模块分别作为“分析试题难度”模块和“分类统计成绩”模块的下属模块
“统计成绩 ”结构图的改进-2 降低模块间的耦合程度 将“打印难度分析表”模块和“打印分类统计表”模块分别作为“分析试题难度”模块和“分类统计成绩”模块的下属模块 2 统计成绩 输入控制 读入并检查 成绩清单 输出控制 打印 分类统计表 难度分析表 处理模块 审定 合格者 产生并打印 通知单 4 分析 试题难度 分类 6 7
111
“统计成绩输入控制”模块和“统计成绩处理模块”均为“管道”模块,也可删去
“统计成绩 ”结构图的改进-3 删去“统计成绩输出控制” “统计成绩输入控制”模块和“统计成绩处理模块”均为“管道”模块,也可删去 统计成绩 2 输入并检查 成绩清单 打印 分类统计表 难度分析表 审定 合格者 产生并打印 通知单 4 分析 试题难度 分类 6 7
112
局部改进后的“考务处理系统”结构图 考试报名 输入并检查报名单 10 登记并输出考生名单 编制并打印准考证 12 统计成绩 2
输入并检查成绩清单 打印分类统计表 打印难度分析表 审定 合格者 产生并打印通知单 4 分析 试题难度 分类 6 7 考务 处理系统
113
考虑到分析试题难度和分类统计成绩是相对独立的功能,因此将它们移到主控模块下
“考务处理系统”结构图的整体改进 考虑到分析试题难度和分类统计成绩是相对独立的功能,因此将它们移到主控模块下 “考试报名”模块和“统计成绩”模块似乎是管道模块,但删去后主控模块“考务处理系统”的扇出就比较大,因此可不删除 考试报名 输入并检查报名单 10 登记并输出考生名单 编制并打印准考证 12 统计成绩 2 读入并检查成绩清单 审定 合格者 产生并打印通知单 4 打印分类统计表 打印难度分析表 分析 试题难度 分类 6 7 考务 处理系统
114
作业一 高校录取统分子系统有如下功能: (1)计算标准分:根据阅卷站提供的原始分计算,得到标准分,存入考生分数文件。 (2)计算录取线分:根据标准分、招生单位提供的招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的顶层和0层数据流图,并将其转换为软件结构图。
115
作业二 某公司为本科以上学历的人重新分配工作,分配原则如下: 如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作 如果年龄不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长。 如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。 要求:画出判定表,并进行化简
116
Thank You !
Similar presentations