知識提煉是從問題域中提煉出相關信息的技術,其目的是構建可以知足業務用例需求的有用模型。測試
知識提煉是爲技術團隊在基於一組需求爲問題域設計解決方案時彌補所欠缺的知識的關鍵技術。翻譯
知識提煉--對問題深入理解的人--你們的共同協做。設計
知識收集過程會出如今與業務專家探討示例時的白板上,且一般會同時展開頭腦風暴。生命週期
問題域 == 業務用例 ==有用的模型 == 知識提煉。具體操做一波。事件
通用語言(UL)顯示製做,並在描述領域模型和問題域使用,該語言還應用於模型的代碼實現,使用用做類名稱,屬性和方法名稱的相同的術語和概念。資源
領域知識 == 業務知識 技術知識開發
從業務到技術的翻譯是開發人員須要具有的。io
不要將開發團隊和最理解該部分業務的人之間的溝通徹底屏蔽。軟件
模型驅動設計和領域模型的演化是一個持續過程。知識提煉在整個應用程序構建的生命週期中應該在業務參與的狀況下被持續關注。 認識到隨着系統的每一次迭代,模型都會有所演化,===模型永遠不會盡善盡美,它只是對於當前問題可用而以。程序
問題空間會給出一組需求,輸入和預期輸出 ===業務相關人員提供的。 解空間包含一個能知足需求須要的模型 ===領域專家的地盤。
問題空間 & 解空間
與領域專家一塊兒工做並非僅僅讓開發團隊可以得到他們正在處理的問題域的知識,還有助於領域專家證實其對該領域的理解。可能業務隱含的概念是由開發團隊和領域專家顯示定義的,這將使得業務自己的溝通交流獲得改善。
利用與你的領域專家在一塊兒的時間,展現對於領域知識的渴望。
你們都很忙,要有趣。
首先處理問題域中讓業務人員須要深夜加班的部分--那些將使得業務發生改變且對於應用程序取得成功是核心的部分。
最有意思的對話將揭示出你應該在何處花費最大的精力來達成共識和建立通用語言。
用例會列出達成目標所需的步驟,其中包括用戶和系統之間的交互。
CRC卡被劃分三個部分且包含如下信息
術語要準確,沒法表達時,能夠暫緩命名。
行爲驅動開發(BDD) 是一種軟件開發過程,基於測試驅動開發(TDD),其專一於獲取系統的行爲,而後由外而內地驅動設計。
BDD 關注的是軟件行爲、系統應該產生怎樣的行爲。 DDD 關注的是用於實現行爲的軟件核心的領域模型,細微可是重要的區別。
理解用戶,用戶的需求是基於當前系統的想象,而不是其最終的目的。必須共享和理解隱含的願景,而且認識到業務試圖達成什麼,這樣才能創造真正的業務價值。
事件風暴是一種研討會活動,它旨在爲業務和開發團隊以一種有趣動人的方式快速創建對問題域的理解。
對問題域的探討過程。
理解業務試圖做出的影響,更有效的幫助他們達成目標。 要求提出更好的問題,明白要達成的目的。
Busines Model Generation