08 Introducción a UML
Pablo Gervás
F. Informática, UCM, noviembre 2003
Usos de UML
• El lenguaje unificado de modelado UML se usa para:
– Mostrar los límites de un sistema y sus funcionalidades principales, utilizando casos de uso y actores
– Ilustrar la realizaciones de casos de uso, utilizando diagramas de interacción
– Representar una estructrua estática del sistema, utilizando diagramas de clases
Tipos de diagrama
• UML ofrece 9 tipos de diagramas
Diagramas de clases Diagramas de objetos
Diagramas de casos de uso Diagramas de secuencia
Diagramas de colaboración Diagramas de estados
Diagramas de actividades Diagramas de despliegue
Ejemplo de uso de UML
• Una universidad quiere informatizar su sistema de matricula
– El Administrador plantea una oferta de asignaturas para el semestre
• Cada asignatura puede ofrecerse en varios grupos
– Los estudiantes eligen 4 asignaturas principales y 2 alternativas – Una vez el estudiante se ha matriculado para el semestre, se
informa al sistema de facturación para que le pase al cobro la matrícula.
– Los estudiantes pueden usar el sistema para añadir o abandonar asignaturas durante un periódo de tiempo después de la matrícula – Los profesores usan el sistema para recibir las listas de
matriculados en sus asignaturas
– Se asignan contraseñas a los usuarios del sistema, que se utilizan para el control de acceso.
Actores
• Un actor es alguien o algo que tiene que interactuar con el
sistema que se está desarrollando
Administrador
Profesor
Estudiante
Casos de uso
• Un caso de uso es un patrón de comportamiento que muestra el
sistema
– Cada caso de uso es una secuencia de transacciones relacionadas llevadas a cabo por un actor y el sistema a modo de diálogo.
• Se examinan los actores para determinar sus necesidades
– Administrador -- editar la oferta de asignaturas – Profesor -- pedir listas
– Estudiante -- editar horario
– Facturación -- recibir información de matrícula del sistema
Documentar los casos de uso
• Se crea un flujo de eventos para cada caso de uso
– Escrito desde el punto de vista del actor
• Detalla lo que el sistema debe proporcionar al actor cuando se
ejecuta el caso de uso
• Contenidos típicos
– Cómo empiea y acaba el caso de uso – El flujo normal de eventos
– Flujos alternativos de eventos – Flujos excepcionales de eventos
Editar oferta
Flujo de eventos
• Este caso de uso empieza cuando el Administrador accede al sistema de matrícula y escribe su contraseña. El sistema verifica que la
contraseña es válida (E-1) y pide al Administrador que seleccione el semestre actual o un semestre futuro (E-2). El Administrador
selecciona el semestre deseado. El sistema pide al Administrador que seleccione la actividad deseada: AÑADIR, ELIMINAR, REVISAR, o SALIR.
• Si la actividad seleccionada es AÑADIR, se ejecuta el flujo secundario S-1: Añadir una asignatura.
• Si la actividad seleccionada es ELIMINAR, se ejecuta el flujo secundario S-2: Eliminar una asignatura.
• Si la actividad seleccionada es REVISAR, se ejecuta el flujo secundario S-3: Revisar oferta.
• Si la actividad seleccionada es SALIR, finaliza el caso de uso. • ...
Diagrama de casos de uso
• Los diagramas de casos de uso se crean para visualizar las
relaciones entre los actores y los casos de uso.
Facturacion
Editar horario Estudiante
Profesor
Administrador
Pedir lista de alumnos
Realizaciones de casos de uso
• El diagrama de casos de uso presenta una visión del sistema
desde fuera
• Los diagramas de interacción describen cómo los casos de uso
se realizan a través de interacciones entre conjuntos de objetos
• Hay dos tipos de diagramas de interacción
– Diagramas de secuencia – Diagramas de colaboración
Diagrama de secuencia
• Un diagrama de secuencia muestra las interacciones entre
objetos en orden cronológico
: Estudiante gestormatriculas matematica 101
1: rellenar datos 2: enviar
3: añadir asignatura(juan, matematica 101)
4: quedan plazas? 5: quedan plazas? 6: añadir(juan) 7: añadir (juan) matem. 101 grupo A impreso matrícula
Diagrama de colaboración
• Un diagrama de colaboración muestra las interacciones entre
objetos organizadas en torno a los objetos y sus relaciones
entre ellos.
impreso asignatura : Impreso asignatura elGestor : Gestor Oferta unaAsignatura : Asignatura1: rellena info asignatura 2: procesa
4: nueva asignatura
3: añade asignatura : Administrador
Diagramas de clases
• Capturan la vista de diseño estática de un sistema desde el
punto de vista de las clases
• Un diagrama de clases muestra la existencia de clases y las
relaciones entre ellas en la vista lógica del sistema
• Elementos de UML de los diagramas de clases
– Clases, su estructura y su comportamiento
– Relaciones de asociación, agregación, dependencia, y herencia – Indicadores de multiplicidad y navegación
– Nombres del papel que juega cada clase en una relación
Clases
• Una clase es una colección de objetos con estructura común,
comportamiento común, relaciones comunes, y semántica
común
• Se encuentran las clases a base de examinar los objetos en los
diagramas de secuencia y colaboración
• Una clase se dibuja como un rectángulo con tres
compartimentos
• Se debe poner nombre a las clases usando el vocabulario del
dominio
– Se debe intentar definir maneras pre-establecidas de poner nombres
– Por ejemplo, todas las clases son nombres en singular que empiezan por mayúscula
Representación de una clase
Nombre
Atributos
Métodos
Nombre
Pers ona Ventana tam año : Areavis ible : Booleano m os trar()
Representación en detalle
• Gran nivel de detalle
– Atributos – Ámbitos – Visibilidad – Abstracción – Presentaciones Ventana
+ tam año : Area = (100,100) # visible : Booleano
+ tam año-defecto : Rectángulo # tam año-m áxim o : Rectángulo - Xptr : Ventana
+ m ostrar() + ocultar() + crear()
Clases
ImpresoMatricula GestorMatriculas Asignatura Estudiante OfertaAsignatura Profesor AlgoritmoHorariosOperaciones
• El comportamiento de una clase se representa mediante
operaciones
• Las operaciones se encuentran examinado los diagramas de
interacción
impreso
matricula matriculas gestor
Gestor Matriculas
añadir asig(Estud,Asigna)
3: añadir asignatura(juan, matem. 101)
Atributos
• La estructura de una clase se representa mediante sus atributos
• Los atributos se encuentran examinando las definiciones de las
clases, los requisitos del problema, y aplicando conocimiento del
dominio
OfertaAsignatura numero lugar horaCada oferta de
asignatura
tiene un número,
un lugar
y una hora
Clases
ImpresoMatricula GestorMatriculas Asignatura Estudiante OfertaAsignatura Profesor AlgoritmoHorarios añadirEstudiante(Asig, InfoEstud) carrera nombre numero de creditos abrir() añadirEst(InfoEstud) lugar abrir() añadirEst(InfoEstud) categoriaRelaciones
• Las relaciones constituyen el camino para que se comuniquen
los objetos
• Se examinan los diagramas de secuencia y colaboración para
determinar qué relaciones entre objetos tienen que existir para
que pueda darse el comportamiento deseado - si dos objetos
necesitan comunicarse, deber haber una relación entre ellos
• Hay tres tipos de relación:
– Asociación – Agregación – Dependencia
Relaciones
• Una asociación es una conexión bi-direccional entre clases
– Una asociación se representa como una lína que conecta las clases relacionadas
• Una agregación es una relación más fuerte: entre el todo y las
partes que lo componen
– Una agregación se representa como una línea que conecta las
clases relacionadas con un rombo junto a la clase que representa el todo
• Una relación de dependencia es una relación más débil: la qu
hay entre un cliente y un proveedor cuando el cliente no tiene
conocimiento semántico del proveedor
– Una dependencia se representa como una línea punteada que apunta del cliente al proveedor
Asociación
Compañía Persona < Empleo Empleado Emp leadorRol
Nombre
Dirección
Dirección
Multiplicidad y navegación
• La multiplicidad define cómo varios objetos participan en las
relaciones
– La multiplicidad de una relación es el número de ejemplares de una clase relacionados con UNA instancia de otra clase
– Para cada asociación y agregación, hay dos decisioens de multiplicidad que tomar: una para cada extremo de la relación
• Aunque las asociaciones y las agregaciones son bi-direccionales
por defecto, a veces es deseable restringir la navegabilidad de
la relación a una sola dirección
• Si la navegabilidad está restringida, se añade una punta de
flecha para indicar la dirección de navegación
Multiplicidad
1 ó más
0 ó más
Com pañía * < Em pleo 1..* Persona Em pleado
Em pleador
1..* *
Ejemplos de multiplicidades
• Ejemplos de multiplicidades
• 0..1 • 1 • 0..* • * • 1..* • 1..6 • 1..3,7..10,15,19..*Agregación
• Agregación
– Tipo especial de asociación
– Connotación semántica de posesión, contención o composición
Símbolo de agregación
Composición
• Composición
– Agregación con connotación de posesión
– Coincidencia en tiempo de vida entre el todo y las partes
Símbolo de
composición
Encabezado Barra Panel Ventana 1 2 1Representación de la composición
Ventana D es lizador[2] : Barra Título : Encabezado C uerpo : Panel V entanaTítulo: E nc abez ado D es l iz ador : Barra
Cuerpo: P anel
1
1
Dependencia
• Dependencia
– Refleja relación semántica entre dos clases – No representa asociación entre ejemplares
– Refleja que el cambio de una clase puede afectar a la otra
Dependencia
ClaseA ClaseB ClaseC <<amiga>> <<ll ama>>Multiplicidad y navegación
1 0..* 0..* 1 1 1..* 4 3..10 0..4 1 ImpresoMatricula GestorMatriculas Asignatura Estudiante OfertaAsignatura Profesor AlgoritmoHorarios añadirEstudiante(Asig, InfoEstud) carrera nombre numero de creditos abrir() añadirEst(InfoEstud) lugar abrir() añadirEst(InfoEstud) categoriaHerencia
• Herencia es la relación entre una superclase y sus subclases
• Hay dos maneras de encontrar la herencia:
– Generalización – Especialización
• Los atributos, operaciones, y/o relaciones comunes deben
representarse al nivel aplicable más alto de la jerarquía
Representación de la herencia
Form a
Polígono E lipse S pline
Form a
Encontrar relaciones
• Se encuentran relaciones examinando los diagramas de
interacción
– Si dos objetos "hablan" debe haber un camino para la comunicación Gestor Matriculas Asignatura Gestor Matriculas Matem. 101: Asignatura 3: añadir estud(juan)
Relaciones
ImpresoMatricula GestorMatriculas Asignatura Estudiante OfertaAsignatura Profesor AlgoritmoHorarios añadirEstudiante(Asig, InfoEstud) carrera nombre numero de creditos abrir() añadirEst(InfoEstud) lugar abrir() añadirEst(InfoEstud) categoriaHerencia
nombre UsuarioSistema ImpresoMatricula GestorMatriculas Asignatura Estudiante OfertaAsignatura Profesor AlgoritmoHorarios añadirEstudiante(Asig, InfoEstud) carrera nombre numero de creditos abrir() añadirEst(InfoEstud) lugar abrir() añadirEst(InfoEstud) categoriaDiagramas de objetos
• Capturan la vista de diseño estática de un sistema desde el
punto de vista de los objetos
• En los diagramas de objetos
– No aparece la herencia
Representación de un objeto
Nombre y tipo
Atributos y valores
Triángulo: Polígono
centro = (0,0)
vértices = ((0,0),(4,0),(4,3))
colorLínea = negro
colorFondo = blanco
Variaciones posibles
Objeto con nombre y tipo
Objeto con nombre y sin tipo
Objeto anónimo con tipo
Triángulo: Polígono
Triángulo
Estado de un Objeto
• Un diagrama de transición de estados muestra
– La evolución de una clase dada
– Los eventos que producen una transición de un estado a otro – Las acciones que resultan de un cambio de estado
• Los diagramas de transición de estado se crean para objetos
que tengan un comportamiento dinámico significativo
Diagrama de Transición de Estado
Initialization
Open
entry: Register student exit: Increment count
Closed Canceled
do: Initialize course
do: Finalize course do: Notify registered students
Add Student / Set count = 0
Add student[ count < 10 ]
[ count = 10 ] Cancel
Cancel
Cancel
La presencia física del software
• Los diagrams de coponentes ilustran la organización y
dependencias entre componentes software
• Un componente puede ser
– Un componente de código fuente
– Un componente en tiempo de ejecución – Un componente ejecutable
Diagrama de componentes
Course Course Offering Student Professor Course.dll People.dll Course User Register.exe Billing.exe Billing SystemDespliegue del sistema
• El diagrama de despliegue muestra la configuración de los
nodos de procesamiento que participan en la aplicación y los
procesos software que residen en ellos
• El diagrama de despliegue muestra la distribución de
componentes a lo largo de la empresa.
Diagrama de despliegue
Matricula Base de datos Biblioteca Residencia Edificio PrincipalAmpliando UML
• Se utilizan estereotipos para ampliar la notación de UML
• Se usan los esterereotipos para clasificar y ampliar asociaciones,
relaciones de herancia, clases y componentes
• Ejemplos:
– Estereotipos de clase: interfaz, control, entidad, excepcion – Estereotipos de componente: subsistema