1.什么叫做“自頂向下,逐步求精”?
目前軟件開發方法使用最廣泛的,當屬結構化的方法和面向對象的方法。而其中,結構化程序設計支持“自頂向下, 逐步求精”的程序設計方法。
“自頂向下”的具體內涵是將復雜、大的問題划分為小問題,找出問題的關鍵、重點所在,然后用精確的思維定性、定量地去描述問題。而“逐步求精”的具體內涵是是將現實世界的問題經抽象轉化為邏輯空間或求解空間的問題。復雜問題經抽象化處理變為相對比較簡單的問題。經若干步抽象(精化)處理,最后到求解域中只是比較簡單的編程問題。
2.誰是沃斯?
有興趣的可以了解一下這個方法的由來:
大概是這樣的,1971年,著名的瑞士計算機科學家尼古拉斯·沃斯,基於其開發程序設計語言和編程的實踐經驗,在4月份的 Communications of ACM上發表了論文“通過逐步求精方式開發程序’(Program Development by Stepwise Refinement),首次提出了“結構化程序設計”(structure programming)的概念。這個概念的要點是:不要求一步就編制成可執行的程序,而是分若干步進行,逐步求精。第一步編出的程序抽象度最高,第二步編出的程序抽象度有所降低……最后一步編出的程序即為可執行的程序。用這種方法編程,似乎復雜,實際上優點很多,可使程序易讀、易寫、易調試、易維護、易保證其正確性及驗證其正確性。
結構化程序設計方法又稱為“自頂向下”或“逐步求精”法,在程序設計領域引發了一場革命,成為程序開發的一個標准方法,尤其是在后來發展起來的軟件工程中獲得廣泛應用。有人評價說沃思的結構化程序設計概念“完全改變了人們對程序設計的思維方式”,這是一點也不誇張的。1983年1月,ACM在紀念 Communications of ACM創刊 25周年時,從其 1/4個世紀發表的大量論文中評選出有“里程碑意義的研究論文” 25篇,每年1篇,沃思的這篇論文就是其中之一。
把大問題分解為能直接解決的小問題。當小問題都解決了 大問題也就解決了