軟體工程概述

2021-08-08 17:05:06 字數 2908 閱讀 9846

軟體危機包含兩方面問題:如何開發軟體、如何維護規模越來越大的軟體。

軟體危機的原因:與軟體本身特點有關、開發和維護不正確。

開發和維護不正確具體表現為:忽視軟體需求分析的重要性,認為軟體開發就是寫程式,輕視軟體維護等。

軟體開發的過程:定義問題、進行可行性研究、需求分析、開發和測試、維護。

軟體產品的組成:程式、文件和資料。

軟體工程的目標

提高軟體的可維護性

減少軟體維護的代價。

軟體工程方法學

傳統方法學:將軟體生命週期的全過程一次劃分為若干個階段,順序地完成每個階段的任務。

物件導向方法學:既使用物件又使用類和繼承等機制,而且物件之間僅能通過傳遞訊息實現彼此通訊。

軟體生命週期由三個階段組成

系統分析: 問題定義、可行性研究、需求分析。

軟體開發:總體設計、詳細設計、編碼和單元測試、綜合測試。

執行維護

軟體生命週期每個階段的基本任務

問題定義:「做什麼專案?」。通過對客戶的調查,系統分析師扼要地寫出關於問題性質、工程目標和工程規模的書面報告,得到客戶的確認。

可行性研究:「值不值得做?」系統分析師在較高的抽象層次上進行研究,不是具體解決問題,而是研究問題的範圍,是否有解決方案,客戶確認是否繼續工程。

需求分析:「專案需要哪些功能?」仍然不是具體地解決問題,系統分析師確定目標系統必須具備哪些功能,形成需求規格說明書,得到客戶的確認。

詳細設計:「具體怎麼實現?」軟體工程師設計出具每個模組並確定實現模組功能所需要的演算法和資料結構,形成詳細的規格說明,交給程式設計師,使程式設計師根據它們寫出實際**。

編碼和單元測試:程式設計師根據軟體工程師提供的詳細規格說明書寫出正確的容易理解、維護的程式模組,並仔細測試每個模組。

綜合測試:測試工程師通過整合測試和驗收測試使軟體達到預定的要求。

軟體維護:通過改正性維護、適應性維護、完善性維護、預防性維護等維護活動時系統持久地滿足使用者的需要。

軟體過程的定義

軟體過程是為了獲得高質量軟體所需要完成的一系列任務的框架,它規定了各項任務的工作步驟,即先後順序。

軟體過程的三層含義

個體含義,即指軟體產品或系統在生存週期中的某一類活動的集合,如軟體開發過程,軟體管理過程等

整體含義,即指軟體產品或系統在所有上述含義下的軟體過程的總體

工程含義,即指解決軟體過程的工程,它應用軟體工程的原則、方法來構造軟體過程模型,並結合軟體產品的具體要求進行例項化,以及在使用者環境下的運作,以此進一步提高軟體生產率,降低成本

軟體過程模型

軟體過程模型是軟體開發全部過程、活動和任務的結構框架也稱軟體開發模型,或軟體生存週期模型。

典型的軟體過程模型

瀑布模型(wate***ll model)

演化模型(evolutionary model)

適用於對軟體需求缺乏準確認識的情況,典型的演化模型有增量模型(incremental model)、原型模型(prototyping model)、螺旋模型(spiral model)
噴泉模型(water fountain model)

基於構件的開發模型(component-based development model)

形式方法模型(formal methods model)

瀑布模型(wate***ll model)

特徵

接受上一階段的結果作為本階段的輸入

利用這一輸入實施本階段應完成的活動

對本階段的工作進行評審

將本階段的結果作為輸出,傳遞給下一階段

缺點 缺乏靈活性,難以適應需求不明確或需求經常變化的軟體開發

開發早期存在的問題往往要到交付使用時才發現,維護代價大

增量模型(incremental model)

特徵

增量模型融合了瀑布模型的基本成分(重複地應用)和演化模型的迭代特徵

增量模型強調每乙個增量都發布乙個可執行的產品

使用場景

需求經常變化的軟體開發

市場急需而開發人員和資金不能在設定的市場期限之前實現乙個完善的產品的軟體開發

增量模型能有計畫地管理技術風險,如早期增量版本中避免採用尚未成熟的技術

原型模型(prototyping model)

特徵

乙個原型不必滿足目標軟體的所有約束,其目的是能快速、低成本地構建原型。

原型方法從軟體工程師與客戶的交流開始,其目的是定義軟體的總體目標,標識需求。

被開發的原型應交付給客戶試用,並收集客戶的反饋意見,這些反饋意見可在下一輪迭代中對原型進行改進。在前乙個原型需要改進,或者需要擴充套件其範圍的時候,進入下一輪原型的迭代開發

使用場景

需要盡快交付和對軟體需求缺乏準確認識的專案
螺旋模型(spiral model)

特徵

是瀑布模型和演化模型的結合,並增加了風險分析

螺旋模型沿著螺線旋轉,在四個象限上分別表達四個方面的活動,即:

制定計畫:確定軟體目標,選定實施方案,弄清專案開發的限制條件

風險分析:評價所選的方案,識別風險,消除風險

工程實施:實施軟體開發,驗證工作產品

客戶評估:評價開發工作,提出修正建議

使用場景

螺旋模型主要適用於內部開發的大規模需要風險評估的軟體專案。

軟體工程 軟體工程概述

一.軟體 定義 計算機系統中的程式及其文件 程式 計算任務的處理物件和處理規則的描述 文件 為了便於了解程式所需的闡明性資料 特點 軟體的種類 按功能劃分 系統軟體 支援軟體 應用軟體 二.軟體工程的起源和概念 早期電腦程式 現在人們認為 在資訊產業中,微電子是基礎,計算機和網路是載體,軟體是核心 ...

軟體工程 軟體工程的概述

軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如何把經過時間考 驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科,它涉及到程式語言 資料庫 軟體 開發工具 系統平台 標準 設計模式等方面。先從軟體工程的第一章開始說起 軟體工程的概述,這一章是...

軟體工程 概述

把軟體開發工程化,科學化,現代化 軟體工程適用於大型軟體開發 開發軟體所需要的高成本同產品的低質量之間有 著尖銳的矛盾,叫做軟體危機 crisis 桌面程式乙個人構思了編就行了,但是企業程式 就不那麼簡單了 桌面程式的特點是一般寧願丟掉它重寫 而企業程式耗費太大,一般總是在原來基礎上進行 修改,這對...