軟體在其生存周期內有相對獨立的任務,以及專門的方法和工具

每個人的生存週期可劃分為幼年、少年、青年、中年及老年。類似地,軟件在其生存週期內,也可以劃分為若干個階段,每個階段都有較明顯的特徵,有相對獨立的任務,以及專門的方法和工具。前一個階段任務的完成是後一個階段的開始和基礎,而後一個階段通常是將前一個階段方案的進一步具體化。每一個階段的開始和結束都有嚴格的標準。前一個階段結束的標準就是其直接後繼階段開始的標準。每一個階段結束之前都要接受嚴格的技術和管理評審。如果不能通過評審,則須重複前一階段的工作,直至通過上述評審後才能進入下一階段。

大多數軟件工程師認為,所有軟件都存在以下的發展階段:需求分析階段、定義描述階段、設計階段、實現階段、測試階段、使用維護階段和淘汰階段。

1.需求分析階段

這是一個軟件產品的開始階段,軟件工程師需要了解客戶(或用戶)需要什麼樣的軟件產品,應具備哪些功能,完成何種任務、處理什麼數據等等。如第一章所述,軟件工程師是軟件的開發者(developer),負責軟件的設計、實現與部分測試工作和軟件維護工作。客戶(client)是委託開發軟件產品的人,他不一定是最終的軟件產品使用者。用戶(user)才是最終的軟件產品使用者。客戶負責向軟件開發者提出軟件需求,並負責軟件產品的驗收。

軟件在其生存週期內有相對獨立的任務,以及專門的方法和工具

2. 描述與定義階段

根據軟件需求文檔的要求,軟件工程師在本階段需要使用計算機技術準確描述與定義軟件產品的所有要求。因為這個階段的工作仍是對客戶需求的定義過程,所以在實際軟件開發中,也往往和軟件需求分析階段合併或交叉進行。軟件工程師們為了便於與客戶溝通,需要採用儘可能容易理解的方式來對軟件需求進行描述與定義。

軟件在其生存週期內有相對獨立的任務,以及專門的方法和工具

3.設計階段

依據軟件需求規格說明文檔的內容,具體設計軟件的結構、方法、數據、界面,以及各個軟件功能模塊的接口、數據、算法和界面。這個階段也可以分為概要設計和詳細設計兩個子階段。概要設計階段主要完成對軟件總體結構的設計和模塊的劃分工作。詳細設計階段完成各個軟件模塊的設計工作。軟件設計將客戶需求轉變成了具體的計算機實現方法與步驟,此階段的成果,是軟件設計文檔。它既是指導軟件實現的依據,也是測試和驗收軟件的標準。換言之,軟件設計階段的工作,事實上已經決定了軟件研發的成敗、質量和效率。

軟件在其生存週期內有相對獨立的任務,以及專門的方法和工具


分享到:


相關文章: