You are on page 1of 46

08 Introduccin a UML

Pablo Gervs F. Informtica, UCM, noviembre 2003


Sobre 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 diagramas
Diagramas 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 asignatura


Copyright 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 mayscula
Copyright 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 Presentaciones
V 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()

Clases
ImpresoMatricula 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 interaccin
impreso 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 hora


Copyright 1997 by Rational Software Corporation

OfertaAsignatura numero lugar hora

Clases
ImpresoMatricula GestorMatriculas
aadirEstudiante(Asig, InfoEstud)

AlgoritmoHorarios

Asignatura
nombre numero de creditos

Estudiante
carrera

abrir() aadirEst(InfoEstud)

Profesor
categoria

OfertaAsignatura
lugar 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 proveedor
Copyright 1997 by Rational Software Corporation

Asociacin

Direccin
< E m pleo Com paa E mp leador

Nombre
P 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

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 composicin
Cuerpo 1

Des liz ador

Ttulo

B arra

E nc abez ado

P anel

Representacin de la composicin
V 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 navegacin
ImpresoMatricula 0..* GestorMatriculas 1
aadirEstudiante(Asig, InfoEstud)

AlgoritmoHorarios

1 0..* Estudiante
carrera

Asignatura
nombre numero de creditos abrir() aadirEst(InfoEstud)

1 3..10 Profesor
categoria

4 1 0..4

1..* OfertaAsignatura
lugar 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 herencia
Form 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

Relaciones
ImpresoMatricula GestorMatriculas
aadirEstudiante(Asig, InfoEstud)

AlgoritmoHorarios

Asignatura
nombre numero de creditos

Estudiante
carrera

abrir() aadirEst(InfoEstud)

Profesor
categoria

OfertaAsignatura
lugar abrir() aadirEst(InfoEstud)

Copyright 1997 by Rational Software Corporation

Herencia
ImpresoMatricula GestorMatriculas
aadirEstudiante(Asig, InfoEstud)

AlgoritmoHorarios

Asignatura
nombre numero de creditos

UsuarioSistema
nombre

Estudiante
carrera

abrir() aadirEst(InfoEstud)

Profesor
categoria

OfertaAsignatura
lugar 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 Estado


Add student[ count < 10 ] Initialization
do: Initialize course

Add Student / Set count = 0

Open
entry: Register student exit: Increment count

Cancel Cancel Canceled


do: Notify registered students

[ count = 10 ]

Cancel

Closed
do: 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 componentes
Billing.exe Billing System Register.exe

People.dll Course.dll
Course 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

You might also like