軟體工程(二)軟體生存週期與軟體過程

2021-10-02 01:18:57 字數 3072 閱讀 1382

乙個軟體從開始立項起,到廢棄不用為止,統稱軟體的生存週期。典型的軟體生存週期的主要活動包括:

需求分析

明確使用者需要解決的問題,分析員根據對問題的理解提出關於系統目標與範圍的說明,從使用者視角對需求進行定義和分析,用需求模型的形式準確地表達出來

軟體分析

在需求模型的基礎上,從開發人員視角對軟體需求模型進行分析,建立於需求模型一致,與實現無關的軟體分析模型。它既是對軟體系統邏輯模型的描述,也是下一步進行系統設計的依據

軟體設計

將軟體分析模型轉變為考慮具體實現技術和平台的軟體設計模型

編碼

編碼就是按照選定的程式語言和可復用軟體架構包,把設計文件翻譯為源程式

軟體測試

除針對模組 / 物件錯誤的單元測試應與編碼同時進行外,還要執行整合測試、確認測試和系統測試等步驟

執行維護

作為生存週期的最後乙個階段,執行維護階段的任務主要是做好軟體維護,使軟體在整個生存週期內都能滿足使用者的需求,並延長其使用壽命。每次維護都應遵循規定的程式,填寫或更改相關文件

軟體過程可理解為圍繞軟體開發所進行的一系列活動,也常把軟體過程稱為 「 軟體開發模型 」

瀑布模型

基於軟體生存週期的線性開發模型,特點是將整個過程嚴格劃分階段,與軟甲生存週期的特點是一致的,現簡述如下:

階段間的順序性:各階段的活動分步完成;前一階段活動沒有結束,後一階段活動就不能進行

階段間的依賴性:前一階段的輸出文件是後一階段的輸入文件,只有當前一階段有正確輸出時,後一階段才能獲得正確結果。如果某一階段出現問題,往往要追溯到它之前的一些階段,必要時可能要修改此前已經完成的文件

推遲實現的觀點:過早地編碼容易導致返工,甚至造成災難性後果。把待開發軟體的邏輯設計與物理實現清楚的區別開來,即再需求分析和軟體設計階段只考慮系統的邏輯模型,等到編碼階段再來完成程式清單​

保證質量的觀點:每一階段必須完成規定的文件。每一階段都要對完成的文件進行複審​

快速原型模型

先建立能夠反映使用者主要需求的原型,讓使用者實際觀察未來系統的概貌,以判斷哪些功能是符合需要的,哪些方面還需要改進。然後將原型反覆改進,直至建立完全符合使用者要求的新系統。原型系統只包括未來系統的主要功能及系統的重要介面,不包括系統細節

原型模型帶來的啟示

改變了生存週期等同於過程模型的習慣性思維,使人們認識到生存週期只指出整個週期應包含哪些活動,並未規定這些活動應該發生多少次。軟體開發人員的任務就是通過對軟體過程的重新安排,使之更適合於待開發的軟體系統

遵循迭代的思想方法,使所開發的軟體在迭代中逐步達到完善

增量模型

是瀑布模型的順序特徵與快速原型法的迭代特徵相結合的產物。把軟體看作一系列相互聯絡的增量,在開發過程的各次迭代中,每次完成其中乙個增量

例如,如果用增量模型開發乙個大型文字處理軟體,第乙個發布的增量可能實現基本的檔案管理、文件編輯與生成功能;第二個增量具有更加完善的文件編輯與生成能力;第三個增量完成拼寫檢查與文法檢查;第四個增量實現頁面布局等高階功能,其中任一增量的開發流程均可按瀑布模型或快速原型法完成

螺旋模型

結合瀑布模型與快速原型模型基礎上演變而成。從總體上看,螺旋模型是一種典型的迭代模型。每迭代一次,螺旋線就前進一周。當專案按照順時針方向沿螺旋線移動時,每輪螺旋均包含計畫、風險分析、建立原型、使用者評審四種活動,按以下順序周而復始,直到實現最終產品

計畫:用於選定本輪螺旋所定目標的策略,包括確定待開發系統的目標、選擇方案、設定約束條件等

風險分析:評估本輪螺旋可能存在的問題,必要時可通過建立乙個原型來確定風險的大小,據此決定是按原定目標執行,還是修改目標或終止專案。螺旋模型重視風險分析,目的是要了解、分析並設法降低和排除風險

建立原型:建立乙個原型來實現本輪螺旋的目標。例如,第一圈可能產生產品的需求規格說明書,第二圈可能實現產品設計,等等

構件整合模型(主要適用於物件導向的軟體開發)

物件技術將事務封裝成包含資料和加工該資料的方法的物件,並抽象成為類。經過適當設計和實現的類,也可稱為構件。構件在某一領域具有一定通用性,可以在不同計算機軟體系統中復用。將這些構件儲存起來構成乙個構件庫,利用預先封裝好的構件來構造應用系統。構件整合模型融合了螺旋模型的不少特點,也支援軟體開發的迭代方法

前邊所述都屬於非形式化方法模型,旨在用工程方法生產出質量高、易維護的軟體產品,多流行與工業界。形式化方法模型以程式變換技術為主要研究內容,多流行於學業界,本文僅做簡單介紹

轉換模型

採用嚴格的數學方法來表示軟體需求規格說明書,然後進行一系列自動或半自動的程式變換,最終將需求規格說明書轉換為計算機系統能接受段地目標程式系統

淨室模型

與增量模型一樣,淨室開發把軟體看作一系列增量,每個增量是乙個用形式化方式表示的 「盒」 。這種盒是在某個特定的抽象層次上對系統的一次封裝,按照約定的盒結構逐步進行開發,通過認證後即是最終的增量產品。其基本思想是力求在分析和設計階段就消除錯誤、確保正確,在無缺陷的潔淨狀態下實現對軟體的製作

除了上面介紹的七種軟體開發模型外,之後又出現了兩種與之前迥異的軟體過程模型 —— 統一過程和敏捷過程,關於它們的介紹請看

統一軟體開發過程(rup)分析

敏捷軟體開發與極限程式設計

軟體工程 軟體生存週期

與任何事物一樣,軟體也有乙個孕育 誕生 成長 成熟 衰亡的過程,這個過程稱為軟體生存週期 軟體生命週期 詳細的劃分如下圖 它們的主要任務如下 制定規劃 可行性分析 確定要開發軟體系統的總目標,給出它的功能 效能 可靠性以及介面等方面的要求。由系統分析員和使用者合作,研究該項任務的可行性,解決問題的可...

《軟體工程方法與實踐》 2 4 軟體生存週期

同任何事物類似,軟體也有乙個從生到死的過程,這個過程一般稱為軟體生存週期或生命週期 software development life cycle,sdlc 一般地,軟體生存週期可劃分為定義 開發和執行3個時期,每個時期又細分為若干個階段。把整個軟體生存週期劃分為若干階段,使得每個階段有明確的任務,...

軟體工程 第2章 軟體生存週期與軟體過程

2.3 物件導向的模型 2.4 敏捷方法 2.5 軟體專案計畫 傳統開發模型 瀑布模型 快速原型模型。演化開發模型 增量模型 螺旋模型。物件導向開發模型 噴泉模型 構件整合模型。形式化開發模型 轉換模型 淨室模型。計畫時期 開發時期 軟體執行與維護 使用維護 1.瀑布模型 將軟體生存週期各項活動規定...