分解 (計算機科學)
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
在計算機科學中,分解(英語:Decomposition,或factoring),是將一個複雜的問題或系統,先區分成小部份的過程,其目的是使這個問題變得更容易構造、思考、理解,以利於編程及維持。分解程序的目標是創建多個模塊,使這些模塊本身就成為能夠以簡單而又明確的方法進行相互耦合的小型程序。如果達到這個目標,則開發人員能夠在不需要許多交流的情況下,獨立開發不同的模塊,而最終能夠將這些模塊整合起來成為系統。
概述
在分解一個問題的時候,按照以下原則將其分解成幾個可再分的子問題:
- 每個子問題在細節上處於相同的級別;
- 每個子問題能夠獨立解決;
- 每個子問題的解決方法綜合起來可以解決原來的問題。
抽象然後分解是程序設計中的經典內容,程序設計師用分解將一個軟件分成多個組件,使這些組件可以最終組合起來解決最初的問題;並且抽象來協助開發者正確選擇程序組件。交替應用這兩種過程,直到將最初的問題變成一系列已經知道解決方法的子問題。
參考文獻
- Barbara Liskov、John Guttag(美國)着,裘健譯。《程序開發原理:抽象、規格與面向對象設計》,北京:電子工業出版社,2006年10月:第2頁