分解 (计算机科学)

在计算机科学中，分解（，或），是將一個複雜的問題或系統，先區分成小部份的過程，其目的是使這個問題變得更容易構造、思考、理解，以利於編程及維持。分解程序的目标是创建多个模块，使这些模块本身就成为能够以简单而又明确的方法进行相互耦合的小型程序。如果达到这个目标，则开发人员能够在不需要许多交流的情况下，独立开发不同的模块，而最终能够将这些模块整合起来成为系统。

概述 
在分解一个问题的时候，按照以下原则将其分解成几个可再分的子问题：

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

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

参考文献 
 Barbara Liskov、John Guttag（美國）着，裘健译。《程序开发原理：抽象、规格与面向对象设计》，北京：电子工业出版社，2006年10月：第2页

软件工程