模块化开发方法是指把一个待开发的软件分解成若干个小的而且简单的部分,采用对复杂事物分而治之的经典原则。模块化开发方法涉及的主要问题是模块设计的规则,即系统如何分解成模块。而每一模块都可独立开发与测试,最后再组装成一个完整软件。对一个规约进行分解,以得到模块系统结构的方法有数据结构设计法、功能分解法、数据流设计和面向对象的设计等。将系统分解成模块时,应该遵循以下规则:

  • (1)最高模块内聚。也就是在一个模块内部的元素最大限度地关联,只实现一种功能的模块是高内聚的,具有三种以上功能的模块则是低内聚的。
  • (2)最低耦合。也就是不同模块之间的关系尽可能弱,以利于软件的升级和扩展。
  • (3)模块大小适度。颗粒过大会造成模块内部维护困难,而颗粒过小又会导致模块间的耦合增加。
  • (4)模块调用链的深度(嵌套层次)不可过多。
  • (5)接口简单、精炼(扇入扇出数不宜太大),具有信息隐蔽能力。
  • (6)尽可能地复用已有模块。模块化的思想推动了软件架构的快速发展。

此时,恰逢全球信息技术的大力发展,企业一方面需要提高业务的灵活性和创新能力;另一方面随着IT环境的复杂度和历史遗留系统的增加,企业面临着新的挑战。模块化方法恰恰可帮助企业从根本上解决这一问题,它一方面通过抽象、封装、分解、层次化等基本科学方法,对各种软件组件和软件应用进行打包,提高对企业现有资产的重用水平和能力;另一方面,基于模块化思想,业界提出了面向对象服务架构(Service-OrientedArchitecture,SOA)思想,它提供一组基于标准的方法和技术,通过有效整合和重用现有的应用系统和各种资源实现服务组件化,并基于服务组件实现各种新业务应用的快速组装,帮助企业更好地应对业务的灵活性要求。这样,通过有效平衡业务的灵活性和IT的复杂度,为开发者提供了新的视角,有效拉近了IT和业务的距离。到20世纪90年代末期,计算机的发展推动了企业管理自动化的步伐,管理信息系统(ManagementInformationSystem,MIS)在企业中得到了广泛使用。与此同时,IT业为了降低开发成本,解决业务需求的易变性,实现软件模块的重用,考虑将企业业务与数据处理相分离的分层思想,这也是软件架构的初步雏形。