2011年1月4日 星期二

軟體開發工程

一般軟體開發程序分為

需求整理==>系統分析==>系統設計==>程式開發==>系統測試==>系統維護

整個流程的控管稱為專案管理,所使用的標準稱為軟體標準,因為有了標準,我們才能將軟體各階段的程序與以量化,進而評估其價值與品質。以下針對各階段作一簡要描述:

1.需求整理:通常由了解市場需求或客戶為主要人員,其目的為整理未來軟體應具備之功能說明與要求(RFP)。此為所有軟體產品或專案成立時的第一要務,如果沒有完整的需求項目與功能說明及要求,之後各階段的開發也會因需求的變動而導致大量時間與成本的浪費。

2.系統分析:通常由具備專業知識(Domain Know How)之軟體人員擔任,其主要目的在於與提出需求者溝通協調,並將提出之需求,透過流程合理性加以整理成特定規格與表示方式來呈現,並與提出需求者確認,此階段常見之方式有UML 提出之Use Case、Use Case Diagram、Activity Diagram 等等,並且需提出系統所以功能及模組測試個案相關文件。

3.系統設計:通常由資深程式開發人員擔任,其具備資料庫/程式開發之專業知識與技術,此階段主要目的在於架構系統,將使用者分析資料轉述為程式流程,供程式開發人員參考並開發符合需求之系統功能。此階段為軟體開發最重要步驟,其介於使用者導向與系統導向之溝通橋樑,此階段常見之方式有UML 提出之Activity Diagram、Sequence Diagram、Table Definition 等等。

4.程式開發:由一般程式設計師擔任,此工作內容主要以系統設計定義的規範來實作,此人員完成之產物主要為程式原始碼,並且應自行完成所撰寫程式之基本測試,主要包括所有API之輸出輸入測試及確定所有程式碼均有執行到且無錯誤。

5.系統測試:通常由一般人員偕同系統分析師根據[功能及模組測試個案相關文件]進行測試,主要為驗證模組及流程之輸出入功能是否符合客戶需求,分為阿法測試及貝塔測試兩類,前者為開發人員進行之測試驗證,後者為確認無誤後交由User之驗證程序,此階段需使用錯誤處理機制詳加紀錄,主要用於確認測試之問題所屬之類型(ex. 程式bug 或 規格異動 或 畫面調整等)。

6.系統交付與上線:通常由系統分析與專案管理人員擔任,此階段通常為軟體或專案開發最難處理的階段,其原因在於使用者對系統的認知與時間誤差,導致無法明確掌握系統結案時程,此階段最需要的是溝通與協調以及問題處理的效率,因此具備善於溝通協調的系統分析人員與問題處理的程式設計師是能夠縮短此階段的時程,但現實環境卻是最難實行的,也因此成為所有軟體開發一大阻礙。

沒有留言:

張貼留言