在迭代開發中,我們并非一次就實現所有需求。
在多個迭代里對同一用例進行增量式開發。
細化階段:構建核心架構,解決高風險元素,定義大部分需求,以及預計總體進度和資源。(包括了三到四次的細化迭代)
關鍵思想和最佳實踐:
實行短時間定量、風險驅動的迭代
及早開始編程
對架構的核心和風險部分進行適應性設計、實現和測試
盡早、頻繁、實際的測試
基于來自測試、用戶、開發者的反饋進行調整
通過一系列討論會,詳細編寫大部分用例和其他需求,每個細化迭代進行一次
制品:領域模型、設計模型、軟件架構文檔、數據模型、用例、用戶界面原型。
領域模型
領域模型是對領域內的概念類或現實世界中對象的可視化表示。
應用UML表示法,領域模型被描述為一組沒有定義操作的類圖,反映屬性和關聯。(一定注意,它不是軟件對象!是概念對象!)
準則:
使用領域術語
認真汲取領域專家所使用的核心詞匯和概念
如果某概念類不是現實世界中的數字或文本,那么她可能是概念類而不是屬性
需要描述類:1、需要有關商品或服務的描述,獨立于任何商品或服務的現有實例;2、減少冗余或重復信 息
避免加入大量關聯,添加關聯是為了突出對重要關系的大致理解,而非記錄對象或數據的結構
通過關聯而不是屬性來表示概念類之間的關系,領域模型中屬性的類型應該是數據類型(基本類型)
對數量和單位建模
每次迭代的領域建模不超過幾個小時。
系統順序圖
系統順序圖(SSD)是為闡述與所討論系統相關的輸入和輸出事件而快速、簡單地創建的制品。是操作契約和對象設計的輸入。
SSD展示了直接與系統交互的外部參與者、系統(作為黑盒)以及由參與者發起的系統事件。這些事件是通過用例文本總結出來的。
應為每一個用例的主成功場景,以及頻繁發生的或者復雜的替代場景繪制SSD。
基本上軟件系統要對三種事件進行響應:來自于參與者的外部事件,時間事件,錯誤和異常(通常源于外部)。
系統事件應該在意圖的抽象級別而非物理的輸入設備級別來表達。
操作契約
操作契約使用前置和后置條件的形式,描述領域模型里對象的詳細變化。其中的關鍵元素是后置條件。
為系統操作定義操作契約。系統操作在繪制SSD草圖時確定。
后置條件描述了領域模型內對象狀態的變化。可分為三種類型:創建或刪除實例,屬性值的變化,形成和消除關聯。注意,它描述的是所需的變化,而不是這些變化是如何完成的。以說明性的、被動式的過去時態編寫后置條件。(例如,創建了xx,而不是創建xx)
邏輯架構和UML包圖
邏輯架構是軟件類的宏觀組織結構,它將軟件類組織為包(或命名空間)、子系統和層等。
UML包圖常用于描述系統的邏輯架構--層、子系統、包等。
將系統的大型邏輯結構組織為獨立的、職責相關的離散層,具有清晰、內聚的關注分離。
協作和耦合是從較高層到較低層進行的,要避免從較低層到較高層的耦合。較低層包含可復用功能。
可以將應用邏輯層更準確地稱為架構的領域層,即包含領域對象(注意領域模型與領域對象是不同的兩個概念),處理應用邏輯的層。
領域層是軟件的一部分,領域模型是概念角度分析的一部分。
從UI層發送到領域層的消息將是SSD中所描述的消息。
輕量級繪圖然后編碼。
http://www.aygfsteel.com/ronghao 榮浩原創,轉載請注明出處:)
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
30 | 1 | 2 | 3 | 4 | 5 | 6 |
關注工作流和企業業務流程改進。現就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100
常用鏈接
留言簿(38)
隨筆分類
- ajax相關(9)
- cms(7)
- Head First Process-深入淺出流程(15)
- j2se基礎(6)
- JbpmSide(6)
- OOA/OOD(4)
- SOA、BPM(26)
- 工作日志(24)
- 工作流jbpm3(10)
- 張小慶,在路上(42)
- 心情小站(24)
- 權限相關(12)
- 表現層相關(4)
- 轉載(4)
隨筆檔案
- 2013年8月 (1)
- 2012年12月 (1)
- 2012年1月 (3)
- 2011年12月 (2)
- 2011年11月 (2)
- 2011年10月 (3)
- 2011年9月 (3)
- 2011年8月 (7)
- 2011年7月 (4)
- 2011年6月 (3)
- 2011年5月 (5)
- 2011年4月 (6)
- 2011年3月 (4)
- 2011年2月 (2)
- 2010年9月 (1)
- 2010年6月 (1)
- 2010年5月 (1)
- 2010年3月 (4)
- 2010年1月 (2)
- 2009年11月 (5)
- 2009年10月 (4)
- 2009年9月 (1)
- 2009年7月 (1)
- 2009年6月 (2)
- 2009年5月 (2)
- 2009年4月 (1)
- 2009年3月 (4)
- 2009年2月 (2)
- 2008年12月 (1)
- 2008年11月 (1)
- 2008年10月 (1)
- 2008年9月 (2)
- 2008年8月 (2)
- 2008年7月 (2)
- 2008年6月 (3)
- 2008年5月 (4)
- 2008年4月 (1)
- 2008年3月 (2)
- 2008年2月 (2)
- 2008年1月 (4)
- 2007年11月 (3)
- 2007年10月 (3)
- 2007年9月 (2)
- 2007年8月 (4)
- 2007年7月 (1)
- 2007年6月 (12)
- 2007年5月 (2)
- 2007年4月 (1)
- 2007年3月 (8)
- 2007年2月 (6)
- 2007年1月 (4)
- 2006年12月 (4)
- 2006年11月 (3)
- 2006年10月 (1)
- 2006年8月 (2)
- 2006年7月 (3)
- 2006年6月 (3)
- 2006年4月 (1)
- 2006年3月 (2)
- 2006年2月 (2)
- 2006年1月 (4)
- 2005年12月 (7)
- 2005年11月 (12)
文章分類
文章檔案
常去的網站
搜索
最新評論

- 1.?re: 使用Handler來增強Web服務的功能
- asdfasfd
- --ads
- 2.?re: 使用solr搭建你的全文檢索
-
@木哥哥
你的分詞器用的是什么啊?mmseg貌似可以的 - --陳冠馳
- 3.?re: 使用solr搭建你的全文檢索
-
@marten這是你的solr的schame.xml配置文件有問題。好好檢查下你的配置文件里面的字段什么的配置對著沒
- --陳冠馳
- 4.?re: 討論一下你覺得一個工作流產品好的標準
- 評論內容較長,點擊標題查看
- --深圳非凡信息技術有限公司
- 5.?re: DisplayTag應用
- name="test"從哪里來的,千篇一律的到處使用test卻沒有test的定義,sb
- --qige