SlideShare a Scribd company logo
Software Architecture


CRC Card workshop




 Vakgroep Informatietechnologie – IBCN
CRC Workshops
   The CRC card workshop is a brainstorm
    technique using scenario walkthroughs to model
    the dynamic behavior of a software architecture.
   For each candidate subsystem, module or
    submodule in the architecture, a CRC-card is
    made, featuring :
         Class name
         Class type : subsystem, module or sub module
         Responsibilities : which functionality does the class perform ? (list
          attributes and methods)
         Collaborations : which other classes are needed to realize this
          functionality ?




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                      p. 2
Module Identification and Function Allocation

CRC-cards
       = Class - Responsibility - Collaboration card
       = Container for responsibilities

 Class name :
 Class type :              <system> <subsystem> <module> …
 Class characteristic :

 Responsibilities :                           Collaborations :

   Describe the functionality                        List other modules needed
        of the module                               to achieve this functionality




  Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                             p. 3
CRC identification


CRC cards:
  Show collaborations between the child modules
  Find new responsibilities based on role play
               Driven by scenarios and sequence diagrams.
      Identify new child modules




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN        p. 4
CRC Role play
   Once CRC-cards have been drawn up for each candidate,
    collaborations can be shown in a (sequence) diagram
   Often, CRC-cards are put on a whiteboard, and are
    grouped according to the level of collaboration.
   A technique to check whether all classes, responsibilities
    and collaborations are identified, consists of assigning
    each member of the group a set of CRC-cards, and to
    “play” the scenarios.
         Each time an operation is needed, the team member holding the
          CRC-card of the class involved, checks whether the functionality is
          listed, which other classes are needed (and which functionality of
          these collaborating classes is required).
         If functionality, attributes or an entire class is missing, the CRC-
          model is updated, and the role play starts all over again .


Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                     p. 5
Example



Class name :         Device Context Manager <module>
Responsibilities :                           Collaborations :




  Vakgroep Informatietechnologie – Onderzoeksgroep IBCN         p. 6
Example


Class name :           Transcoder                <module>
Responsibilities :                           Collaborations :




 Vakgroep Informatietechnologie – Onderzoeksgroep IBCN          p. 7
Software Architecture Document
   At the end of the session the results of the
    workshops have to be captured in static &
    dynamic views.
         Static views : component diagrams
         Dynamic views : white box sequence diagrams




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 8

More Related Content

PPT
Figure1
PPT
Sa 004 quality_attributes
PPT
Ds 001 nabc
PPT
Ws01 sota 2
PDF
Beyond MOOCs ctd. (2015)
PDF
You have been MOOCed
PPT
Ibb televatorpitch2 nabc
PPT
CRC Workshop
Figure1
Sa 004 quality_attributes
Ds 001 nabc
Ws01 sota 2
Beyond MOOCs ctd. (2015)
You have been MOOCed
Ibb televatorpitch2 nabc
CRC Workshop

Similar to Pr crc (20)

PPT
Sa 008 architecture_views
PPTX
Creating a shared understanding through Story Mapping, Spec by Example, & Dom...
PPTX
Ooad presentatin crc cards
PPT
Sa 006 modifiability
PPT
Software System Engineering - Chapter 10
PPTX
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
PPT
Sa002 abc
PPTX
Component based development | what, why and how
PDF
SOAT Agile Day 2017 DDD
PDF
Lecture note05 slides
PPT
Sa 009 add
PDF
Domain Driven Design
PPTX
ATDD in practice
PPT
PPT
Software System Engineering - Chapter 12
PPTX
Software Design Trilogy Part I - Responsibility Driven Design for Rubyists
PPT
Object oriented sad-5 part ii
PPT
Pressman ch-11-component-level-design
PPT
Lecture 15 requirements modeling - scenario, information and analysis class...
PPTX
L12 Visualizing Architecture
Sa 008 architecture_views
Creating a shared understanding through Story Mapping, Spec by Example, & Dom...
Ooad presentatin crc cards
Sa 006 modifiability
Software System Engineering - Chapter 10
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
Sa002 abc
Component based development | what, why and how
SOAT Agile Day 2017 DDD
Lecture note05 slides
Sa 009 add
Domain Driven Design
ATDD in practice
Software System Engineering - Chapter 12
Software Design Trilogy Part I - Responsibility Driven Design for Rubyists
Object oriented sad-5 part ii
Pressman ch-11-component-level-design
Lecture 15 requirements modeling - scenario, information and analysis class...
L12 Visualizing Architecture
Ad

