1.建模和uml
軟件開發的需求目的是:讓系統更加的好賣
軟件開發中設計的目的是:降低開發維護成本
利潤 = 需求 - 設計
-
需求和設計不分,利潤就會縮水
- 從需求直接映射設計,會得到大量重複的代碼
- 從設計直接定義需求,會得到一堆假需求
-
需求:
需求包是基於涉衆視角對系統功能分包而得到的
子系統是基於內部視角根據系統部件的耦合和內聚情況切割而得到的
設計源於需求,高於需求
-
需求和設計的區別
需求 設計 賣的視角 做的視角 具體 抽象 產品當項目做 項目當產品做
2.建模工作流
業務建模:描述組件內部各個系統(人腦系統,或者非人系統)如何協作,使得組織可以爲其他組織提供有價值的服務
-
需求:爲了解決組織的問題,系統必須有功能和性能
從賣的視角思考涉衆的利益
需求工作流的結果:需求規約是賣和做的銜接點
分析:爲了滿足功能需求,找到系統的核心域機制
設計:爲了滿足質量需求和設計規約,核心域機制如何映射到選定的平臺
不同工作流的區別不在形式而在於內容(思考的邊界)
不要把敏捷迭代作爲偷懶的庇護所
-
需求和設計的兩種途徑:
- 用於表達建模得到的結果,如:需求和設計不是一一對應的
- 用於表達建模的工作流,即:需求工作流和設計工作流
- 爲了得到需求:需要做的建模工作流有:業務建模和需求
- 爲了得到設計:需要做的建模工作流有:分析和設計
在開發過程中不要用草圖,本質上是想通過形式的醜陋掩蓋內容上的醜陋
3.UML圖
- 需要掌握的三種uml:用例圖、序列圖、類圖
結構圖 | 行爲圖 |
---|---|
類圖、組件圖、對象圖等 | 活動圖、用例圖、狀態機圖、交互圖(序列圖、通信圖、時間圖等) |