软件工程(1)--初识基础概念
前言
學習了半年的軟件工程課程,總不能一無所獲吧,故此寫下文章總結一番。
軟件工程是一門綜合性交叉學科,它涉及計算機科學、工程科學、管理科學和數學等領域。學習目標是掌握需求分析、軟件設計、編碼風格、軟件測試的工程化方法。
軟件=程序+數據+文檔
一、軟件危機
1.定義
定義:在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
1968年?NATO?會議(?Garmisch?,?Germany?)提出"軟件危機"
- 項目超出預算
- 項目超過計劃完成時間
- 軟件運行效率很低
- 軟件質量差
- 軟件通常不符合要求項目
- 難以管理并且代碼難以維護
- 軟件不能交付
2.案例?
OS/360:1961-1964年,IBM公司的?OS?/360,共約100萬條指令,花費了5000個人年,開發總投資5億美元,達到當時美國研究原子彈的曼哈頓計劃投資20億美元的1/4,而結果卻令人沮喪,錯誤多達2000個以上,系統根本無法正常運行。?
美國火箭爆炸:根據?NASA?的報告,是1962年的飛往金星的宇宙飛船天線發生故障,致使地面無法控制火箭,于是火箭上的計算機開始控制火箭,然而在導航系統軟件中又存在一個?bug?(打印錯誤,在平滑半徑導數表達式"R-dot-bar?sub?n?"中漏掉了代表平滑的"?bar?"),致使火箭迅速偏離航道。于是發射場的安全官員下令摧毀飛船。
美國銀行信托軟件系統:美國銀行1982年進入信托商業領域,并規劃發展信托軟件系統。.項目原訂預算2千萬美元,開發時程9個月,預計于1984年12月31日以前完成,后來至1987年3月都未能完成該系統,期間已投入6千萬美元。.美國銀行最終因為此系統不穩定而不得不放棄,并將340億美元的信托賬戶轉移出去,并失去了6億美元的信托生意商機。
二、軟件工程
1.定義
定義:IEEE?計算機協會將軟件工程定義為:(1)應用系統化的、學科化的、定量的方法,來開發、運行和維護軟件,即,將工程應用到軟件。(2)對(1)中各種方法的研究。
目標:定義軟件工程的目標是在給定的時間和預算內,按照用戶的需求,開發易修改、高效、可靠可維護、適應力強、可移動、可重用的軟件。
2.三要素?
方法、工具、過程
方法回答的是”怎樣做“;
工具是運用方法支撐環境;
過程是任務的框架,它規定了完成各項任務的步驟。
- 方法:是完成軟件工程項目的技術手段。支持項目計劃和估算、系統和軟件需求分析、設計、編程、測試和維護。軟件工程方法依賴一組原則,貫穿軟件工程的各個環節。軟件工程方法分兩類結構化方法和面向對象方法。
- 工具:為軟件工程的過程和方法提供自動化或半自動化的工具支持。將若干工具集成起來。與軟件工程數據庫和計算機系統構成一個支持軟件開發的系統稱"計算機輔助軟件工程(?Computer?Aided?Software?Engineering?,?CASE?)",系統中某一工具的信息加工結果可以作為另一工具的輸入。集成的軟件工程工具再加上人的因素構成了軟件工程環境。
- 過程:貫穿軟件開發的各個環節,在各環節之間建立里程碑;管理者在軟件工程過程中對軟件開發的質量、進度、成本進行評估、管理和控制;技術人員采用相應的方法和工具生成軟件工程產品(模型、文檔、數據、報告、表格等)。
3.七個原則
三、軟件生命周期?
軟件產品或軟件系統從設計、投入使用到淘汰的全過程。
1、問題定義(項目計劃報告)
2、可行性研究(可行性研究報告)
3、需求分析(需求規格說明書)
4、總體設計(總體設計說明書)
5、詳細設計(詳細設計說明書)
6、編碼(源程序)
7、測試(軟件測試報告)
8、維護(軟件維護說明)
四、軟件過程模型?
1.軟件過程
軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。
軟件過程是在工作產品構建過程中,所需完成的工作活動、動作和任務的集合。
- 活動主要實現寬泛的目標,與應用領域、項目大小、結果復雜性或者實施軟件工程的重要程度沒有直接關系。
- 動作包含了主要工作產品生產過程中的一系列任務。
- 任務關注小而明確的目標,能夠產生實際產品。
2.軟件過程模型
1.定義
定義:軟件過程模型是軟件開發全部過程、活動和任務的結構框架。它能直觀表達軟件開發全過程,明確規定要完成的主要活動、任務和開發策略。
軟件過程模型也常稱為:
- 軟件開發模型
- 軟件生存周期模型
- 軟件工程范型
2.能力成熟度模型CMM?
5.優化級? ? ? ? ? ? ? ? ? 持續的過程改進
4.量化管理級? ? ? ? ? 量化管理
3.已定義級? ? ? ? ? ? ? 過程標準化
2.可重復級? ? ? ? ? ? ?基本項目管理
1.初始級? ? ? ? ? ? ? ? ?有能力的人和個人英雄主義?
參考資料?
軟件工程導論(第六版)? 張海藩 牟永敏 著?
總結
以上是生活随笔為你收集整理的软件工程(1)--初识基础概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【EasyAR学习】显示模型
- 下一篇: Unity最佳实践-物理计算