分解 (计算机科学)

计算机科学中,分解(英语:Decomposition,或factoring),是将一个复杂的问题或系统,先区分成小部份的过程,其目的是使这个问题变得更容易构造、思考、理解,以利于编程及维持。分解程序的目标是创建多个模块,使这些模块本身就成为能够以简单而又明确的方法进行相互耦合的小型程序。如果达到这个目标,则开发人员能够在不需要许多交流的情况下,独立开发不同的模块,而最终能够将这些模块整合起来成为系统。

概述

在分解一个问题的时候,按照以下原则将其分解成几个可再分的子问题:

  1. 每个子问题在细节上处于相同的级别;
  2. 每个子问题能够独立解决;
  3. 每个子问题的解决方法综合起来可以解决原来的问题。

抽象然后分解是程序设计中的经典内容,程序设计师用分解将一个软件分成多个组件,使这些组件可以最终组合起来解决最初的问题;并且抽象来协助开发者正确选择程序组件。交替应用这两种过程,直到将最初的问题变成一系列已经知道解决方法的子问题。

参考文献

  • Barbara Liskov、John Guttag(美国)着,裘健译。《程序开发原理:抽象、规格与面向对象设计》,北京:电子工业出版社,2006年10月:第2页