信息系统分析与设计Chapter6-2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 模块及模块结构图
模块(module)的定义 模块的本意是指一个计算机程序中可识别的具有特定功能的程序片断.[结构化 方法观点] 模块就是组成系统的具有一定功能的基本单位. 从结构化方法的观点来看, 应用程序结构由执行系统功能的若干个模块组成 模块(功能)的大小是相对的(呈树型层次关系): 模块可以组合和分解 系统顶层模块为主模块或主控模块(main / boss module) 将控制逻辑和 业务算法逻辑 系统中间层的模块为控制模块(control module) 系统最底层的模块为执行模块或工作模块(worker bee module) 相分离,便于
客户订单程序 选择
订单事务处理
查询可用商品 条目信息 客户信息 订单行条目
生成新订单
修改订单
生成订单汇总 报表
生成交易汇总 报表
订单头
客户信息 订单信息 订单 订单行条目 发生费用 生成订单确认 信息 订单和支 付信息 验证结果 验证客户信用 订单条目 信息 记录一条 订单条目 记录 订单交易条目 客户信用 信息 获得 信用卡信息
记录订单信息 订单信息
处理订单交易 订单ID 信用卡号 处理订单条目 单价、 QOH 读产品及库存 条目数据存储
CSS“生成新订 单”模块结构图
获得客户信息
创建客户记录
获得订单信息
条目ID、数量 获得 订单条目信息
应用程序体系结构的设计—结构化方法
2. 模块结构图的构造过程
合并用事务分析法所创建的顶层MSC和用变换分析法所创建的低层子树结构图
2) 结构图中把两个模块之间的数据传递称为数据耦合(data coupling). 数据耦合在图形上用带空心圆的 箭头标识,箭头旁边标以数据名称,这里的数据名称随着调用层次的不同,可以表现为一个复杂的数据 结构如一个数组、一个记录,也可以表现为一个数据元素如顾客姓名或帐号等,一般说来,靠近结构图 上层的模块,其耦合往往使用聚集程度较高的数据结构,结构图下层的耦合则往往是一些单独的数据项、 标志或相对简单的数据结构。 3) 控制信息是数据的一种特殊表现形式,通常表现为布尔值或开关量。控制信息或者用作控制被调用模 块内部处理逻辑的执行,这种情形称为模块的控制耦合(control couple);或者用作逻辑判断的条件以 确定模块调用的选择,如调用计件工资计算模块或计时工资计算模块;或者是一个低层模块告知父模块 的其处理结果,如读到一个数据文件的结束标志、输入数据有效性确认的结果等。
应用程序体系结构的设计—结构化方法
1. 模块及模块结构图
一个更为完整的模块结构图例子
工资处理系统 有效考勤记录 雇员信息 工资数据
有效考勤记录
工资总额
输入考勤记录 考勤记录 确认结果 标识 雇员信息 考勤记录 读雇员 确认考勤记录 基本信息 税规
计算实发工资 工资总额 雇员信息
工资输出 工资数据 工资数据 更新雇员 基本信息 记录工资清单 更新分类总帐
2) 在上述模块结构图的基础上,根据分析模型中的结构化英语或判断表,添加其它的所需模块间的联系, 如循环或判断标识。例如下图所示的可选择调用和循环调用标识符号。 3) 最后还需根据下一小节讨论的有关模块结构图质量控制方面的概念,对该模块结构图做优化改进。
生成新订单 客户信息 订单行条目 记录客户信息 客户信息 客户信息 订单头 客户信息 订单信息 订单 订单行条目 发生费用 生成订单确认 信息 订单和支 付信息 验证结果 验证客户信用 订单条目 信息 记录一条 订单条目 记录 订单交易条目 客户信用 信息 获得 信用卡信息
应用程序体系结构的设计—结构化方法
1. 模块及模块结构图
模块结构图(Module Structure Chart: 简记为MSC)的定义 模块结构图是表示系统应用程序体系结构的一个图形模型,它不仅反映系统 功能模块的层次分解关系,而且还反映了模块之间的调用关系以及数据信息 和控制信息的传递关系.
计算工资总额 工作小时数 工作种类 工时 基本工资 计算基本工资 税规 税额 计算税费 扣款信息 扣款额 计算其它 扣款项
变换分析法(Transform Analysis) 变换分析法的最后细化工作:
1) 必要时需在上述草图中添加一些模块,主要是一类读写数据的模块,例如,通过用户界面屏幕获得输 入数据、读写数据存储、写出输出数据或报表等等,例如下图所示。这类模块通常都是一些位于模块结 构图中低层的具体的工作模块,而且这类模块也通常在数据流程图中没有相对应的过程,因此这时系统 分析员一般都较少地依赖DFD中的信息,而是根据良好的设计原则及分析员自身的经验阅历。随着这些 模块添加到模块结构图,数据耦合将定义得更细化、精确,从而反映出了更为详细的设计结构。
Ch6 系统设计的任务
6.1 系统设计概述 6.2 应用程序体系结构的设计 —结构化方法 6.3 应用程序体系结构的设计 —面向对象方法 6.4 数据库设计 6.5 系统控制及其输入、输出设计 6.6 用户界面设计
应用程序体系结构的设计—结构化方法
• Develop a structure chart using transaction analysis and transform analysis • Write pesudo-code for structured modulesBaidu Nhomakorabea
应用程序体系结构的设计—结构化方法
2. 模块结构图的构造过程
变换分析法(Transform Analysis)
2.0 生成新订单
CSS“生成新订单” 的 DFD经过变换分析后 的重组示意图。这时 不重要的数据流可以 略去,以使图形更为 简洁
2.1 记录 客户信息 传入数据流 客户
2.2 记录 订单信息 变换中心 订单 订单条目 产品条目 库存条目
2.3 处理 订单交易 传出数据流 订单交易
2.4 生成 确认信息
生成新订单
CSS“生成新订单”模 块结构图的一个草图
客户信息 订单行条目 记录客户信息 订单头
客户信息 订单信息 订单 订单行条目 发生费用 生成订单确认 信息
记录订单信息
处理订单交易
应用程序体系结构的设计—结构化方法
2. 模块结构图的构造过程
客户订单程序 选择
订单事务处理
查询可用商品 条目信息
生成新订单
修改订单
生成订单汇总 报表
生成交易汇总 报表
CSS订单登录子系统 的顶层模块结构图
应用程序体系结构的设计—结构化方法
2. 模块结构图的构造过程
变换分析法(Transform Analysis) 变换分析法一般以顶层模块结构图及分析模型中的片断DFD为基础,其工作原 理是基于“变换”,即对顶层模块结构图中的每个事务模块,分析与该事务相应 的细化后的事件片断DFD,也就是该DFD是如何将输入的数据经过适当处理变 换成相应的输出信息,需要注意的是大多片断DFD通常都按“输入-处理-输出”这 种模式建立。经过变换分析法所得到的模块结构图是对顶层结构图的进一步细 化,在这个模块结构图中一般包括三类子树:用于得到数据的输入子模块、实 现变换的计算处理子模块、用于得到结果的输出子模块。这些子模块由与该事 务相对应的片断DFD经转换而得到,转换的关键是分析并发现片断DFD中的传 入数据流部分、传出数据流部分及变换中心部分。 具体加工步骤: 找出详细DFD中代表输入数据流和输出数据流间最基本的变化过程, 其中输 入数据流被称为传入数据流、输出数据流被称为传出数据流, 二者中间的过 程则被称为变换中心; 重新组合DFD, 将输入部分放在图中左边, 输出部分放在图中右边, 中心过程 放在中间; 根据上述重组后的DFD构造出相应的模块结构图草图, 在该草图中应体现出 模块调用层次及其数据耦合; 变换分析法的最后, 还需对上述的三类子模块做进一步分解细化.
加班 工资
一个简单的模块 结构图的例子
计算加班工资
模块结构图的符号含义 根据模块结构图的含义,在一个模块结构图中,一般涉及模块、调用、数据、 控制等几个符号.
应用程序体系结构的设计—结构化方法
1. 模块及模块结构图
模块结构图的符号含义
模块 调用模块 Passed data Control flag <-父模块 有判断条件的 选择调用模块 有迭代条件的 循环调用模块
3. 评价模块结构图的质量标准
模块结构图设计质量的好坏直接影响到系统实施 的软件质量的高低, 高质量的模块结构图能保证 系统的可维护性、灵活性和易测试性 模块独立的概念是模块化、信息隐蔽和局部化概 念的直接结果, 它是良好设计的关键 模块的独立程度可 以由两个定性标准 度量: 模块耦合和 模块内聚
模块耦合(module coupling) 定义: 模块耦合是对一个应用程序体系结构内两个不同模块之间联接程度的一种度量。 模块间的依赖程度越大, 则其耦合程度也就越大, 最终系统的质量也就越高; 反之, 模块间的依赖程度越小, 则其耦合程度也就越小,最终系统的质量也就越低。 影响模块耦合程度的因素: 1) 通过接口的控制信息流类型
公共子模块
Returned data <-子模块 (c) (d)
被调用模块 (a) (b)
说明: 1) 模块调用可分为简单调用、选择调用和循环调用三种形式. 模块调用一般符合“军事调度”的原则: 一 个模块只有经过调用才能展现其功能(在每次调用中,控制由调用模块传向被调用模块,被调用模块接 着执行其内部逻辑,当调用过程结束后,控制立即返回给调用模块),模块调用只限于其直接的上级或 下级模块,模块调用按自顶向下、自左而右的次序。
3. 评价模块结构图的质量标准
模块耦合(module coupling) 模块耦合的类型: 按其耦合程度由低到高 1) 数据耦合: 两个模块之间的接口即调用只通过数据信息的传递来关联 2) 控制耦合: 两个模块之间除了数据信息的传递之外, 还有控制信息的传递, 而且 这种控制信息是用以控制被调用模块的内部处理逻辑 3) 内容耦合/病态耦合: 两个模块之间不是通过正常的调用关系发生关联, 而是一 个模块直接存取或修改另一个模块的数据 结论1: 尽量使用数据耦合, 少用控制耦合, 完全不用内容耦合 模块内聚(module cohesion) 定义: 模块内聚是对一个模块内部各元素在功能上内在联系紧密程度的一种度量. 或者 说, 内聚是对模块内各处理动作组合强度的一种度量. 模块内聚的类型: 按其内聚程度由低到高
处理的结果传递给同一个上层模块
应用程序体系结构的设计—结构化方法
2. 模块结构图的构造过程
事务分析法(Transaction Analysis) 事务分析法的原理是以事件列表或事件划分DFD为基础,构造出最顶层的模块 结构图,在顶层模块结构图中,一般只给出主控模块和第一层被调用的模块。 对应于顶层模块结构图的模块程序本质上就实现了在屏幕上显示系统支持的所 有事务并允许用户进行选择执行的功能,而每个事务本身的执行处理过程在此 不必明确,它们将在将要介绍的变换分析法中进一步完成。因此事务分析法必 须根据DFD识别出每一个相对独立的事件,并为它们构造各自分枝,这些分枝 的根节点自然又成为每个事件的主控模块。通过事务分析法所得到的顶层模块 结构图中,通常只有很少的数据耦合,这些数据耦合一般表现为简单的选择性 的控制信息。
记录客户信息 客户信息 客户信息
记录订单信息 订单信息
处理订单交易 订单ID 信用卡号
获得客户信息
创建客户记录
获得订单信息
处理订单条目 单价、 QOH 读产品及库存 条目数据存储
条目ID、数量
合并后的CSS订单 登录子系统的完整 的模块结构示意图
获得 订单条目信息
应用程序体系结构的设计—结构化方法
税规
输入雇员 考勤记录
获取税费 计算规则
计算工资总额
工作小时数 工作种类 工时 基本工资 计算基本工资
加班 税规 税额 工资 计算税费
扣款信息 扣款额 计算其它 扣款项
计算加班工资
模块结构图的一般规律 传入结构(Afferent Structure): 其数据流大多具有由下而上的特征, 表现为系统 数据的输入 传出结构(Efferent): 其数据流大多具有由上而下特征, 表现为系统数据的输出 变换结构(Transform): 其下层模块从上层模块接受数据, 进行各种变换处理后, 再把
编程的实现
(逻辑)模块的特征 功能特征: 说明模块所具有的功能 逻辑特征: 刻画模块功能如何实现(一般用伪码描述) 状态特征: 描述模块使用的环境条件,即和其它模块之间相互调用及接口关系
在模块结构图这一抽象层次上,模块内部逻辑的还无需涉及,只是通过该结构 图表明模块以何种方式实现其名称所表示的功能,以及完成该功能所需数据和 产生的数据。模块内部逻辑将体现在模块的详细设计中。
读客户当前信息 或客户历史信息 读客户信息 处理客户信息 处理客户信息
客户信息
客户信息 读客户 当前信息
客户信息 读客户 历史信息
2) 模块间接口的复杂性
降低模块耦合性的一个例子
一般来说, 模块间传递的数据流越多, 其接口就越复杂, 表明模块的分解尚不完全, 还需进一步进行分解
应用程序体系结构的设计—结构化方法