軟件的生命週期:
軟件的生命週期:從軟件的產生直到報廢的整個過程。
軟件的生命週期包含:
問題定義
可行性分析
總體描述
系統設計
編碼
調試和測試
驗收與運行
維護升級到廢棄階段
軟件的生命週期有六個階段:
問題的定義及規劃:此階段是軟件開發方與需求共同討論,主要確定軟件的開發目標及其可行性。
需求分析:在確定軟件開發可行的情況下,對軟件需要實現的各功能進行詳細分析,需求分析階段是一個很重要的階段,這一階段做得好,將為整個軟件開發項目的成功打下良好的基礎。
軟件設計:此階段主要根據需求分析的結果,把整個軟件系統劃分為大大小小的多個模塊,設計出每個模塊的具體結構,如系統框架設計,數據庫設計等,一般分為總體設計和詳細設計。
程序編碼:此階段是將軟件設計的結果轉換成計算機可運行的程序代碼,在程序編碼中必須要制定統一,符合標準的規範,以保證程序的可讀性,易維護性,提高程序的運行效率。
軟件測試:在軟件設計完成後要經過嚴密的測試,以發現軟件在整個設計過程中存在的問題並加以糾正,整個測試過程分單元測試(白盒)、集成測試(黑盒,功能測試,強度性能測試)以及系統測試三個階段進行,測試的方法主要有白盒測試和黑盒測試兩種,在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨意性。
運行維護:安裝部署軟件系統,修復軟件中存的在bug和升級系統,在軟件開發完成並投入使用後,由於多方面的原因,軟件不能繼續適應用戶的要求,要延續軟件的使用壽命,就必須對軟件進行維護,軟件的維護包括糾錯性維護和改進性維護兩個方面。
軟件設計原則:
為了提高軟件的開發效率,降低軟件開發成本,一個優良的軟件系統應該具有以下特點:
可重用性:遵循DRY原則,減少軟件中的重複代碼。
可拓展性:當軟件需要升級增加新的功能,能夠在現有的系統架構上方便的創建新的模塊,而不需要改變軟件現有的結構,也不會影響以及存在的模塊。
可維護性:當用戶需求發生變化時,只需要修改局部的模塊中的少量代碼即可。
如何讓軟件系統達到上述的特點,我們對模塊的要求:
結構穩定性:在軟件設計階段,把一個模塊劃分為更小的模塊時,設計合理,使用系統結構健壯,以便適應用戶的需求變化。
可拓展性:當軟件必須增加新的功能時,可在現有的模塊的基礎上創建出新的模塊,該模塊繼承了原有模塊的一些特性,並且還具有一些新的特性,從而實現軟件的可重用和可拓展性。
可組合性:若干模塊經過組合,形成大系統,模塊的可組合性提高軟件的可重用和可維護生,並且能簡化軟件開發過程。
高內聚性:內聚,強調一個模塊內的功能聯繫,每個模塊只完成特定的功能,不同模塊之間不會有功能的重疊,高內聚性可以提高軟件的可重用性和可維護性。
低耦合性:耦合,強調的是多個模塊之間的關係,模塊之間相互獨立,修改某一個模塊,不會影響到其它的模塊,低耦合性提高了軟件的可維護性。