Capítulos 2 y 5: Modelación con UML y Modelo Objeto
Asignando Responsabilidades 2 Responsabilidades son obligaciones de un objeto, o comportamiento relacionado a su rol en el sistema Qué hace un objeto? Hace algo por si mismo Pasa acciones (mensajes) a otros objetos Controla y coordina las actividades en otros objetos Qué conoce un objeto? Datos Privados, encapsulados Sus objetos relacionados Items que pueden derivar o calcular
Guías para modelar el dominio: ítem o especificación del ítem? Item Elemento físico Descripción del ítem Proporciona info. acerca del ítem Item Desc nroserial Precio. o bien? DescItem Desc Precio. Item nroserial
Guías para modelar el dominio: ítem o especificación del ítem? Cuándo se requiere la descripción de un ítem? Cuando hay necesidad de la descripción de un elemento independiente de si existe o no, y Para evitar repetición de información o bien pérdida de información. DescItem Desc Precio Identificador. Item nroserial
Guías para identificar asociaciones Centrarse en las relaciones que deben ser preservadas sin depender de la existencia de instancias Evitar asociaciones redundantes o derivables Chequear lista de asociaciones típicas.
Guías para identificar asociaciones: lista de categorías de asociaciones Categoría Sistema A es parte física de B A está contenida en B Gaveta de la Caja Registradora Producto esta en la Tienda A es una descripción de B Descripción-Producto A es miembro de B Cajero - Tienda A se comunica con B Cliente - Cajero
Multiplicidad Indica cuántas instancias pueden participar en la relación en un momento dado * Cliente Nombre. 0 ó muchos 1..10 Cliente Nombre. De 1 a 10 5 Cliente Nombre. 1..* Cliente Nombre. 1 ó muchos 2,4 Cliente Nombre. 2 ó 4 Exactamente 5
Agregación Una agregación es un caso especial de asociación que denota una jerarquía consiste-de El agregado es la clase padre, los componentes son las clases hijas Exhaust system 1 0..2 Muffler diameter Tailpipe diameter Un diamante relleno denota composición: Una forma más fuerte de agregación donde el tiempo de vida de las instancias componentes es controlada por el agregado. Es decir, las partes no existen por sí mismas ( el agregado controla/destruye las partes ) TicketMachine 3 ZoneButton 8
Guías para modelar el dominio: Cuándo introducir una agregación? Hay un conjunto indisoluble lógico o físico de la parte y el todo Hay una dependencia crear/eliminar de la parte y el todo Operaciones aplicadas al todo se propagan a las partes (movimiento,...) Propiedades del todo se propagan a las partes (localización,...) Si hay duda de lo anterior, no introduzca agregación.
Herencia Button CancelButton ZoneButton Herencia es otro caso especial de un asociación que denota una jerarquía tipo-de Herencia simplifica el modelo de análisis introduciendo una taxonomía Las clases hijas heredan los atributos y operaciones de la clase padre. 10
Guías para modelar el dominio: cuándo especializar? Cuándo dividir una clase en subclases? La subclase tiene atributos, o asociaciones Operaciones adicionales de interés La subclase incluye un comportamiento (manipulación, reacción, etc.) diferente al de la clase.
Guías para modelar el dominio: cuándo generalizar? Cuándo definir una superclase? Cuando se identifican atributos, o asociaciones u operaciones comunes entre potenciales subclases, que pueden ser asociados a la superclase La subclase cumple la regla es un(a) respecto a la potencial superclase.
Resumen: notación básica para asociaciones
Está listo el modelo del dominio? Todo modelo es una aproximación del dominio que intenta comprender Un buen modelo debe capturar lo esencial para comprender el dominio en el contexto de los requerimientos El modelo ayuda a entender el dominio, sus conceptos, terminología y relaciones Cada modelo tiene un nivel de granularidad dependiente del grado del detalle.
Caso de Estudio: El Sistema de Revisión de Conferencias Presentado en IWWOST 2001 El propósito del sistema es soportar el proceso de envío, evaluación y selección de trabajos para una conferencia.
Actores I PC Chair Crea la conferencia Determina tópicos y temas de la conferencia Establece el comité del Programa Define la lista final de trabajos aceptados y rechazados Define las fechas limites de la conferencia: envío, revisión, y notificación.
Actores II Miembro PC Evaluar un conjunto de trabajos asignados Indicar otra persona como revisor de un trabajo Notificar al PC Chair de la lista final de trabajos aceptados Revisor Responsable de revisar un trabajo Autor Enviar un trabajo a la conferencia Miembros PC y Revisores pueden ser también Autores, y deben tener diferentes Ids para cada rol
Funciones I: Envío de Trabajo Cualquier autor registrado puede enviar un trabajo El autor debe registrar: el titulo, el resumen, el tópico de la conferencia, y un conjunto de temas elegidos de una lista previamente determinada por el PC Chair El sistema, después de chequear los registros de los autores, asigna un ID al nuevo trabajo, y permite al usuario enviarlo cargando un archivo En cualquier momento, un autor se le permite chequear los datos sobre sus trabajos enviados. Hasta la fecha limite de envío, el autor se le permite también sustituir el archivo ya cargado por uno nuevo, o cambiar cualquiera de los datos sobre el trabajo
Funciones II: Asignación de trabajos a Miembros PC El PC Chair puede indicar conflictos de interés potencial entre miembros PC y trabajos enviados Una vez que la fecha limite de envío ha sido alcanzada Los miembros PC pueden indicar su interés y conflictos de interés con algunos trabajos En caso de un conflicto de interés, el miembro PC no podrá ver ninguna información sobre el trabajo El PC Chair asigna trabajos a miembros PC para revisión, un mensaje de correo electrónico con la lista de trabajos, y un URL a una pagina donde puede acceder los trabajos asignados
Funciones III: Introduciendo una Revisión Un miembro PC, o un Revisor, puede introducir una revisión para un trabajo asignado La revisión es introducida accediendo un formulario que contiene todos ítems de evaluación Un miembro PC puede ver otras revisiones (introducidas por otros) para cualquiera de los trabajos que esta revisando, pero solo después que ha introducido su propia revisión El PC Chair tiene acceso completo a todos los trabajos y a todas las revisiones
Funciones IV: Elección de Trabajos Aceptados y Rechazados Una vez que la fecha limite de revisión ha sido alcanzada, el proceso de revisión es cerrado El PC Chair, tomando en cuenta las recomendaciones de los miembros PC y revisores, elije los trabajos que serán aceptados y rechazados Una vez que el proceso es marcado como finalizado por el PC Chair, el sistema envía un mensaje de notificación a los autores del trabajo, el cual incluye las partes apropiadas de las revisiones enviadas por los miembros PC y revisores
Modelo de Estructura de Contenido Diagrama de Clases Ejemplo del Sistema de Revision Relación Nombre de Clase Atributos de Clase Composición Operaciones de Clase Invariante Atributo Derivado 22