SWSAD - Homework 2
Software System Analysis and Design
軟件項目與知識團隊管理基礎
1、簡答題
-
用簡短的語言給出對分析、設計的理解。
- 分析 (analysis):強調的是對問題和需求的調查研究,而不是解決方案。
- 設計 (design):強調的是滿足需求的概念上的解決方案(在軟件方面和硬件方面),而不是其實現。
有益的分析和設計可以概括爲:做正確的事(分析)和正確地做事(設計)。
-
用一句話描述面向對象的分析與設計的優勢。
分析師不必是“語言專家”,問題領域的專家和實現級別的專家可以使用通用符號進行交流。
-
簡述 UML(統一建模語言)的作用。考試考哪些圖?
統一建模語言(UML)是描述、構造和文檔化系統製品的可視化語言。
UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。UML展現了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。
考試考的UML圖,十多種視圖,分4類:
- 用例圖:用戶角度:功能、執行者
- 靜態圖:系統靜態結構
- 類圖:概念及關係
- 對象圖:某種狀態或時間段內,系統中活躍的對象及其關係
- 包圖:描述系統的分解結構
- 行爲圖:系統的動態行爲
- 交互圖:描述對象間的消息傳遞
- 順序圖:強調對象間消息發送的時序
- 合作圖:強調對象間的動態協作關係
- 狀態圖:對象的動態行爲。狀態-事件-狀態遷移-響應動作
- 活動圖:描述系統爲完成某功能而執行的操作序列
- 交互圖:描述對象間的消息傳遞
- 實現圖:描述系統的組成和分佈狀況
- 構件圖:組成部件及其關係
- 部署圖:物理體系結構及與軟件單元的對應關係
-
從軟件本質的角度,解釋軟件範圍(需求)控制的可行性
由於軟件本身的複雜性、不可見性、一致性、可變性,軟件範圍多數情況下對於客戶和開發者都是模糊的,這形成軟件產品與其他產品不同的開發過程。因此,範圍管理是軟件項目管理的重中之重。在多數情況下,客戶與開發者能就項目的 20% 內容給出嚴格的需求約定,80% 的內容都是相對模糊的。因此,圍繞客戶目標,發現並滿足客戶感興趣的內容是最關鍵的。
項目範圍的變更必然會造成項目進度計劃、人員安排、成本等各方面的變化,處理不當則會增加項目風險,甚至造成項目陷入混亂的狀態。
範圍控制就是指監控項目的範圍狀態,管理範圍變更。範圍控制的目的是在出現範圍變更需求後,管理相關的計劃、資源安排以及項目成果,使得項目各部分可以很好地配合在一起,避免變更帶來的負面影響。
未經控制的產品或項目範圍的擴大被稱爲範圍蔓延。變更是不可避免的,爲防止範圍蔓延,在每個項目上,都必須強制實施某種形式的變更控制。
2/8 法則在軟件項目中有重要的應用。由於軟件的本質,軟件範圍是模糊的,但是通常細化 20% 有效需求,可滿足 80% 客戶需要。因此,正確發現並做好這 20% 正確的事情,將會使團隊在競爭中獲取領先的位置。
2、項目管理實踐
看板使用練習(提交看板執行結果貼圖,建議使用 Git project)
- 使用截圖工具(png格式輸出),展現你團隊的任務 Kanban
- 每個人的任務是明確的。必須一週後可以看到具體結果
- 每個人的任務是1-2項
- 至少包含一個團隊活動任務
UML繪圖工具練習(提交貼圖,必須使用 UMLet)
- 請在 參考書2 或 教材 中選擇一個類圖(給出參考書頁碼圖號)
參考書2:Requirements Analysis and System Design, Leszek A. Maciaszek, 3rd Edition
P252, Figure 5.6