軟體工程簡述 一,軟體工程概述:
軟體工程是把電腦科學,專案管理,工程學,應用域等技術和實踐應用於軟體設計,建立和維護的學科。 是一門研究用工程化方法構建和維護有效、實用的和高品質的軟體的學科。軟體工程涉及到程式設計語言,資料庫,軟體開發工具,標準,系統平台,軟體設計模式設計模式,專案管理等方面,軟體工程力圖對軟體項目的各個方面作出指導,從軟體的可行性分析直到軟體完成以後的維護工作,對於這個過程中從時間縱向及各個關鍵方向進行定義及方法指導,
二, 軟體工程方法學:
方法學從規模與範圍上可區別為重量級的方法和輕量級的方法:
著名的重量級開發方法包括ISO9000,CMM,RUP,其特點是產生大量的正式文檔,涉及工程中更多的問題領域。
輕量級的開發過過程沒有對大量正式文檔的要求,側重於開發過程的具體定義與指導。著名的輕量級開發方法包括極限編程(XP)和敏捷流程(Agile Processes)。
三, 軟體工程中的軟體過程:
很多人會容易弄混淆軟體工程與軟體過程,軟體過程的定義是軟體工程中的一部分。
軟體開發過程是隨著開發技術的演化而隨之改進的。從早期的瀑布式(Waterfall)的開發模型到後來出現的螺旋式的迭代(Spiral)開發,以致最近開始興起的敏捷開發方法(Agile),他們展示出了在不同的時代軟體產業對於開發過程的不同的認識,以及對於不同類型項目的理解方法。
注意區分軟體開發過程和軟體流程改善之間的重要區別。諸如像ISO 9000, CMM, CMMI這樣的名詞闡述的是一些軟體流程改善架構,他們提供了一系列的標準和策略來指導軟體組織如何提升軟體開發過程的品質、軟體組織的能力,而不是給出具體的開發過程的定義。
四, 總結:
很多人認為這些方法學中是可以優選的,但我認為這些方法學側重點不同,範圍不同,比如CMM主要指出軟體過程中的關鍵問題領域,指出具體領域應得到如何的提高什麼的標準來衡量。如何逐步改進當前組過程,如何提高組織能力。,RUP測重的是軟體過程一些方法論,XP也是採用特定的方法手段更具體地對軟體過程進行進定義,對於我們來說
一個具體的組織及具體的項目,我們可以靈活地對於項目過程中的環節及關鍵問題採用適當具體的方法與形式。