1. 程式人生 > >UML學習筆記—基本概念和初始階段

UML學習筆記—基本概念和初始階段

# chpater1 ### 1、什麼是分析和設計 分析:對問題和需求的調查研究 設計:滿足需求的概念上的解決方案 *做正確的事(分析)和正確地做事(設計)* ### 2、什麼是Object-Oriented-Analysis (面向物件分析) 在問題領域發現和描述物件(或概念)**從問題發現需求然後從需求中抽象出物件* * finding and describing the** **concepts in (not software object or class)** **the problem domain ### 3、什麼是Object-oriented-Design(面向物件設計) 定義軟體物件以及他們如何協助以實現需求 defining how the software objects collaborate to fulfill the requirements ### 4、什麼是UML(統一建模語言) 統一建模語言 是描述、構造和文件化系統製品的視覺化語言 a visual language for specifying, constructing and documenting the artifacts of systems ### 5、為什麼需要UML 1. **Use graphic notation to communicate more clearly than nature language (imprecise) and code (too detailed)** 使用圖形符號比自然語言和程式碼能更清晰地交流 2. **Help acquire an overall views of a system** 幫助獲取系統的整體檢視 3. **UML is not dependent on any one language or technology** UML不依賴任何語言和技術 4. **UML move us from fragmentation to standardization** UML使我們從零碎到標準化 ------ # chpater2 ### 1、什麼是UP(統一過程) 軟體開發過程描述了構造、部署和維護軟體的方式 UP is an Iterative and Evolutionary Development,Sample structure to apply OOA/D and UML RUP(Rational Unified Process):對UP的精化 ### 2、為什麼使用UP 1. UP is an iterative process. 2. UP practices provide an example structure for how to do and thus how to explain OOA/D 3. UP is flexible, and can be applied in a lightweight and agile approach ### 3、什麼不是UP **waterfall lifecycle** 試圖在程式設計前定義大部分或全部的需求,是一種linear方法 ### 4、What is Iterative and Evolutionary Development(迭代和進化式開發)? **迭代:** development is organized into **a series of short, fixed-length (for example, three-week) mini-projects** *開發被組織成一系列短的、定長的小專案,相當於每次只實現系統的一部分* 迭代的優點(*P17*) - less project failure, better productivity, and lower defect rates - early rather than late mitigation of high risks - early visible progress - early feedback, user engagement, and adaptation leading to a refined system that more closely meets the real needs of the stakeholders - managed complexity - the learning within an iteration can be methodically used to improve the development process itself, iteration by iteration ------ # Inception初始階段 ## chapter4 ### 1、什麼是Inception 預測專案的範圍、設想和業務案例(Envision the product scope, vision, and business case)*初始階段不是需求分析而是可行性分析* 解決的主要問題:涉眾是否對專案設想達成基本一致,專案是否值得投入認真的調查 Do the stakeholders have basic agreement on the vision of the project, and is it worth investing in serious investigation ### 2、初始階段會建立的製品(Artifacts) - Vision and Business case 設想和商業用例 - Use-case Model 用例模型——按功能需求,在初始階段確定大部分用例名並詳細描述10%的用例 - Supplementary Specification 補充性規格說明——考慮對架構會產生主要影響的非功能性需求 - Glossary 詞彙表——描述領域術語和資料字典 - Risk list and Risk Management Plan 風險列表和風險管理計劃 - Prototypes and proof-of-concepts 原型和概念證明 - Iterations Plan 迭代計劃 - Phase Plan and Software Development Plan 階段計劃和軟體開發計劃 - Development Case 開發用例 ------ ## chapter6 ### 1、什麼是用例 用例是**文字形式**的情節描述,說明某參與者使用系統實現某些目標 用例圖:*P68* ### 2、用例的組成 | **用例組成** | **註釋** | | ------------------------------------- | ------------------------------------------------------------ | | 用例名稱 | 動詞開始 | | 範圍Scope | 歸屬的系統 | | 級別 | 使用者目標或子功能 | | 主要參與者Actor | | | 涉眾及關注點Stakeholder and Interests | 用例涉及到哪些使用者以及他們的利益,例如管理員希望能快速、準確新增資料並且沒有錯誤發生 | | 前置條件 Preconditions | 用例開始前必須為真的條件,例如使用者必須已登入 | | 後置條件 Postconditions | 用例完成必須滿足的條件,例如庫存資訊被更新 | | 主成功場景 Main Success Secnrio | 用例主事件流 | | 拓展 Extensions | 對主事件流的拓展,例如密碼錯誤時會發生的事件流 | | 特殊需求 | 用例相關的非功能性需求,例如介面支援中英文、響應時間小於多少秒 | >
參考文獻 >(美)Carig Larman著. UML模式和應用(原書第三版)[M]. 李洋等譯. 機械工業出版社,