软件工程第四章.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在软件工程中,模块设计是至关重要的,因为它直接影响到系统的可维护性、可扩展性和可读性。模块的耦合度和内聚度是衡量模块质量的两个关键指标。 耦合度(Coupling)指的是模块之间的相互依赖程度,通常分为以下几种类型: 1. 内容耦合(Content Coupling):这是最不推荐的耦合形式,一个模块直接修改另一个模块的内容,破坏了模块的独立性。这种情况包括模块直接访问其他模块的内部数据、不通过正常入口调用模块、代码重叠以及拥有多个入口。 2. 公共耦合(Common Coupling):当两个或多个模块共享全局数据时,它们之间存在公共耦合。这种耦合可能导致数据冲突和难以调试的问题。 3. 外部耦合(External Coupling):如果一组模块访问相同的外部资源,如全局变量、硬件设备或特定协议,它们之间存在外部耦合。这降低了模块的可移植性。 4. 控制耦合(Control Coupling):一个模块的执行路径取决于另一个模块传递的控制信号。例如,根据输入条件执行不同分支。 5. 标记耦合(Stamp Coupling):两个模块通过传递复杂的数据结构进行交互,即使它们在功能上并无直接关系。这增加了模块间的依赖性。 6. 数据耦合(Data Coupling):仅传递简单数据,是最理想的耦合形式,比如模块间的数据传递。 7. 非直接耦合(No Coupling):理想情况下,模块之间不应有任何消息传递,每个模块完全独立。 内聚度(Cohesion)衡量的是模块内部组件的相关性和紧密程度,分为以下几种类型: 1. 偶然内聚(Accidental or Coincidental Cohesion):模块内的组件之间没有明显的联系,只是因为偶然的原因放在一起,通常表明设计不佳。 2. 逻辑内聚(Logical Cohesion):模块中的组件有逻辑上的关联,但并不一定有功能上的关联。 3. 时间内聚(Temporal Cohesion):模块中的组件是因为必须在同一时间执行而组合在一起,比如初始化或结束模块。 4. 过程内聚(Procedural Cohesion):模块内的组件按顺序执行,共同完成一个过程,如算法实现。 5. 通讯内聚(Communicational Cohesion):模块处理相同或相关的数据,如处理同一类输入或输出。 6. 顺序内聚(Sequential Cohesion):一个组件的输出是另一个组件的输入,它们共同完成一个连续的任务。 7. 功能内聚(Functional Cohesion):模块只完成一个单一的功能,是最强的内聚度类型,也是设计目标。 设计时应尽量降低耦合度,提高内聚度,以创建更健壮、易于理解和维护的软件系统。耦合度低、内聚度高的模块可以独立开发、测试和复用,有利于软件的长期发展和维护。
- 粉丝: 71
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】停车场管理系统源码(springboot+vue+mysql+说明文档).zip
- TIdHTTP控件 Indy SSL Lib 库
- 【java毕业设计】高仿小米电子商城项目模板源码(springboot+vue+mysql+说明文档).zip
- 5G建设和AI技术推动下,中证5G通信ETF的投资价值探讨
- Python项目之淘宝模拟登录.zip
- 中国地区数据要素化水平(2006-2022年).xlsx
- 全国数据要素化水平(2010-2023年).xlsx
- 课程设计项目:python+QT实现的小型编译器.zip
- (源码)基于AVR ATmega644的智能卡AES解密系统.zip
- (源码)基于C++插件框架的计算与打印系统.zip