Amoxicillin_ONE的学习笔记 --内聚&耦合


前言

此文章所说的功能独立是指模块的功能独立性。也就是说,在设计程序模块时,使得模块实现独立的功能并且与其他模块的接口简单,符合信息隐蔽原则,模块间关联和依赖程度尽可能小。功能独立的概念是模块化、抽象概念和信息隐藏的直接结果。

对于功能独立的模块来说,由于其功能被分割,且接口简单。因此这种模块易于实现。此外,由于功能独立模块的功能单一,符合信息隐蔽原则与其他模块的关联和依赖程度小,因此这种模块易于维护,修改代码而引起的副作用小。据此,功能独立已成为衡量模块设计优劣的重要指标。


一、模块化

在计算机软件领域中,几乎所有的软件结构设计技术都是以模块化为基础的。模块化,即把软件按照规定的原则,划分为一个个较小的相互独立的但又相互关联的部件。模块化实际上是系统分解和抽象的过程。在软件工程中模块是数据说明、可执行语句等程序对象的集合,是单独命名的,并且是可以通过名字来访问的。e.g.对象类、构件、过程、函数、子程序、宏等都可作为模块。

模块具有名字、参数、功能等外部特征以及完成模块功能的程序代码和模块内部数据等内部特征。对使用者来说,最感兴趣的是模块的功能和接口,而不必理解模块内部的结构和原理。

软件开发的成本 = 各模块成本 + 模块集成成本

如果模块是相互独立的,当模块变得越小,每个模块花费的工作量就越低;但当模块数量增加时,模块间的联系也随之增加,把这些模块连接起来的工作量也随之增加。

二、信息隐藏

模块中所包含的信息(包括数据和过程)不允许其他不需要这些信息的模块使用。通常有效的模块化可以通过定义一组独立的模块来实现,这些模块相互间的通信仅使用对于实现软件功能来说是必要的信息。

由于一个软件系统在整个软件生存期内要经过多次修改,所以在划分模块时要采取措施,使得大多数过程和数据对软件的其他部分是隐蔽的。这样,在将来修改软件时偶然引入错误所造成的影响就可以局限在一个或几个模块内部,避免影响到软件其他部分。

三、功能独立

独立性可以由两项指标来衡量:内聚度和耦合度。内聚度衡量同一个模块内部的各个元素彼此结合的紧密程度,耦合度衡量不同模块彼此间相互依赖的紧密程度。

1.内聚

内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量。

一般模块的内聚型分为7种类型:
在这里插入图片描述其中还包含过程内聚:一个模块完成多个任务,这些任务必须按制定的过程执行。

介于时间内聚和通信内聚之间。

2.耦合

耦合(coupling)是模块之间的相对独立性(互相连接的紧密程度)的度量。
在这里插入图片描述其中还包括外部耦合:模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)。

介于控制耦合和公共耦合之间。

总结

独立性强的软件是高内聚低耦合的。耦合与内聚都是功能独立性的定性标准,都反映功能独立性的良好程度。但耦合是直接的主导因素,内聚则辅助耦合共同对功能独立性进行衡量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值