1. 什麼是軟件項目開發過程模型
項目開發過程模型就是對於項目開發過程的概念建模,從而能夠實現在理論上對於軟件項目開發過程進行量化分析。
<?XML:NAMESPACE PREFIX = O />
軟件開發過程模型以 Rational Unified Process (簡稱 RUP )為代表,如下圖
圖 1 、 Rational Unified Process
但是也並不是只有 RUP 一種,比如 Agile Unified Process ( 簡稱 AUP)
圖 2 、 Agile Unified Process
總體來說, RUP 是最細化的項目開發過程模型,不管你采用什麼樣的開發方式,整個開發過程的每一個過程你都是無法逃掉的(我們後面會討論這個),因為這代表了整個軟件開發實踐的客觀規律,只是在定義上有所不同,側重點上有所不同,對於迭代的看法有所不同罷了。
如同它的概念所示,軟件項目開發過程就是對軟件項目開發過程的概念建模,從而能夠實現在理論上對於軟件項目開發過程進行量化分析。
那麼,這種量化的分析到底有能有什麼好處呢?
我們在引子裡說過:任何的軟件項目都有它存在的目的,都是為了解決一些現實中的問題。可以把這個成為這個項目的目的,可以把需要解決的問題的需求稱作這個項目的需求。
而對於商用(尤其是企業級應用)軟件項目開發而言,最基本也是最重要的目的就是以最小的成本,在項目交付的期限內,提供穩定的、可靠的軟件,用以解決用戶提交的所需要解決的問題,並且如有可能,必須為現實生活中問題的變更引起的用戶需要解決的問題的變更從而要求的軟件功能的變更做好預備。
l 為了能夠把客戶的問題描述清楚,必須進行業務建模和需求收集;
l 為了能夠把收集完的問題需求轉變成為可以信息化解決的問題並且解決,必須對其進行軟件化設計並進行實現;
l 為了保證軟件產品的質量,必須進行足夠多的測試(看看硬件廠商是怎麼測試的?);
l 為了能夠讓軟件產品正常運轉,必須進行軟件的部署;
l 而在軟件開發的過程當中,對於項目的治理、代碼的治理、還有資源的治理,在哪一個軟件項目開發中能缺少?
綜上,對這些過程的建模和定量的分析,並且確定在整個開發過程中各個階段所占的份額和所擁有的重要性,對於保證項目(尤其是大項目)的平穩開發和增強項目開發治理有著重要的作用。
並且,確定了項目開發過程模型,對於確定項目治理方式和提供技術、工具支持有著非常重要的作用。
既然我們已經有了一個明確的定義,並且能夠把它分解成為幾個部分(當然,我們將會看到,這些部分本身也是十分復雜的)。那麼,看上去下一步,我們的任務就是一步一步的分析每一個部分。
但是,且慢,這些部分有些是沒法討論的(比如業務建模,它與用戶的域專家有關,或者跟一些國家、國際標准有關,跟計算機軟件開發沒太多的關系——除非是 IDE 之類的),有些是仁者見仁、智者見智的部分(比如設計和實現),有一些可以不必花太多口舌去討論(比如軟件項目的部署和資源治理),這一點 AUP 給我們開了個好頭,我們現在需要討論的就是:
l 需求分析
l 測試
l 配置治理
l 項目治理