軟件開發過程及崗位職責
本文主要講述如何組織開發軟件項目,使之更加快速、有效的完成。并分成以下幾個階段進行詳細講述:項目計劃階段、需求分析階段、軟件開發階段、測試階段、管理軟件開發過程、各參與角色的具體職責描述及對人員的要求。最后提供了一些文檔標準參考。本開發過程可以作為中小型(3-7人)軟件項目的開發指南,而大型軟件項目使用RUP會更好。
總體流程如下:
計劃階段-》需求分析階段-》軟件開發階段-》測試階段-》完成
一、項目計劃階段
項目計劃草案和風險管理計劃作為第一步,當有一個商業機會后,根據公司高層負責制定的初步商業計劃書來完成項目的計劃草案,確定、分析項目風險并確定其優先級,還要制定風險解決方案。本階段的目的是確立產品開發的經濟理由。
當確定開發之后則制定軟件開發計劃、人員組織結構定義及配備、過程控制計劃。
(1)項目計劃草案
項目計劃草案應包括產品簡介、產品目標及功能說明、開發所需的資源、開發時間和里程碑。
(2)風險管理計劃
也就是把有可能出錯或現在還不能確定的東西列出來,并制定出相應的解決方案。風險發現得越早對項目越有利。
(3) 軟件開發計劃
軟件開發計劃的目的是收集控制項目時所需的所有信息,項目經理根據項目計劃來安排資源需求并根據時間表跟蹤項目進度。項目團隊成員根據項目計劃以了解他們的工作任務、工作時間以及他們所依賴的其他活動。
可將計劃分成總體計劃和詳細計劃,總體計劃中每個任務為一個里程碑,詳細計劃中必須將任務落實到個人。
軟件開發計劃還應包括產品的應收標準及應收任務(包括確定需要制訂的測試用例)。
(4)人員組織結構定義及配備
常見的人員組織結構有垂直方案、水平方案、混合方案。垂直方案中每個成員充當多重角色。水平方案中每個成員充當一到兩個角色。混合方案則包括了經驗豐富的人員與新手相互融合。具體選擇根據人員實際技能情況進行選擇。
(5)過程控制計劃
過程控制計劃的目的是收集項目計劃正常執行所需的所有信息,用來指導項目進度的監控、計劃的調整,確保項目按時完成。
二、需求分析階段
需求分析階段的目的是在系統工作方面與用戶達成一致。
(1)軟件需求規約
詳細說明系統將要實現的所有功能。
(2) 用戶界面原型
可以有三種表示方法:圖紙(在紙上)、位圖(繪圖工具)、可執行文件(交互式)。
三、 軟件開發階段
本階段從物理上實現目標系統。采用了面向對象方法。
(1)軟件架構
說明軟件的組織結構、部署結構及運行環境。
(2)類設計
定義類之間的關聯和類的屬性、方法。
(3)數據庫設計
定義數據庫表之間的關聯和各個表的字段。
(4)編碼和單元測試
按照設計文檔進行編碼,每完成一個模塊應進行單元測試。
(5)集成系統
按軟件組織結構的要求將各個子系統組合起來。
四、測試階段
測試的目的是在發布之前找出程序的錯誤。包括:核實每個模塊是否正常運行(參考設計文檔)、核實需求是否被正確實施(參考需求文檔)。
(1)測試計劃
收集和組織測試信息,為測試工作提供指導。
(2)測試數據
盡量使用真實數據。
(3) 測試報告
記錄測試結果,詳細描述問題,提出解決辦法。
(4)幫助文件和用戶操作手冊
五、 管理軟件開發過程
有以下幾方面地工作:
(1)組織會議
討論會議、總結會議等。
(2)評審程序
對各個階段的工作結果進行審核。
(3)協調人員
(4) 配置管理
使用一些配置管理工具進行開發文檔管理,如:Visual Sourcesafe,Teamsouce等
六、 各參與角色的具體職責描述及對人員的要求
(1) 項目經理
職責:
1、 制定產品的目標。
2、 制定各個工作的詳細任務表,跟蹤這些任務的執行情況,進行控制。
3、 組織會議對程序進行評審。
4、 綜合具體情況,對各種不同方案進行取舍并做出決定。
5、 協調各項目參與人員之間的關系。
人員要求:
對產品有激情,具有領導才能。
對問題能正確而迅速地做出確定。
能充分利用各種渠道和方法來解決問題。
能跟蹤任務,有很好地日程觀念。
能在壓力下工作。
(2)系統分析員
職責:
1、 了解用戶需求,寫出《軟件需求規約》。
2、 建立用戶界面原型。
人員要求:擔任系統分析員的人員應該善于協調,并且具有良好的溝通技巧。擔任此角色的人員中必須要有具備業務和技術領域知識的人才。
(3)設計員
職責:
1、 定義類的方法和屬性以及各個類之間的關聯,畫出類圖。
2、 進行數據庫設計。
人員要求: 掌握面向對象分析與設計技術,統一建模語言(UML)。
(4)程序員
職責:按項目的要求進行編碼和單元測試。
人員要求:良好的編程技能和測試技術。
(5)測試員
職責: 執行測試,描述測試結果,提出問題解決方案。
人員要求:了解被測試的系統,具備診斷和解決問題的技能,編程技能
根據每個人的特長來擔任其中的一個或多個角色。最好是每個人都能參與設計和編碼工作,每個人都能夠建立起系統地全局觀