Pr crc

8
Vakgroep Informatietechnologie – IBCN Software Architecture CRC Card workshop

description

Man

Transcript of Pr crc

Page 1: Pr crc

Vakgroep Informatietechnologie – IBCN

Software Architecture

CRC Card workshop

Page 2: Pr crc

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

Page 3: Pr crc

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 3

Module Identification and Function Allocation

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

Responsibilities : Collaborations :

Class name :

Class characteristic :

Class type :

Describe the functionalityof the module

List other modules neededto achieve this functionality

<system> <subsystem> <module> …

Page 4: Pr crc

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 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

Page 5: Pr crc

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

Page 6: Pr crc

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 6

Example

Responsibilities : Collaborations :

Class name : Device Context Manager <module>

Page 7: Pr crc

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 7

Example

Responsibilities : Collaborations :

Class name : Transcoder <module>

Page 8: Pr crc

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