軟體工程基礎學習筆記 軟體開發模型

2021-07-29 11:22:51 字數 2813 閱讀 9269

博豬是一枚苦逼的搞基網路攻城獅,即將畢業的應屆畢業生。

目前自學軟體工程、python轉型搞基程式猿,感覺好像離進化**類又進了一步呢~

以下是自學軟體工程的學習筆記,總結的很粗陋,僅供自己學習記錄用。

不喜勿噴,全靠一身肥膘在支撐。

----------------割割割剛割割割割割------------------

軟體開發模型(講述的是過程)

1 傳統開發模型

瀑布模型(wate***ll  model)/文件驅動模型

特點:

2.推遲實現的觀點:原所謂的實現階段是編碼與測試,而該模型設定了前期的重要工作。(優)

3.質量保證的觀點:

1. 每個階段都必須提交規定的文件

2.每個階段結束前都要對完成的文件進行評審

快速原型模型(rapid prototype model)/反覆確定需求

原型:實現了乙個最基本的框架介面,具備基本功能。提供給使用者初步使用,並收取意見進行不斷修改。直至滿足使用者所有需求功能。

本模型適合中小型軟體開發,需求模糊的。不要太著重於開發原型,足夠使使用者理解即可。         

特點快速開發工具

迴圈/迭代過程

低成本種類

漸進型--初次原型符合客戶需求,無需較大的修改,稍微修改即可使用。

拋棄型--初次原型只為獲得需求,改動較大,將原本原型拋棄,根據詳細具體需求,重新開發。

2 演化開發模型

增量模型(incremental model)/漸增模型

本模型開發軟體時,把軟體產品作為一系列的增量構件來設計、程式設計、整合和測試。

每個構件由多個相互作用的模組構成,完成特定的功能。

本模型開發的軟體 :小而可用,且功能單一的軟體

主要實現難度是,各個構件如何整合。增量2要和增量1要有銜接。類似於環鎖一樣。

特點在前面增量的基礎上開發後面的增量

每個增量的開發可用瀑布或快速原型模型

迭代的思路

螺旋模型(spiral model)/風險驅動模型

螺旋模型的基本思想是:使用原型及其他方法來盡量降低風險(包括降低成本,避免開發錯誤)。

每個階段之前都增加了風險分析過程的快速原型模型。

特點瀑布模型+快速原型+風險分析

迭代過程

乙個螺旋式週期

確定目標,選擇方案,選定完成目標的策略

風險角度分析該策略

啟動乙個開發階段

評價前一步的結果,計畫下一輪的工作

3 物件導向開發模型

構件整合模型(component integration model)

特點物件導向

基於構件庫(強大的構件庫)

融合螺旋模型中的定義開發階段

支援軟體開發的迭代方法

軟體重用

4 形式化開發模型

轉換模型(transformational model)

轉換模型是通過變換自動生成**?(我瞅了半天都沒瞅懂具體含義  哆啦a夢攤手)

淨室模型(clean room model)/增量模型的專業版(乙個軟體增量的流水線)

一種應用數學與統計學理論以經濟的方式生產高質量軟體的工程技術。

通過嚴格的工程化的軟體過程達到開發中的零缺陷或接近零缺陷。

每當乙個軟體增量通過認證,它就被整合到整體系統中。因此,系統的功能隨著時間增加。

參考文獻:淨室軟體工程

本模型採用盒結構規格說明方法。乙個「盒」在某個細節層次上封裝了系統的某些方面。三種盒結構分別為:黑盒、狀態盒、白盒(看起來類似於軟體測試裡的三種方法,實際上不是的)。

黑盒:黑盒刻畫系統行為或部分系統的行為。描述一種抽象、觸發和反應。

狀態盒:狀態盒以類似於物件的方法封裝狀態資料和服務。

白盒:白盒中包涵了對狀態盒的程式設計。

軟體開發模型--小結

軟體開發模型是不斷發展的

各種軟體開發模型各有優缺點

選用時不必拘泥於某種模型

可組合多種模型

也可根據實際建立新的模型

《軟體工程實踐者的研究方法》(原書第7版)--roger.s.pressman

《軟體工程導論》(第五版)--張海藩

軟體開發就是軟體工程嗎

幾年前,有乙個關於軟體開發是否可以被稱為軟體工程的大辯論,這源於一篇名為 software engineering an idea whose time has come and gone?的文章,作者是tom demarco。demarco認為,短命的軟體開發已經死去,這對於所謂軟體 變革 的建立...

軟體工程和軟體開發流程

人們在開發 運營 維護軟體的過程中有很多技術 做法 習慣和思想體系。軟體工程把這些相關的技術和過程統一到乙個體系中,叫 軟體開發流程 軟體開發流程的目的是為了提高軟體開發 運營 維護的效率,並提高軟體的質量 使用者滿意度 可靠性和軟體的可維護性。program data structure algo...

軟體工程 軟體開發過程

軟體工程是研究和應用如何以系統性的 規範化的 可定量的過程化方法去開發和維護軟體,以及如 何把經過時間考驗而證明正確的管理技術和當前能 夠得到的最好的技術方法結合起來。瀑布原型 增量迭代 1 問題分析定義 對實際問題進行分析定義 以便更高效的解決該問題。2 可行性研究 確定這個問題是否值得去解決,避...