E N D
UML - Unified Modeling Language El UML es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. • Grady Booch • Ivar Jacobson • Jim Rumbaugh
Quien Paga? • Rational Software Co • Microsoft • Hewlett-Packard • Oracle • IBM • Grupos de analistas y desarrolladores.
Booch había escrito "Object-Oriented Analysis and Design with Applications" un libro de referencia en el análisis y diseño orientado a objetos desarrollando su propia notación. • Por su parte James Rumbaugh había desarrollado su propia notación de diseño orientado a objetos llamada OMT (Object Modeling Technique) en su libro "Object-Oriented Modeling and Design". • Por otro lado Jacobson se había revelado como un visionario del análisis (padre de los casos de uso) y sobre todo del diseño orientado a objetos, sorprendiendo a todo el mundo en "Object-Oriented Software Engineering: A Use Case Driven Approach".
UML no es un método de desarrollo. No te va a decir cómo pasar del análisis al diseño y de este al código. No son una serie de pasos que te llevan a producir código a partir de unas especificaciones.
UML un lenguaje para… • Visualizar • Especificar • Construir • Documentar
Bloques de Construcción • Elementos • Estructurales • Comportamiento • Agrupación • Anotación • Relaciones • Dependencia • Asociación • Generalización • Realización • Diagramas
Elementos Estructurales • Son los nombres de los modelos UML. En su mayoría son las partes estáticas de un modelo, y representan cosas que son conceptuales o materiales.
Elementos estructurales Clases • Una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semánticas.
Elementos estructurales Interfaz • Una colección de operaciones que especifican un servicio de una clase o componente. • Describe el comportamiento visible externamente de ese elemento
Elementos estructurales Caso de Uso • Es una descripción de secuencias de acción que un sistema ejecuta y que produce un resultado observable de interés para un actor en particular.
Elementos estructurales Nodo • Es un elemento físico que existe en tiempo de ejecución y representa un recurso computacional
Elementos de comportamiento • Son las partes dinámicas de los modelos UML. Estos son los verbos de un modelo, y representan comportamientos en el tiempo y el espacio.
Elementos de Comportamiento Interacción • Es un comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular.
Elementos de Comportamiento Maquina de Estado • Es un comportamiento que especifica las secuencias de estado por las que pasa un objeto o una interacción durante su vida en respuesta a eventos, junto con sus reacciones a estos eventos.
Elementos de Agrupación Son las partes organizativas de los modelos UML. Paquetes • Es un mecanismo de propósito general para organizar elementos en grupos.
Elementos de Anotación Son las partes explicativas de los modelos UML.
Relaciones en UML • Dependencia. • Asociación • Generalización • Realización
Relaciones en UML Dependencia • Es una relación semántica entre dos elementos, en la cual un cambio a un elemento puede afectar a la semántica del otro elemento.
Relaciones en UML Dependencia e Instanciación • Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase).
Relaciones en UML Asociación • Es una relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre enlaces.
Relaciones en UML Agregación • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).
Relaciones en UML Generalización • Es una relación de especialización/generalización. • Herencia.
Relaciones en UML Herencia • La relación de herencia se representa mediante un triángulo en el extremo de la relación que corresponde a la clase más general o clase “padre”.
Relaciones en UML Realización • Es una relación semántica entre clasificadores, donde un clasificador especifica un contrato que otro clasificador garantiza cumplirá.
DIAGRAMAS UML • Diagrama de Estructura Estática. • Diagrama de Clases. • Diagrama de Objetos. • Diagrama de Casos de Uso. • Diagrama de Secuencia. • Diagrama de Colaboración. • Diagrama de Estados. • Diagrama de Actividades. • Diagrama de Componentes. • Diagrama de Despliegue.
Diagrama de Clases Un diagrama de clases muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Estos diagramas son los diagramas más comunes en el modelamiento de sistemas orientados a objetos. Los diagramas de clases cubren la vista de diseño estática de un sistema. Los diagramas de clases que incluyen clases activas cubren la vista de procesos estática de un sistema.
Diagrama de Clases Los diagramas de clases son los más utilizados en el modelamiento de sistemas orientados a objetos. Los diagramas de clases son importantes no solo para visualizar, especificar y documentar modelos estructurales, sino también para construir sistemas ejecutables, aplicando ingeniería directa e inversa. • Los diagramas de clases contienen normalmente los siguientes elementos: • Clases • Interfaces. • Colaboraciones. • Relaciones de dependencia, generalización y asociación.
Diagrama de Clases Clase
Diagrama de Clases Asociaciones (Relaciones) Las asociaciones entre dos clases se representan mediante una línea que las une. La línea puede tener una serie de elementos gráficos que expresan características particulares de la asociación. A continuación se verán los más importantes de entre dichos elementos gráficos.
Diagrama de Clases Nombre de la Asociación y Dirección
Diagrama de Clases Dependencia e Instanciación Asociaciones (Relaciones) • Por Valor. (Composición) • Por Referencia. (Agregación) • Agregación • Herencia
Diagrama de Clases Multiplicidad (Cardinalidad) • 1 Solo Uno • 0..1 Cero o Uno • M..N Desde M a N (Enteros Naturales) • * o 0..* Cero a Muchos • 1..* Uno a Muchos (al menos uno)
Diagrama de Clases Roles
Diagrama de Objetos Un diagrama de objetos muestra un conjunto de objetos y sus relaciones. Los diagramas de objetos representan instantáneas de instancias de los elementos encontrados en los diagramas de clases.
Diagrama de Casos de Uso Un diagrama de casos de uso muestra un conjunto de casos de uso y actores (un tipo especial de clases) y sus relaciones. Los diagramas de caso de uso cubren la vista de casos de uso estática de un sistema. Estos diagramas son especialmente importantes en el modelado de organización del comportamiento del sistema.
Diagrama de Interacción Tanto los Diagramas de Secuencia como los Diagramas de Colaboración son un tipo de diagrama de interacción. Estos diagramas muestran una interacción, que consta de un conjunto de objetos y sus relaciones, incluyendo los mensajes que pueden ser enviados por ellos. Los diagramas de interacción cubren la vista dinámica de un sistema. Un Diagrama de Secuencia resalta la ordenación temporal de los mensajes. Un Diagrama de Colaboración resalta la organización estructural de los objetos que envían y reciben mensajes. Los diagramas de secuencia y los diagramas de colaboración son isomorfos, es decir, que se puede tomar uno y transformarlo en el otro.
Diagrama de Estado Un diagrama de estado muestra una maquina de estado, que consta de estados, transiciones, eventos y actividades. Los diagramas de estado cubren la vista dinámica de un sistema. Son especialmente importantes en el modelado del comportamiento de una interfaz, una clase o una colaboración y resalta el comportamiento dirigido por eventos de un objeto, lo cual es especialmente útil en el modelado de un sistema reactivo.
Diagrama de Actividades Un diagrama de actividades es un tipo especial de diagramas de estado que muestra el flujo de actividades dentro de un sistema. Los diagramas de actividades cubren la vista dinámica de un sistema. Son especialmente importantes al modelar el funcionamiento de un sistema y resaltar el flujo de control entre objetos.
Diagrama de Componentes Un diagrama de componentes muestra la organización y las dependencias entre un conjunto de componentes. Los diagramas de componentes cubren la vista de implementación estática de un sistema. Se relacionan con los diagramas de clases en que un componente se corresponde, por lo común, con una o más clases, interfaces o colaboradores.
Diagrama de Despliegue Un diagrama de despliegue muestra la configuración de nodos de procesamiento en tiempo de ejecución y los componentes que residen en ellos.