Vous êtes sur la page 1sur 73

UML

Diagramas de Clases y Casos de Uso Ingeniera del Software 2


Curso 2008-2009

Prof.:Juan Carlos Gutirrez Lzaro


Dep. Ingeniera del Software e Inteligencia Artificial Facultad de Informtica Universidad Complutense Madrid

Qu es UML? I
Unified Modelling Language
Lenguaje grfico para modelado de sistemas
especificar, visualizar, construir, documentar

Estndar abierto (OMG: Object Management Group) Soporta todo el ciclo de vida de desarrollo de software
Especificaciones de anlisis, arquitectura, diseo, implementacin e implantacin

Soporta distintas reas de aplicacin


Sistemas distribuidos, tiempo real, aplicaciones monoproceso Sistemas de informacin corporativos (MIS), Banca/Finanzas, Telecomunicaciones, Defensa/Espacio, Transporte, Distribucin, Electromedicina, Ciencia, etc.

Soportado por herramientas


Rational Rose, Together, Objecteering, Paradigm Plus, Eclipse, ... Bouml

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Qu es UML? II
Unified Modelling Language
Proporciona un lenguaje comn para simplificar el conjunto de elementos del sistema y comunicarlos entre los diversos implicados (stateholders) Es un lenguaje de modelado grfico utilizado para especificar
Construye modelos precisos no ambiguos y completos.

