08 Introduccin a UMLPablo Gervs F. Informtica, UCM, noviembre 2003Sobre trabajo de T. Quatrani
Usos de UML El lenguaje unificado de modelado UML se usa para: Mostrar los lmites de un sistema y sus funcionalidades principales, utilizando casos de uso y actores Ilustrar la realizaciones de casos de uso, utilizando diagramas de interaccin Representar una estructrua esttica del sistema, utilizando diagramas de clases
Tipos de diagrama UML ofrece 9 tipos de diagramasDiagramas Diagramas Diagramas Diagramas Diagramas de de de de de clases casos de uso colaboracin actividades componentes Diagramas Diagramas Diagramas Diagramas de de de de objetos secuencia estados 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 facturacin para que le pase al cobro la matrcula. Los estudiantes pueden usar el sistema para aadir o abandonar asignaturas durante un perido de tiempo despus de la matrcula Los profesores usan el sistema para recibir las listas de matriculados en sus asignaturas Se asignan contraseas 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 Profesor Estudiante Facturacin
Casos de uso Un caso de uso es un patrn 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 dilogo.
Se examinan los actores para determinar sus necesidades Administrador -- editar la oferta de asignaturas Profesor -- pedir listas Estudiante -- editar horario Facturacin -- recibir informacin de matrcula 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 tpicos Cmo 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 matrcula y escribe su contrasea. El sistema verifica que la contrasea es vlida (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: AADIR, ELIMINAR, REVISAR, o SALIR. Si la actividad seleccionada es AADIR, se ejecuta el flujo secundario S-1: Aadir 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.
Pedir lista de alumnos Estudiante Editar horario
Profesor
Editar oferta de asignaturas Facturacion Administrador
Realizaciones de casos de uso El diagrama de casos de uso presenta una visin del sistema desde fuera Los diagramas de interaccin describen cmo los casos de uso se realizan a travs de interacciones entre conjuntos de objetos Hay dos tipos de diagramas de interaccin Diagramas de secuencia Diagramas de colaboracin
Copyright 1997 by Rational Software Corporation
Diagrama de secuencia Un diagrama de secuencia muestra las interacciones entre objetos en orden cronolgico
: Estudiante
impreso matrcula
gestor matriculas
matematica 101
matem. 101 grupo A
1: rellenar datos 2: enviar 3: aadir asignatura(juan, matematica 101) 4: quedan plazas? 5: quedan plazas? 6: aadir(juan) 7: aadir (juan)
Copyright 1997 by Rational Software Corporation
Diagrama de colaboracin Un diagrama de colaboracin muestra las interacciones entre objetos organizadas en torno a los objetos y sus relaciones entre ellos.1: rellena info asignatura 2: procesa impreso asignatura : Impreso asignatura
: Administrador
3: aade asignatura
unaAsignatura : Asignatura
elGestor : Gestor Oferta 4: nueva asignaturaCopyright 1997 by Rational Software Corporation
Diagramas de clases Capturan la vista de diseo esttica 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 lgica del sistema Elementos de UML de los diagramas de clases Clases, su estructura y su comportamiento Relaciones de asociacin, agregacin, dependencia, y herencia Indicadores de multiplicidad y navegacin Nombres del papel que juega cada clase en una relacin
Copyright 1997 by Rational Software Corporation
Clases Una clase es una coleccin de objetos con estructura comn, comportamiento comn, relaciones comunes, y semntica comn Se encuentran las clases a base de examinar los objetos en los diagramas de secuencia y colaboracin Una clase se dibuja como un rectngulo 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 maysculaCopyright 1997 by Rational Software Corporation
Representacin de una clase
Nombre
Ve n ta n a ta m a o : Are a vis ib le : Bo o le a n o
Nombre Atributos Mtodos
Pers ona
m o s tra r() oculta r()
Representacin en detalle Gran nivel de detalle Atributos mbitos Visibilidad Abstraccin PresentacionesV entana + tam ao : A rea = (100,100) # vis ible : B ooleano + tam ao-defec to : Rec tngulo # tam ao-m x im o : Rec tngulo - Xptr : V entana + m os trar() + oc ultar() + c rear()
ClasesImpresoMatricula GestorMatriculas Asignatura Estudiante AlgoritmoHorarios
Profesor OfertaAsignatura
Copyright 1997 by Rational Software Corporation
Operaciones El comportamiento de una clase se representa mediante operaciones Las operaciones se encuentran examinado los diagramas de interaccinimpreso matricula gestor matriculas
Gestor Matriculas
aadir asig(Estud,Asigna)3: aadir 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
Cada oferta de asignatura tiene un nmero, un lugar y una horaCopyright 1997 by Rational Software Corporation
OfertaAsignatura numero lugar hora
ClasesImpresoMatricula GestorMatriculasaadirEstudiante(Asig, InfoEstud)
AlgoritmoHorarios
Asignaturanombre numero de creditos
Estudiantecarrera
abrir() aadirEst(InfoEstud)
Profesorcategoria
OfertaAsignaturalugar abrir() aadirEst(InfoEstud)
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 colaboracin para determinar qu relaciones entre objetos tienen que existir para que pueda darse el comportamiento deseado - si dos objetos necesitan comunicarse, deber haber una relacin entre ellos Hay tres tipos de relacin: Asociacin Agregacin Dependencia
Copyright 1997 by Rational Software Corporation
Relaciones Una asociacin es una conexin bi-direccional entre clases Una asociacin se representa como una lna que conecta las clases relacionadas
Una agregacin es una relacin ms fuerte: entre el todo y las partes que lo componen Una agregacin se representa como una lnea que conecta las clases relacionadas con un rombo junto a la clase que representa el todo
Una relacin de dependencia es una relacin ms dbil: la qu hay entre un cliente y un proveedor cuando el cliente no tiene conocimiento semntico del proveedor Una dependencia se representa como una lnea punteada que apunta del cliente al proveedorCopyright 1997 by Rational Software Corporation
Asociacin
Direccin< E m pleo Com paa E mp leador
NombreP ers ona E m pleado
Rol
Direccin
Multiplicidad y navegacin La multiplicidad define cmo varios objetos participan en las relaciones La multiplicidad de una relacin es el nmero de ejemplares de una clase relacionados con UNA instancia de otra clase Para cada asociacin y agregacin, hay dos decisioens de multiplicidad que tomar: una para cada extremo de la relacin
Aunque las asociaciones y las agregaciones son bi-direccionales por defecto, a veces es deseable restringir la navegabilidad de la relacin a una sola direccin Si la navegabilidad est restringida, se aade una punta de flecha para indicar la direccin de navegacin
Copyright 1997 by Rational Software Corporation
Multiplicidad
0 ms
1 ms
Com paa
*
< E m pleo
1..* E m pleado
P ers ona
E m pleador
Ejemplos de multiplicidades Ejemplos de multiplicidades 0..1 1 0..* * 1..* 1..6 1..3,7..10,15,19..*
Agregacin Agregacin Tipo especial de asociacin Connotacin semntica de posesin, contencin o composicin
Po lg o n o
1
3 ..*
Pu n to
Smbolo de agregacin
Composicin Composicin Agregacin con connotacin de posesin Coincidencia en tiempo de vida entre el todo y las partes
V entana
Smbolo de composicinCuerpo 1
Des liz ador
2
Ttulo
1
B arra
E nc abez ado
P anel
Representacin de la composicinV entana
Ven ta n a D es lizad o r[2 ] : Barra Ttu lo : En ca be za d o C ue rp o : Pan e l
D es l iz ador : Barra 2 Ttulo: E nc abez ado 1 Cuerpo: P anel1
Dependencia Dependencia Refleja relacin semntica entre dos clases No representa asociacin entre ejemplares Refleja que el cambio de una clase puede afectar a la otra< < am iga> >
ClaseB
Clas eA
< < ll ama> >
Dependencia
Clas eC
Multiplicidad y navegacinImpresoMatricula 0..* GestorMatriculas 1aadirEstudiante(Asig, InfoEstud)
AlgoritmoHorarios
1 0..* Estudiantecarrera
Asignaturanombre numero de creditos abrir() aadirEst(InfoEstud)
1 3..10 Profesorcategoria
4 1 0..4
1..* OfertaAsignaturalugar abrir() aadirEst(InfoEstud)
Herencia Herencia es la relacin entre una superclase y sus subclases Hay dos maneras de encontrar la herencia: Generalizacin Especializacin
Los atributos, operaciones, y/o relaciones comunes deben representarse al nivel aplicable ms alto de la jerarqua
Copyright 1997 by Rational Software Corporation
Representacin de la herenciaForm a
P olgono
E lips e
S pline
Form a
P olgono
E lips e
S pline
Encontrar relaciones Se encuentran relaciones examinando los diagramas de interaccin Si dos objetos "hablan" debe haber un camino para la comunicacin
Gestor Matriculas
Matem. 101: Asignatura
Gestor Matriculas
3: aadir estud(juan) Asignatura
Copyright 1997 by Rational Software Corporation
RelacionesImpresoMatricula GestorMatriculasaadirEstudiante(Asig, InfoEstud)
AlgoritmoHorarios
Asignaturanombre numero de creditos
Estudiantecarrera
abrir() aadirEst(InfoEstud)
Profesorcategoria
OfertaAsignaturalugar abrir() aadirEst(InfoEstud)
Copyright 1997 by Rational Software Corporation
HerenciaImpresoMatricula GestorMatriculasaadirEstudiante(Asig, InfoEstud)
AlgoritmoHorarios
Asignaturanombre numero de creditos
UsuarioSistemanombre
Estudiantecarrera
abrir() aadirEst(InfoEstud)
Profesorcategoria
OfertaAsignaturalugar abrir() aadirEst(InfoEstud)
Copyright 1997 by Rational Software Corporation
Diagramas de objetos
Capturan la vista de diseo esttica de un sistema desde el punto de vista de los objetos En los diagramas de objetos No aparece la herencia No aparecen las dependencias
Representacin de un objeto
Tringulo: Polgono centro = (0,0) vrtices = ((0,0),(4,0),(4,3)) colorLnea = negro colorFondo = blanco
Nombre y tipo
Atributos y valores
Variaciones posibles
Tringulo: Polgono
Objeto con nombre y tipo Objeto con nombre y sin tipo Objeto annimo con tipo
Tringulo
: Polgono
Estado de un Objeto Un diagrama de transicin de estados muestra La evolucin de una clase dada Los eventos que producen una transicin de un estado a otro Las acciones que resultan de un cambio de estado
Los diagramas de transicin de estado se crean para objetos que tengan un comportamiento dinmico significativo
Copyright 1997 by Rational Software Corporation
Diagrama de Transicin de EstadoAdd student[ count < 10 ] Initializationdo: Initialize course
Add Student / Set count = 0
Openentry: Register student exit: Increment count
Cancel Cancel Canceleddo: Notify registered students
[ count = 10 ]
Cancel
Closeddo: Finalize course
Copyright 1997 by Rational Software Corporation
La presencia fsica del software Los diagrams de coponentes ilustran la organizacin y dependencias entre componentes software Un componente puede ser Un componente de cdigo fuente Un componente en tiempo de ejecucin Un componente ejecutable
Diagrama de componentesBilling.exe Billing System Register.exe
People.dll Course.dllCourse User
Student Course Course Offering
Professor
Despliegue del sistema El diagrama de despliegue muestra la configuracin de los nodos de procesamiento que participan en la aplicacin y los procesos software que residen en ellos El diagrama de despliegue muestra la distribucin de componentes a lo largo de la empresa.
Diagrama de despliegue
Matricula
Base de datos
Biblioteca
Edificio Principal
Residencia
Ampliando UML Se utilizan estereotipos para ampliar la notacin 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