你的軟體工程還在青銅時代?
最近看到一本書《現代軟體工程和CMM的融合》。書中描述了軟體工程發展三個階段。這三個階段分別是傳統軟體工程時代、面向物件軟體工程時代、構件開發軟體工程時代。
-
青銅時代——傳統軟體工程時代
當軟體不再是服務於個人體而是要作為產品服務於大眾的時候,軟體的質量就被提上日程。而在軟體工程發展的早期,如何控制軟體的質量並沒有什麼好的辦法,人們能夠想到的是借用已經表現良好的硬體工程的概念,對軟體產品進行管理。由此,就產生了第一個軟體工程階段——傳統的軟體工程時代。
在這個階段,是把傳統的硬體工程的一些概念引入軟體開發過程當中,以管理軟體開發活動,由此形成了軟體工程的基本概念。對於軟體的開發不再是不聞不問,我們會給軟體開發設定一些關鍵節點,以控制軟體開發的進度;我們會對軟體進行一些驗證活動,以確保軟體功能的實現。這時候的軟體工程主要使用的是目標管理的手段。
-
白銀時代——面向物件的軟體工程時代
隨著軟體技術的發展,出現了面向物件的開發技術。面向物件技術使得軟體開發人員可以站在一個全新的角度來認識軟體。軟體看起來不再那麼虛無縹緲,更像一個可以觸控的實體。與此類似,軟體開發的過程應該也是可以通過達成一系列小的目標來實現開發過程的控制。於是軟體的過程管理出現了。
軟體工程的第二個階段就是引入了軟體開發的過程管理。而軟體開發的過程管理的集大成者就是CMM體系。這一體系將軟體開發的工程過程和管理過程,劃分出多個關鍵過程域,而每個關鍵過程域都有一系列的專業目標和共用目標,通過實現這些目標已達到對這些過程的控制。這一階段的軟體工程是目標管理和過程管理的結合。
-
黃金時代——構件開發的軟體工程時代
隨著網際網路的發展,通訊越來越方便。軟體開發的形式也有了很大的改變。軟體開發不用集中在一個工作環境下,分散式的開發越來越普遍。這種分散式開發大大促進了基於構件的軟體開發模式,軟體工程也進入了新的時代。
在軟體工程的第三個階段,大量的跨行業的、跨地區的軟體開發,使得軟體產品是依賴於分佈在不同地區或者不同行業開發出來的元件或者構件進行組裝來完成的。軟體過程管理和目標管理的物件,不再是完整的軟體產品,首先要管理的是軟體的一個元件或者構件的產生過程,然後才是軟體的整合和組裝,以及交付和驗收。這時候軟體工程管理的重點是構件之間的介面關係。
時代總是在發展。不管你願意或者不願意,基於構件的軟體開發的時代已經到來了。我們要面臨的是多個元件進行匹配、組裝的新時代,而要適應這一新時代,就必須瞭解新的時代的特徵,並針對這些特點採取適宜的管理方法,絕不能還停留在早期的青銅時代,只會使用目標管理的手段控制軟體的質量,那樣只能會使你的管理失去作用,導致軟體的問題層出不窮。