E2 Sesion03 Tarjeta CRC

download E2 Sesion03 Tarjeta CRC

of 20

Transcript of E2 Sesion03 Tarjeta CRC

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    1/20

    ELECTIVO II

    SESION 03:TARJETA CRC

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    2/20

    Introduccin

    La tcnica Clase, Responsabilidad yColaboracin (CRC) creada por Kent Beck yWard Cunningham ayuda a realizar el anlisiso el diseo orientado a objetos y sirve paraintroducir al estudiante en el pensamientoorientado a objetos.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    3/20

    Introduccin

    La gran mayora de los autores de metodologas

    de desarrollo orientadas a objetos, coinciden en

    que la identificacin de un conjunto apropiado de

    clases y su correcta asignacin deresponsabilidades, son los pilares fundamentales

    de un diseo orientado a objetos.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    4/20

    Utilidad de las tarjetas CRC

    Identificar las clases que participan del diseo

    del sistema.

    Obtener las responsabilidades que deben

    cumplir cada clase.

    Establecer cmo colabora una clase con otras

    clases para cumplir con sus responsabilidades.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    5/20

    Proceso de desarrollo: Clases

    La clase representa una coleccin de objetos similares. Aqu es

    donde se encuentran todas las clases involucradas en el sistema.

    Para localizar estas clases se recomienda lo siguiente:

    Listar todas las clases: Listar las clases que se encuentren en la

    especificacin de requerimientos.

    Modelar los objetos fsicos: Las instancias de aquellas clases

    que son fsicas que se pueden tocar, tienen que ser

    modeladas.

    Modelar las entidades conceptuales.

    Seleccionar de varios conceptos iguales el que ms representeo describa al objeto

    Tener cuidado con los adjetivos.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    6/20

    Proceso de desarrollo: Clases

    Tener cuidado con oraciones que tengan sujetos engaosos.

    Modelar categoras; reconocer superclases, subclases y clases

    abstractas.

    Modelar interfaces del sistema.

    Modelar valores de atributos, no los atributos mismos. Localizar la parte interactiva con el sistema o parte del sistema

    Usar una o dos palabras que describan la clase.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    7/20

    Proceso de desarrollo: Clases

    Despus de haber identificado las clases, mediante el anlisisde las especificaciones de requerimientos, es necesario llenar

    una tarjeta, la cual contiene tres partes:

    En la parte superior se coloca el nombre de la clase, al reverso

    de la tarjeta se recomienda escribir una breve descripcin delpropsito de la clase.

    Se escribe una tarjeta para cada clase encontrada en los

    requisitos.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    8/20

    Proceso de desarrollo: Clases

    Cuando una clase tiene una superclase o subclasepuede ser representada de la siguiente forma:

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    9/20

    Proceso de desarrollo: Responsabilidades

    Una responsabilidad es algo que una clase conoce o

    hace.

    Son todos los servicios que un objeto puede realizar

    y que mantiene en un contrato que tiene con otros

    objetos. Cabe recordar que el contrato entre 2 clases

    representa una lista de servicios. Un servicio puede

    realizar una accin o regresar alguna informacin.

    Las responsabilidades representan la parte pblica

    de los objetos, debido a que un contrato cliente-servidor no se necesita conocer como se hacen las

    cosas, sino que cosas se hacen.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    10/20

    Proceso de desarrollo: Responsabilidades

    Identificacin de las responsabilidades

    Para llevar acabo la identificacin de las

    responsabilidades se usan dos fuentes, la

    especificacin de requerimientos y las clases que ya

    han sido identificadas.

    La Especificacin de requerimientos: volver a leer el

    documento e identificar los verbos que representan

    acciones que un objeto puede tomar y hacer dentro

    del sistema.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    11/20

    Proceso de desarrollo: Responsabilidades

    Identificacin de las responsabilidades

    Las Clases: una vez que se ha analizado y realizado

    esta etapa se puede usar la informacin con la que se

    cuenta y as poder usar la descripcin de la clase

    para poder identificar sus responsabilidades las

    cuales deber cumplir el objetivo de la creacin de

    dicha clase.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    12/20

    Proceso de desarrollo: Responsabilidades

    Recomendaciones para identificar responsabilidades

    Preguntar que clases se conocen.

    Preguntar que clases se hacen.

    Si ya se tiene identificada la responsabilidadpreguntar que clase seguir.

    Clases que colaboraran para el llenado de muchas de

    sus responsabilidades.

    Establecer responsabilidades generales. No permitir informacin duplicada de objetos.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    13/20

    Proceso de desarrollo: Responsabilidades

    Identificar clases mediante sus relaciones con otras

    clases, es otra forma que existe para identificar las

    responsabilidades es mediante las relaciones que hay

    entre las clases. Se encuentran tres tipos de relaciones:

    Es un tipo de:Esta relacin es un tipo que representa una

    relacin de subclase que hereda una super-clase.

    Es igual que:Cuando dos clases son anlogas quiere decir que

    pueden tener una super-clase comn, lo cual indica tambin

    que pueden tener las mismas responsabilidades. Es parte de: Cuando una clase, esta compuesta de otras clases

    pero no de su comportamiento.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    14/20

    Proceso de desarrollo: Responsabilidades

    Registro de responsabilidadesPor cada tarjeta CRC que se tiene, en la parte inferior izquierda

    colocar todas las responsabilidades para dicha clase.

    Si la clase tiene muchas responsabilidades, las cuales no pueden ser

    mostradas en una sola tarjeta esto es signo de que no hay dominio del

    problema.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    15/20

    Proceso de desarrollo: Responsabilidades

    Tenemos el siguiente ejemplo:

    Pacman

    Pacman puede comer FrutasPacman camina sobre Laberinto

    Pacman pierde una vida cuando el

    Fantasma lo atrapa

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    16/20

    Proceso de desarrollo: Colaboraciones

    Las colaboraciones representan peticiones de un cliente a unservidor para cumplir la responsabilidad del cliente.

    Las colaboraciones representan los contratos que hay entre la

    clase cliente y la(s) clase(s) servidor(es).

    Para cumplir una responsabilidad no necesariamente debe

    existir una colaboracin con otros objetos ya que una misma

    clase puede cumplirla, debido a que conoce toda la

    informacin para realizarla. Las colaboraciones son

    importantes porque demuestran el flujo de control e

    informacin durante la ejecucin del sistema, adems que

    determinan en un contrato los roles de cada clase.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    17/20

    Proceso de desarrollo: Colaboraciones

    Para identificar las colaboraciones es necesarioanalizar como interacta cada clase. Examinar lasresponsabilidades de cada clase para saber si laclase posee todo el conocimiento para cumplir

    con su responsabilidad por si misma o requierede alguna otra instancia de clase que contengainformacin que puede ayudar a cumplir con eltrabajo.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    18/20

    Proceso de desarrollo: Colaboraciones

    Para identificar colaboraciones, es necesario

    responder a las siguientes preguntas para cada

    responsabilidad de cada clase.

    1. Es la clase capaz de cumplir la responsabilidad

    por si misma?

    2. Sino, que es necesario hacer?

    3. De cul otra clase puede tomar lo que necesita?

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    19/20

    Proceso de desarrollo: Colaboraciones

    Como cada colaboracin cumple unaresponsabilidad, se obtiene la tarjeta CRC parauna clase que toma el rol de cliente y en ella seescribe al lado derecho de la responsabilidad elnombre de la clase servidor. Si la responsabilidad

    requiere para ser cumplida de variascolaboraciones, se escribe el nombre de cadaclase.

  • 7/23/2019 E2 Sesion03 Tarjeta CRC

    20/20

    Proceso de desarrollo: Colaboraciones

    Completando el ejemplo tenemos:

    Pacman

    Pacman puede comer FrutasPacman camina sobre Laberinto

    Pacman pierde una vida cuando el

    Fantasma lo atrapa

    FrutaLaberinto

    Fantasma