NO es un mtodo
Cubre la especificacin de todas las decisiones de anlisis, diseo e implementacin en un sistema con gran cantidad de software.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Qu es UML? III
UML (http://www.uml.org)
No es el objetivo (... Aplicacin robusta flexible y escalable ...), es un medio
Comunicarse entre desarrolladores Comunicarse con los clientes Usar herramientas de generacin automtica de cdigo

No incluye:
Normas de calidad (anlisis y diseo orientado a objetos) Plantillas de artefactos (documentos de requisitos, de anlisis, ..) Gestin de proyecto y configuracin (estimacin de costes, ...) Mtricas (de calidad del sw, de resistencia al cambio, ...)

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Qu es UML? IV
Modelo de la arquitectura de un sistema 4+1 Vistas => Diagramas <= UML

Vista Diseo
(funcionalidad)

Vista Implementacin
(ensamblado, configuracin)

Vista Casos de Uso Vista Proceso


(Rendimiento, escalabilidad, procesamiento) (Requisitos, comportamiento)

Vista Despliegue
(topologa del sistema, distribucin, entrega, instalacin)

Cada vista es una proyeccin de la organizacin y la estructura del sistema, centrada en un aspecto particular del mismo. Cada una de estas vistas puede existir por s misma, lo que permite que un determinado usuario se centre en el aspecto que ms le interese.
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad Informtica UCM, curso 2008-2009 ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

Qu es UML? V
Vista de Casos de Uso: incluye los casos de uso que describen el comportamiento del sistema visto por sus usuarios finales, analistas, equipos de pruebas. Vista de Diseo: incluye las clases, interfaces y colaboraciones que forman el vocabulario del problema y su solucin (requisitos funcionales). Vista de Implementacin: incluye los componentes que se utilizan para ensamblar y hacer disponible el sistema fsico. Vista de Despliegue: incluye los nodos que forman la topologa hardware (distribucin, entrega e instalacin del sistema). Vista de Procesos: incluye los hilos y procesos que forman los mecanismos de concurrencia y sincronizacin de un sistema, as como funcionamiento, capacidad de adaptacin y rendimiento del sistema.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Objetivos de UML
Definir un lenguaje de modelado visual fcil de aprender pero rico en significado Estndar, estable y configurable
Unificar las metodologas de anlisis y diseo OO ms conocidas (Booch, OMT -Object Modelling Technique-, Objectory) e incluir ideas de otros lenguajes de modelado

Ser independiente de lenguajes de programacin o procesos particulares Promover en el mercado el crecimiento de herramientas CASE OO con soporte a UML Soportar conceptos de desarrollo de alto nivel tales como colaboraciones, frameworks, patrones y componentes Tratar aspectos del desarrollo de software actual
escalabilidad, concurrencia, distribucin, ejecutabilidad, etc.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Historia de UML

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

mbito de UML
Metodologa de desarrollo de software OO

Proceso

Tcnicas de Modelado Recursos Herramientas ... Experiencia

Notacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

Modelar
No se construye un edificio sin tener antes unos planos Permite estructurar la solucin a un problema
abstrayendo para gestionar la complejidad experimentando varias soluciones reduciendo los costes gestionando el riesgo de errores

Ventajas de modelar
Permite ver el sistema desde varias perspectivas haciendo ms sencillo su entendimiento y desarrollo Mejora la comunicacin
con el cliente del equipo de desarrollo

Notacin grfica: Grficos revelan la informacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

10

Elementos de UML
Entidades
Estructurales Comportamiento Agrupamiento Anotacin

Relaciones Diagramas

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

11

Entidades estructurales - I
Son los nombres de los modelos UML y representan fundamentalmente las partes estticas del modelo (conceptos o entidades materiales)

Casos de uso Clases Interfaces Colaboraciones Componentes Nodos

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

12

Entidades estructurales II
Caso de uso: descripcin de un conjunto de secuencias de
acciones que ejecuta un sistema y que produce un resultado observable para un actor particular

Clase: descripcin (abstraccin lgica) de un conjunto de


objetos que comparten los mismos atributos, operaciones, relaciones y semntica

Interfaz: coleccin de operaciones que especifican un servicio


de una clase o componente

Colaboracin: define una interaccin y es una sociedad de


roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de sus elementos.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

13

Entidades estructurales III


Componente: parte modular del diseo del sistema que
oculta su implementacin tras un conjunto de interfaces externas.
Representan elementos fsicos Slo tienen operaciones y adems nicamente alcanzables a travs de la interfaz del propio componente

Nodo: es un elemento fsico que existe en tiempo de


ejecucin y representa un recurso computacional, que generalmente tiene alguna memoria y, a menudo, capacidad de procesamiento (p.e. un servidor de archivos). Sirven para modelar la topologa del hardware sobre el que se ejecuta el sistema.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

14

Entidades de agrupamiento
Las entidades de agrupacin son las partes organizativas de los modelos UML Paquete: es un mecanismo de propsito general para organizar el propio diseo, dividiendo el sistema en subsistemas
Es puramente conceptual (slo existe en tiempo de desarrollo). Se visualiza grficamente como una carpeta que incluye su nombre y, a veces, su contenido. Existen variaciones de paquetes como son:
Framework Modelo Subsistema

Forma de agrupamiento

Reglas de negocio

Elementos que tienen el mismo servicio Alto grado de cohesin y poca colaboracin con elementos de paquetes diferentes
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

ISIA, Facultad Informtica UCM, curso 2008-2009

UML

UML

15

Entidades de comportamiento - I
Representan las partes dinmicas de los modelos UML, es decir, el comportamiento en el tiempo y en el espacio. Mientras que las ideas estticas ayudan a que un analista se comunique con el cliente, las ideas dinmicas ayudan al analista a comunicarse con un grupo de desarrolladores. Existen tres tipos de elementos de comportamiento:
Interaccin Mquina de estados Actividad

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

16

Entidades de comportamiento II
Interaccin: conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular, para alcanzar un propsito especfico.
Card Transaction Cash Withdrawal Bank System interface

Cash

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

17

Entidades de comportamiento III


Mquina de estados: comportamiento que especifica la secuencia de estados por las que pasa un objeto o una interaccin durante su vida en respuesta a eventos, junto con sus reacciones a estos eventos
Created PIN code Open do: verify PIN-code Wrong PIN-code Closed exit: eject Card Correct PIN-code Cash Withdrawal exit: cash delivered Ready

Actividad: comportamiento que especifica la secuencia de pasos que ejecuta un proceso computacional.
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

18

Entidades de comportamiento IV
Elemento Interaccin nfasis conjunto de objetos que interactan Se centra en el intercambio de mensajes entre objetos y el orden de los mensajes. ciclo de vida de un objeto Se centra en los estados en los que se puede encontrar y cmo transita de uno a otro. flujo entre los pasos ya sea de datos o de control.
UML

Mquina de estados

Actividad

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

19

Entidades de anotacin
Son los elementos explicativos del modelo UML
Comentarios para describir y hacer observaciones Se utilizan a modos de notas sobre el modelo grfico.

Emitir por fax {constraint}

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

20

Relaciones

Dependencia Asociacin Generalizacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

21

Vistas y Diagramas
Vistas
Parte Esttica: aspecto de un sistema que destaca su estructura Parte Dinmica: aspecto de un sistema que destaca su comportamiento

Diagramas
Diagrama estructural: muestra los aspectos estticos de un sistema que representan su estructura (esqueleto y componentes) Diagrama de comportamiento: muestra los aspectos dinmicos de un sistema como aquellos que representan sus partes mutables (varan con el tiempo).

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

22

Diagramas - I

Modelado Casos de Uso


Diagramas de Casos de Uso

Modelado Estructural
Diagramas de Clases

Modelado de Comportamiento
Diagramas de Secuencia Diagramas de Colaboracin Diagramas de Actividad Diagramas de Estados

Modelado de Implementacin
Diagramas de Componentes Diagramas de Desarrollo

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

23

Diagramas II
VARIAS PERSPECTIVAS DEL SISTEMA

Casos de uso Clase Objetos Secuencia Colaboracin Estados Actividades Componentes (sw) Despliegue (hw) (implantacin)
Un modelo es un punto de vista particular del sistema
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

Modelo de casos de uso Modelo estructural Modelo de comportamiento Modelo de implementacin

UML

24

Modelo estructural I
Visin del sistema que describe la estructura de los objetos, incluyendo su clasificacin, relaciones, atributos y operaciones
Desarrollado por analistas, diseadores y programadores

Muestra la estructura esttica del sistema


Las entidades que existen (clases, interfaces, componentes, nodos, etc.)
Captura el vocabulario del sistema

La estructura interna La relacin con otras entidades

Se define mediante:
Diagramas estructurales estticos
Diagrama de clases Diagrama de objetos

Diagramas de implementacin
Diagrama de componentes Diagrama de implantacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

25

Modelo estructural II
Elementos de un diagrama estructural
Clase
Descripcin de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica

Interfaz
Un conjunto nombrado de operaciones que caracterizan el comportamiento de un elemento
interface

Componente
Una parte modular, reemplazable y significativa del sistema que empaqueta implementacin y expone interfaces

Nodo
Objeto fsico de ejecucin que representa un recurso computacional (en ejecucin con mem.)

Restriccin
Condicin semntica para cambiar reglas
{constraint}

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

26

Modelo estructural III


Relaciones en un diagrama estructural
Asociacin
Relacin entre dos o ms clases que implica conexiones entre sus instancias. Puede ser bidireccional o unidireccional, dependiendo de si ambas conocen la existencia la una de la otra o no

Agregacin
Forma especial de asociacin que especifica una relacin todo-parte entre el agregado y la parte componente. Si el ciclo de vida del objeto hijo est ligado al superior la relacin se se denomina Composicin

Generalizacin
Relacin taxonmica entre un elemento ms general y otro ms concreto

Dependencia
Relacin entre dos elementos en la que un cambio en uno de ellos afecta al otro (elemento dependiente)

Realizacin
Relacin entre una implementacin y su especificacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

27

Modelo estructural IV
Visibilidad
UML identifica 4 tipos de visibilidad:
+ # ~ Public Private Protected Package

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

28

Modelo estructural V: D. estructurales estticos


Muestra un grafo de elementos clasificados conectados por relaciones estticas Dos tipos
Diagrama de clases: visin de clasificacin Diagrama de objetos: visin de instanciacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

29

Clases I : introduccin
Representacin
Nombre, atributos, mtodos Compartimentos con nombres
Definidos por el usuario (adems de los obligatorios) Ej: responsabilidades, excepciones

Para encontrar clases


Ver el D. de casos de uso y cada caso de uso Buscar conceptos del dominio, objetos Distintos niveles de detalle segn se avanza

Los estereotipos pueden ayudar


Nombres que dicen algo sobre la clase en s:
<<meta-clase>>, <<type>>, <<implementationClass>>

nombres que agrupan atributos o operaciones:


<<constructor>>, <<consulta>>

La informacin irrelevante en una etapa, no se pone: . . .

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

30

Clases II : Atributos
Formato grfico
Nombre de la clase

Clase
Atributos (puede omitirse) Mtodos (puede omitirse)

Las clases son el vocabulario y terminologa del rea de conocimiento

Tipos Tipos UML: Integer, Boolean, String Tipos de cualquier lenguaje de programacin Se pueden omitir en bocetos Ejemplo
Nombre: String Edad: Integer Telefonos: String [1 .. *]

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

31

Clases II : Atributos
Visibilidad
Smbolo + # ~ Visibilidad Pblico Privado Protegido Paquete

Estticos vs Instancia Los miembros estticos se subrayan Los miembros de instancia NO se subrayan Ejemplo
Nombre: String Edad: Integer Telefonos: String [1 .. *]

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

32

Clases III : Relaciones


Relaciones entre clases
Son la proyeccin de la colaboracin entre sus objetos (una persona trabaja para una empresa, una empresa tiene una cantidad determinada de sucursales, ...)

Caractersticas de la relaciones entre clases


Visibilidad
Carcter privado o pblico de la colaboracin entre dos objetos

Temporalidad
Mayor o menor duracin de la colaboracin entre dos objetos

Versatilidad
Intercambiabilidad de los objetos en la colaboracin con otro objeto
Visibilidad pblica privada

duradera Temporalidad momentnea

ASOC DEPENDENCIA
poca muy Versatilidad

AGREG

poca

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

33

Clases III : Relaciones de Asociacin - I


Relacin duradera entre un cliente y un servidor
Se dice que una clase A (cliente) est asociada a otra clase B (servidor) cuando un objeto de la clase A precisa de los servicios de uno o varios objetos de la clase B para realizar su responsabilidad asignada.

La relacin de asociacin establece un grafo en la que las distintas clases desempean funciones de cliente para con sus servidores y de servidor para con sus clientes Desde el punto de vista de la programacin esta relacin se traduce entre la clase y las clases de sus atributos definidos como punteros a dichas clases.
public class X { private x; public asociacion(X x) { this.x = x; } }

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

34

Clases III : Relaciones de Asociacin II


Caractersticas
Visibilidad
Los objetos asociados a otro objeto no estn encapsulados. Existen fuera del objeto cliente y tienen vida propia para colaborar con otros objetos.

Temporalidad
La relacin entre los objetos asociados y el objeto al que se asocian es duradera en el tiempo.

Versatilidad
Cada objeto que se asocia est relacionado con unos determinados objetos asociados

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

35

Clases III : Relaciones de Asociacin III


Job 1.. Company employer employee
asociacin rol

Person

Job salary
clase asociacin

boss 0..1
Asociacin reflexiva

worker

Manages
Instancia solo una de las dos

Person Account
estereotipo

{X or} Corporation

Fig. 3-40, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

36

Clases III : Relaciones de Asociacin III


Year season team
Asociacin ternaria

Team

goalkeeper

Player

Record goals for goals against wins losses ties


Fig. 3-44, UML Notation Guide
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

37

Clases III : Relaciones de Asociacin IV


Multiplicidad
La multiplicidad es la cantidad de objetos de una clase que se relacionan con un objeto de la clase asociada.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

38

Clases III : Relaciones de Asociacin V


Asociaciones calificadas
Cuando la multiplicidad de de una asociacin es de uno a muchos se presenta un reto muy particular: la bsqueda Cuando un objeto de una clase tiene que seleccionar un objeto particular de otro tipo para cumplir con un papel en la asociacin, la primera clase deber atenerse a un atributo en particular para localizar al objeto adecuado En UML la informacin de identidad se conoce como calificador.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

39

Clases III : Relaciones de Composicin I


Son un tipo especial de agregacin Los objetos parte siempre estn asociados a un objeto todo y slo a uno. Los objetos parte se crean y destruyen con el objeto todo. Los objetos parte no pueden compartirse entre varios objetos todo.
scrollbar Slider

Window scrollbar [2]: Slider title: Header body: Panel

Window 1 2 1 1 title 1 Header

body

1 Panel

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

40

Clases III: Relaciones de Composicin II


Notacin alternativa
Window

scrollbar:Slider

1 title:Header 1 body:Panel

Fig. 3-45, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

41

Clases III : Relaciones de Agregacin I


Una relacin de agregacin es la que forma un todo con sus partes. Son un tipo especial de relacin de asociacin. Pueden tener estereotipos, nombre, roles, multiplicidad, ... En las relaciones de agregacin, un objeto que representa una parte puede estar compartido por varios objetos que representan el todo (un alumno est en un curso y tambin puede estar en un grupo de amigos).

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

42

Clases III : Relaciones de Herencia I


Regla Generalizacin/Especializacin
La especializacin es la presencia de unas caractersticas especficas de un subconjunto de elementos de un determinado conjunto

Regla es-un ?

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

43

Clases III : Relaciones de Herencia II


Shape Separate Target Style

Polygon

Ellipse

Spline

. ..

Shape

Shared Target Style

Polygon

Ellipse

Spline

...

Fig. 3-47, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

44

Clases III : Relaciones de Dependencia I


Cuando en una relacin una clase utiliza a otra, a la relacin se la denomina dependencia El uso ms comn de una dependencia es mostrar que la
signatura de la operacin de la operacin de una clase utiliza la otra clase

La clase Sistema tiene la operacin mostrarFormulario(f:Form). El sistema que el usuario desplegr depender del sistema que elija el usuario.

Fig. 3-50, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

45

Clases III : Relaciones de Dependencia II


Un cambio en un elemento puede necesitar un cambio en el otro Unos predefinidos : <<use>>, <<import>> Otros definidos por el usuario: <<friend>>
ClassA friend ClassB friend instantiate ClassD

operationZ()

call

ClassC refine

ClassC combines two logical classes

ClassD

ClassE

Fig. 3-50, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

46

Clases III : Relaciones de Dependencia III


Caractersticas
Visibilidad
Los objetos usados por otros objetos de una clase pueden estar (declaraciones locales) o no estar encapsulados (parmetros y valor devuelto por funciones y operadores).

Temporalidad
La relacin entre los objetos usados y el que los usa, dura mientras se ejecuta un mtodo determinado de la clase cliente.

Versatilidad
Cada objeto que usa no est relacionado con unos determinados objetos usados (cualquier objeto servidor nos vale).

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

47

Clases III : Relaciones de Dependencia IV


Entre paquetes

Controller access access access Diagram Elements access Domain Elements Graphics Core

access

Fig. 3-51, UML Notation Guide

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

48

Clases IV : Objetos
Se utilizan para mostrar el estado del sistema en un momento concreto

tria n g le : P olyg on
c e n te r = (0 ,0 ) ve rtic e s = ( (0 ,0 ),(4 ,0) ,( 4,3 )) bo rd e rC olo r = bla c k fillC o lo r = wh ite

tria ng le

:P olyg on

tria ng le : P o lyg o n

s c h e d u le r
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

49

Clases IV : Objetos compuestos


awindow : Window horizontalBar:ScrollBar verticalBar:ScrollBar moves surface:Pane moves

title:TitleBar

Fig. 3-39, UML Notation Guide


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

50

Clases V : Ejemplo I de Diagrama de clases


CreditCard {abstract} PMCreditCard

<<interface>> EntityBean

OrderBean {abstract} +getOrderStatus +setOrderStatus +getLineItems +setLineItems +getCreditApproved +setCreditApproved *

PMOrder

order

...
1 order item PMLineItem * * 1 item commodity

buyer Customer

LineItem {abstract}

Product

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

51

Clases V: Ejemplo II de Diagrama de clases

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

52

Clases VI : Tipos e implementacin


Un
<<type>>

define un dominio de objetos y sus operaciones realiza el tipo en un lenguaje (Java)


implementationClass HashTable 1 body

Sin implementacin y sin mtodos reales (solo especificaciones)

Una

<<ImplementationClass>>
type Object * elements

type Set addElement(Object) removeElement(Object) testElement(Object):Boolean


Fig. 3-27, UML Notation Guide
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

implementationClass HashTableSet addElement(Object) removeElement(Object) testElement(Object):Boolean setTableSize(Integer)


UML

53

Clases VII : Interfaces - I


Especifica las operaciones ( de una clase o un componente):
visibles desde fuera, que ofrece, que implementa que necesita, que requiere, que usa

No implementa nada: es un contrato de un servicio Dos modos de representacin: simplificada y detallada


Segn las necesidades de representacin

Simplificada:

StoreHome POSterminalHome POSterminal POSterminal Store <<use>>

Store -storeId: Integer -POSlist: List +create() +login(UserName, Passwd) +find(StoreId) +getPOStotals(POSid) +updateStoreTotals(Id,Sales) +get(Item)

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

54

Clases VII : Interfaces II


Fig. 3-29, UML Notation Guide

<<use>>

realizacin

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

55

Clases VIII: Cundo emplear los diagramas de clase


Los diagramas de clase son la columna vertebral de los mtodos OO Son tan ricos que pueden resultar abrumadores
No tratar de utilizar todas las anotaciones disponibles
Comenzar con material sencillo como clases, asociacin, atributos y generalizacin.

Ajustar la perspectiva desde la cual se dibuja los modelos a la etapa del proyecto Organizacin y dependencias entre los componentes software
Si se est en la etapa de anlisis Cuando se trabaje con software especificacin modelos conceptuales centrarse en los modelos de

No dibujar modelos para todo


Centrarse en las reas clave Es mejor usar y mantener al da unos cuantos diseos que tener muchos modelos olvidados y obsoletos

El principal peligro es que nos podemos quedar muy pronto empantanados con los detalles de la implementacin
Hay que centrarse en las perspectivas conceptual y de especificacin.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

56

Modelo de casos de uso I


Visin del sistema tal como se muestra a sus usuarios externos
Los desarrollan tanto los analistas como los expertos del dominio

Particiona la funcionalidad requerida del sistema en:


transacciones o toma instantnea de algn aspecto del sistema (casos de uso) que producen un valor para los usuarios (actores) Muestra los servicios que los actores (usuarios y otros sistemas) pueden pedir al sistema. Son objetivos del usuario.

Se define mediante:
Diagramas de casos de uso (todo el sistema) Descripcin de los casos de uso
Mediante plantillas de texto Acompaados de diagramas de interaccin (ej.: d. secuencia)

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

57

Modelo de casos de uso I

Permite delimitar el sistema y las relaciones entre ste y su entorno


Similar a los DFDs en el enfoque Estructurado

El cliente y el equipo de desarrollo conforman un importante conjunto de integrantes en un sistema. Sin embargo, existe otro integrante de crucial importancia: el usuario. Ni la idea esttica ni la dinmica mostrarn el comportamiento del sistema desde el punto de vista del usuario. Comprender tal punto de vista es clave para generar sistemas que sean tanto tiles como funcionales, esto es, que cumplan los requerimientos y que sea fcil de trabajar con ellos. Facilitan la comunicacin entre el analista y el usuario.
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

58

Modelo de casos de uso II: elementos


Elementos de un diagrama de casos de uso
Caso de uso
Secuencia de acciones, incluyendo variantes, que puede realizar el sistema interaccionando con los actores del sistema
nombre de caso de uso

Actor
Un conjunto coherente de roles que juegan los usuarios cuando interaccionan con los casos de uso nombre de actor Cualquier cosa con comportamiento (hardware,software, personas)

Lmite del sistema (frontera)


Representa el lmite entre el sistema fsico y los actores que interaccionan con el sistema

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

59

Modelo de casos de uso III: relaciones entre elementos


Relaciones en un diagrama de casos de uso
Asociacin
La participacin de un actor en un caso de uso La instancia de un actor se comunican con instancias de un caso de uso

Generalizacin (es_un)
Relacin taxonmica entre un caso de uso ms general y otro ms especfico (tambin se aplica a actores)

Dependencia
<<extend>> el primero es una funcin opcional del segundo (variacin o punto de extensin). Se utiliza cuando se tiene un caso de uso que es similar a otro pero <<extend>> que hace un poco ms. <<include>> el primero hace una llamada obligatoria al segundo. Ocurre cuando se tiene una porcin de comportamiento que es similar en ms de un caso de uso y <<include>> no se quiere copiar la descripcin de tal conducta. Utilcese extend uando se describa una variacin de conducta normal Emplse include cuando se dese evitar repeticiones
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

60

Diagramas de casos de uso - I


Asociaciones de dependencia y generalizacin
<<extend>>
el cliente solicita el catlogo

Solicitar catlogo

Realizar pedido <<include>> <<include>> <<include>>

Proporcionar Datos Pedir Producto Cliente

Realizar Pago

Pago en metlico Pago con tarjeta de crdito


ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

61

Diagrama de casos de uso II


Es ms importante realizar las descripciones de los casos de uso que el diagrama de casos de uso Los casos de uso son documentos de texto
Trabajar con los casos de uso significa escribir texto

Los diagramas de casos de uso tienen que ser sencillos


Ayudan a determinar el contexto, los lmites del sistema

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

62

Diagrama de casos de uso III: Cundo definirlo


Para identificar los requisitos funcionales del sistema
y para identificar escenarios de prueba y el contexto o lmites

Normalmente en las primeras etapas de desarrollo


En metodologas dirigidas por casos de uso:
Empezar por los casos de uso y derivar de ellos los modelos estructural y de comportamiento

y si no:
Asegurarse que el modelo de casos de uso es consistente con los modelos estructural y de comportamiento

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

63

Diagrama de casos de uso IV


CENTROS HOSPITALARIOS

Un cierto hospital necesita organizar la asignacin de guardias de sus mdicos en sus diferentes centros hospitalarios mediante una aplicacin informtica. Para ello asigna a un Analista el diseo del sistema utilizando la notacin UML. Un mdico jefe tiene asignada la funcin de Planificador de guardias y debe tener en cuenta los mdicos disponibles, las guardias que debe cubrir y algunas incompatibilidades como asignaciones de tareas de ms alta prioridad. Por otra parte, los datos de todos los mdicos los mantiene un Supervisor, encargado de mantener esta informacin: altas, bajas, cambios de datos, etc. Existe tambin un Administrador del sistema que se encarga de la asignacin y revocacin de permisos a los planificadores. Se desea, asimismo, disponer de una funcin estadstica que permita generar listados informativos. Dado que varios planificadores de guardias pueden trabajar en paralelo, se quiere que se actualicen automticamente las estadsticas que vea cada uno cada vez que haya un cambio por parte de cualquiera de ellos. Asimismo, cada planificador puede editar y modificar planes de guardias. Se pide realizar el Diagrama de Casos de Uso de la aplicacin. Realizar una descripcin textual de los casos de uso y actores contemplados.
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

64

Diagrama de casos de uso V


CENTROS HOSPITALARIOS

Solucin: Los casos de uso son: Gestionar Mdicos: dar de alta, de baja y cambio de datos a todos los mdicos de cada centro hospitalario. Gestionar Estadsticas: actualizar las Estadsticas y presentarlas a los usuarios de la aplicacin cuando lo soliciten. Editar Planes: asignar los mdicos disponibles a las guardias previstas. Gestionar Planes: creacin y borrado de planes, apertura y cierre de planes ya creados, edicin e impresin (por ello se incluye al anterior Editar Planes) Gestionar Usuarios: gestionar las cuentas de los planificadores de guardias autorizados, creando usuarios y asignndoles una palabra clave. Los actores son: Supervisor: empleado administrativo que trabaja con datos confidenciales y que tiene que tener permisos especiales de acceso a datos restringidos. Planificador: encargado de la asignacin de guardias teniendo en cuenta la restricciones introducidas previamente en el sistema por el Supervisor Administrador: responsable de la asignacin de cuentas de acceso y de asegurar la confidencialidad y la integridad de la informacin del sistema.
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

ISIA, Facultad Informtica UCM, curso 2008-2009

UML

UML

65

Diagrama de casos de uso VI

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

66

Caso de uso I : Pautas a seguir para un buen modelo


Asegurarse que cada caso de uso describe una parte significativa del funcionamiento del sistema Evitar un nmero excesivo de casos de uso
Un caso de uso no es un paso, operacin o actividad individual en un proceso Un caso de uso describe un proceso completo que incluye varios pasos (flujo de trabajo de la empresa)

Los casos de uso deben ser simples, dado que podran cambiar con facilidad Los casos de uso tienen que ser entendibles tanto por desarrolladores software como por expertos del dominio
Es una descripcin de alto nivel del sistema Evitar conceptos de diseo

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

67

Caso de uso - II : Identificarlos para un buen modelo


A partir de los actores
Qu actores? (relacionados con el sistema o organizacin)
quin necesita el sistema? qu necesita el sistema para funcionar: personal, hardware especializado, otros programas (software).

Para cada actor, identificar los procesos que inician o en los que participan
ponerle nombre determinar lmites/frontera: qu es del sistema? Qu queda fuera? Qu espera recibir/obtener?

A partir de los eventos


Identificar los eventos externos a los que puede responder el sistema Relacionar los eventos con actores y casos de uso

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

68

Caso de uso - III : Descubrimiento


1.

Determinar los lmites del sistema


Es slo una aplicacin software, el hardware y la aplicacin como un todo? Lo utiliza ms de una persona o una organizacin completa?

2. 3. 4.

Identificar los actores principales


Quienes interactan con el sistema

Para cada actor, identificar sus objetivos como usuario


Seguir flujos en la empresa: dinero, informacin,

Definir los casos de uso que satisfagan los objetivos de usuario


Nombrar los casos de uso con un verbo

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

69

Caso de uso IV : Descripcin usando Plantillas


Caso de Uso <nmero> Objetivo: Precondiciones: entradas: Post-condiciones: salidas: Condicin final exitoso: Condicin final fallido: Actor primario: Actores secundarios: Secuencia normal:
(acciones actores si todo bien)

nombre: objetivo/frase verbal corta


Frase de definicin del objetivo Estado Mundo: cundo y cmo se activa. Datos entrada

El estado del mundo si todo va bien (y datos salida) El estado del mundo si se abandona el objetivo Nombre del rol que interacta con el sistema Otros sistemas que pueden participar Paso 1 2 Accin Pasos del escenario

Extensiones:
flujos alternativos, excepciones

Paso

Accin

1a
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

Condicin que causa la alternativa: Accin o nombre del subcaso


UML

ISIA, Facultad Informtica UCM, curso 2008-2009

UML

70

Caso de uso - V : D. Casos Uso en el proceso Anlisis


Las entrevistas con el cliente inician el proceso
Estas entrevistas producirn diagramas de clases
Obtendremos la base de conocimiento para el dominio del sistema, esto es, el rea del cliente

Ahora se est en condiciones de poder hablar con el usuario

Las entrevistas con el usuario empiezan con la terminologa del dominio, aunque debern alternarse hacia la terminologa de los usuarios
Estas entrevistas desvelarn a los actores y casos de uso de alto nivel que descubrirn los requerimientos funcionales en trminos generales Esta informacin tambin permitir establecer los lmites y mbito del sistema

Entrevistas posteriores con el usuario


Permitirn profundizar en los requerimientos, lo que dar lugar a casos de uso que mostrarn los escenarios y las secuencias detalladamente
ISIA, Facultad Informtica UCM, curso 2008-2009
Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07 UML

UML

71

Caso de uso - V : D. Casos Uso en el proceso Anlisis


Entrevistas posteriores con el usuario (cont.)
Esto podra resultar en otros casos de uso que satisfagan las relaciones de inclusin y extensin. En esta fase es importante confiar en la compresin del dominio a partir de los diagramas de clase
Si no se comprende adecuadamente el dominio se podran crear demasiados casos de uso y demasiados detalles, lo cual obstaculizara la labor de diseo.

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

72

Bibliografa

[UML 2.0] Unified Modeling Language: Superstructure v 2.0 (ago2005)


http://www.omg.org/cgi-bin/doc?formal/05-07-04

G. Booch, J. Rumbaugh, I. Jacobson, El Lenguaje Unificado de Modelado(UML 2.0) 2 Edicin. Addison Wesley, 2006. [UML 1.5] OMG Unified Modeling Language Specification v. 1.5, Marzo 2003. OMG UML: www.omg.org/uml Tambin www.uml.org Cetus links: www.cetus-links.org/oo_uml.html

ISIA, Facultad Informtica UCM, curso 2008-2009

Hctor Gmez Gaucha (adapt.de Juan Pavn) ISIA, Facultad de Informtica UCM, 2006-07

UML

UML

73

Vous aimerez peut-être aussi