軟件工程的定義。
(1)將系統化、規范化、可度量的 方法應用與軟件的開發、運行和維護的過程, 即將工程化應用于軟件中。(2)對(1)中所述方法
的研究?!狪EEE[IEE93]
軟件工程是指導計算機軟件開發和維護的工程學科。采用工程的概念、原理、技術和方法來開發與維護軟件,把經過實踐考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,這就是軟件工程。-
閱讀經典名著“人月神話”等資料,解釋 software crisis、COCOMO 模型。
-
軟件生命周期。
軟件生命周期又稱為軟件生存周期或系統開發生命周期,是軟件的產生直到報廢的生命周期,周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段,這種按時間分程的思想方法是軟件工程中的一種思想原則,即按部就班、逐步推進,每個階段都要有定義、工作、審查、形成文檔以供交流或備查,以提高軟件的質量。- 從時間角度,把整個周期劃分為若干個階段
- 劃分的原則:各階段的任務彼此間盡可能相對獨立,同 一個階段各項任務的性質盡可能相同,從而降低每個階 段任務的復雜性,簡化不同階段之間的聯系,有利于軟 件開發過程的組織管理。受軟件規模、性質、種類、開 發方法等因素的影響。
- 典型劃分GB8567(4個時期7個階段):
1)軟件分析時期:問題定義、可行性研究、需求分析
2)軟件設計時期:總體設計、詳細設計
3)編碼與測試時期:編碼、測試
4)運行與維護時期
按照 SWEBok 的 KA 劃分,本課程關注哪些 KA 或 知識領域?
軟件需求,軟件設計,軟件構造,軟件工程工具和方法。-
解釋 CMMI 的五個級別。例如:Level 1 - Initial:無序,自發生產模式。
初始級(Initial):軟件過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功取決于個人努力。管理是反應式的。
可重復級/受管理級(Repeatable):建立了基本的項目管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重復早先類似應用項目取得的成功經驗。
已定義級(Defined):已將軟件管理和工程兩方面的過程文檔化、標準化,并綜合成該組織的標準軟件過程。所有項目均使用經批準、剪裁的標準軟件過程來開發和維護軟件,軟件產品的生產在整個軟件過程是可見的。
量化管理級(Managed): 分析對軟件過程和產品質量的詳細度量數據,對軟件過程和產品都有定量的理解與控制。管理有一個作出結論的客觀依據,管理能夠在定量的范圍內預測性能。
優化管理級(Optimizing):過程的量化反饋和先進的新思想、新技術促使過程持續不斷改進。
-
用自己語言簡述 SWEBok 或 CMMI (約200字)。
SWEBok(Software Engineering Body of Knowledge),軟件工程知識體系。SWEBOK指南為軟件工程學科的范圍提供了一致的確認,為支持該學科的本體知識提供了指導。
SWEBOK建立的目標是:- 促進軟件工程本體知識達成世界范圍的共識
- 澄清軟件工程與其他相關學科如計算機科學、項目管理、計算機工程以及計算機數學的關系,并且確定軟件工程學科的范圍
- 反映軟件工程這個學科內容的特征
- 確定軟件工程本體知識的各個專題
- 為相應的課程和職業資格認證材料的編寫奠定基礎
解釋 PSP 各項指標及技能要求
- 閱讀《現代軟件工程》的 PSP: Personal Software Process 章節。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
-
按表格 PSP 2.1, 了解一個軟件工程師在接到一個任務之后要做什么,需要哪些技能,解釋你打算如何統計每項數據? (期末考核,每人按開發階段提交這個表)
表格 PSP 2.1
需要的技能:軟件開發流程、軟件工程思想、軟件設計能力、編碼能力、對標準和工具鏈的掌握、總結(寫作)的能力、團隊協作能力等。
如何統計每項數據:在每項工作開始之前記錄時間,如果可以的話,借助軟件工具來記錄和統計。