软件工程——概要设计

本文详细介绍了软件工程中的模块化设计,重点讨论了耦合和内聚的概念,包括非直接耦合、数据耦合、特征耦合等7种耦合类型和偶然内聚、逻辑内聚等7种内聚类型。此外,还阐述了层次图、HIPO图在软件设计中的应用,并探讨了结构化设计方法,包括变换映射和事务映射的设计步骤。
摘要由CSDN通过智能技术生成

任务

在这里插入图片描述

模块和模块化

在这里插入图片描述
在这里插入图片描述

耦合和内聚

在这里插入图片描述

耦合

耦合:模块联系的程度(依赖于模块间接口的复杂性)

1 非直接耦合

两模块间没有直接关系

2 数据耦合

两模块之间交换的是简单数据(数据输出、输出参数)

用水量,水费,电费,用电量就是数据输入输出的简单参数,这里构成的是数据耦合在这里插入图片描述

3 特征耦合

模块之间交换的是数据结构
与数据耦合不同的是,这里预先定义了这样的数据结构:
房租水电+用水量+用电量+租房开始日期,而此时传递是数据结构,所以构成特征耦合在这里插入图片描述

4 控制耦合

传递的信息中有控制信息(中等耦合)如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
此时。模块间传递的信息不是一般的数据,而是控制信号
如图中,模块A通过传递一个控制标记给模块B,以便选择所需的操作。
此时模块A、B间就构成了控制耦合。
在这里插入图片描述

5 外部耦合

一组模块都访问同一全局变量

图中模块3和模块4都可以访问全局变量“日期”。
如果因为模块3错误的修改了“日期”,便会在模块4引用“日期”时得出错误的结果,虽然问题出在模块4,但是根源在于模块3,这就增加了调试和排错的困难。
在这里插入图片描述

6 公共耦合

一组模块都访问同一全局数据结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7 内容耦合(最高的耦合)

图中模块M通过一条GOTO语句直接转移到模块N中去。如果模块N中的语句顺序发生了变换,就必须特别细心的检查会不会因此影响到模块M的执行结果。
此时,模块M和模块N构成了内容耦合。
在这里插入图片描述

结论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值