软件工程--软件危机-生命周期-软件过程
文章目錄
- 軟件危機
- 問題
- 現象
- 危機產生的原因
- 途徑
- 軟件
- 定義
- 特點
- 軟件工程方法學
- 軟件生命周期(過程模型)
- 軟件定義時期
- 軟件開發時期
- 運行維護
- 軟件過程
- 理想瀑布模型
- 實際瀑布模型
- 快速原型模型
- 增量模型
- 風險更大的增量模型
- 螺旋模型
- 噴泉模型
- Rational統一過程
- 問題定義
軟件危機
軟件危機值在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
問題
1、如何開發軟件,增長需求
2、如何維護軟件
現象
- 對軟件開發成本和進度估計往往很不準確
- 用戶對“已完成“的軟件系統不滿意的現象經常發生
- 軟件產品的質量往往靠不住
- 軟件通常沒有適當的文檔資料
- 軟件成本在計算機系統總成本中所占的比例逐年上升
- 軟件開發產率提高的速度遠遠比不上計算機應用迅速普及深入的趨勢
危機產生的原因
(1)軟件的本身特點
- 不同于硬件,管理和控制軟件開發過程較為困難
- 軟件在運行過程中不會因為使用時間過長而被“用壞”,運行時發現的錯誤是在開發時期未能檢測出來的錯誤。
- 不同于程序,規模大,且復雜性隨程序規模的增加指數上升
(2)軟件開發和維護的方法不正確:
- 忽視軟件需求分析
- 認為軟件開發就是寫程序并設法使之運行
- 輕視軟件維護
途徑
- 良好的組織管理措施
- 推廣使用在實踐中總結出來的軟件技術和方法并且調研探索更好的有效技術和方法
- 應該開發和使用更好的軟件工具
軟件
定義
軟件是程序、數據及文檔的完整集合
特點
- 軟件是一種邏輯實體而不是具體的物理實體
- List item
軟件工程方法學
3要素:方法、工具、過程
傳統方法學:生命周期法
面向對象方法學:方法=對象+分類+繼承+通過消息通訊------原因:當軟件規模龐大或對軟件需求模糊易變時,采用傳統方法往往不成功
軟件生命周期(過程模型)
軟一個軟件從提出直到最終被廢棄的整個過程。
軟件定義時期
軟件開發時期
運行維護
軟件過程
通常用LC來描述軟件過程
理想瀑布模型
特點
階段間具有順序性和依賴性。必須等到前一個階段工作完成后才能開始后一階段的工作;只有前一階段的工作正確后后一階段才能得到正確的結果。
推遲實現的觀點:在編碼之前設置里系統分析與系統設計的階段
質量保證的觀點:每個階段都有文檔,每個階段結束前都要盡早發現問題改造錯誤
實際瀑布模型
實線:開發過程 ; 虛線:維護過程
優點
缺點
- 不適合需求變化,只能用戶需求不改變或很少改變的場合
- 最終才能看到可執行系統,風險較大
- 由文檔驅動,用戶只能通過文檔來了解產品,而不能滿足用戶的真正需求
快速原型模型
解釋:快速建立起來可以在計算機上運行的程序,讓用戶試,用戶提出一堆建議,然后修改程序,如此反復。直到用戶滿意,寫文檔。
優點
不帶負反饋環,軟件開發基本上線性順序進行----原因:原型系統通過與用戶交互而得到驗證;
縮短了開發周期,加快了工程進度。
降低成本。
.
缺點
減少由于需求不明確而帶來的風險
不適合大型軟件系統適合小的
增量模型
適用增量開發時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。
軟件逐次交付
優點
能在較短時間內向用戶提交可完成部分工作的產品
逐步增加產品功能,可以使用戶有充裕的時間學習和適用新產品
缺點
將每個新的增量構件集成到現有團建體系結構中時,必須不破壞原來已經開發出的產品
軟件體系架構非常重要,易于拓展
ATT
風險更大的增量模型
先完成一個系統子集的開發,再按同樣的開發步驟增加功能(系統子集),如此遞增下去直至滿足全部的系統需求
風險在于:無法集成
螺旋模型
思想:使用原型及其他方法來盡量降低風險,在每個階段前都加了風險分析過程的快速原型模型。
** 缺點**
優點
螺旋線的每個周期 = 一個開發階段
噴泉模型
面向對象
軟件開發過程自下而上周期的各階段是相互重疊和多次反復的,就像水噴上去又可以落下來,類似一個噴泉。
各個開發階段沒有特定的次序要求,并且可以交互進行。
優點
噴泉模型不像瀑布模型那樣,需要分析活動結束后才開始設計活動,設計活動結束后才開始編碼活動。該模型的各個階段沒有明顯的界限,開發人員可以同步進行開發。其優點是可以提高軟件項目開發效率,節省開發時間,適應于面向對象的軟件開發過程。
缺點
由于噴泉模型在各個開發階段是重疊的,因此在開發過程中需要大量的開發人員,因此不利于項目的管理。此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。
Rational統一過程
RUP軟件開發
迭代是開發:每次迭代只考慮部分需求
使用基于構件的體系結構
管理需求:用戶的需求可能不斷發生變化
可視化建模
驗證軟件質量
控制軟件變更
將生命周期劃分成4個階段
敏捷過程和極限過程
極限編程屬于敏捷編程,有對變化和不確定性的更快速更敏捷的反應特性,能在快速的同時保持可持續開發的速度。
微軟過程
微軟過程是RUP的精簡版本包含若干個生命周期的持續遞進循環,每個生命周期5各階段構成;微軟過程是敏捷過程的一個擴充版本,擴充了每個生命周期的各個階段的具體工作流程
網構化軟件過程
問題定義
問題指:軟件的最基本問題
例如:
總結
以上是生活随笔為你收集整理的软件工程--软件危机-生命周期-软件过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hyingda是什么牌子
- 下一篇: LINUX前期知识回顾