系統分析與設計學習筆記之一: Introduction of SE & OOAD

一、
• 軟件工程的定義。
(1) 將系統化、規範化、可度量的方法應用於開發、運行和維護的過程,即將工程化應用於軟件中。
(2) 對(1)中所述方法的研究。

• 閱讀經典名著“人月神話”等資料,從歷史的角度解釋 software crisis、COCOMO模型 和 軟件工程定義之間的聯繫。
20世紀60年代以前,計算機剛剛產生,軟件設計往往有一個特定的目的,軟件的規模較小,一般也沒有文檔資料,缺少系統化的開發方法。隨着計算機的發展,過去開發軟件的方式已經無法滿足大型軟件的開發,軟件危機出現。
COCOMO是基於模型的成本估算方法,是一種代碼行分析方法,通過基礎的COCOMO的計算可以得出每個開發者需要投入的時間,整個項目的開發時間及開發人數。
《人月神話》中提到“用人月作爲衡量一項工作的規模是一個危險和帶有欺騙性的神話”。確實如此,有些任務無法被分解,人手的添加對項目的進度沒有幫助,甚至會產生負面效果。
所以爲了應對軟件危機,我們需要用系統化的方法來管理軟件開發過程。這就是軟件工程存在的必要性。越大的軟件開發,越需要系統地規劃。
軟件工程的定義其實核心就是要規範化軟件開發過程中的每一個環節,COCOMO也是重要的一種方法來衡量軟件開發的成本,它們的存在是爲了應對軟件危機的出現,也是歷史發展的必然性。
• 軟件生命週期。
SDLC,System Development Life Cycle是軟件的產生直到報廢或停止使用的時間。在維基百科上,這個概念解釋爲將軟件開發過程劃分爲各個階段,以獲得更優規劃及管理。通常有Waterfall development、Prototyping development、Iterative and incremental development、Agile development等方法。
• 用最少的詞彙,解釋 CMMI 的五個級別。例如:Level 1 - Initial:無序,自發生產模式。
Level 1 – Initial 過程不可測,極少的控制和反饋
Level 2 – Managed 過程定格,能反饋
Level 3 – Defined 過程標準化,積極主動的
Level 4 – Quantitatively Managed 過程可度量且可控
Level 5 – Optimizing 優化

• 閱讀一個軟件工程規範與標準,簡述標準的內容和作用。
標準包括了基礎標準、開發標準、文檔標準、管理標準、機房建設標準、綜合佈線標準、軟件工程新標準。標準讓軟件開發過程更加規範化、流程化,每個環節都有了嚴格的質量要求,使得每一個軟件的開發不再是隨意的,能夠推動產生更高質量的軟件。同時,符合規範與標準的軟件,在開發和維護的過程中,都能減輕程序員的負擔。

二、
• 解釋PSP各項指標及技能要求
1. 項目大小,在實際產品中寫了多少代碼,不包括空行/註釋/單字符行
2. 花費時間,可以用小時, 天,月,年來表示
3. 質量如何,交付的代碼中缺陷的比例
4. 是否按時交付,以標準方差來看,穩定的交付時間更爲重要
• 按表格 PSP 2.1, 瞭解一個軟件工程師在接到一個任務之後要做什麼,需要哪些技能,解釋你打算如何統計每項數據? (期末考覈,每人按開發階段提交這個表)

首先要有規劃能力,對任務有個統籌管理,其次要能理解需求,分析需求。要有基本的文檔書寫能力,撰寫設計文檔。接下來是更底層的設計,編碼能力,還要有良好的測試能力。最後還要有良好的總結能力,對時間花費、工作量進行計算,事後進行總結,反思並提出改進方案。
首先是時間上的統計,每次在完成某個小任務時,都要對自己花費的時間計時並記錄下來。接下來是代碼行的統計,利用網上現有的代碼統計工具,對完成的代碼進行統計。

• CMU 的 CMMI 和 PSP 都是採用了相同的方法去改善企業和個人的生產效率。注重有效過程控制是實現未來個人、項目、企業成功的有效手段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章