1. 程式人生 > >系統分析與設計--學習筆記1

系統分析與設計--學習筆記1

一.簡答題

1. 定義“軟體工程”:(1)將系統化、規範化、可度量的方法應用於軟體的開發、執行與維護的過程中,即將工程化應用於軟體中--採用工程的技術原理來開發和維護軟體,把各種證明正確或有用的方法應用於軟體開發中;(2)對(1)中所述方法的研究。

2. 對三個名詞的定義:

(1)軟體危機:六十年代以來,隨著計算機應用需求的驅動,系統軟體和應用軟體均有了很大的發展,如作業系統、編譯系統等各種大型應用軟體。由於當時的軟體生產不僅需要很大的成本,並且其生產的複雜度也極高,而當時的技術和可用資源無法完全支撐高成本和搞複雜度的軟體開發,使大型軟體的生產出現了很大的困難,即軟體危機。

(2)COCOMO模型:全稱為

constructive cost model,即構造性成本模型,指一種精確、易於使用的,基於模型的成本估算方法。

(3)1.

從歷史角度解釋三者聯絡:從六十年代開始,由於計算機應用的需求,軟體的需求也大大增加。但是當時的技術和生產力並不足以支撐大型軟體開發所需要的成本(包括時間成本和資源成本,當時無法規範化開發過程因此開發時間也需較長時間),並且即使軟體開發實現了但由於整個過程沒有系統化、規範化導致測試過程十分艱難,以至於生產一個大型軟體幾乎是靠運氣的。軟體工程的出現解決了軟體開發成本無法估計的問題,因為軟體工程將工程化的方法應用於軟體生產過程,使生產過程得以規範化、系統化及可度量,大大簡化了後期的測試問題。但是還有另一個問題沒解決,那就是生產所用的資源和時間成本無法精確估計的問題,由此誕生了

COCOMO模型,能夠基於模型估算出生產成本,真正工程化了軟體開發。

3. 軟體生命週期:又稱為軟體生存週期或系統開發生命週期,是軟體的產生直到報廢的生命週期,週期內有問題定義、可行性分析、總體描述、系統設計、編碼、除錯和測試、驗收與執行、維護升級到廢棄等階段,每個階段都要有定義、工作、審查、形成文件以供交流或備查,以提高軟體的質量。隨著新的面向物件的設計方法和技術的成熟,生命週期的每一個週期都有確定的任務,併產生一定規格的文件(資料),提交給下一個週期作為繼續工作的依據。軟體開發要求覆蓋軟體開發的全過程,即每一週期工作的開始只能也必須是建立在前一個週期結果“正確”前提上的延續;因此,每一週期都是按“活動 ── 結果 ── 稽核 ── 再活動 ── 直至結果正確”迴圈往復進展的。

4. CMMI的五個級別:

Level 1 - 初始級:無序,自發生產模式。

Level2 - 原始規範級:出現規範制度,有根據的生產。

Level3 - 原始標準級:基於總標準生產。

Level4 - 標準預測級:基於制度,預測的生產。

Level5 - 優化級:基於規範創新優化的生產。

5. 閱讀標準:

1)標準的內容:給出相關的定義,規定相關的專業名詞並給出相應的定義。

2)標準的作用:給出標準的定義,使得行業內統一,使得工程師有理可依並且對新名詞由更好的理解,不至於按個人理解開發導致與理想標準不一樣。

二. 解釋 PSP 各項指標及技能要求

1. 首先了解任務確定流程,推測出執行任務所需的時間。

2. 需求分析(包括學習新技術);分析每項任務所用到的技術(如有的任務需要熟悉Java語言,有的任務需要對資料庫有更深的瞭解),並計劃學習新技術的方法和時間。

3. 生成設計文件:根據前面兩步初步生成任務所需的計劃,主要有技術學習與應用所需的時間及任務流程圖。

4. 設計複審:和同事稽核設計文件。

5. 程式碼規範:為目前的開發制定合適的規範,如統一變數名稱等。

6. 具體設計出各項功能的實現過程。

7. 具體編碼:執行上一步的設計過程。

8. 程式碼複審:審查完成的程式碼,檢視有無編寫錯誤。

9. 測試:自我測試,修改程式碼,提交修改。

10. 測試報告:編寫測試樣例、測試過程、測試結果、結果分析及改進建議。

11. 計算工作量:計算出個人的總體工作量,即大致估算個人時間佔團隊總時間的百分比。

12. 事後總結,並提出過程改進計劃。

總結:拿到了任務之後,要按照以上步驟執行,其中的技能需要有學習新知識的技能、分析推測時間技能、設計流程圖UML技能、文件編輯技能、程式碼設計技能以及測試程式碼技能等。在執行任務過程中,應該用自己在每項指標中的投入時間佔自己在所有指標中投入的總時間的百分比(%)作為輸入資料。