1、什么是模块化,为什么要模块化?

模块化是一种将软件系统划分为相对独立的模块并按照一定的规则组合在一起的、一种把复杂系统分解为更好的可管理模块的方式。

模块化的优点包括:

a.提高代码可维护性。模块化可以将代码划分为相对独立的模块,每个模块都只关注自己的功能。这样,当需要修改某个功能时,只需修改相应的模块,而不需要关注整个系统。这大大提高了代码的可维护性。

b.灵活架构,焦点分离,方便模块间组合、分解。模块化使得系统的架构更加灵活。不同的模块可以组合在一起,形成不同的系统。同时,也可以将一个复杂的系统分解成多个相对独立的模块,这样更容易管理和维护。

c.多人协作互不干扰。模块化可以将系统分成多个相对独立的模块,每个模块都由不同的人开发。这样,不同的人可以在不干扰其他人的情况下开发自己的模块,提高了开发效率。

d.可分单元测试

2、衡量模块独立的定性标准是什么?用自己的话表达其含义

模块的独立程度可以由两个定性标准衡量,这两个标准分别是内聚和耦合。

内聚标志着一个模块内各个元素彼此解和的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单的说,理想内聚只做一件事情。如果一个模块内各元素联系得越紧密,则它的内聚性就越高。

耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚和低耦合,提高模块的独立性。

3、如何理解信息隐藏和局部化?用自己的话或者例子表达其含义

信息隐藏:指设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。这种隐藏可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。例如,一个计算圆面积的模块可以隐藏其内部的数学公式和计算过程,对于其他模块而言只需要知道输入半径和输出面积即可。

局部化:指把一些关系密切的软件元素物理地放得彼此靠近。这种局部化有助于实现信息隐藏,因为不同模块之间的紧密联系被限制在局部范围内,避免了系统中不必要的耦合和依赖。例如,一个处理用户输入的模块可以与一个处理输出的模块放在同一个文件夹内,而与其他模块放在不同的文件夹内,这样就实现了局部化。

信息隐藏和局部化的作用在于提高软件的模块化程度和独立性