The Geek Inside

Julio Carlos Sánchez Blog

Técnicas de descubrimiento de clases

De las partes más importantes cuándo diseñamos un sistema haciendo uso del paradigma de Orientación a Objetos es el descubrimiento de clases. El uso de técnica de descubrimiento de clases nos ayuda a mitigar riesgos como: tener clases que no representan nada relevante para el sistema, omisión de clases, tener clases con muchas responsabilidades, o clases irresponsables :D, etc.

Existen diferentes técnicas para esta actividad, en este artículo describiré dos de ellas, haciendo hincapié en que no son las únicas, pero si las más usadas. Es importante tratar de usar sólo una técnica durante el desarrollo del sistema para no incurrir en conflictos de clasificación.

Para llevar a cabo el descubrimiento se hace a partir de nuestros documentos de dominio tales como: user stories, use cases, feature list, glosarios, material publicitario, etc. Esta lista de documentos puede diferir dependiendo de la metodología que usemos para el desarrollo del sistema.

Manos a la obra…

Una de las mejores maneras de aprender algo es a través de ejemplos, por lo que para la demostración del uso de ambas técnicas tomaremos como base el siguiente fragmento de un caso de uso en el que resaltaremos los sustantivos en negritas y los verbos en itálicas:

  1. El cliente llama por teléfono
  2. El operador ofrece al cliente los productos del catálogo.
  3. El cliente selecciona uno o varios productos
  4. El operador genera la factura con los productos seleccionados
  5. El operador le ofrece al cliente opciones de pago

  1. Sustantivos, Verbos e inspección gramátical

    En esta técnica se listan los sustantivos descubiertos en los documentos antes mencionados, los verbos que los afectan a estos sustantivos y las relaciones de entre ellos.

    Como podemos observar tenemos las siguientes clases identificadas a partir de los sustantivos

    • Cliente
    • Telefono
    • Operador
    • Producto
    • Catalogo
    • Factura
    • OpcionesPago

    Las siguientes acciones, que son los verbos en infinitivo.

    • llamar
    • ofrecerProductos
    • seleccionarProductos
    • ofrecerOpcionesPago

    y por último las relaciones entre ellos

    • Por cada cliente hay un operador
    • El catálogo consta de varios productos
    • El cliente puede seleccionar uno o mas productos
    • La factura consta de uno a mas productos
    • Existen diferentes formas de pago

  2. Clasificación por tipo

    En está técnica se utilizan tablas de tipos con los que clasificaremos los sustantivos, verbos e interacciones encontrados en los documentos de dominio.

    Las siguiente tabla de clasificación es de las más populares:

    TipoClase o acción descubierta
    Cosas tangiblesTeléfono, Producto, Factura
    RolesCliente, Operador
    EventosOfrecer productos, Ofrecer formas de pago, …
    InteraccionesLlamar, Seleccionar, …
    LugaresOficina matriz, sucursal, …
    ConceptosFacturar, …
    Sistemas ExternosSistema de pagos con TDC

Para el modelado de nuestra solución lo podemos hacer con un modelo UML o en su defecto con tarjetas CRC (Class-Responsibility-collaborator), con el apoyo en la información obtenida con cualquiera de las dos técnicas arriba mencionadas.

El modelo se irá refinando mientras se van descubriendo más clases, acciones o interacciones de los documentos de dominio.

Primera versión de la solución en notación UML.
 |  Related posts

1 Comment so far

  1. reyesmjm November 7th, 2006 4:54 pm

    La verdad que estos metodos los explicaste de una manera clara y sencilla. Y que mejor entenderlo con un ejemplo.

Leave a reply

Mexico