Le carte (o schede) Class Responsibility Collaboration (CRC, "responsabilità e collaborazione di classe") sono uno strumento usato per impostare un progetto software object-oriented attraverso un processo di brainstorming. Furono originariamente proposte a scopo didattico da Ward Cunningham e Kent Beck.[1] L'uso di CRC cards per le fasi iniziali di progettazione è fra le pratiche consigliate dall'extreme programming.[2]
Le carte CRC sono realizzate su piccole schede di carta o cartoncino. Ciascuna carta descrive una classe (o un oggetto) in modo sommario, indicando:
- Il nome della classe
- Le sue superclassi e sottoclassi (dove applicabile)
- Le sue responsabilità
- Il nome di altre classi con cui questa classe collabora per svolgere i compiti di cui è responsabile
- L'autore
L'uso di schede di piccole dimensioni ha lo scopo di limitare la complessità della descrizione, evitando che vengano riportate troppe informazioni di dettaglio. Serve anche a impedire che a una classe vengano assegnate troppe responsabilità. Il supporto cartaceo consente una serie di attività gestuali utili in fase di brainstorming, come piazzare le carte su un tavolo e spostarle, riorganizzarle, o anche eliminarle e sostituirle facilmente con altre nel corso della discussione. Il posizionamento delle carte su un tavolo può essere usato intuitivamente per rappresentare informazioni aggiuntive; per esempio, due carte possono essere parzialmente sovrapposte per indicare una relazione di stretta collaborazione, o una carta può essere posta sopra un'altra per indicare una relazione di controllo/supervisione.[1]
Una volta creato un sistema di carte, il team può verificare la sua efficacia provando a simulare l'esecuzione di uno scenario: è incoraggiata la pratica di prendere in mano le carte corrispondenti ai vari oggetti che entrano di volta in volta in scena.[1] L'intenzione del metodo è infatti soprattutto quella di far visualizzare agli utilizzatori la dinamica delle interazioni in un sistema object-oriented come scambio di messaggi e servizi fra entità indipendenti. Nella loro presentazione del metodo, Beck e Cunningham hanno esplicitamente ammesso che il metodo tende a sfumare la distinzione fra classi e oggetti, per cui in diversi momenti della discussione e delle simulazioni le carte possono rappresentare le une o gli altri a seconda del contesto.[1]
Schema di una carta
[modifica | modifica wikitesto]Nome della classe | Superclasse |
---|---|
Sottoclassi | |
Responsabilità | |
Collaborazioni |
Note
[modifica | modifica wikitesto]Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) A Laboratory For Teaching Object-Oriented Thinking articolo di Kent Beck e Ward Cunningham
- (EN) Descrizione CRC di HotDraw, su c2.com.
- (EN) Introduzione alle CRC cards presso extremeprogramming.org
- (EN) Using CRC Cards, su alistair.cockburn.us.