(1)在開始構(gòu)建之前,首先要滿足的一個先決條件是,對這個系統(tǒng)要解決的問題做出清楚的陳述。問題定義只定義了問題是什么,而不設(shè)計任何可能的解決方案。問題定義應(yīng)該用客戶的語言來寫,而且應(yīng)該從客戶的角度描述問題。
(2)需求詳細描述軟件系統(tǒng)應(yīng)該做什么,這是達成解決方案的第一步。
?????????明確的需求有助于確保是用戶(而不是程序員)駕馭系統(tǒng)的功能。如果需求明確,用戶就可以進行自行評審,并進行核準。否則程序員就會在編程期間自行決定需求,明確的需求面對你去猜想用戶需要的是什么。
?????????明確的需求有助于避免爭論。在開始編程之前,先把系統(tǒng)的范圍確定下來。如果你和另外一個程序員對于程序應(yīng)該做什么,意見不一致,你們可以查看書面的需求,以解決分歧。
?????????重視需求有助于減少開始開發(fā)編程之后的系統(tǒng)變更情況。
?????????穩(wěn)定的需求是軟件開發(fā)的圣杯,但是這往往是軟件開發(fā)人員的愿望。IBM和其他公司的研究發(fā)現(xiàn),平均水平的項目在開發(fā)過程中,需求會有25%的變化。在典型的項目中,需求變更導致的返工占到返工總量的75%到85%。
(3)軟件架構(gòu)是軟件設(shè)計的高層部分,適用于支撐更細節(jié)的設(shè)計的框架。架構(gòu)的質(zhì)量決定了系統(tǒng)的“概念完整性”,繼而決定了繼續(xù)的最終質(zhì)量。一個慎重考慮的架構(gòu)為“從頂層到底層維護系統(tǒng)的概念完整性”提供了必備的結(jié)構(gòu)和體系,它為程序員提供了指引——其細節(jié)程度與程序員的技能和手邊的工作相配。它將工作分為幾個部分,使多個開發(fā)者或者開發(fā)團隊可以獨立工作。
?????????架構(gòu)典型的組成部分:
?????????a、程序組織??
?????????b、主要的類:80/20法則(對構(gòu)成系統(tǒng)的80%行為的20%的類進行詳細說明)。
?????????c、數(shù)據(jù)設(shè)計? d、業(yè)務(wù)規(guī)則? e、用戶界面設(shè)計? f、資源管理?? g、安全性???
?????????h、性能??? i、可伸縮性?? j、互用性?? k、國際化\本地化?? l、輸入輸出
?????????m、錯誤處理?? n、容錯性?? o、架構(gòu)的可行性? p、過度工程???
?????????q、關(guān)于“買”還是“造”的決策?? r、關(guān)于復用的決策?? s、變更策略
(4)花費在前期準備上的時間長度:一個運作良好的項目會在需求、架構(gòu)以及其他前期計劃方面投入10%-20%的工作量和20%-30%的工作時間,這些時間不包括詳細設(shè)計的時間,那是構(gòu)建活動的一部分。
posted on 2007-09-18 10:05
探丫頭 閱讀(903)
評論(0) 編輯 收藏 引用 所屬分類:
《代碼大全》讀書筆記