1,抽象:抽出事物的本质特性而暂时不考虑它们的细节。
2,信息隐蔽:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不可访问的。
模块独立性问题:
1,模块独立是指开发具有独立功能而且和其它模块之间没有过多的相互作用的模块。
2,模块独立的意义:
1)功能分割,简化接口,易于多人合作开发同一软件;
2)独立的模块易于测试和维护。
3,模块独立程度的衡量标准:
1)耦合性:对一个软件结构内不同模块间互连程度的度量。
2)内聚性:标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只
做一件事情。
耦合分类:
1,无任何连接:两个模块中的每一个都能独立地工作而不需要另一个的存在(最低耦
合)。
2,数据耦合:两个模块彼此通过参数交换信息,且交换的仅仅是数据(低耦合)。
3,控制耦合:两个模块之间传递的信息有控制成分(中耦合)。
4,公共环境耦合:两个或多个模块通过一个公共环境相互作用:
1)一个存数据,一个取数据(低耦合);
2)都存取数据(低--中之间)。
5,内容耦合(一般比较高):
1)一个模块访问另一个模块的内部数据;
2)两个模块有一部分程序代码重叠;
3)一个模块不通过正常入口而转移到另一个的内部;
4)一个模块有多个入口(意味着该模块有多个功能)。
内聚分类:
1,功能内聚:一个模块完成一个且仅完成一个功能(高)。
2,顺序内聚:模块中的每个元素都是与同一功能紧密相关,一个元素的输出是下一个
元素的输入(高)。
3,信息内聚:模块内所有元素都引用相同的输入或输出数据集合(中)。
4,时间内聚:一组任务必须在同一段时间内执行(低)。
5,逻辑内聚:一组任务在逻辑上同属一类,例如均为输出(低)。
6,偶然内聚:一组任务关系松散(低)。
关于耦合性和内聚性的设计原则:
1,力争尽可能弱的耦合性:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的
范围,完全不用内容耦合。
2,力争尽可能高的内聚性:力争尽可能高的内聚性,并能识别出低内聚性。
分享到:
相关推荐
通过上述分析可以看出,JavaScript模块化编程不仅是一种组织代码的有效手段,也是提高前端开发效率和质量的重要途径。随着ECMAScript标准的不断进步,未来JavaScript模块化的实践将会更加规范和高效。
从上述内容可以看出,模块化程序设计在软件开发中是一种重要的技术手段,它不仅有助于提升代码的可维护性和可扩展性,而且可以提升开发团队的工作效率,减少重复开发的成本。特别是在嵌入式系统开发中,模块化设计...
从提供的文件内容中,我们可以提炼出关于“工业机器人模块化实训平台的设计与实现”的相关知识点。以下是对文档内容的详细解读: 1. 工业机器人技术的发展背景 文档开篇介绍了工业机器人技术作为当前世界先进制造业...
本教程将深入探讨如何利用接口(Interfaces)和反射(Reflection)来实现模块化编程。接口提供了一种定义规范的方式,使得不同类之间可以进行有效通信,而反射则允许我们在运行时动态地获取类型信息并操作对象。 ##...
四、实现模块化的方法 1. **依赖注入**:使用如Dagger或Hilt等依赖注入框架,可以更好地管理模块间的依赖关系。 2. **插件化框架**:如Instant Run、SplitCompat等,用于实现模块的动态加载。 3. **模块间通信**:...
模块化设计可以让开发者轻松地调用蜂鸣器函数,实现不同的音效或定时报警功能。 E2Prom(电可擦可编程只读存储器)模块则是用于非易失性数据存储的。E2Prom可以在断电后保持数据,非常适合保存配置参数或者重要的...
模块化是构建复杂系统的基本策略,构件重用是一种提高软件开发效率和质量的重要手段,面向对象是现代软件开发的主流范式。这些技术的结合,使得智能导航CAD系统能够高效、灵活地满足机械零部件设计的需求。 综上所...
在电子工程领域,51单片机是一种广泛应用的微控制器,尤其在教学和初学者入门时最为常见。基于51单片机的模块化编程模块是实现高效、可复用和...总的来说,51单片机的模块化编程是实现高效开发和灵活扩展的重要手段。
在iOS应用开发中,模块化的实践逐渐成为提升代码可维护性和扩展性的重要手段。模块化意味着将一个大型项目划分为多个独立的、可重用的组件,每个组件负责特定的功能。然而,模块间的解耦是实现这一目标的关键,因为...
在C语言中,我们可以通过函数、结构体和枚举等特性来实现模块化。这种思想在单片机编程中尤其重要,因为它可以使代码更易于理解和调试,同时降低出错的可能性。 1. **模块化设计**:首先,我们需要将单片机的各个...
在QT中,我们可以利用pri子工程来实现模块化的概念。本文将详细介绍如何在QT环境中创建和使用pri子工程,以及与pro工程的配合。 首先,让我们理解一下 pri 文件和 pro 文件。`pro`文件是QT项目的基本配置文件,它...
在进行模块化开发时,程序员需要深入理解业务逻辑和ABAP编程的规则,以便恰当地选择和实现模块化的最佳实践。只有这样,才能充分发挥模块化开发的优势,从而提升整个系统的稳定性和开发效率。对于希望在SAP环境中有...
为了实现模块化重组,文中采用了权重有向图与设计结构矩阵(DSM)相结合的方法。设计结构矩阵是一种分析工具,用来表示元素之间的关系,并可以进一步定量分析子任务间的耦合关系。 在分析了子任务间的信息交互强弱...
在Android开发领域,模块化库的设计与实现是提高代码复用性和系统可维护性的重要手段。"Android-Android一个轻量自由低学习成本的模块化库"标题所提及的库,可能是一个专为简化Android应用模块化而设计的工具,旨在...
书籍强调了模块化电源集成电路的优势和应用,其中模块化电源集成电路的开发成功为电子产品设计师带来了新的技术手段,可以缩短开发周期,简化设计流程,提高产品的性能与可靠性。同时,书中也提醒读者,未经许可,...
总的来说,高职计算机公共课程模块化教学探究旨在提升教育的针对性和实效性,通过微课和翻转课堂等手段,实现因材施教,培养符合社会需求的复合型技能人才。这一改革不仅适应了职业教育的发展趋势,也为未来教育的...
"sea.js与jquery.mobile-1.3.2,jquery结合实现模块化开发" 这个标题表明了我们将会探讨如何利用Sea.js(一个JavaScript模块加载器)和jQuery Mobile(一个用于移动设备的前端框架)相结合,进行模块化的Web应用开发...
模块的划分是实现模块化设计的关键步骤之一。模块划分涉及如何将复杂的产品分解为功能独立、可组合的模块。在数控机床的模块划分中,已有的一些数值计算方法可用于验证现有模块划分成果。考虑到数控机床结构的简化和...