P. 1
Uml Presentacion

Uml Presentacion

|Views: 1.486|Likes:
Publicado porJhonman
Presentación de UML con imágenes y ejemplos muy claros, que explican a detalle el Modelo de Lenguaje Unificado (Unified Modeling Language (UML))
Presentación de UML con imágenes y ejemplos muy claros, que explican a detalle el Modelo de Lenguaje Unificado (Unified Modeling Language (UML))

More info:

Published by: Jhonman on May 09, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/23/2013

pdf

text

original

UML

1

Referencias

• • • • •

Eriksson, Hans-Erik: UML 2 Toolkit, ed. Wiley Publishing, 2004.
– Es una referencia completa para UML 2.0.

Fowleer, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition by Martin Fowler, 2003 – Es UML 2.0. Bastante completo. Pilone, D.: UML 2.0 in a Nutshell, 2005
– Es UML 2.0. Bastante completo.

Bennett, S.: Análisis y diseño orientado a objetos de sistemas usando UML 3ª ed, 2006. – Es UML 2.0. Incluye patrones de diseño y proceso unificado. Rumbaugh, J.; Jacobson, J.; Booch, G.: Unified Modeling Language Reference Manual, The Second Edition, 2004.
– Es una referencia clásica.

Booch, G.; Rumbaugh, J.; Jacobson, I.: Unified Modeling Language User Guide, Addison-Wesley, 1998. (versión en español: "El Lenguaje Unificado de Modelado", Addison-Wesley, Madrid, 1999).
– Es una referencia clásica. Referencia resumida y rápida en la web (es UML 1.x) 2

Tutorial de Borland (http://bdn.borland.com/article/0,1410,31863,00.html)

Introducción, I

Similitud:
– Arquitectos, edificios, planos – Ing. Inf., programas, diagramas

UML
– Unified Modeling Language. Versión 2.0 (finales 2004) – Diagramas (ing. inf.)
• Usados como esquemas y menos con información rigurosa (“planos de arquitectos”) • Dos modos:
– – Ingeniería inversa: a partir de código hacer diagramas Ingeniería directa: hacer diagramas y luego implementar

Dominio
– Mundo en el que hay definido un problema

Modelo:
– Abstracción de un problema – Formado por objetos

3

Introducción, II
• Objetos:
– Interaccionan entre sí enviándose mensajes – Cosas que saben (atributos) y cosas que pueden hacer (operaciones) – Los valores de sus atributos determinan sus estados

• Clases:
– Un “diagrama” para un objeto – Objetos son instancias de clases

4

Diagramas de casos de uso
• • • • • • • • • • Válidos támbién en contextos no Orientados a Objetos (OO) Lo que hace el sistema (no cómo lo hace) Pueden describirse en lenguaje natural Escenario:
– Una secuencia de operaciones (lo que ocurre al interaccionar con el sistema)

Caso de uso (un óvalo):
– Resumen de escenarios para un caso particular

Un actor (persona u objeto) establece una comunicación con un caso de uso, que es una línea recta (si es dirigida, es decir con una flecha, indica quién inicia la interacción) Diagrama de casos de uso:
– Una colección de actores, casos de uso y sus comunicaciones – Puede contener fronteras de separación (rectángulos)

Permiten:
– Planificar acciones de debugging – Hacer análisis de requisitos (las acciones completas de los usuarios)

Pueden contener precondiciones y postcondiciones Un caso de uso suele consistir en una tarea completa
– Por ejemplo, es más conveniente 2) que 1) para considerarse como un caso de uso:
1. Añadir un artículo al carro de la compra 2. Comprar un artículo
5

Ejemplo, I

6

Ejemplo, II

7

Ejemplo, III (a)

realizar llamada telefonica Emisor Receptor

8

Ejemplo, III (b)
Un escenario para el caso de uso “realizar una llamada telefónica”:
• • • • • • • • • • • • Origen levanta receptor Suena tono de llamada Origen marca cifra (9) Para tono de llamada Origen marca cifra (1) Origen marca cifra (3) Origen marca cifra (9) Origen marca cifra (7) Origen marca cifra (4) Origen marca cifra (4) Origen marca cifra (6) Origen marca cifra (7)
• Suena alarma destino • Suena señal origen • Destino responde • Para alarma destino • Para señal origen • Conexión • Destino cuelga • Origen cuelga

