Introduccion a UML[1]

Embed Size (px)

Citation preview

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