Carte di Class Responsibility Collaboration

Da Wikipedia, l'enciclopedia libera.

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:

  1. Il nome della classe
  2. Le sue superclassi e sottoclassi (dove applicabile)
  3. Le sue responsabilità
  4. Il nome di altre classi con cui questa classe collabora per svolgere i compiti di cui è responsabile
  5. 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 informazione aggiuntiva; 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 sorgente]

Nome della classe Superclasse

Sottoclassi
Eventuali classi derivate

Responsabilità
Responsabilità degli oggetti della classe: di quali informazioni sono depositari, quali azioni eseguono

Collaborazioni
Relazioni con altre classi

Note[modifica | modifica sorgente]

  1. ^ a b c d Kent Beck e Ward Cunningham, A Laboratory For Teaching Object-Oriented Thinking (articolo)
  2. ^ Introduzione alle CRC cards presso extremeprogramming.org

Collegamenti esterni[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]