Post on 05-Feb-2018
08 Introducción a UML
Pablo GervásF. Informática, UCM, noviembre 2003
Sobre trabajo de T. Quatrani
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 objetosDiagramas de casos de uso Diagramas de secuenciaDiagramas de colaboración Diagramas de estadosDiagramas de actividades Diagramas de despliegueDiagramas de componentes
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.
Copyright © 1997 by Rational Software Corporation
Actores
• Un actor es alguien o algo que tiene que interactuar con el sistema que se está desarrollando
Administrador
ProfesorEstudiante
Facturación
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
Editar horario Pedir listas Editar plan de estudios
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 ofertaFlujo 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 lacontraseñ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
EstudianteProfesor
Administrador
Pedir lista de alumnos
Editar oferta de asignaturas
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
Copyright © 1997 by Rational Software Corporation
Diagrama de secuencia• Un diagrama de secuencia muestra las interacciones entre
objetos en orden cronológico
: Estudiantegestormatriculas 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
impresomatrícula
Copyright © 1997 by Rational Software Corporation
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 OfertaunaAsignatura :
Asignatura
1: rellena info asignatura2: procesa
4: nueva asignatura
3: añade asignatura: Administrador
Copyright © 1997 by Rational Software Corporation
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
Copyright © 1997 by Rational Software Corporation
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
Copyright © 1997 by Rational Software Corporation
Representación de una clase
Nombre
Atributos
Métodos
Nombre
Pers ona
Ventana
tam año : Areavis ib le : Booleano
m os trar()ocultar()
Representación en detalle
• Gran nivel de detalle– Atributos– Ámbitos– Visibilidad– Abstracción– Presentaciones
Ventana+ tamaño : Area = (100,100)# vis ible : Booleano+ tamaño-defecto : Rectángulo# tamaño-máximo : Rectángulo- Xptr : Ventana
+ mostrar()+ ocultar()+ crear()
Clases
ImpresoMatricula
GestorMatriculas
Asignatura
Estudiante
OfertaAsignaturaProfesor
AlgoritmoHorarios
Copyright © 1997 by Rational Software Corporation
Operaciones
• El comportamiento de una clase se representa mediante operaciones
• Las operaciones se encuentran examinado los diagramas de interacción
impresomatricula
gestor matriculas
Gestor Matriculas
añadir asig(Estud,Asigna)3: añadir asignatura(juan, matem. 101)
Copyright © 1997 by Rational Software Corporation
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
OfertaAsignaturanumerolugarhora
Cada oferta de asignaturatiene un número, un lugar y una hora
Copyright © 1997 by Rational Software Corporation
Clases
ImpresoMatricula
GestorMatriculas
Asignatura
Estudiante
OfertaAsignaturaProfesor
AlgoritmoHorarios
añadirEstudiante(Asig, InfoEstud)
carrera
nombrenumero de creditos
abrir()añadirEst(InfoEstud)
lugar
abrir()añadirEst(InfoEstud)
categoria
Copyright © 1997 by Rational Software Corporation
Relaciones
• 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
Copyright © 1997 by Rational Software Corporation
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 quhay 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
Copyright © 1997 by Rational Software Corporation
Asociación
Compañía Persona< Empleo
EmpleadoEmp leador
Rol
NombreDirecció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
Copyright © 1997 by Rational Software Corporation
Multiplicidad
1 ó más0 ó más
Compañía Persona1..** < Empleo
EmpleadoEmpleador
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
Polígono Punto3..*1 3..*1
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
EncabezadoBarra Panel
Ventana
12 1Deslizador 2 Título 1 Cuerpo 1
Representación de la composición
Ventana
Des lizador[2] : BarraTítu lo : EncabezadoCuerpo : Panel
V entana
Título: Encabezado
D es l izador : Barra
Cuerpo: Panel
1
1
2
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
ClaseAClaseB
ClaseC
<<amiga>>
<<llama>>
Multiplicidad y navegación
1
0..*
0..*1
1
1..*4
3..10
0..41
ImpresoMatricula
GestorMatriculas
Asignatura
Estudiante
OfertaAsignaturaProfesor
AlgoritmoHorarios
añadirEstudiante(Asig, InfoEstud)
carrera
nombrenumero de creditos
abrir()añadirEst(InfoEstud)
lugar
abrir()añadirEst(InfoEstud)
categoria
Herencia
• 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
Copyright © 1997 by Rational Software Corporation
Representación de la herencia
Forma
Polígono Elipse Spline
Forma
Polígono Elipse Spline
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
GestorMatriculas
Matem. 101: Asignatura
3: añadir estud(juan)
Copyright © 1997 by Rational Software Corporation
Relaciones
ImpresoMatricula
GestorMatriculas
Asignatura
Estudiante
OfertaAsignaturaProfesor
AlgoritmoHorarios
añadirEstudiante(Asig, InfoEstud)
carrera
nombrenumero de creditos
abrir()añadirEst(InfoEstud)
lugar
abrir()añadirEst(InfoEstud)
categoria
Copyright © 1997 by Rational Software Corporation
Herencia
nombreUsuarioSistema
ImpresoMatricula
GestorMatriculas
Asignatura
Estudiante
OfertaAsignaturaProfesor
AlgoritmoHorarios
añadirEstudiante(Asig, InfoEstud)
carrera
nombrenumero de creditos
abrir()añadirEst(InfoEstud)
lugar
abrir()añadirEst(InfoEstud)
categoria
Copyright © 1997 by Rational Software Corporation
Diagramas 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– No aparecen las dependencias
Representación de un objeto
Nombre y tipo
Atributos y valores
Triángulo: Polígonocentro = (0,0)vértices = ((0,0),(4,0),(4,3))colorLínea = negrocolorFondo = 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
: Polígono
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
Copyright © 1997 by Rational Software Corporation
Diagrama de Transición de Estado
Initialization Openentry: Register studentexit: 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
Copyright © 1997 by Rational Software Corporation
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 CourseOffering
Student Professor
Course.dll
People.dll
Course
User
Register.exeBilling.exe
BillingSystem
Despliegue 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
EdificioPrincipal
Ampliando 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