Desarrollo de sistemas orientado a objetos con modelado en UML. Desarrollo de sistemas orientado a objetos con modelado en UML. Desarrollo de sistemas orientado a objetos con modelado en UML. Ciclos de vida para el desarrollo de software. ¿Qué es un ciclo de vida? Forma en que se organiza la ejecución básica del desarrollo de software, representa la “columna vertebral” de una metodología. Hay dos modelos básicos: 1. Secuencial. 2. Iterativo (por ciclos cortos de desarrollo). Ciclos de vida SECUENCIALES Proponen la ejecución de etapas de manera secuencial, es decir, una etapa inicia una vez que la anterior ha culminado por completo. La construcción del producto de software se realiza completa al final del ciclo de vida. El cliente obtiene el producto hasta el final del proyecto y lo obtiene completo (en una sola implantación). 1. Ciclos de vida Cascada. Propone la realización de 4 etapas secuenciales: - Especificación y análisis de requerimientos - Diseño de la solución - Implementación del código fuente - Pruebas e implantación del producto 2. Ciclos de vida Cascada por propósitos. Similar al modelo de cascada pero se entrega un prototipo al final de la etapa de diseño (antes de empezar la implementación del código fuente). El prototipo puede ser funcional (tener parte del código implementado) o no serlo. El prototipo puede ser reutilizable (ser aprovechado para la versión final del producto) o no serlo (en cuyo caso no necesariamente es desarrollado en la misma herramienta en la que se implementará la versión final). Ciclos de vida ITERATIVOS Proponen dividir la construcción del software en ciclos o iteraciones, donde: en cada iteración se alcanza determinado nivel de desarrollo ó en cada iteración se abarca una parte de la funcionalidad total del sistema. Desarrollo de sistemas orientado a objetos con modelado en UML. Al final de cada iteración se realiza una presentación parcial del producto al cliente. Permite corregir errores durante la propia construcción del software. 1. Ciclo de vida evolutivo. Propone abarcar toda la funcionalidad del sistema desde el primer ciclo, de modo que se va refinando conforme se avanza en el desarrollo. El cliente ve resultados parciales que contemplan todo el producto completo (aunque en diferentes niveles de desarrollo: prototipo, prototipo validado, prototipo con conexión a la BD, etc.). Normalmente, el primer ciclo es muy pretencioso. 2. Ciclo de vida incremental. Propone dividir la funcionalidad del sistema en “bloques” que se irán abarcando cada uno en un ciclo independiente. El cliente ve resultados parciales que contemplan una parte del producto funcionando al 100%. Al final de cada ciclo se integra lo realizado en ese ciclo con lo que ya estaba terminado. Normalmente, antes de iniciar el primer ciclo se realiza una fase de conceptualización del problema global. Metodología de desarrollo basada en un ciclo de vida iterativo e incremental. Esta compuesta por 3 fases: 1. Conceptualización y planeacion. Objetivos: Entender el problema a resolver por parte del equipo desarrollador Planear el proyecto informático que dará solución al problema Pretende establecer: El entorno del problema (¿Dónde está el problema?) Las funcionalidades del sistema (¿Qué quiere el usuario?) Desarrollo de sistemas orientado a objetos con modelado en UML. El alcance del proyectos (¿Hasta dónde abarcará el proyecto?) Productos esperados: Diagramas y Modelos: UML-Diagrama General de Casos de Uso. UML-Modelo Conceptual. UML-Glosario de Términos. Documentos: Especificación de Requerimientos del Software (ERS). 2. Fase de Construcción. Objetivos: Realizar el diseño de la solución al problema estudiado en la fase 1. Construir el producto de software (aplicación informática) que dará solución al problema planteado por el usuario Se divide en ciclos Cada ciclo contiene 3 etapas: Modelaje (Generación de diagramas y modelos) Implementación (Programación del código fuente) Pruebas e integración (Aplicación de pruebas unitarias y de integración) Productos esperados: Diagramas y modelos: UML-Refinamientos (Casos uso, Modelo conceptual, Glosario de términos.) Documentos: UML-Diagramas de Secuencia UML-Contratos de las Operaciones UML-Diagramas de Colaboración UML-Diagrama de Clases de Diseño Modelo de Datos Desarrollo de sistemas orientado a objetos con modelado en UML. Informe del Ciclo i. Especificación de Estándares. Otros: 3. Fase de Despliegue de la aplicación. Objetivos: Certificar la calidad del software implementado. Implantar el producto software en el entorno del usuario/cliente. Se deben aplicar: Pruebas de Ejecución. (¿Hace lo que el usuario pidió?) Pruebas de Rendimiento. (¿Lo hace tan eficiente como el usuario lo pidió?) Productos esperados: Documentos: Informe Final del Proyecto. Manual de Usuario. Software ejecutándose en el entorno del cliente. Desarrollo de sistemas orientado a objetos con modelado en UML. UML dentro de las fases de un proyecto. Aspectos generales de UML. UML: Unified Modeling Languaje(Lenguaje de modelado unificado). ¿Qué es UML? Es un lenguaje de Modelado que incluye diagramas y documentos útiles durante diferentes etapas de un proyecto. Concebido por Grady Booch, Ivar Jacobson y Jim Rumbaugh, contratados por Rational Software Co. para crear una notación estándar para su CASE. También participaron empresas como Microsoft, IBM, Hewlett-Packard y Oracle. Es sólo una notación, no define un proceso de desarrollo específico. Consiste en una secuencia de modelos, diagramas y documentos que ayudan tanto a la comprensión del problema como al diseño de la solución. Ha sido tomado en cuenta por algunos autores en sus metodologías (p.e. Larman). 1. UML en la Fase de Conceptualización y planeacion: 1. Entender el problemas: UML interviene en la creación de: Casos de uso: definir las necesidades del cliente. Modelo conceptual: comprender el entorno del problema. Glosario de términos: comprender el entorno del problema. 2. Planear la ejecución del proyecto. 2. UML en la Fase de Conceptualización y planeacion: 1. Diseñar la solución: - Análisis: UML interviene en la creación de: - Casos de uso (Formato extendido). Diagramas de secuencia. Contratos de Operaciones. Diseño: UML interviene en la creación de: Casos de uso (reales). Diagramas de colaboración. Diagramas de clases. Desarrollo de sistemas orientado a objetos con modelado en UML. 2. Implementar el Software. 3. UML en la Fase de Despliegue: 1. Certificar el Software: UML interviene en la creación de: Casos de uso: para pruebas finales. 2. Poner en marcha el software en el cliente. Casos de Uso. Algunas definiciones de casos de usos: 1. Un documento narrativo que describe la secuencia de eventos de un actor (un agente externo) que usa un sistema para completar un proceso. 2. Una interacción típica entre un usuario y un sistema de cómputo. 3. Un caso de uso es una descripción de un proceso de principio a fin. Características de un caso de uso: Capta alguna función visible para el usuario. Puede ser pequeño o grande. Logra un objetivo discreto para el usuario. ¿Cómo identificar los casos de uso? Opción A: Basada en Actores. 1. Identificar los actores relacionados con el sistema o la empresa. 2. Para cada actor, identificar los procesos que inicia o en los que participa. Opción B: Basada en Eventos. 1. Identificar los eventos externos a los que un sistema ha de responder. 2. Relacionar los eventos con los actores y con los casos de uso. Algunos ejemplos de casos de uso: Retirar efectivo de un cajero automático. Registrar las carreras que imparte una universidad. Solicitar el envío de un pedido de productos. Facturar una venta de productos. Registrar una solicitud de ingreso. ¿Cuándo y para qué usar casos de uso? Desarrollo de sistemas orientado a objetos con modelado en UML. Al inicio del proyecto: Para comprender mejor la interacción entre el sistema y sus diferentes usuarios. Para establecer los distintos perfiles de usuario (y así ayudar a establecer la seguridad del sistema). Durante el diseño: Para detallar más a fondo el accionar de los usuarios frente a la interfaz del sistema. Al final del proyecto: Para establecer los escenarios de prueba. Tipos de casos de uso. Primario: Representan los procesos comunes más importantes del sistema. Se consideran indispensables urgentes. Ejemplos: Registrar Producto (en un sistema de inventario). Facturar Compra (en un sistema de facturación). Registrar Calificación (en un sistema académico). Secundario: Representan los procesos menores o poco frecuentes, pero que complementan el sistema. Se consideran indispensables y pero no urgentes. Ejemplos: Eliminar Producto (en un sistema de inventario). Anular Facturar (en un sistema de facturación). Modificar Calificación (en un sistema académico). Opcional: Representan los procesos que pueden perfectamente no abordarse en el proyecto. Se consideran no indispensables y no urgentes. Normalmente, se hacen “si sobra tiempo” Ejemplos: Registrar bodeguero (en un sistema de inventario). Modificar tipo de cambio del dólar (en un sistema de facturación). Enviar calificaciones a los estudiantes por email (en un sistema académico). Diagramas de casos de uso. Desarrollo de sistemas orientado a objetos con modelado en UML. Diseñado por Ivar Jacobson en 1994. Explica gráficamente un conjunto de casos de uso de un sistema, los actores y la relación entre éstos y los casos de uso. Su objetivo es ofrecer un diagrama contextual que nos permita conocer rápidamente los actores externos del sistema y las formas básicas en que lo utilizan. Ejemplo de Diagramas de casos de uso: ELEMENTOS Caso de Uso: Encapsula una interacción usuario-sistema. Su nombre debe estar compuesto por: <Infinitivo verbal>+<Complemento> Desarrollo de sistemas orientado a objetos con modelado en UML. Se representa mediante un óvalo. Actor: Es una entidad externa del sistema que de alguna manera participa en la historia del caso de uso. Estimula al sistema con eventos de entrada o recibe algo de él. Los actores están representados por el papel que desempeñan en el caso: Cliente, Cajero, Solicitante, Vendedor, Bodeguero, etc. Se representan mediante una figura estilizada. A pesar de que los actores estén representados por figuras humanas, no es necesario que los actores sean seres humanos. Un actor puede ser también un sistema externo que necesite cierta información del sistema actual. Relaciones (actores –casos de uso) Para vincular un caso de uso a un actor basta con agregar un arco entre ambos. Los actores pueden tener varios papeles respecto de un caso de uso: obtener un valor de él o sólo participar de él. En el segundo caso tiende a ser confuso quién es el verdadero actor vinculado con ese caso de uso. Por ejemplo, en un sistema de ventas, para el caso de uso “Enviar proforma” no se tiene un actor específico que solicite la acción en su propio beneficio (pues a quien en realidad le interesa la proforma es al cliente). Sin embargo, probablemente el actor Vendedor le interese enviarla para obtener una posterior venta por lo que sí existirá vínculo. Relaciones (entre casos de uso) Se representan como una línea que une a los dos casos de uso relacionados, con una flecha y una etiqueta entre corchetes (<< , >>). Tipos de relación entre casos de uso Extiende: <<extends>> Se usa cuando se tiene un caso de uso que es similar a otro, pero que hace un poco más. Usa: <<uses>> Se usa cuando se tiene una porción de comportamiento que es similar en más de un caso de uso y se quiere reutilizar. Desarrollo de sistemas orientado a objetos con modelado en UML. Modelo Conceptual. El paso esencial de un análisis o investigación orientado a objetos es descomponer el problema en conceptos u objetos individuales: las cosas que sabemos. Un modelo conceptual es una representación de conceptos en un dominio del problema. Consiste en un modelo que describe y relaciona los conceptos que intervienen en el entorno del problema. El diseño de un modelo conceptual tiene como fin subrayar fuertemente los conceptos del dominio, no las entidades del software. Un modelo conceptual puede mostrar: Conceptos. Asociaciones entre conceptos. Atributos de los conceptos. Un modelo conceptual es una descripción del dominio de un problema real, no es una descripción del diseño del software, como una clase de Java o C++”. Por ello, un modelo conceptual no debe incluir: Artefactos de software (ventanas, base de datos). Responsabilidades o métodos (operaciones). Un concepto, para ser parte de un modelo conceptual, debe tener: Símbolo: Palabras o imágenes que le representen. Intensión: Definición propia del concepto. Extensión: Conjunto de ejemplos a que puede aplicarse. Cuando se crea un modelo conceptual, por lo general la vista del símbolo y de la intensión de un concepto es lo que más interesa. Desarrollo de sistemas orientado a objetos con modelado en UML. En el análisis estructurado, la descomposición se realiza mediante procesos o funciones. En el análisis orientado a objetos, es posible realizar la descomposición con base en los conceptos del entorno. Estrategias para identificar los conceptos: Es mejor exagerar y especificar un modelo conceptual con muchos conceptos refinados que no especificarlo cabalmente. No piense que un modelo conceptual es mejor si tiene pocos conceptos. Se suelen omitir conceptos durante la fase inicial y descubrirlos más tarde, cuando se examinen atributos o asociaciones o durante el diseño. Cuando se detecten, deben incorporarse al modelo conceptual. No excluya conceptos porque los requerimientos no digan que requiera persistencia, o porque carezca de atributos, pues podría ser parte importante del comportamiento. El error más frecuente cuando se crea un modelo conceptual es representar algo como atributo, cuando debió haber sido un concepto. ¿Cómo construir un Modelo Conceptual? 1. Liste los conceptos idóneos (utilizando la lista de categorías y las frases nominales). 2. Dibújelos como cajas o rectángulos. 3. Incorpore las asociaciones necesarias para registrar las relaciones. 4. Agregue los atributos necesarios para cumplir con las necesidades de información. Asociaciones: Una asociación es una relación entre dos conceptos que indica alguna conexión significativa e interesante entre ellos. Es conveniente incluir las siguientes asociaciones en un modelo conceptual: Las asociaciones en que el conocimiento de la relación ha de ser preservado durante algún tiempo (asociaciones que “deben conocerse”). Las asociaciones provenientes de la Lista de Asociaciones Comunes. Desarrollo de sistemas orientado a objetos con modelado en UML. Sin embargo es mucho más importante identificar los conceptos que las asociaciones. El tiempo consagrado a la creación del modelo conceptual debería destinarse a identificar los conceptos, no las asociaciones. Asociaciones Múltiples: Pueden existir múltiples asociaciones entre los mismos conceptos. Atributos: Un atributo es un valor lógico de un dato de un objeto. Incluya aquellos atributos en que los requerimientos indican o conllevan la necesidad de recordar información. No se debe incluir como atributo de un concepto el “identificador” de un concepto relacionado con él. Glosario de términos. Es un documento simple en el que se describen los términos utilizados. Pretende mejorar la comunicación y aminorar el riesgo de malos entendidos. Se crea originalmente en la primera fase del proyecto. Luego, se va refinando conforme avanza cada ciclo de desarrollo. Ejemplo: Término Categoría Comentarios Comprar Caso de Descripción del proceso de un cliente que compra Productos uso productos en una tienda Producto Concepto Un producto para venderse en una Tienda Venta.total : Atributo El gran total de la Venta Concepto Un pago en efectivo Cantidad Pago Definición en formato expandido Un caso expandido de uso muestra más detalles que uno de alto nivel. Suelen ser útiles para alcanzar un conocimiento más profundo de los procesos y los requerimientos. Su formato está compuesto por tres partes: –Superior. –Intermedia. Desarrollo de sistemas orientado a objetos con modelado en UML. –Inferior. Parte Superior: Caso de Uso:<Nombre del caso de uso> Actores: Lista de actores en la cual se indica quien inicia el caso de uso. Propósito: Intención del caso de uso. Resumen: Repetición de la descripción en alto nivel (o algo similar) Tipo:<Primario / Secundario / Opcional> <Esencial / Real> Referencias Cruzadas: Casos de uso relacionados y/o funciones relacionadas. Parte Intermedia: (Curso normal de eventos) Describe los detalles de la conversión interactiva entre los actores y el sistema. Explica la secuencia más común de los eventos: “la historia normal de las actividades y la terminación exitosa de un proceso”. No incluye situaciones alternas o imprevistas. El primer evento suele iniciar con “Este caso de uso empieza cuando…”. Parte Inferior: (Curso alterno de eventos) Describe importantes opciones o excepciones que pueden presentarse en relación con el curso normal. Siguen el formato <excepción> <acción>. Si son complejas, se pueden expandir y convertirlas en casos de uso independientes. Casos Esenciales de Uso: Contienen poca tecnología y pocos detalles de implementación. Las decisiones de diseño se posponen. Un caso de este tipo describe el proceso a partir de sus actividades y motivos esenciales. Convienen al comenzar a investigar los requerimientos, para entender mejor el alcance del problema y las funciones necesarias. Casos Reales de Uso Desarrollo de sistemas orientado a objetos con modelado en UML. Describen el proceso a partir de su diseño concreto actual, sujeto a las tecnologías específicas de E/S. A menudo ofrece presentaciones de la pantalla a utilizar en el sistema. Suelen ser útiles cuando la plataforma de ejecución del sistema tenga características peculiares. Ejemplo de caso expandido de Uso (Esencial) Caso de Uso: Retirar Dinero del Cajero Automático. Actores: Cliente. Propósito: Realizar un retiro de dinero de una cuenta. Visión General: Un cliente llega al cajero automático, introduce la tarjeta, se identifica y solicita realizar un retiro de dinero. El cajero le da el dinero solicitado tras comprobar que la operación puede realizarse. El cliente toma el dinero y se va. Tipo: Primario y Esencial Referencias: Requerimiento # 7 Curso Típico de Eventos: Acción del Actor Respuesta del Sistema 1. Este caso de uso empieza cuando un 2. Pide la clave de identificación. cliente introduce su tarjeta en el cajero. 3. Introduce la clave. 4. Presenta las opciones disponibles. 5. Selecciona la operación de Retiro 6. Pide la cantidad a retirar. 7. Introduce la cantidad requerida. 8. Procesa la petición y, eventualmente, da el dinero solicitado. 10. Recoge el dinero, el recibo y la 9. Devuelve la tarjeta y genera un recibo. tarjeta. Curso Alternativo: Acción del actor Respuesta del sistema. Línea 4: La clave es incorrecta. Se indica el error y se cancela la operación. Línea 8: El saldo no es suficiente. Se indica el error y se cancela la operación. Desarrollo de sistemas orientado a objetos con modelado en UML. Diagramas de Secuencia. Un diagrama de secuencia muestra gráficamente los eventos que fluyen de los actores al sistema. Forma parte del proceso de análisis. Su creación depende de la formulación previa de los casos expandidos de uso. Pretende explicar lo que el sistema hace pero no cómo lo hace. Ejes: El vertical es el tiempo (fluye de arriba hacia abajo). En el horizontal se colocan los objetos y/o actores. El sistema y cada actor tienen una línea vertical. Los eventos (mensajes) se representan mediante flechas; pueden incluir parámetros y se ordenan según su secuencia en el tiempo. Se suele agregar una nota con el curso normal de eventos del caso de uso expandido. Ejemplo: El nombre de una operación debe mostrar el propósito inmediato de ésta. Se recomienda que el nombre de los eventos empiece con un infinitivo. Las operaciones deben expresarse a nivel de propósito y no de implementación o interfaz. Desarrollo de sistemas orientado a objetos con modelado en UML. Contratos de las Operaciones Se elaboran durante el análisis de cada ciclo de desarrollo. Para su preparación son muy tomados en cuenta: Modelo Conceptual. Diagrama de Secuencias. Contribuyen a definir el comportamiento de un sistema. Muestran el efecto que tienen las operaciones sobre el sistema. Describen el comportamiento de un sistema a partir de cómo cambia el estado de éste cuando se invoca una de sus operaciones. Un contrato describe lo que una operación se propone lograr. Se declara enfatizando lo que sucederá y no cómo se conseguirá. Puede elaborarse un contrato tanto para una operación del sistema (las del diagrama de secuencias) o para un método de una clase software. Secciones de un Contrato: Nombre:<nombre de la operación y parámetros>. Responsabilidades: Descripción informal de las responsabilidades debe cumplir la operación. Tipo:<sistema, clase software>. Referencias Cruzadas: Requerimientos y/o Casos de Uso. Notas: Notas de diseño, algoritmos e información afín. Excepciones: Casos excepcionales. Salidas: Salidas atípicas del sistema (por salidas no estándar). Precondiciones: Suposiciones acerca del estado del sistema. antes de ejecutar la operación. Poscondiciones: El estado del sistema después de la operación. ¿Cómo preparar un contrato? 1. Identifique las operaciones del sistema a partir de los diagramas de secuencia. 2. Elabore un contrato para cada operación. 3. Comience redactando las Responsabilidades. 4. Complete luego la sección de Poscondiciones, describiendo los cambios de estado de los objetos del modelo conceptual. 5. Para describir las poscondiciones utilice las siguientes categorías: Desarrollo de sistemas orientado a objetos con modelado en UML. Creación y eliminación de las instancias. Modificación de los atributos. Asociaciones formadas y canceladas. Poscondiciones: Estipulan cómo cambió el sistema tras la operación. No son acciones que deben efectuarse durante la operación. Son declaraciones sobre el estado del sistema que se aplican una vez concluida la operación (una vez que se haya disipado el humo). UML no específica cómo expresar las poscondiciones: el analista escoge el formato. Ejemplo: Nombre: introducir Producto (CUP: número, cantidad: entero) Responsabilidades: Registrar la venta de un producto y agregarla a la venta total. Desplegar la descripción y el precio del producto. Tipo: Sistema. Referencias Cruzadas: Req.1, 3 y 4 Caso de Uso Comprar Productos Notas: Tomar en cuenta el uso de códigos de barras Excepciones: Si el CUP no está registrado, indicar el error. Salidas: Precondiciones: El sistema conoce el CUP. Poscondiciones: • Si se trata de una nueva venta, se creó una Venta (creación de instancia). • Si se trata de una nueva venta, la nueva Venta fue asociada al Punto De Venta (asociación formada). • Se creó una instancia LíneaDeDetalle (creación de instancia). • Se asoció una instancia LíneaDeDetalle a la Venta (asociación formada). • Se asignó cantidad a LineaDeDetalle.cantidad (modificación de atributo) • Se asoció una instancia LineaDeDetalle a la instancia EspecificacionDeProducto, basado esto en la correspondencia del CUP(asociación formada) Desarrollo de sistemas orientado a objetos con modelado en UML. Diagramas de Colaboración. Diagramas de Interacción: Se realizan durante el diseño de cada ciclo de desarrollo. Son diagramas que explican gráficamente cómo los objetos interactúan a través de mensajes para realizar las tareas. El punto de partida de las interacciones es el cumplimiento de las poscondiciones de los contratos de operaciones. Requieren la previa creación de: Modelo Conceptual: A partir de éste, el diseñador podrá definir las clases software correspondiente a los conceptos. Contratos de las Operaciones: A partir de ellos, el diseñador identifica las responsabilidades y las poscondiciones que han de llenar los diagramas de interacción. Casos Reales de Uso: A partir de ellos, el diseñador recaba información sobre las tareas que realizan los diagramas de interacción Son muy importantes en la asignación de responsabilidades y el diseño de la colaboración entre los objetos. Los diagramas de interacción constituyen uno de los artefactos más importantes que se generan en el análisis y en el diseño orientado a objetos. Existen dos tipos: 1. Diagramas de Colaboración: Describen las interacciones entre los objetos en un formato de grafo o red. 2. Diagramas de Secuencia: Describen las interacciones entre los objetos en un formato de cerca o muro. Desarrollo de sistemas orientado a objetos con modelado en UML. ¿Cómo preparar un Diagrama de Colaboración? 1. Elabore un diagrama por cada operación del sistema durante el ciclo actual de desarrollo. 2. Diseñe un sistema de objetos interactivos que realicen las tareas, usando como punto de partida las responsabilidades y poscondiciones del contrato de operación y la descripción de casos de uso. Ejemplo: Relación entre artefactos: Desarrollo de sistemas orientado a objetos con modelado en UML. Casos de Uso (eventos del sistema) Diagrama de Secuencia. Contratos (operaciones del sistema). Diagrama de colaboración (mensajes entre objetos internos del sistema). Clases e Instancias: Nombre del tipo subrayado y precedido por dos puntos. Vínculos: Línea continúa a través de la cual pueden fluir mensajes. Mensajes: Se representan por medio de una flecha con un nombre y situada sobre un vínculo. Se agrega un consecutivo que indica el orden de los mensajes. Parámetros: Se anotan dentro de paréntesis, después del nombre del mensaje. Es opcional incluir o no el tipo de parámetro en cuestión. Retorno de valores: Puede incluirse un valor de retorno, ante poniéndole al mensaje un nombre de variable y un operador de asignación (:=). Es opcional mostrar el tipo de valor de retorno. Desarrollo de sistemas orientado a objetos con modelado en UML. Mensajes a “this”: Un objeto puede enviarse un mensaje a sí mismo. Se representa con un vínculo a sí mismo, pues el mensaje fluye por el vínculo. Iteraciones: Se indica posponiendo un asterisco (*) al número de secuencia. También es posible incluir una cláusula de iteración que indique los valores de recurrencia. Condicionales: Se indican posponiendo al número de secuencia una cláusula condicional entre corchetes. El mensaje sólo se envía si la cláusula se envía como verdadera. Condicionales mutuamente excluyente: Se utilizan letras minúsculas (a,b,c,...) después del número de secuencia para indicar la exclusividad entre los posibles caminos. Desarrollo de sistemas orientado a objetos con modelado en UML. Diagrama de Clases. Una vez que se tienen los diagramas de interacción, se procede a definir las clases software que conforman el sistema. Su elaboración requiere previamente: Diagramas de Interacción: Para identificar las clases y los métodos. Modelo Conceptual: Para agregar detalles a la definición de las clases. ¿Cuándo elaborarlo? A pesar de que se supone que deben hacerse después de los diagramas de interacción, en la práctica se realizan en forma paralela. Representa el cierre del diseño de la aplicación. Por ejemplo, conforme se diseña el diagrama de colaboración, van apareciendo los métodos que estarán contenidos dentro de las clases. Desarrollo de sistemas orientado a objetos con modelado en UML. El diagrama de clases describe gráficamente las especificaciones de las clases de software en una aplicación. Normalmente contiene: Clases. Atributos. Métodos. Asociaciones. Navegabilidad. Dependencias. Asociaciones de Herencia: Se dan cuando varias clases poseen atributos y/o métodos en común Las subclases heredan parte de las características de la superclase. Aunque las bases de datos orientadas a objetos no tuvieron mucho éxito, suele ser útil para ayudar a definir partes del modelo de datos relacional de un sistema. Ejemplo de herencia: Asociaciones de Agregación: Indican que un objeto de una clase puede estar conformado por uno o varios objetos de otra clase. Desarrollo de sistemas orientado a objetos con modelado en UML. La agregación requiere que: Un objeto de la clase A pueda estar formado por varios objetos de la clase B. Un objeto de la clase B sólo existe en el contexto de un objeto de la clase A (debe existir un objeto a:A). Ejemplos de agregaciones: