Upload
celio-garcia
View
21
Download
2
Embed Size (px)
Citation preview
Modelamiento con UML
Ingeniería de Software I
Temas
Modelamiento UML Elementos básicos Relaciones Diagramas
Relaciones
Modelamiento
Modelo
Representación de una parte de un sistema (aspectos relevantes)
Ejemplo: Un Plano Una maqueta Un prototipo etc.
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
Modelamiento
Visual Mecanismo de comunicación Claro Fácil de modificar
Generar productos a partir del modelo
Documentar las decisiones tomadas
UML
Unified Modeling Language
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
UML
Desarrollado inicialmente por un equipo de personas (Rumbaugh, Jacobson, Booch)
Adoptado en 1997 por OMG Versión actual: 1.4
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
UML
Componentes de UML Elementos Relaciones Diagramas
Elementos básicos
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
Clase
Estructura Atributos
Comportamiento Operaciones (Métodos)
Relaciones con otros elementos Notación
Rectángulo con tres partes: Nombre, Atributos, Operaciones
Clase
Nombre Clase
atributo: tipo…
método (parámetos): tipo…
Clase
Ejemplo:
Municipio
-nombre: String-extensión: double-habitantes: int
+setHabitantes(cantidad:int):String+getDensidad():double
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
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:
Interfaz
ItemInventario
<<interface>>ItemInventario
+getCódigo():String+establecerFecha (fecha:Date):void
Objeto
Instancia de una clase Tiene:
Identidad Valores
Notación Rectángulo con dos partes:
Nombre - Clase Atributos - Valores
Objeto
nombre: Clase
atributo = valor…
Objeto
Ejemplo:
capitalDepto: Municipio
nombre = “Cali”extensión = 564habitantes = 2.264.256
unMunicipio: Municipio
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
Componente
Notación
Nombre
Nodo
Objeto físico que representa un recurso de procesamiento
Incluyen Dispositivos de cómputo Recursos humanos Recursos mecánicos …
Nodo
Notación
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
Use Case
Notación
Nombre
Actor
Conjunto coherente de roles que los usuarios ejecutan cuando interactúan con el sistema
Notación
Nombre
Diagramas
Diagrama de clases
Representación visual de la estructura estática del sistema Clasificadores (clases, interfaces,
paquetes) Relaciones estáticas
Diagrama de clases
Relaciones Asociación Generalización Dependencia Realización
Asociación
Relación entre dos clasificadores (clases) que implica conexión entre las instancias
Notación:
nombre
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
Asociación
Navegabilidad
Roles
rol ClaseAClaseA
Asociación
Ejemplo:
Empresa Empleadoempleador empleado
Trabaja1..*0..2
Asociación
Agregación Asociación Todo-Parte
Ejemplo:
Polígono Punto1 3..*
vértice
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.
Asociación
Ejemplo:
Materia Curso1..*
Generalización
Relación entre un elemento más general (padre) y otro más específico (hijo)
Jerarquía - Relación “es”
Generalización
Ejemplo:
SerVivo
Animal Planta
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
Realización
Ejemplo:
<<interface>>ItemInventario
+getvalor():double
Libro
+Libro()+getvalor():double…
Libro
ItemInventario
Dependencia
Relación no estructural entre dos elementos, donde un cambio en uno de ellos (el independiente) puede afectar al otro (el dependiente)
Dependencia
Ejemplos:
Libro
ItemInventario
Venta
Materias Matrícula
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
Diagrama de objetos
Ejemplo:
Icesi: Empresa Andrés:Empleado
Alexandra:Empleado
Daniel:Empleado
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)
Diagrama de componentes
Ejemplo:<<EJBEntity>>
Catálogo
AB
<<EJBSession>>Sesión
Catálogo
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
Diagrama de deployment
Ejemplo:
:compB:compA
:Cliente:Servidor
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
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)
Diagrama de secuencia
Dos dimensiones: Vertical tiempo Horizontal instancias (no tienen
orden) Elementos
Línea de vida Representa la existencia de la instancia
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
Diagrama de secuencia
Mensaje – Estímulo
Anidado:
Asíncrono:
De retorno:
Diagrama de secuencia
objeto:Clase
nuevo:Clasenew(…)
mensaje(…)
mensaje(…)
mensaje(…)
X
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
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)
Diagrama de colaboración
objeto:Clase
otro:Clase2
1 mensaje(…)
rol
nuevo:Clase3new()
Diagrama de estados
Describen el comportamiento de instancias de un elemento
Máquinas de estado Pueden incluir variables
Modelar comportamiento discreto
Diagrama de estados
Elementos Estado Estado inicial Estado final Transición Entradas/Salidas Variables
Diagrama de estados
Listo
Eliminado
terminar
eliminar / control=0
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)
Diagrama de actividades
Calcular costo total
Autorizar
[costo>=50]
[costo<50]
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
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
Diagrama de use case
Empleado
Actualizar perfil
Actualizar beneficios
Administrador
Actualizar valor hora
<<include>>
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