1. 程式人生 > >軟體工程定義及發展過程

軟體工程定義及發展過程

 定義:

軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

BarryBoehm:運用現代科學技術知識來設計並構造計算機程式及為開發、執行和維護這些程式所必需的相關檔案資料。

IEEE:在軟體工程術語彙編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、執行和維護,即將工程化應用於軟體;2.在1中所述方法的研究

FritzBauer:在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效執行的可靠軟體的一系列方法。

《計算機科學技術百科全書》:軟體工程是應用電腦科學、數學、邏輯學及管理科學等原理,開發軟體的工程。軟體工程借鑑傳統工程的原則、方法,以提高質量、降低成本和改進演算法。其中,電腦科學、數學用於構建模型與演算法,工程科學用於制定規範、設計範型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。

比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。

ISO 9000對軟體工程過程的定義是:軟體工程過程是輸入轉化為輸出的一組彼此相關的資源和活動。

發展過程:

軟體是由計算機程式和程式設計的概念發展演化而來的,是在程式和程式設計發展到一定規模並且逐步商品化的過程中形成的。軟體開發經歷了程式設計階段、軟體設計階段和軟體工程階段的演變過程。

程式設計階段

程式設計階段出現在1946年~1955年。此階段的特點是:尚無軟體的概念,程式設計主要圍繞硬體進行開發,規模很小,工具簡單,無明確分工(開發者和使用者),程式設計追求節省空間和程式設計技巧,無文件資料(除程式清單外),主要用於科學計算。

軟體設計階段

軟體設計階段出現在1956年~1970年。此階段的特點是:硬體環境相對穩定,出現了“軟體作坊”的開發組織形式。開始廣泛使用產品軟體(可購買),從而建立了軟體的概念。隨著計算機技術的發展和計算機應用的日益普及,軟體系統的規模越來越龐大,高階程式語言層出不窮,應用領域不斷拓寬,開發者和使用者有了明確的分工,社會對軟體的需求量劇增。但軟體開發技術沒有重大突破,軟體產品的質量不高,生產效率低下,從而導致了“軟體危機”的產生。

軟體工程階段

自1970年起,軟體開發進入了軟體工程階段。由於“軟體危機”的產生,迫使人們不得不研究、改變軟體開發的技術手段和管理方法。從此軟體產生進入了軟體工程時代。此階段的特定是:硬體已向巨型化、微型化、網路化和智慧化四個方向發展,資料庫技術已成熟並廣泛應用,第三代、第四代語言出現;第一代軟體技術:結構化程式設計在數值計算領域取得優異成績;第二代軟體技術:軟體測試技術、方法、原理用於軟體生產過程;第三代軟體技術:處理需求定義技術用於軟體需求分析和描述。