69
Modelamiento con UML Ingeniería de Software I

Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Embed Size (px)

Citation preview

Page 1: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Modelamiento con UML

Ingeniería de Software I

Page 2: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Temas

Modelamiento UML Elementos básicos Relaciones Diagramas

Relaciones

Page 3: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Modelamiento

Page 4: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Modelo

Representación de una parte de un sistema (aspectos relevantes)

Ejemplo: Un Plano Una maqueta Un prototipo etc.

Page 5: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Ventajas

Explorar diferentes soluciones Realizar análisis de costos y

estimaciones Minimizar los riesgos y errores Simplificar la complejidad del

mundo real omitiendo aspectos no tan importantes

Page 6: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Modelamiento

Visual Mecanismo de comunicación Claro Fácil de modificar

Generar productos a partir del modelo

Documentar las decisiones tomadas

Page 7: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

UML

Unified Modeling Language

Page 8: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

UML

“Es un lenguaje para la especificación, visualización, construcción y documentación de los diferentes elementos de un sistema de software”

Especificación UML

Page 9: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

UML

Desarrollado inicialmente por un equipo de personas (Rumbaugh, Jacobson, Booch)

Adoptado en 1997 por OMG Versión actual: 1.4

Page 10: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

UML

No es una metodología ni un proceso No define etapas No define cómo elaborar cada

diagrama Puede usarse en diversas metodologías

Notación Sintaxis Semántica

Page 11: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

UML

Componentes de UML Elementos Relaciones Diagramas

Page 12: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Elementos básicos

Page 13: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Clase

Colección de objetos con estructura, comportamiento, relaciones y semántica común

Representa un concepto dentro del sistema

Deben tener un nombre único dentro del paquete al cual pertenecen

Page 14: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Clase

Estructura Atributos

Comportamiento Operaciones (Métodos)

Relaciones con otros elementos Notación

Rectángulo con tres partes: Nombre, Atributos, Operaciones

Page 15: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Clase

Nombre Clase

atributo: tipo…

método (parámetos): tipo…

Page 16: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Clase

Ejemplo:

Municipio

-nombre: String-extensión: double-habitantes: int

+setHabitantes(cantidad:int):String+getDensidad():double

Page 17: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Interfaz

Conjunto de operaciones que caracterizan el comportamiento de un elemento

No especifica estructura interna No tiene atributos No implementa las operaciones que

define No es origen de asociaciones

Page 18: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Interfaz

Notación Un rectángulo con dos partes:

Nombre precedido de: <<interface>> Operaciones

Un círculo con el nombre de la interfaz en la parte inferior

Ejemplo:

Page 19: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Interfaz

ItemInventario

<<interface>>ItemInventario

+getCódigo():String+establecerFecha (fecha:Date):void

Page 20: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Objeto

Instancia de una clase Tiene:

Identidad Valores

Notación Rectángulo con dos partes:

Nombre - Clase Atributos - Valores

Page 21: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Objeto

nombre: Clase

atributo = valor…

Page 22: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Objeto

Ejemplo:

capitalDepto: Municipio

nombre = “Cali”extensión = 564habitantes = 2.264.256

unMunicipio: Municipio

Page 23: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Componente

Parte modular y reemplazable de un sistema, que encapsula una implementación y expone un conjunto de interfaces

Puede ser implementado por uno o más “productos de software” (artifacts), como archivos binarios o ejecutables

Page 24: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Componente

Notación

Nombre

Page 25: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Nodo

Objeto físico que representa un recurso de procesamiento

Incluyen Dispositivos de cómputo Recursos humanos Recursos mecánicos …

Page 26: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Nodo

Notación

Page 27: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Use Case (Caso de Uso)

Unidad de funcionalidad proporcionada por un sistema, formada por: Secuencia de mensajes intercambiados

entre el sistema y elementos externos, y

Acciones llevadas a cabo por el sistema

Page 28: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Use Case

Notación

Nombre

Page 29: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Actor

Conjunto coherente de roles que los usuarios ejecutan cuando interactúan con el sistema

Notación

Nombre

Page 30: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagramas

Page 31: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de clases

Representación visual de la estructura estática del sistema Clasificadores (clases, interfaces,

paquetes) Relaciones estáticas

Page 32: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de clases

Relaciones Asociación Generalización Dependencia Realización

Page 33: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Relación entre dos clasificadores (clases) que implica conexión entre las instancias

Notación:

nombre

Page 34: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Multiplicidad Número de instancias de una clase

relacionadas con UNA instancia de la otra

Ejemplos: 1 0..4 1..* 2..5,8,10..20

Page 35: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Navegabilidad

Roles

rol ClaseAClaseA

Page 36: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Ejemplo:

Empresa Empleadoempleador empleado

Trabaja1..*0..2

Page 37: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Agregación Asociación Todo-Parte

Ejemplo:

Polígono Punto1 3..*

vértice

Page 38: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Composición Agregación más fuerte. Una parte está incluida en UNA sola

composición La composición es responsable por la

disposición de sus partes.

Page 39: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Asociación

Ejemplo:

Materia Curso1..*

Page 40: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Generalización

Relación entre un elemento más general (padre) y otro más específico (hijo)