9

Relaciones
• Relaciones entre dos casos de uso
– Generalización
• “Es un caso particular de …” • Herencia de clases en POO (overriding) • También se puede tener esta relación entre dos actores

– Inclusión (include)
• “Implica hacer también …”

– Extensión (extends)
• “Se insertará en …” un determinado punto (llamado “punto de extensión”) dependiendo de una condición • Si un caso de uso depende de varios casos de uso mediante “extends” tendrá un punto de extensión para cada uno

10

Ejemplo (I)

11

Ejemplo (II)
Representación alternativa para el actor “Backup System”

12

Diagramas de clases, I
• •

Clases y sus relaciones en un contexto OO Diagramas estáticos
– – – – – Muestran lo que interacciona pero no lo que ocurre al interaccionar Rectángulo Nombre de clase (en cursiva si es clase abstracta) Atributos y métodos Visibilidad (vis) para atributos y métodos
• • • público (+); por omisión para métodos privado (-); por omisión para atributos protegido (#) [vis]atributo[[multiplicidad orden] : tipo [= valor-inicial]]
– – Tipos: Boolean, Integer, Real, String Orden: ordered, unordered

Clase:

Atributos
• •

Atributos de clase subrayados [vis]metodo[([params]) [:tipo]] Métodos de clase subrayados

– –

Operaciones (métodos)
• •

Implícitamente, se asume que algunos atributos son “claves primarias”

13

Diagramas de clases, II, (a)
• Relaciones entre clases:
– Asociación (binaria) (n-aria también posible) – Agregación (“es parte de …”) – Generalización (herencia); “es un caso particular de …”.

• En una asociación o agregación:
– Nombre de asociación (verbo) dirigido; Rol (nombre) en un extremo. Ejemplo: Trabajador, UnidadTrabajo, trabajaEn, suTrabajo
rol verbo

• Navegabilidad (petición de información) en una asociación
– Unidireccional – Bidireccional
14

Diagramas de clases, II, (b)
• Agregación
– Se puede considerar un caso particular de “asociación” en el que la relación tiene el nombre “contiene”

• Verbos:
– En nombres de asociaciones, “presente” – En nombres de métodos, “imperativo”

15

Diagramas de clases, III
• Multiplicidad en una asociación o agregación:
– 0..1; n..m; 0..*; *; 1, 1..*

• Ejemplo de agregación con multiplicidad (relación ternaria):
m n
16

Diagramas de clases, IV
• Dependencia.
– Otro tipo de relación (“depende de …”) – Un cambio en la especificación (interfaz pública) de la 2ª puede forzar cambios en la primera clase

• Observación:
– Los atributos no deben ser objetos (utilizar asociaciones en tal caso). – En los diagramas de clases no suelen aparecen (son detalles de implementación y no de diseño):
• Constructores • Métodos de acceso (“get/set”) • Métodos de gestión de elementos de una asociación o agregación (por ejemplo, “add/remove”)

– Algunas asociaciones con multiplicidad 1 hacia algunas clases pueden ser claves externas (“foreign keys”) implícitas
• En UML, a diferencia del modelo relacional de BD, no está previsto el uso de “keys” y se recomienda usar OID (“object ids”): números únicos generados automáticamente para cada objeto. A pesar de eso, siempre existe para cada clase un conjunto implícito de “primary and foreign keys”, que permiten hablar de multiplicidades de asociaciones con otras clases.

17

Diagramas de clases, V
• Tipos de asociación:
– Asociación con condiciones
Clase
{condiciones}

Clase

– Asociación cualificada por un atributo
cualificador

– Asociación cualificada por una clase
Clase Clase

Clase
18

Diagramas de clases, VI
• Tipos de asociación (ejemplos): – Asociación con condiciones. Por ejemplo, la asociación “contiene” de tipo “1 a muchos” entre las clases “CD” y “Canción:
{ordenado}

– Asociación cualificada por un atributo: • A cada par de la asociación se le asigna un valor (tipo primitivo) • En una asociación “0..1----*”, el cualificador se coloca desplazado a la izquierda (ya que cada objeto de la clase de la derecha tendría asociado uno o ningún valores del cualificador). Ejemplo: “PartidoPolitico”, “Ciudadano”, “códigoDeAfiliado” – Asociación cualificada por una clase: • Es otra asociación entre los pares de una asociación y una clase. • Ejemplo: Clase “Alumno”, “Clase Asignatura”, relación “matriculado-en” de tipo “muchos-a-muchos”; clase “Nota(numero,calificacion)” y asociación “obtiene” de tipo “muchos-a-uno” entre la asociación y “Nota”. – No equivalente a tener las clases “Alumno”, “Asignatura” y “Nota” y 2 asociaciones (“Alumno-Nota” y “Asignatura-Nota”). Ver siguiente transparencia. • En una asociación “0..1-------*”, la clase asociación se coloca desplazada a la izquierda.
19

Asociación cualificada por una clase
Nota
1
obtiene

Alumno

*

matriculado-en

*

* Asignatura

El diagrama de arriba implica el de abajo pero no lo contrario. No son equivalentes. * * Alumno Nota * * Asignatura
20

Diagramas de clases, VII
• Agregación compuesta
– Agregación fuerte pues al desaparecer el todo, también lo hace la parte
Universidad Facultad
1 1..*

• Interfaz (en cursiva)
Clase

– Conjunto de métodos sin definir
<<interface>> MiInterfaz métodos Clase MiInterfaz
21

Diagramas de clases, VIII
• La relación también se aplica para clases abstractas • Son diferentess:
dependencia herencia

22

Diagramas de clases, IX
Clases plantilla: T Array Array<Coche>
<<bind>><Persona>

ConjuntoPersonas

23

Ejemplo

24

Diagramas de paquetes
• Un paquete puede tener una o varias clases y uno o varios subpaquetes. • Se puede usar relación de dependencia entre paquetes y/o clases

25

Ejemplo
A

B

C

D

26

Diagramas de objetos
• Instancias en lugar de clases
– Notación  [objeto]:Clase – Los denominados “enlaces” entre objetos provienen de las “asociaciones” entre clases. Se pueden etiquetar con el mismo nombre que para el diagrama de clases, aunque se subrayan.

• Diag. clases:

27

Diagramas de objetos, II

subdepartment

subdepartment

subdepartment

subdepartment

28

Diagramas de secuencia, I
• Diagramas de clases son estáticos. Diagramas de objetos son dinámicos. • Diagramas de secuencia y de colaboración son dinámicos • Diagrama de secuencia:
– Un diagrama que describe los mensajes (MÉTODOS) enviados en función del tiempo en un contexto que puede ser un caso de uso o un escenario – El tiempo crece verticalmente hacia abajo (objetos/tiempo) – Notación  [objeto]:Clase

• Se puede utilizar una flecha discontinua (al revés) para indicar el valor que devuelve una llamada a un método • Dos tipos:
– Genéricos (pueden tener bucles, condicionales). Corresponden a un caso de uso. – Particulares. Corresponden a un escenario. Por ejemplo, si hay una iteración con 5 vueltas, se visualizan 5 mensajes.

• Un diagrama de secuencia es relativo a un conjunto determinado de objetos y métodos en una interacción, aunque esa interacción involucre a más objetos y métodos

29

Diagramas de secuencia, II
• Mensaje:
– [guard] *[iteration] sequence_number : return_variable := operation_name (argument_list)
• El único no opcional: operation_name • sequence_number :  orden temporal del mensaje

• Barra de activación: rectángulo simbolizando la duración de ejecución de un método
– Si un diagrama de secuencia sólo tiene mensajes pero no barras de activación, el “sequence_number” simboliza los mensajes que son generados por otros mensajes, aclarando cuál es el flujo de mensajes.

• Se pueden usar los mensajes especiales “create” y “destroy” para, por simplicidad de notación, poner todos los objetos alineados en la parte superior de un diagrama de secuencia.

30

Ejemplo, I

31

Ejemplo, II, (a) Bucles y condiciones

32

Ejemplo, II, (a) Bucles y condiciones
• En lugar de “loop” también es válido, por ejemplo:
– *[For each worker] (un “for” de C++) – *[No more workers] (un “while” de C++)

• Condiciones:

33

Ejemplo, III
:Receptor :Linea :Receptor
Origen levanta receptor Suena tono de llamada Orig. marca 9 cifras (91...) Para tono de llamada Suena alarma destino Suena señal origen Destino responde

. . .

34

Diagramas de colaboración
• Llamados de comunicación en UML 2.0 • Combinación de uno de objetos y uno de secuencia
– Sin considerar la línea del tiempo – Grafo dirigido – Cada mensaje tiene un número (número de secuencia)
• Jerárquicos, según temporalidad de ejecución • Si son alternativos (uso de “alt”) o concurrentes (usando el operador “par” de interacción), se utiliza una notación del estilo: “3a”, “3b”, “3c”, etc

• Dos tipos: genéricos o particulares • Expresa las colaboraciones que tiene cada objeto con el resto de objetos
35

Ejemplo, I

1: Origen levanta receptor 2: Origen marca 9 cifras :Receptor

2.2: Suena alarma destino :Receptor

:Línea

1.1: Suena tono llamada 2.1: Para tono llamada 2.3: Suena señal origen

3: Destino responde

36

Ejemplo, II

37

Otros ejemplos (UML 2.0), I

38

Otros ejemplos (UML 2.0), II

1 1.1 1.2 1.3

1.4a 1.5a 1.6a

1.4b 1.5b

1.6b

1.7

con números de secuencia

39

Operadores de interacción
• “Loop” y “Alt” son ejemplos de operadores de interacción. • Otros operadores:
– “Par”
• Hilos o tareas concurrentes

– “Ref”
• Referencia a otro diagrama de secuencia

– Más ejemplos: “Break”, “Opt”, “Critical”, ...
40

Mensajes síncronos y asíncronos
• Dos tipos:
– Mensajes síncronos
• El envío de un mensaje supone esperar al valor de retorno

– Mensajes asíncronos
• A la vez que se procesa el mensaje, se pueden procesar otros mensajes distintos. Por defecto, “create” se considera asíncrono
41

Ejemplos

42

Diagramas de estado (a)
• Un diagrama de estado:
– También tienen sentido en un contexto no OO – Para un contexto OO:
• Tiene sentido para estados de un objeto de una determinada clase • Interesa hacerlo sólo para algunas clases, como las que tienen un comportamiento más complejo: interfaces de usuario, …

• Transiciones entre estados de acuerdo a EVENTOS
– Transición: “evento/actividad”. La “actividad” es opcional y se ejecutaría tras emitirse el evento. – En un diagrama de estados los conceptos de “actividad” y “acción” son equivalentes (¡serán conceptos distintos en un diagrama de actividades!). – Los conceptos de “evento” y de “mensaje” (método) son distintos
43

Diagramas de estado (b)
• Un nodo para estado inicial y varios posibles nodos finales • Los estados suelen corresponder a expresiones en “gerundio” (“procesando”, “comprobando”, etc) • Debe contemplar TODOS los casos de uso posibles • Eventos:
– nombre_evento (lista_argumentos) [condicion]
• Sólo es obligatorio el “nombre_evento” (sin lista de argumentos si no los tiene) • Tienen lista de argumentos como cualquier objeto de una clase
44

Diagramas de estado (c)
• En un contexto OO, las actividades se pueden definir mediante:
– variable_retorno:= objeto.actividad(lista_argumentos)
• “objeto.” se puede omitir si la actividad se realiza en el mismo objeto • “variable_retorno” es opcional

45

Diagramas de estado (d)

Diseño de diagramas de estado:
– Clasificar los estados de un sistema y reconocer los posibles cambios en dichos estados así como cómo se producen (a causa de los eventos)

Tipos de eventos
– Evento de cambio (EC)
• Emitido cuando una condición se verifica. • Se representa mediante “[condicion]”

– Evento temporal (ET)
• Emitido cuando ha transcurrido un cierto tiempo

– Envío de un mensaje (EM), o equivalentemente la ejecución de un método en un contexto OO, es decir la ejecución de una determinada operación
• Puede provenir de un evento externo (como en una interacción con un usuario)

Implementación de un diagrama de estado
– “State Pattern” (Gang of Four)
• Una clase por cada estado. Una clase controlador que tiene un método por cada tipo de evento. Al final del curso, detalles.

46

Diagramas de estado (e)
• Actividades internas de un estado:
– Como si correspondieran a eventos internos: entry, exit, help, … – Sintaxis similar en estos eventos a las transiciones entre estados – Eventos “entry” y “exit” lanzados después de entrar o salir de un estado – Evento “help” al entrar en modo de ayuda – El poner una “actividad” en “entry” es equivalente a ponerlo en el evento que creó la transición entre estados – Evento especial “do” (actividad ejecutada todo el tiempo de permanencia en el estado)
• Un ejemplo de evento de cambio muy común es el producido a la finalización de la actividad “do” • Un evento externo de mensaje puede finalizar la acción del “do”, saliendo del estado

47

Diagramas de estado (f)
Nombre del estado
entry / actividad exit / actividad do / actividad help / actividad

(actividades internas; opcional) (subdiagramas de estados; opcional)

diag. estados interno

48

Ejemplo, I, a

Press tab OR move cursor to PIN field/Cursor to PIN

Press shift tab OR move cursor to
SSN field/Cursor to SSN

Banco Internet (validación);
49

Ejemplo, I, b
ET EM EM

EM

EM
EC EM

Press tab OR move cursor to PIN field/Cursor to PIN
EM

Press shift tab OR move cursor to
EC

SSN field/Cursor to SSN
EM

EM

Banco Internet (validación);
50

Ejemplo, II, a
• Suena la alarma del reloj para indicar que ha llegado la hora predeterminada (hora objetivo) • Se puede poner la alarma (con una hora objetivo) • Se puede quitar la alarma • La alarma del reloj suena cuando se cumple: alarm=on && objetivo<=hora actual <= objetivo+20s • Si la alarma está sonando, deja de sonar la alarma del reloj y se quita la alarma si se cumple alguna de las siguientes condiciones;
– Se pulsa cualquier botón – hora actual>=objetivo+20
51

Ejemplo II, b
2 eventos de cambio y 3 eventos de mensaje

Alarma activada
entry/reloj-muestra-alarma-activada

[llega-hora-objetivo] / sonar alarma

Alarma sonando
do/alarma-sigue-sonando

quitar alarma poner alarma [20 segundos sonando] / desactivar alarma

Alarma desactivada
tocar cualquier tecla

52

Ejemplo III, a
• Mientras exploran un castillo, A y B descubren lo que parece ser la entrada de un corredor secreto. Mientras A examina la puerta, B retira una vela del candelabro. En ese momento, la puerta gira 180º, llevándose a A consigo. • B vuelve a colocar la vela en el candelabro. La puerta gira 360º y A vuelve a quedar separado de B. • B saca de nuevo la vela. La puerta gira 360º, pero esta vez A le impide cerrarse con su cuerpo. B pasa la vela a A. Los dos amigos fuerzan (empujando cada uno en un extremo) a la puerta a retroceder 180º y de nuevo quedan separados, pero ahora B está dentro y A junto al candelabro. • A pone la vela en el candelabro. • Cuando la puerta empieza a girar, A saca la vela. La puerta se detiene tras girar 90º. • A y B penetran en el corredor para explorarlo
53

Ejemplo III, b
• Sacar y meter la vela del candelabro es un interruptor • Puerta:
– Posición inicial con ángulo 180º – Gira en sentido de las agujas del reloj (ángulo creciente) – Con la puerta parada, si se toca el interruptor empieza a moverse – Con la puerta en movimiento: ¿se toca el interruptor?
• No: la puerta gira hasta la posición 0º • Sí: la puerta gira hasta la posición más cercana múltiplo de 90º

54

Ejemplo III, c
Para cada estado “x-y”:
Puerta 0

- Existe un “do/mueve-puerta” - Eventos de cambio: [puerta-en-y]

forzar inter

inter
inter
Puerta 270 270-360 0-90

inter
Puerta 90

90-180

inter

inter

180-270

inter
Puerta 180

inter

55

Estados compuestos, I

56

Estados compuestos, II

¡Son hilos !. Se dice que son “ortogonales”
57

Estados compuestos, III

58

Diagramas de estado de protocolo, I
• Describen estados y eventos de una comunicación basada en un protocolo. • Los eventos son siempre del tipo “eventos de mensaje” en los que únicamente se pueden definir precondiciones y postcondiciones (detrás de “/”), pero no actividades. • A diferencia de un diagrama de estados normal:
– Los estados no tienen una estructura interna
• Por tanto, no se permiten actividades “exit” o “entry”

– Al poder poner postcondiciones en los eventos, se pueden establecer invariantes en los estados, que pueden ser expresables por ejemplo en OCL

59

Diagramas de estado de protocolo, II Cuenta corriente
reintegro(cant) [cant <= balance + saldo] Close()

Abierto
deposito(cant)

Cerrado

60

Diagramas de estado de protocolo, III

Una puerta con cierre automático
61

Diagramas de actividad (a)
• Diagramas aplicables también en contextos no OO
– Son diagramas de flujo (los “organigramas” clásicos en programación)

• Actividad: rectángulo con bordes redondeados • Actividad: una sucesión de acciones y subactividades
– Acción: actividad atómica

• Es común crear diagramas de actividad para casos de uso • Nodo de acción:
– Se sale de ellos al finalizar la acción, de modo similar a como se sale de un estado en un diagrama de estados al finalizar la actividad de “do” – En un contexto OO:
• Un estado de acción puede afectar a varias clases, pero un estado dentro de diagrama de estados está siempre asociado a una sola clase

• Una actividad puede tener parámetros o valores de retorno:
– Se representan como rectángulos adosados al borde (“pins”)

• Las actividades pueden tener “precondiciones” y “postcondiciones” (expresables mediante “[condicion]” en las líneas de transición entre actividades)
62

Diagramas de actividad (b)
• Pueden existir bifurcaciones salientes (forks, branches) y entrantes (joins, merges) para hilos y condicionales, respectivamente.
– Observación: en diagramas de estados también se pueden utilizar estos “pseudoestados”

• Se pueden crear agrupaciones de actividades (particiones) según el “contexto” en los que se realizan. Si cada actividad pertenece a un solo “contexto”, se tienen “calles” (“swinlanes”). • Haciendo una similitud para los diagramas de estado:
– Los diagramas de actividad serían una especie de diagramas de estados compuestos y relativos a varias clases
63

swinlanes

Ejemplo
EJEMPLO, I

64

Ejemplo, II (a)

¡diagrama de secuencia!

65

Ejemplo, II (b)
Selección hotel Selección
inicio fin

[mas=si]

días
mas

[libre() and inicio!=fin]

inicio++

mensaje

[!libre()] [libre() and inicio=fin]

[mas=no]
Aviso banco Aviso cliente

¡diagrama de actividad!

66

Relación entre diagramas de actividades y de estados
• Un diagrama de estados se puede representar como un diagrama de actividad, considerando los eventos de mensaje como condiciones entre nodos del diagrama de actividad
– Pero no al revés, ya que un diagrama de actividades puede involucrar a varias clases – Los estados ortogonales corresponderían a “forks” en los diagramas de actividad

• Ejemplo:
– Representación como diagrama de actividades del diagrama de estados de la interfaz de usuario “Geting SSN, Geting PIN, Validating, ...”
• Actividades “Get SSN, Get PIN, Validate” y psedoestados “branch” para las posibles acciones y resultados de operaciones
67

Otro ejemplo
[Pulsó Cancelar] Pide contraseña [Contraseña escrita] Comprueba contraseña Muestra mensaje

...

[Contraseña correcta]

[No coincide]

Muestra mensaje

Es un diagrama de actividad, que puede ser reformulado como un diagrama de estados (evento de mensaje: cancelar; eventos de cambio: contraseña correcta o incorrecta)

68

Entrada y salida de actividades
Ejemplos (incluyen manejo de errores o excepciones):

69

Subactividades

70

Diagrama de despliegue
• Distribución física de trozos de hardware y software • Diagrama aplicable a un contexto no OO • Contiene nodos:
– Un nodo es algo que contiene un software. Puede ser:
• Hardware (un ordenador o algún hardware conectado al sistema) • Entorno de ejecución (un software que puede contener otras partes de software; ejemplo: un sistema operativo o un proceso contenedor)

– Los nodos contienen “artifacts” (manifestación física de software, que son normalmente ficheros) – Los nodos pueden ser compuestos – Un nodo o un “artifact” pueden contener un conjunto de propiedades (“tagged-values”) – Algunos nodos se comunican entre ellos (“communication paths”)
71

Ejemplo

72

Diagrama de componentes, I
• Aplicables a contextos OO. Componentes:
• Partes independientes (y por lo tanto actualizables) de un sistema, desde el punto de vista de un usuario final
– Una componente también puede ser un conjunto de clases de un diagrama de clases

• Notación:

73

Diagrama de componentes, II
• Una componente puede estar compuesta por otras componentes • Una componente se puede conectar con otras componentes mediante interfaces. – Se puede utilizar la notación UML del diagrama de clases (dependencia + implementación-interfaz). Ejemplo:

74

Ejemplo

75

Ejemplo (diag. componentes)

La componente “Sales Server” tiene 2 puertos (un tipo especial de subcomponente) para comunicar con el exterior

76

Ejemplo
Un diag. de despliegue. Aparecen también componentes. UML 1.x

77

Un ejemplo completo para todos los diagramas
Un sistema de gestión de cursos impartidos para un conjunto de clientes. Algunos de esos clientes pueden pertenecer a empresas.

78

79

80

81

0

1
1.1

2 2.1
3 3.1 3.2
3.1.1

3.2.1

82

83

84

85

86

87

OCL (Object Constraint Language)

88

89

90

91

@pre=previous
92

Anotación de restricciones
• Opciones:
– Mediante anotaciones directas, utilizando la nomenclatura descrita – Mediante anotaciones separadas

Persona nombre
{self.edad > 0} edad …
93

Ejemplo

94

Herramientas, I
• Permiten el dibujo de diagramas además de dar:
– Soporte a la correctitud de los diagramas en base a su semántica – Apoyo para simplificar la comprensión de los diagramas

• Además, incluyen:
– – – – Comprobación de inconsistencias Detección de trabajo a realizar y mejoras Generación de informes Soporte a la reutilización
95

Herramientas, II
• Soporte a la navegación
– Vistas compuestas – Elaboración de conexiones entre información relacionada – Búsqueda – Visión con diferentes niveles de granularidad (expansión y contracción de partes de la vista) – Filtros – Operaciones sobre componentes de la vista
96

Herramientas, III
• Soporte al trabajo multiusuario
– Bloqueo de información – Trabajo colaborativo

• Generación de código
– Esqueletos con información estática (clases) – Integración con lenguajes especiales (SQL, …)

• Ingeniería inversa
– Construcción de un modelo de diseño a partir de código
• Más complejo que la ingeniería directa
97

Herramientas, IV
• Integración con otras herramientas
– – – – – – – Entorno de desarrollo (tendencia a confluir) Configuración del sistema y control de versiones Herramientas de documentación Herramientas de prueba de software Herramientas de construcción de interfaces de usuario Herramientas de especificación de requerimientos Herramientas de gestión de proyectos y soporte al proceso de diseño y desarrollo
98

Herramientas, V
• Distintos niveles de abstracción • Intercambio de información
– Especificación OMG de representación de modelos UML en XMI (XML Metadata Interchange)

99

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->