More from Frank Gielen (19)

PDF
I mindsx4howest v2
PDF
I mindsx learning analytics v2
PPTX
Beyond MOOCs (2014)
PPTX
The Research Canvas
PPTX
Defining the opportunity 2013
PPT
KPMG Legal and Tax September 2013
PPTX
Dare 2 Start - Course outline
PPT
Sop test planning
PDF
Delaware presentation nov2012
PPT
Sa 008 patterns
PPT
Sa 007 availability
PPT
Pr 005 qa_workshop
PPTX
The Phonegap Architecture
PPTX
VC Do's and Don'ts - Jurgen Ingels
PPTX
Debt & Equity - Wouter Haerick
PPT
Sa 005 performance
PPT
Ws002 use cases
PPT
Sa 003 mvp
PPT
Vision workshop
I mindsx4howest v2
I mindsx learning analytics v2
Beyond MOOCs (2014)
The Research Canvas
Defining the opportunity 2013
KPMG Legal and Tax September 2013
Dare 2 Start - Course outline
Sop test planning
Delaware presentation nov2012
Sa 008 patterns
Sa 007 availability
Pr 005 qa_workshop
The Phonegap Architecture
VC Do's and Don'ts - Jurgen Ingels
Debt & Equity - Wouter Haerick
Sa 005 performance
Ws002 use cases
Sa 003 mvp
Vision workshop
Ad

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Approach and Philosophy of On baking technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Cloud computing and distributed systems.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Approach and Philosophy of On baking technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation_ Review paper, used for researhc scholars
Cloud computing and distributed systems.
Empathic Computing: Creating Shared Understanding
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Per capita expenditure prediction using model stacking based on satellite ima...
Chapter 3 Spatial Domain Image Processing.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf

Pr crc

  • 1. Software Architecture CRC Card workshop Vakgroep Informatietechnologie – IBCN
  • 2. CRC Workshops  The CRC card workshop is a brainstorm technique using scenario walkthroughs to model the dynamic behavior of a software architecture.  For each candidate subsystem, module or submodule in the architecture, a CRC-card is made, featuring :  Class name  Class type : subsystem, module or sub module  Responsibilities : which functionality does the class perform ? (list attributes and methods)  Collaborations : which other classes are needed to realize this functionality ? Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 2
  • 3. Module Identification and Function Allocation CRC-cards = Class - Responsibility - Collaboration card = Container for responsibilities Class name : Class type : <system> <subsystem> <module> … Class characteristic : Responsibilities : Collaborations : Describe the functionality List other modules needed of the module to achieve this functionality Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 3
  • 4. CRC identification CRC cards:  Show collaborations between the child modules  Find new responsibilities based on role play  Driven by scenarios and sequence diagrams.  Identify new child modules Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 4
  • 5. CRC Role play  Once CRC-cards have been drawn up for each candidate, collaborations can be shown in a (sequence) diagram  Often, CRC-cards are put on a whiteboard, and are grouped according to the level of collaboration.  A technique to check whether all classes, responsibilities and collaborations are identified, consists of assigning each member of the group a set of CRC-cards, and to “play” the scenarios.  Each time an operation is needed, the team member holding the CRC-card of the class involved, checks whether the functionality is listed, which other classes are needed (and which functionality of these collaborating classes is required).  If functionality, attributes or an entire class is missing, the CRC- model is updated, and the role play starts all over again . Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 5
  • 6. Example Class name : Device Context Manager <module> Responsibilities : Collaborations : Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 6
  • 7. Example Class name : Transcoder <module> Responsibilities : Collaborations : Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 7
  • 8. Software Architecture Document  At the end of the session the results of the workshops have to be captured in static & dynamic views.  Static views : component diagrams  Dynamic views : white box sequence diagrams Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 8