標籤:
IBM大型主機之父佛瑞德·布魯克斯(Frederick P. Brooks, Jr.)在1986年發表的一篇關於軟體工程的經典論文,便以《沒有銀彈:軟體工程的本質性與附屬性工作》(No Silver Bullet — Essence and Accidents of Software Engineering)為標題。其中的“銀彈”是指一項可使軟體工程的生產力在十年內提高十倍的技術或方法。該論文強調由於軟體的複雜性本質,而使這樣“真正的銀彈”並不存在。
大泥球,是指雜亂無章、錯綜複雜、邋遢不堪、隨意拼貼的大堆代碼。這些年來,為了對付這個泥球,我們看到了多種指導方法,比如SOLID、GRASP和KISS,與其他諸多年代久遠的、提倡高內聚、低耦合的方法一起出現。然而,實際情形沒多大變化,“大泥球”看起來仍然是設計軟體架構的最常見方法。
教堂:原始碼在軟體發行後公開,但在軟體的每個版本開發過程中是由一個專屬的團隊所控管的。
集市:原始碼在開發過程中即在互連網上公開,供人檢視及開發。
瀑布模型(Waterfall Model) 是一個項目開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生迴圈反饋,因此,如果有資訊未被覆蓋或者發現了問題,那麼最好 “返回”上一個階段並進行適當的修改,項目開發進程從一個階段“流動”到下一個階段,這也是瀑布模型名稱的由來。
敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可整合和可運行使用的特徵。換言之,就是把一個大項目分為多個相互聯絡,但也可獨立啟動並執行小項目,並分別完成,在此過程中軟體一直處於可使用狀態。
毛曾經說過的:“我們的任務是過河,但是沒有橋或沒有船就不能過。不解決橋和船的問題,過河就是一句空話。不解決方案問題,任務也只是瞎說一頓。” 軟體技術人員有必要站在哲學的高度、從方法論的角度,重新審視軟體開發過程中各個環節,深刻體會軟體工程和方法論的聯絡,從而改進和發展的現有的軟體工程技術,消化吸收先進的思想、方法和技術,提高軟體的品質和生產率,以適應現實世界對軟體產業新的要求。
個人部落格week7