軟體工程(software engineering)這個概念的正式提出是在 1969 年,在人們經歷過一系列軟體危機(software crisis)之後的 nato 會議上。
當時人們遇到的軟體危機包括:
專案執行超過預算;
專案執行超過時間;
軟體質量低劣;
軟體通常不符合需求;
專案無法管理且**難以維護。
下面舉三個案例呈現當時的軟體危機。
其一是 ibm 的 os/360 系統,當決定外部技術說明文件的制定人員時,fred brooks 錯誤地給與了程式實現團隊而不是體系結構團隊,導致最後專案增加了一年的除錯時間並多出了幾百萬美元的投入。
其二是美國銀行信託軟體,當時計畫預算 2 千萬,時長 9 個月;但實際上投入了 6 千萬,時長 4 年,仍未完成,最終放棄。
其三是 aecl 公司開發的 therac-25 放射性**機器,因競態條件偶然發射高於正常劑量的輻射,從而導致患者死亡或重傷。
在軟體危機的背景之下,1969 年的 nato 會議提出了軟體工程的概念。
軟體工程是用來建立和使用合理的工程原則,以經濟地獲取可靠的,且在真實機器上可高效工作的軟體。隨後 ieee 在 1993 年給出了更加綜合性的定義,即
(1) 將系統化的、規範的、可量化的方法應用到軟體的開發、執行及維護中,即將工程化方法應用於軟體;軟體工程有兩面,一面是 「軟體」,一面是 「工程」。軟體是軟體工程中最重要的製品。我們依照軟體的生命週期,在每個時期實施不同的工程化的方法使得軟體可以按需求運作。(2) 在 (1) 中所述方法的研究。
軟體(開發)過程一般有兩種:
瀑布模型:分析 --> 設計 --> 編碼 --> 測試。
增量模型:拆分盡量不耦合的增量構件,每個構件按照瀑布過程運作。
軟體分析方法有兩大類:
面向過程方法,包括資料流圖、實體關係圖和狀態圖;
物件導向方法,包括用例圖、類圖和狀態圖。
軟體設計方法也分為以下兩大類:
面向過程方法,包括結構圖(hipo)、模組化;
物件導向方法,包括類圖中每個類的屬性和方法的確定。
選擇一門或多門適合需求的程式語言。
質量保證:
a. 可操作性;(能用)
b. 可維護性;(能改)
c. 可遷移性。(能遷)
軟體測試方法總體可分為以下兩大類:
白盒測試,包括基本路徑測試和控制結構測試(包括條件測試、資料量測試和迴圈測試);
黑盒測試,包括窮盡測試、 隨機測試和邊界值測試。
白盒測試中的基本路徑測試涉及圖論和圈的複雜度。
軟體的文件是乙個持續的過程,軟體不死,文件就需要不斷更新。軟體的文件包含三大類:
使用者文件,引導使用者正確使用軟體;
系統文件,定義軟體本身;
技術文件,描述軟體的安裝、維護和更新。
軟體工程 軟體工程概述
一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...
軟體工程 軟體工程的概述
軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科,它涉及到程式語言 資料庫 軟體 開發工具 系統平台 標準 設計模式等方面。先從軟體工程的第一章開始說起 軟體工程的概述,這一章是...
軟體工程 概述
把軟體開發工程化,科學化,現代化 軟體工程適用於大型軟體開發 開發軟體所需要的高成本同產品的低質量之間有 著尖銳的矛盾,叫做軟體危機 crisis 桌面程式乙個人構思了編就行了,但是企業程式 就不那麼簡單了 桌面程式的特點是一般寧願丟掉它重寫 而企業程式耗費太大,一般總是在原來基礎上進行 修改,這對...