天天看點

《系統分析與設計方法及實踐》一1.4 軟體生産活動

1.4 軟體生産活動

在軟體工程概念被提出來之前,開發人員錯誤地認為,軟體就是編碼,至于分析和設計等都是次要的。随着軟體規模的不斷增大,軟體生産過程中暴露出很多問題。軟體工程是為克服這些問題(軟體危機)而提出的一種概念,并在實踐中不斷地探索它的原理、技術和方法。軟體開發的工程化思想讓開發人員看到,軟體生産活動不僅是開發活動,還有重要的維護活動、管理活動,進而發展了過程改進活動。

1.開發活動

開發活動是軟體人員生産軟體的活動。開發活動是軟體工程的核心過程活動,軟體工程提供了一整套工程化的方法來指導軟體人員的工作。開發活動有一系列的階段,如需求、設計、編碼、測試、送出、維護等。這些階段需要采用一定的控制流程連接配接起來,并需要規範的操作方式,這樣就形成了軟體生命周期模型。

軟體開發活動是随着開發技術的演化而随之改進的,例如從早期的瀑布模型、螺旋模型,到當今的靈活開發方法和統一過程。它們展示出了在不同的時代,軟體産業對于開發活動的不同認識以及對于不同類型項目的了解方法。

2.維護活動

軟體開發完成傳遞使用者使用後,就進入軟體的運作和維護階段。軟體維護就是在軟體傳遞運作後,保證軟體正常運作、适應新變化等需要而進行的一系列修改活動。軟體維護的主要工作就是在軟體運作和維護階段對軟體産品進行必要的調整和修改。

軟體維護是軟體生命周期的最後一個階段,也是持續時間最長、工作量最大的一個不可避免的過程。軟體維護的基本目标和任務是改正錯誤、增加功能、提高品質、優化軟體、延長軟體壽命以及提高軟體産品價值。

3.管理活動

當今的軟體開發活動是一個非常複雜的過程。項目涉及幾十、幾百甚至幾千的人員,項目周期少則幾個月,多則幾年,項目費用越來越高,是以,這樣的項目就需要很好的管理活動。著名的項目管理專家james p. lewis指出,項目是一次性的、多任務的工作,具有明确的開始和結束日期、特定的工作範圍、預算和要達到的特定性能水準。因而,項目涉及預期的目标、費用、進度和工作範圍4個要素。

軟體項目管理活動就是如何管理好項目的範圍、進度、成本等。為此需要制定一個好的項目計劃,然後跟蹤與控制好這個計劃。實際上,要做到項目計劃切合實際是一個非常高的要求,需要對項目進行詳細的需求分析,制定合理的計劃,安排好進度、資源調配、經費使用等,并不斷地跟蹤和調整。為了降低風險,要進行必要的風險分析與制定風險管理計劃等。

4.過程改進活動

要完成一個軟體項目,項目經理需要完全了解項目的過程,确定項目需要經曆哪些步驟,每個步驟都完成什麼事,需要哪些資源和技術等。對于同一個項目,不同的開發團隊可能會采取不同的開發過程,結果導緻開發的産品品質是不同的,品質的好壞取決于個人的素質和能力。

如果将項目的關注點放在項目的開發過程上,無論哪個團隊來做,都會采用統一的開發過程,産品的品質保持一樣。團隊可以通過不斷提高過程的品質來提高産品的品質。這個過程展現了團隊的整體能力,它不依賴于個人能力。

軟體過程不隻是軟體開發的活動序列,而是軟體開發的最佳實踐,包括流程、技術、産品、關系、角色和工具等。在軟體過程管理中,首先要定義過程,然後合理地描述過程,進而建立企業過程庫,并成為企業可以重用的資源。對于過程,要不斷地進行改進,以不斷地改善和規範過程,幫助企業提高生産力。

軟體過程改進是極其複雜的。隻有不斷總結過去做過的項目的過程經驗,才能形成有形的過程描述(稱為最佳實踐),并不斷地完善和在以後的項目中重複利用。過程管理的主要内容就是過程定義和過程改進。過程定義是對最佳實踐加以總結,以形成一套穩定的、可重複的軟體過程。過程改進是針對實踐中發現的軟體過程中存在的問題或缺陷,在實踐中尋找和找到解決問題和彌補缺陷的辦法;可以說,過程改進就是在不斷發現問題和解決問題的過程中不斷向前發展。通過實施過程管理,軟體開發組織可以逐漸提高其軟體過程能力,從根本上提高軟體生産能力。