UML學習筆記—基本概念和初始階段
阿新 • • 發佈:2020-07-14
# 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]. 李洋等譯. 機械工業出版社,