信息隐藏和局部化是软件工程中的重要概念,可以提高软件的模块化程度和独立性。以下是关于信息隐藏和局部化的详细解释和作用:
信息隐藏:指设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。这种隐藏可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。例如,一个计算圆面积的模块可以隐藏其内部的数学公式和计算过程,对于其他模块而言只需要知道输入半径和输出面积即可。
局部化:指把一些关系密切的软件元素物理地放得彼此靠近。这种局部化有助于实现信息隐藏,因为不同模块之间的紧密联系被限制在局部范围内,避免了系统中不必要的耦合和依赖。例如,一个处理用户输入的模块可以与一个处理输出的模块放在同一个文件夹内,而与其他模块放在不同的文件夹内,这样就实现了局部化。
信息隐藏和局部化的作用在于提高软件的模块化程度和独立性,具体包括:
有效的模块化可以通过定义一组独立的模块来实现,每个模块仅交换必要的信息,从而避免了修改期间由于疏忽而引入的错误传播到软件的其他部分。这样可以提高软件的可维护性和可靠性。
模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。模块独立程度的两个定性标准度量是耦合和内聚,耦合要低,即每个模块和其他模块之间的关系要简单;内聚要高,每个模块完成一个相对独立的子功能。模块独立程度高可以提高软件的可测试性和可维护性。
设计单入口单出口的模块可以避免模块间出现内容耦合,从而提高软件的可维护性。
层次图和结构图可以用于描绘软件结构的文档,导出结构图的过程可以作为检查设计正确性和评价模块独立性的好方法。
变换流是信息隐藏和局部化的一种具体实现方式,可以实现输入和输出的格式转换和加工处理,从而提高软件的可扩展性和可移植性。