Pages Menu
Categories Menu

Posted by on Mar 26, 2014 in General | 0 comments

CRC, RDD y una presentación sobre el método. Algo muy recomendable para diseño OO

En 1989 Kent Beck (sí, el autor de eXtreme Programming, entre otros muchos) y Ward Cunningham presentaron artículo en la OOPSLA ’89 (te recomiendo leer qué es la OOPSLA, de donde salieron “cosas” como Scrum, los patrones, el rational rose, el TDD, etc., durante mucho tiempo fue la conferencia de referencia en el sector) donde presentaban las tarjetas CRC (aquí tienes el artículo original).

Las tarjetas CRC se idearon para enseñar orientación a objetos. Yo las use mucho tiempo en proyectos OO, y son una técnica muy eficaz.

CRC es el acrónimo de “Class Responsibility Collaborator”. Una “Clase” representa objetos similares, la “Responsabilidad” es algo que una clase conoce o hace y un “Colaborador” es otra clase con la que interactúa para poder cumplir sus responsabilidades.

Para obtener las clases se utilizan tarjetas, cada tarjeta será una clase. Cada tarjeta tiene escrito el nombre de la clase su responsabilidad y colaboraciones.

Las CRC tienen ese toque “pósit” que maduraría posteriormente en la agilidad. De hecho, las CRC son una de las técnicas de eXtreme Programming (de siempre el método más fuerte en agilidad, hasta que compartió popularidad con Scrum), te dejo también una presentación sobre eXtreme Programming y Agilidad (ojo, del 2001).

Responsibility-driven design (RDD)

Relacioandas con las CRC, Responsibility-Driven Design (RDD) es una técnica de diseño orientado a objetos que se basa, pone un método, en las CRC, dice los pasos para trabajar con las CRC. Los autores de RDD son Rebecca Wirfs -Brock (muy popular en aquellos tiempos en que la OO estaba de moda) y Brian Wilkerson.

El objetivo es convertir requisitos en clases. El método se basa en las ideas “cliente – servidor”, hay clases (u objetos para ser más exactos) que harán de cliente y otros de servidor. La idea es preguntarse “de qué acciones es responsable este objeto” y “qué información debe proporcionar”.

Lo importante del método es que obliga a pensar en los objetos según su responsabilidad y evitar pensar en datos.

El libro que describe el méodo, le que yo me leí en su momento, es el Designing Object-Oriented Software, antiguo pero muy recomendable.

Para no extender el post, te dejo un resumen de RDD – CRC en la siguiente presentación. Espero que te sea útil.

Javier Garzás

Javier Garzás

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.
Javier Garzás

Post a Reply

Tu dirección de correo electrónico no será publicada.

Share This