O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Responsibility Driven Design -
CRC Card
2017/1/4
Taka Wang
Domain, Concept and Analysis
物件導向分析 (Object-Oriented
Analysis, OOA) 強調如何從問題領
域 (Problem Domain) 的描述建立
使用案例模型 (Use Case Mod...
Object-Oriented Analysis
在物件導向分析階段並不用考量實作細節,我們主要是找出系統功能和服務,以
便能夠作出對的事情。事實上,物件導向分析就是在回答下列問題:
1. 軟體系統能做什麼事?
2. 在軟體系統中有哪些類別?
...
CRC Card
CRC卡是 (Kent Beck 和 Ward Cunningham, 1989 OOPSLA) 發展的技術,CRC代
表類別(Class)、責任 (Responsibilities) 和合作 (Collaborators)
...
CRC Card
CRC cards - 非正規物件導向發展技術
CRC Card (3 inch x 5 inch)
http://cc.web2.ncut.edu.tw/ezfiles/26/1026/img/140/20050413_UML.pdf
CRC card methodology (1/2)
1. 挑一組相關 use cases (不是只針對單一的 use case 做模型),看起來有共同的底
層 (共同object types) 的 use cases 來 model。這樣提供...
CRC card methodology (2/2)
4. 要測試這個模型好不好的方法是,改變一下 use case 的情景(假想需求變更),看
這組卡片是不是仍能完成這個情景,或是需要小調整一些責任,或是需要增加新的卡
片,或是要做更大的更動...
ATM自動櫃員機 範例
ATM自動櫃員機 (1/4)
先抓出兩個 Domain Model
http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt
ATM自動櫃員機 (2/4)
因為一個銀行客戶可以擁有1~2個
帳戶和一張金融卡,可以使用金融
卡號取得此帳戶的所有帳戶清單
ATM自動櫃員機 (3/4)
抓出剩餘的兩個 Domain Model
ATM自動櫃員機 (4/4)
建立
Conceptual Model
參考文獻
● http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt
● http://web.ydu.edu.tw/~alan9956/doc100/100-02.sa/oo...
Próximos SlideShares
Carregando em…5
×

CRC Card

Review CRC Card methodology

  • Entre para ver os comentários

CRC Card

  1. 1. Responsibility Driven Design - CRC Card 2017/1/4 Taka Wang
  2. 2. Domain, Concept and Analysis 物件導向分析 (Object-Oriented Analysis, OOA) 強調如何從問題領 域 (Problem Domain) 的描述建立 使用案例模型 (Use Case Model), 然後識別出物件,在抽象化成類別 後建立領域模型 (Domain Model), 最後指定類別責任來建立概念模型 (Conceptual Model)。 http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt http://web.ydu.edu.tw/~alan9956/doc100/100-02.sa/ooad-uml-chap04.pdf Fowler's Category: ● Conceptual ● Specification (Abstract) ● Implementation (Concrete)
  3. 3. Object-Oriented Analysis 在物件導向分析階段並不用考量實作細節,我們主要是找出系統功能和服務,以 便能夠作出對的事情。事實上,物件導向分析就是在回答下列問題: 1. 軟體系統能做什麼事? 2. 在軟體系統中有哪些類別? 3. 每一個類別負責什麼? use case diagrams 建立類別 (Class) 指定責任 http://web.ydu.edu.tw/~alan9956/doc100/100-02.sa/ooad-uml-chap04.pdf
  4. 4. CRC Card CRC卡是 (Kent Beck 和 Ward Cunningham, 1989 OOPSLA) 發展的技術,CRC代 表類別(Class)、責任 (Responsibilities) 和合作 (Collaborators) 軟體物件有如人們具有責任 (responsibilities),有些 責任必需與他人合作 (collaborate) 才能完成工作 - Craig Larman from Applying UML and Patterns CRC cards - 非正規物件導向發展技術
  5. 5. CRC Card CRC cards - 非正規物件導向發展技術
  6. 6. CRC Card (3 inch x 5 inch) http://cc.web2.ncut.edu.tw/ezfiles/26/1026/img/140/20050413_UML.pdf
  7. 7. CRC card methodology (1/2) 1. 挑一組相關 use cases (不是只針對單一的 use case 做模型),看起來有共同的底 層 (共同object types) 的 use cases 來 model。這樣提供情境讓我們可以討論。 2. 每個物件用一張卡片來表示。將有動作的物件卡片放在桌上。從 Actor 的 Trigger 開始。 3. 走過各個 use cases (scenario),將卡片取名,決定每個卡片的責任與如何處理 request,標示在卡片上。完成以後一組這樣的卡片就是一個物件模型。 Using CRC cards 物件模型的觀念與誤解
  8. 8. CRC card methodology (2/2) 4. 要測試這個模型好不好的方法是,改變一下 use case 的情景(假想需求變更),看 這組卡片是不是仍能完成這個情景,或是需要小調整一些責任,或是需要增加新的卡 片,或是要做更大的更動才能完成。最好的模型會最簡單,而又在最小的調整下應付 最多的需求變更。<<類似BDD,此手法跟DDD找BC方式呼應>> 5. 把這組卡片推到一邊(先不要丟掉,可能隨時要拿出來參考)。試著找出不同的模型 ,加入新的卡片。讓這個設計不斷演化,不要忘了用前一步的方法測試新設計。 6. 把最後找出最好的模型記錄下來。記錄下主要的 responsibility 與 interaction。
  9. 9. ATM自動櫃員機 範例
  10. 10. ATM自動櫃員機 (1/4) 先抓出兩個 Domain Model http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt
  11. 11. ATM自動櫃員機 (2/4) 因為一個銀行客戶可以擁有1~2個 帳戶和一張金融卡,可以使用金融 卡號取得此帳戶的所有帳戶清單
  12. 12. ATM自動櫃員機 (3/4) 抓出剩餘的兩個 Domain Model
  13. 13. ATM自動櫃員機 (4/4) 建立 Conceptual Model
  14. 14. 參考文獻 ● http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt ● http://web.ydu.edu.tw/~alan9956/doc100/100-02.sa/ooad-uml-chap04.pdf ● http://cc.web2.ncut.edu.tw/ezfiles/26/1026/img/140/20050413_UML.pdf ● Using CRC cards ● CRC cards - 非正規物件導向發展技術 ● 物件模型的觀念與誤解 ● http://www.csie.sju.edu.tw/cm/course/softengineer/OOAD_10.ppt ● https://www.cs.cmu.edu/~charlie/courses/15-214/2013-spring/slides/09_uml. pdf (cmu cs. 15-214 Principles of Software Construction: Objects, Design and Concurrency)

×