4.1.1 模块化设计概述
模块化设计的思想在许多行业中早已有之,并非计算机科学所独创。
例如,建筑行业很早就提出了模块化建筑概念,即在工厂里预制各种房屋模块构件,然 后运到项目现场组装成各种房屋。模块构件在工厂中预制,便于组织生产、提高效率、节省 材料、受环境影响小。模块组装时施工简便快速、灵活多样、清洁环保,盖房子就像儿童搭 建积木玩具一样。①
再如,船舶工业广泛采用模块化造船方法,即对最终产品(整艘船舶)进行层次化分解, 并以中间产品(部件、分段、总段等)作为生产单元,最后再逐级组装成为最终产品。模块 化设计和建造能够使问题简化、结构优化、功能单元化、目标多样化,能够降低成本、缩短 周期,使产品易于维护、更新和系列化。
又如,现代电子产品功能越来越复杂、规模越来越大,利用模块化设计的功能分解和组 合思想,可以选用模块化元件(如集成电路模块),利用其标准化的接口,搭建具有复杂功 能的电子系统。模块化设计不但能加快开发周期,而且经过测试的模块化元件也使得电子系 统的可靠性大大提高,标准化、通用化的元件使得系统易构建、易维护。
总之,模块化设计和建造就是在对产品进行功能分析的基础上,将产品分解成若干个功 能模块,预制好的模块再进行组装,形成最终产品。这里,模块(module)是指提供特定功 能的相对独立的单元。模块一般具有如下特征:
标准化:模块是具有标准尺寸和标准接口的预制功能单元,这是组装、互换等特征 的基础。
可组装:多个模块可以方便、灵活地组合、配置,以构造不同大小、不同形状、不 同功能的系统。
可替换:通过用一个模块去更换另一个模块,可以改变系统的局部功能而不影响系 统的其他部分。
可维护:可以对模块进行局部修改或设置,以满足用户的需求。另外可以在现有系 统中增加新模块,以扩展系统功能。
模块化概念最早应用于工程技术领域,针对的是物理产品,后来逐渐演变成更广义的概 念,并在许多非物理产品领域中得到应用。尤其是在本书讨论的程序设计领域,模块概念和 模块化设计方法已经成为广泛采用的方法。