CRC Cards Extreme Programming

Le CRC Cards sono uno strumento di Design.

CRC sta per Class Responsibility Collaboration. Ogni Card ha principalmente tre aree. In alto vi è una sezione dedicata al nome della classe. Al di sotto vi sono le altre due aree, così suddivise: a sinistra l’area delle Responsabilità (della classe) e a destra l’area delle Collaborazioni.

Solitamente parto dalla descrizione del progetto o del problema. Devo avere una descrizione testuale. Inizio a leggere la descrizione testuale e i nomi, gli oggetti software sono candidati a diventare le classi, ovvero saranno scritti nelle CRC Cards nella sezione della classi. Le responsabiltà di ogni singola classe viene scritta nella sezione opportuna. E infine le Collaborazioni sono come interagiscono le classi in oggetto, ovvero ad esempio il nome dei metodi. Quindi nell’analisi testuale del problema accade spesso che:

  • i nomi sono i candidati a diventare classi

  • gli aggettivi sono i candidati a diventare attributi delle classi

  • i verbi sono i candidati a diventare i metodi delle classi

Mentre si esegue questo tipo di design ci si rende conto quali classi è meglio progettare e la poro interazione con le altre classi.

Le CRC Cards sono economiche (fogli o cartoncini di carta solitamente, indicativamente di 4 X 6 pollici), facili, semplici e leggibili. Inoltre le dimensioni ridotte permettono anche di semplificare il Design, in modo che non vengano riportate informazioni che sono dei dettagli.

Le CRC Cards inoltre consentono una progettazione ad oggetti ovvero permettono di imparare il meccanismo di come un design ad oggetti può/deve funzionare.

Le CRC vengono create o su una scrivania oppure su una lavagna e poi engono in fare di progettazione spostare, vengono create altre Cards oppure eliminate, riorganizzate oppure sostituite, in modo che le cards corrispondano agli scenari che si vogliono rappresentare. Il sistema che si viene a creare consente una rappresentazione Object Oriented e tale rappresentazione viene stimolata da questa stessa metodologia di design.

Inoltre una volta disposte graficamente solitamente si individuano anche le superclassi e le sottoclassi.

 

Alessandro Ceseno

PS: se hai domande scrivimi pure per mezzo della sezione contatti.