软件工程中的有效模块化设计
有效的模块化设计在软件工程中的作用:
任何软件都包含许多系统,这些系统包含多个子系统,并且这些子系统还包含它们的子系统。因此,一次性设计一个包含每个所需功能的完整系统是一项繁重的工作,并且由于其庞大的规模,该过程可能会出现许多错误。
因此,为了解决这个问题,开发团队将完整的软件分解成不同的模块。模块被定义为软件的唯一且可寻址的组件,可以独立解决和修改而不会干扰(或影响非常小量)软件的其他模块。因此,每个软件设计都应该遵循模块化。
将软件分解为多个独立模块,每个模块单独开发的过程称为模块化。
如果划分的模块是可单独求解、可修改和可编译的,则可以实现有效的模块化设计。这里单独的可编译模块意味着在对模块进行更改后,无需重新编译整个软件系统。
为了构建具有有效模块化设计的软件,有一个因素“功能独立性”发挥作用。功能独立性的含义是函数本质上是原子的,因此它只执行软件的单个任务,而不与其他模块交互或与其他模块交互最少。功能独立性被认为是模块化增长的标志,即更大的功能独立性的存在导致良好设计的软件系统,并且设计进一步影响软件的质量。
软件设计中独立模块/功能的好处:
由于软件的功能已被分解为原子级别,因此开发人员对每个功能都有明确的要求,因此软件的设计变得容易且无错误。
由于模块是独立的,它们对其他模块的依赖性有限或几乎没有。因此,在这种方法中,可以在不影响整个系统的情况下对模块进行更改。
从一个模块到另一个模块以及整个系统的错误传播可以忽略不计,这样可以节省测试和调试时间。
可以使用 2 个标准来衡量软件系统模块的独立性:内聚性和耦合性。这些解释如下。
凝聚:
凝聚力是衡量模块内各种功能之间关系强度的指标。它有 7 种类型,按内聚度从高到低的顺序排列如下:
1. Functional cohesion
2. Sequential cohesion
3. Communicational cohesion
4. Procedural cohesion
5. Temporal cohesion
6. Logical cohesion
7. Co-incidental cohesion
耦合:
耦合是衡量软件内各个模块之间关系强度的指标。它有 6 种类型,按低耦合到高耦合的顺序排列如下:
1. Data Coupling
2. Stamp Coupling
3. Control Coupling
4. External Coupling
5. Common Coupling
6. Content Coupling
A good software design requires high cohesion and low coupling.