Jerarquía - Relación “es”

Page 41: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Generalización

Ejemplo:

SerVivo

Animal Planta

Page 42: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Realización

Relación entre una especificación y su implementación

Significa que el cliente soporta (al menos) todas las operaciones definidas en el proveedor

Page 43: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Realización

Ejemplo:

<<interface>>ItemInventario

+getvalor():double

Libro

+Libro()+getvalor():double…

Libro

ItemInventario

Page 44: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Dependencia

Relación no estructural entre dos elementos, donde un cambio en uno de ellos (el independiente) puede afectar al otro (el dependiente)

Page 45: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Dependencia

Ejemplos:

Libro

ItemInventario

Venta

Materias Matrícula

Page 46: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de objetos

Representa instancias de las clases y relaciones entre ellas (pueden ser temporales)

“Foto” del estado del sistema en un momento dado

Sirve para ejemplificar algún elemento complejo del sistema

Page 47: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de objetos

Ejemplo:

Icesi: Empresa Andrés:Empleado

Alexandra:Empleado

Daniel:Empleado

Page 48: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de componentes

Diagrama de implementación Muestra la organización y las

dependencias entre los componentes de software

Incluye: Componentes Relaciones de dependencia (usando

interfaces)

Page 49: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de componentes

Ejemplo:<<EJBEntity>>

Catálogo

AB

<<EJBSession>>Sesión

Catálogo

Page 50: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de deployment (despliegue)

Diagrama de implementación Configuración de los elementos de

procesamiento y los componentes de software en tiempo de ejecución

Muestra qué componentes pueden ejecutarse en cada nodo

Page 51: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de deployment

Ejemplo:

:compB:compA

:Cliente:Servidor

Page 52: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagramas de interacción

Permiten modelar el comportamiento

Colección de interacciones (mensajes) entre instancias (objetos) para lograr un objetivo específico

Muestra llamados, creación y destrucción de instancias

Page 53: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagramas de interacción

Tipos Diagrama de Secuencia

Énfasis en el tiempo (secuencia de los mensajes)

Diagrama de Colaboración Énfasis en la estructura (relaciones entre

los objetos)

Page 54: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de secuencia

Dos dimensiones: Vertical tiempo Horizontal instancias (no tienen

orden) Elementos

Línea de vida Representa la existencia de la instancia

Page 55: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de secuencia

Elementos (cont.) Activación o Foco de control

Período durante el cual una instancia está llevando a cabo una acción

Mensaje – Estímulo Comunicación entre dos instancias

Invocar una operación Creación Destrucción Envío de una señal

Page 56: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de secuencia

Mensaje – Estímulo

Anidado:

Asíncrono:

De retorno:

Page 57: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de secuencia

objeto:Clase

nuevo:Clasenew(…)

mensaje(…)

mensaje(…)

mensaje(…)

X

Page 58: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de colaboración

Representa diferentes instancias, sus roles, las relaciones entre ellas y sus interacciones

La secuencia se indica numerando los mensajes

Los enlaces entre las instancias pueden tener información adicional

Page 59: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de colaboración

Formato mensajes: Predecesor / Expresión de secuencia Valor de retorno := Nombre (lista de parámetros)

3.6 [x>0]: mover(5,7) 5 repaint() 1.2 *[i:=1..n]: dibujarSegmento(i)

Page 60: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de colaboración

objeto:Clase

otro:Clase2

1 mensaje(…)

rol

nuevo:Clase3new()

Page 61: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de estados

Describen el comportamiento de instancias de un elemento

Máquinas de estado Pueden incluir variables

Modelar comportamiento discreto

Page 62: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de estados

Elementos Estado Estado inicial Estado final Transición Entradas/Salidas Variables

Page 63: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de estados

Listo

Eliminado

terminar

eliminar / control=0

Page 64: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de actividades

Variación de diagrama de estados Modelar procesos de negocio y

flujos de datos/trabajo (workflow) Elementos adicionales:

Subactividad Decisiones Íconos de control Bifurcaciones “Carriles” (Swimlanes)

Page 65: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de actividades

Calcular costo total

Autorizar

[costo>=50]

[costo<50]

Page 66: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de use case

Representa la funcionalidad de un sistema, de acuerdo a la interacción con el exterior

Puede mostrar gráficamente el límite del sistema

Sirve como herramienta de comunicación con los usuarios

Page 67: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de use case

Relaciones Asociación: Actor-Use Case Generalización: Actor, Use Case Extends: Use Case – Use Case

El comportamiento de un caso de uso (extendido) puede ser incluido en otro (base)

Include: Use Case – Use Case El comportamiento de un caso de uso

contiene al otro

Page 68: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Diagrama de use case

Empleado

Actualizar perfil

Actualizar beneficios

Administrador

Actualizar valor hora

<<include>>

Page 69: Modelamiento con UML Ingeniería de Software I. Temas Modelamiento UML Elementos básicos Relaciones Diagramas Relaciones

Bibliografía

The Unified Modeling Language User Guide. Booch, Jacobson, Rumbaugh

The Unified Modeling Language Reference Manual. Rumbaugh, Booch, Jacobson.

Especificación UML: www.omg.org