Cartes CRC (Classe, Responsabilité, Collaborateurs)

Pratique

De quoi s'agit-il?

Les cartes CRC sont un exercice mélant "jeux de rôles" et conception objet.

Afin de décrire rapidement plusieurs manières d'aborder la conception d'une même partie du système, on écrit sur des fiches cartonnées les noms des principales classes concernées, et, afin de cerner la façon dont elles interagissent, les responsabilités de chacune et celles avec lesquelles elles doivent collaborer.

On cherche ensuite à valider le modèle de conception en simulant un scénario d'exécution, chaque développeur participant à la réunion jouant le rôle d'une des classes concernées.

Ainsi un dialogue typique pourrait être: "Bonjour Contrôleur d'Authentification, je suis une Requête Web" - "Très bien, je vais noter vos informations d'identité et l'opération que vous souhaitez effectuer et les transmettre au Gestionnaire d'Accès, s'il vous accepte je vous redirigerai vers l'Afficheur de Page", etc.

Origines

  • La technique des cartes CRC est inventée par Ward Cunningham en reprenant, sur des fiches cartonnées, la maquette d'une application Hypercard destinée à documenter la conception d'un système; elle fait l'objet d'un article coécrit avec Kent Beck (1989)

  • (Pour l'anecdote, c'est à partir de l'idée originale de cette même application que Ward Cunningham invente en 1995 le concept du Wiki, qui devient quelques années plus tard l'ancêtre de Wikipedia et l'une des innovations les plus marquantes de ce qu'il convient d'appeler le Web 2.0)