Software construction
1.problem definition</br> 2.requirements development</br> 3.construction planning</br> 4.software architecture,high-level design</br> 5.detailed design</br> 6.coding and debugging</br> 7.unit testing</br> 8.integration testing</br> 9.integration</br> 10.system testing</br> 11.corrective maintenance</br>程序員
Metaphors-文字寫做這一隱喻暗示着軟件開發過程是一種代價昂貴的是錯過程,而非仔細的規劃和設計。</br> 隱喻是啓示而不是算法。所以他們每每有一點隨意。</br> 隱喻把軟件開發過程與其餘你熟悉的活動聯繫在一塊兒,幫助你更好地理解。</br> 有些隱喻比其餘一些隱喻更貼切。</br> 經過吧軟件的構建過程比做是房屋的建設過程,咱們能夠發現,仔細的準備是必要的,而大型項目和小型項目之間也是有差別的。</br> 經過把軟件開發中的實踐比做是智慧工具箱中的工具,咱們又能夠發現,每位程序員都有許多工具,但並不存在任何一個能適合於全部工做的工具,因地制宜地選擇正確工具是成爲能有效編程的程序員的關鍵。</br> 不一樣的隱喻彼此並不排斥,應當使用對你最有益處的某種隱喻組合。</br>算法
Typical Architectural Components</br> 1.Program Organization</br> 2.Major Classes</br> 3.Data Design</br> 4.Business Rules</br> 5.User Interface Design</br> 6.Resource Management</br> 7.Security</br> 8.Performance</br> 9.Scalability</br> 10.Interoperability</br> 11.Internationalization/Localization</br> 12.Input/Output</br> 13.Error Processing</br> 14.Fault Tolerance</br>編程
Key Construction Decisions工具