结构化系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
耦合形式 数据耦合 控制耦合 公共耦合 内容耦合
-几种耦合的比较
可读性 可维护性 扩散错误的能力 公用性
好
一般
弱
好
一般
不好
一般
慎用公共数据区和全程变量!!!
当需要修改 公共数据时,
与之相关的 所有模块可能 都要进行修改
模块B、E和模块C之间存在着公共耦合
内容耦合
-若一个模块访问另一个模块的内容(包括数据和程序段)进行了 直接的引用甚至修改; -或通过非正常入口进入到另一模块内部; -或一个模块有多个入口; -或两个模块共享一部分代码;
(2) 强调采用模块化的设计方法,并有一组基本设计策略 (3) 采用结构图作为模块设计的工具。
信息系统的可变更性
• 统计表示:在信息系统的整个生命周期中,系统维护成本占总 成本的80%左右。 • 因此,可变更性是衡量信息系统设计的重要指标。 结构简单
– 系统各组成元素分工明确,易于理解 – 元素之间的关系清晰简洁 软件设计方法: 结构化设计(SD)、面向对象设计(JSD方法)、 面向对象的设计方法(OOD方法)
数据耦合
sum(int a,int b) {int c; c=a+b; return(c); } main() { int x,y; printf(“x+y=%d”,sum(x,y))}
控制耦合
模块之间交换信息中包含有控制信息(有时控制信息以数 据的形式出现)
void output(flag) {if (flag) printf(“ok!”);
系wk.baidu.com设计说明书
7.1 结构化方法概述
结构化方法的主要思想: (1)软件是有组织、有结构的逻辑实体,其结构为自顶向下的 形式 (2)软件由程序和数据组成,其结构呈现三层组织形式,即系 统、子系统、功能模块/数据体 (3)软件结构中的各部分既独立又关联 从分析到设计
现实领 域的各 种需求
转换
计算机领 域的具体 实现
else printf(“no!”); } main() { int flag;
output(flag); }
公共耦合
如果两个或多个模块都和同一个公用数据域有关 1)系统可理解性降低(模块间存在错综复杂的连系) (2)系统可维护性差(修改变量名或属性困难) (3)系统可靠性差(公共数据区及全程变量无保护措施)
标准:
1.信息系统的功能:是否满足用户的需求 2.系统的效率:响应时间、操作的方便性 3.系统的可靠性:抗干扰能力、故障恢复 4.系统的工作质量:准确性、使用效果 5.系统的可变更性:修改和维护的难易程度 6.系统的经济性:系统收益与支出比
结构化系统设计的特点:
(1) 对一个复杂的系统,应用自顶向下、逐步求精的方法 予以分解和化简。
用过程 直接引用 语句调用
离坐标原点越远, 耦合程度越高
方式
-耦合的方式
根据以上因素,对耦合分类如下: 数据耦合:采用子程序调用,调用模块将需要进行处 理的数据传递给被调模块。 标记耦合:两个模块接口参数包含相同内部结构。 控制耦合:一个模块将控制信息传递给另一个模块, 以控制被调模块的内部处理逻辑。(可以分解) 公共耦合:如果两个模块共享同一公用数据,称为公 共耦合。 内容耦合:两个模块之间的内部属性有直接关联,也 称病态耦合。(某些GOTO语句)
数据耦合
标记耦合
如果两个模块之间不仅存在着调 两个模块接口的参数包含相同的
用和被调用关系
内部结构
模块之间存在着数据通信 模块之间的通信方式是数据传递 或称参数交换
两个模块通过传递数据结构(不
是简单数据,而是记录、数组等) 加以联系。高级语言的数组名,记 录名,文件名等即为标记,其实传 递的是这个数据结构的地址.
(一)模块的概念
模块(Module) 通常对应于用一个名字就可以调用的一段程序语句
(子程序或函数)
模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。
模块数量和软件成本的关系如下图所示
成本
软件总成本
接口成本
单元模块成本 模块数量
模块设计的度量标准
为了衡量模块的相对独立性,提出了模块间的耦合(Coupling)与 模块的内聚(Cohesion)两个标准
7.2.1 模块化的基本思想
结构化设计方法是基于模块化、自顶向下逐步细化、结构化 程序设计等技术发展起来。使用模块化一定程度上能够简化系统结 构,使系统容易修改和理解。具体做法:
– 把整个软件划分为部分,其中每一部分的功能简单明确,即 程序模块(可以是子过程或函数) – 划分模块工作按层次进行,上层模块调用下层模块 – 每一个模块应尽可能独立 – 模块间的调用接口要阐明(模块名称、输入数据、输出数据)
第7章 结构化系统设计
蒙华 menghua.07@163.com
结构化方法
本章主要内容
系统设计的任务
总体设计:软件结构及各组成成分(子系统或模块之间的 相互关系)
– 结构化设计的概念、基本原则
– 从数据流图导出结构图
结构化设计
– 代码设计
– 输入、输出及人机对话设计
– 模块详细设计
– 数据库设计、网络设计
7.2 系统设计的任务和标准
系统设计的任务——总体设计和详细设计 系统总体设计是把总任务分解成为许多基本的、 具体的任务 • 将系统划分为模块 • 决定每个模块的功能、模块的调用关系 • 决定模块的界面,即模块间的数据传递 设计就是要回答“怎么做” 完成技术实现方案的制定,即信息系统的物理模型
– 一个逻辑模型,可以提出多个物理模型 – 根据物理模型进行实施,得到最终的物理系统
1、影响耦合度的因素
如果使用模块A需要了解模块B,那么A和B是耦合的。影
响模块间耦合程度有三方面的因素:模块接口的复杂程
度、调用模块的方式、通过模块接口的数据。
–联系方式--模块间通过什么方式联系 –来往信息的作用--模块间来往信息作什么用 –数量--模块间来往信息的多少。
作用
数量
0
少
多
混合 控制 数据
耦合:模块和模块之间的联系程度 内聚:模块内部各元素之间的联系程度 设计目标:低耦合、高内聚 模块内的联系越紧越好 模块间的联系越少越好
(二)系统模块设计原则
1、模块之间的耦合原则 -模块之间的联系 -模块的耦合方式 -几种耦合的比较
2、模块的内聚性原则 3、模块的分解原则 4、模块的扇入和扇出原则