軟體工程簡介
軟體工程(software engineering,簡稱為se)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程式語言,資料庫,軟體開發工具,系統平台,標準,設計模式等方面。
在現代社會中,軟體應用於多個方面。典型的軟體比如有電子郵件,嵌入式系統,人機介面,辦公套件,作業系統,編譯器,資料庫,遊戲等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,**部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
軟體工程師是對應用軟體創造軟體的人們的統稱,軟體工程師按照所處的領域不同可以分為系統分析員,軟體設計師,系統架構師,程式設計師,測試員等等。人們也常常用程式設計師來泛指各種軟體工程師。
軟體工程(software engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文件為使用者可用的程度。開銷合宜是指軟體開發、執行的整個開銷滿足使用者要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。 (2)軟體工程過程:生產乙個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模組以及相關層次的說明、每一模組的介面定義。詳細設計產生程式設計師可用的模組說明,包括每一模組中資料結構說明及加工描述。實現活動把設計結果轉換為可執行的程式**。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足使用者的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支援過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支援以及工程管理在軟體開發過程中必須遵循的原則。
一、軟體工程概述
概念:應需而生
軟體工程是一類工程。工程是將理論和知識應用於實踐的科學。就軟體工程而言,它借鑑了傳統工程的原則和方法,以求高效地開發高質量軟體。其中應用了電腦科學、數學和管理科學。電腦科學和數學用於構造模型與演算法,工程科學用於制定規範、設計范型、評估成本及確定權衡,管理科學用於計畫、資源、質量和成本的管理。 軟體工程這一概念,主要是針對20世紀60年代「軟體危機」而提出的。它首次出現在2023年nato(北大西洋公約組織)會議上。自這一概念提出以來,圍繞軟體專案,開展了有關開發模型、方法以及支援工具的研究。其主要成果有:提出了瀑布模型,開發了一些結構化程式設計語言(例如pascal語言,ada語言)、結構化方法等。並且圍繞專案管理提出了費用估算、文件複審等方法和工具。綜觀60年代末至80年代初,其主要特徵是,前期著重研究系統實現技術,後期開始強調開發管理和軟體質量。
70年代初,自「軟體工廠」這一概念提出以來,主要圍繞軟體過程以及軟體復用,開展了有關軟體生產技術和軟體生產管理的研究與實踐。其主要成果有:提出了應用廣泛的物件導向語言以及相關的物件導向方法,大力開展了計算機輔助軟體工程的研究與實踐。尤其是近幾年來,針對軟體復用及軟體生產,軟體構件技術以及軟體質量控制技術、質量保證技術得到了廣泛的應用。目前各個軟體企業都十分重視資質認證,並想通過這些工作進行企業管理和技術的提公升。軟體工程所涉及的要素可概括如下:
根據這一框架,可以看出:軟體工程涉及了軟體工程的目標、軟體工程原則和軟體工程活動。 目標:我的眼裡只有「產品」
軟體工程的主要目標是:生產具有正確性、可用性以及開銷合宜的產品。正確性意指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文件為使用者可用的程度。開銷合宜性是指軟體開發、執行的整個開銷滿足使用者要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多問題有待解決,它們形成了對過程、過程模型及工程方法選取的約束。
軟體工程活動是「生產乙個最終滿足需求且達到工程目標的軟體產品所需要的步驟」。主要包括需求、設計、實現、確認以及支援等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體體系結構,包括子系統、模組以及相關層次的說明、每一模組介面定義。詳細設計產生程式設計師可用的模組說明,包括每一模組中資料結構說明及加工描述。實現活動把設計結果轉換為可執行的程式**。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足使用者的要求。支援活動包括修改和完善。伴隨以上活動,還有管理過程、支援過程、培訓過程等。 框架:四項基本原則是基石
軟體工程圍繞工程設計、工程支援以及工程管理,提出了以下四項基本原則: 第一,選取適宜開發范型。該原則與系統設計有關。在系統設計中,軟體需求化、抽象與資訊隱蔽、區域性化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。
第三,提供高質量的工程支援。「工欲善其事,必先利其器」。在軟體工程中,軟體工具與環境對軟體過程的支援頗為重要。軟體工程專案的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。
第四,重視開發過程的管理。軟體工程的管理,直接影響可用資源的有效利用,生產滿足目標的軟體產品,提高軟體組織的生產能力等問題。因此,僅當軟體過程得以有效管理時,才能實現有效的軟體工程。
這一軟體工程框架告訴我們,軟體工程的目標是可用性、正確性和合算性;實施乙個軟體工程要選取適宜的開發范型,要採用合適的設計方法,要提供高質量的工程支撐,要實行開發過程的有效管理;軟體工程活動主要包括需求、設計、實現、確認和支援等活動,每一活動可根據特定的軟體工程,採用合適的開發范型、設計方法、支援過程以及過程管理。根據軟體工程這一框架,軟體工程學科的研究內容主要包括:軟體開發范型、軟體開發方法、軟體過程、軟體工具、軟體開發環境、計算機輔助軟體工程(case)
及軟體經濟學等。
單元測試軟體工程概述
在電腦科學中,單元測試是乙個有程式設計師測試源 的個體單元是否適合使用的軟體檢測和驗證方法。乙個單元是乙個應用程式的最小的可測試部分。乙個程式上的可程式設計單元可能是乙個獨立的函式或過程。單元測試的目標是把程式隔離成很多小的部件,並確認這些獨立的部件是正確的。乙個單元 解讀 最終目的 早期發現問題 ...
軟體工程 軟體工程概述
一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...
8 1 1單元測試概述
測試物件 測試目的 發現設計或實現中的邏輯錯誤,及早暴露 中的 缺陷,便於問題的定位和解決。測試方法 一般以白盒測試為主 結合黑盒測試的方法。允許 多個測試單元的測試並行展開。測試步驟 理解設計 概覽源 走讀 設計測試用例 搭建測試環境 執行測試用例 重複進行設計測試用例和載入測試 分析判斷,給出結...