「自頂向下,逐步求精」的概念和應用

在介紹」自頂向下,逐步求精」這個概念之前,我先解釋一下「結構化程序設計」這個詞語。其概念最早由E.W.Dijikstra在1965年提出的,是軟件發展的一個重要的里程碑。它的主要觀點是採用自頂向下、逐步求精及模塊化的程序設計方法。那麼我們就可以知道結構化程序設計主要強調的是程序的易讀性。

概念

「自頂而下,逐步求精」的設計思想,其出發點是從問題的總體目標開始,抽象低層的細節,先專心構造高層的結構,然後再一層一層地分解和細化。這使設計者能把握主題,高屋建瓴,避免一開始就陷入複雜的細節中,使複雜的設計過程變得簡單明瞭,過程的結果也容易做到正確可靠。換句話說,這其實也是分治法的一種。
這裏寫圖片描述

分治法是計算機科學中很重要的一種思想。英文爲Divide and Conquer,直譯即爲分治,或者分而治之。直觀的理解就是將一個大而難的問題分解爲一些小而易的問題,先解決這些易於解決的小問題,再合併這些小問題的解(合併可以是分別求出小問題的解再合併,或者是直接將相同的小問題合併只求解一次),從而得到大問題的解。需要注意的是小問題必須和大問題是同一個類型的問題,或者說解法相同,這樣纔可以遞歸求解。我們發現,這種實際上是自頂向下地分解問題。

應用

CATIA平臺的自頂向下參數化車身設計:從功能分解的角度看,自頂向下的設計方法是將汽車車身的設計要求,由上至下,逐層分解到零部件的性能,形成零部件的設計需求。從結構分解的角度看,自頂向下的設計方法是一個自上而下、逐步求精的迭代過程,是一個設計約束不斷分解、傳播與滿足的過程。
這裏寫圖片描述
PTC Creo自頂向下方法進行變壓器的設計:通過創建可重複使用的產品平臺,以及定義它們如何接合和裝配,設計師可以快速創建和驗證任何特定於客戶的產品。設計師可以檢查精確的質量、重心等特性,甚至可以檢查和解決像干涉之類的重要問題,從而驗證產品的設計。
這裏寫圖片描述