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