• No se han encontrado resultados

UML objetosI 15 pdf

N/A
N/A
Protected

Academic year: 2020

Share "UML objetosI 15 pdf"

Copied!
59
0
0

Texto completo

(1)

Introducción al

Lenguaje de Modelado

UML

Prof. Roxana Giandini

LIFIA

-

Facultad de Informática - UNLP

(2)

Prof. R. Giandini Setiembre 2015

Unified Modeling Language

(3)

Prof. R. Giandini Setiembre 2015

M

odelos en Ingeniería

• Todas las ingenierías han usado y usan modelos

científicos (matemáticos, físicos, etc.) para

alcanzar mayor confiabilidad con mucho éxito.

• Sin embargo, en las ingenierías “clásicas” la

(4)

Prof. R. Giandini Setiembre 2015

M

odelos en

Software

•Usamos modelos con diferentes propósitos:

•Para entender

•Para comunicar

•Para documentar, bosquejar y planear

Modelos como “Bosquejos”

•Para analizar y predecir

Modelos como “Guías”

•Eventualmente para producir software

(5)

Prof. R. Giandini Setiembre 2015

Ayudan a la comprensión de sistemas complejos

Indican QUE hará el sistema pero NO COMO lo hará

Ayuda a la corrección de errores

Ayuda a la evolución y reuso

Esencial para la comunicación entre miembros de un equipo

(6)

Prof. R. Giandini Setiembre 2015

U

nificado

Un poco de historia

• A mediados de los noventa existían muchos métodos de

Análisis y Diseño OO

Mismos conceptos con distinta notación

Mucha confusión

No existía un lenguaje líder de modelado

• En 1994 deciden unificar sus

métodos:

U

nified

M

odeling

L

anguage (UML)

• Proceso de estandarización promovido por OMG en 1997

G. Booch (Método Booch)

J. Rumbaugh (OMT)

(7)

Prof. R. Giandini Setiembre 2015

• En la unificación se adopta un

Lenguaje Gráfico estándar

• Como toda definición de Lenguaje, posee:

Sintaxis:

determina las reglas de construcción de los diagramas de modelado.

Provee base formal para los diagramas (metamodelo, OCL).

Semántica:

otorga la descripción detallada del significado conceptual de cada

elemento de modelado.

(8)

Prof. R. Giandini Setiembre 2015

¿ Qué es entonces

UML ?

UML

es un lenguaje estándar para:

visualizar

especificar

construir

documentar

los artefactos de un sistema.

(9)

Prof. R. Giandini Setiembre 2015

•Útil en las diferentes etapas del ciclo de vida del desarrollo

de sistemas.

(10)

Prof. R. Giandini Setiembre 2015

• Independiente del proceso de desarrollo de software.

L

enguaje

U

nificado de

M

odelado

(11)

Prof. R. Giandini Setiembre 2015

• Independiente del lenguaje de implementación.

L

enguaje

U

nificado de

M

odelado

(12)

Prof. R. Giandini Setiembre 2015

•Un estilo

•Un lenguaje

•Un proceso

•Herramientas

O.O.

UML

UP

Together / UMLet /

Rational Modeler/ EA

(13)

Prof. R. Giandini Setiembre 2015

Utilidades de UML

UML permite:

• Definir los límites del sistema y sus principales funciones,

mediante Casos de Uso y actores.

• Ilustrar el funcionamiento de un caso de uso mediante

Diagramas de Interacción

• Representar la estructura de un sistema mediante

Diagramas de Clases.

(14)

Prof. R. Giandini Setiembre 2015

Utilidades de UML

UML permite:

• Describir la arquitectura de la implementación física con

Diagramas de Componentes y Despliegue.

• Extender la funcionalidad de elementos estándar mediante

estereotipos.

(15)

Prof. R. Giandini Setiembre 2015

Diagramas de UML 2.0

Diagrama de Estructura Compuesta Diagrama de Estructura Paquete Diagrama de Componentes Diagrama de Despliegue Diagrama de Objetos Diagrama de Clases Diagrama de Secuencias

Diagrama General de Interacción

Diagrama de Tiempos

Diagrama de Comunicación

Diagrama de Máquina De Estados

Diagrama de Actividad

(16)

Prof. R. Giandini Setiembre 2015

• Elementos

• Relaciones

• Diagramas

UML: bloques de construcción

Clase - Interfaz - Estructura Compuesta - Caso de Uso Clase Activa - Componente - Nodo

Interacción - Máquina de Estados - Actividad

Paquetes - Frame

Notas Dependencia Asociación Generalización Estructurales De Comportamiento De Agrupación De Anotación

De Instancia Objetos

Diagrama de Clases Diagrama de Objetos

Diagrama de Estructura Compuesta Diagrama de Paquetes

Diagrama de Componente Diagrama de Despliegue Diagrama de Casos de Uso

Diagrama de Máquina de Estados Diagrama de Actividades

(17)

Prof. R. Giandini Setiembre 2015

Diagramas de Casos de Uso

Diagramas Estáticos

Diagrama de Clases

Diagrama de Objetos

Diagrama de Estructuras Compuesta

Diagrama de Paquetes

Diagramas de Comportamiento

Diagrama de Máquina de Estados

Diagrama de Actividades

Diagrama de Interacción:

Diagramas de Secuencia

Diagramas de Comunicación

Diagramas de Tiempo

Diagramas de Vista Global

Diagramas de Implementación

Diagrama de Componentes

Diagrama de Despliegue

(18)
(19)

Prof. R. Giandini Setiembre 2015

Definición

:

Un diagrama de interacción describe una

interacción, que consta de un conjunto de objetos y

sus relaciones, incluyendo los mensajes que se

pueden enviar, para realizar un comportamiento.

(20)

Diagramas de Colaboración:

Diagramas de Secuencia:

Diagramas de Interacción: tipos

(21)

•Objetos

•Enlaces

•Mensajes

Pueden contener:

notas y restricciones.

Diagramas de Interacción: contenido

(22)

•Los objetos que participan en una interacción son o

bien elementos concretos o bien elementos

prototípicos.

Ejemplos

:

Cuenta cuenta:Cuenta

Instancia

anónima

Instancia con

nombre

Diagramas de Interacción: objetos

(23)

•Un enlace es una conexión semántica entre objetos.

Ejemplos

Persona

+calcularCompensacion

+asignar(d:Departamento

Empresa

1..* empleado * patrón

p:Persona

:Empresa

clase

clase

asociación

operaciones

enlace

objeto con

nombre

objeto

anónimo

Diagramas de Interacción: enlaces

(24)

Diagramas de Interacción

(25)

Diagrama de Secuencia

Definición:

Un diagrama de secuencia destaca la ordenación

temporal de los mensajes.

(26)

Diagrama de Secuencia

•Cada objeto cuenta con una

línea de vida

, que muestra

el tiempo de vida del mismo.

•La

activación

de un objeto representa la ejecución de

una operación que realiza el mismo, a través del envío

de un

mensaje

.

Notación:

objetoA:ClaseA

objeto

tiempo de vida

activación

(27)

Mensajes

objetoA:ClaseA

:ClaseB

Invocación

Local

Mensaje Sincrónico

Mensaje

Asíncrono

Linea de Retorno

(opcional)

(28)

Mensajes

Mensaje sincrónico

Sintaxis:

[Número de secuencia] [condición] * [expresión iteración] [valor de

retorno :=] nombre del mensaje (parámetros)

• Puede indicarse el fin de su ejecución con una línea

punteada del objeto receptor al emisor:

Línea Retorno/

Resultado

Esta línea es

OPCIONAL

(en caso que se

especifique correctamente la

Activación

del objeto

Receptor).

• El

Resultado o Valor de Retorno

también puede

especificarse a izquierda del nombre del mensaje, en una

asignación (ver

Sintaxis

), en caso que No se haya

especificado la línea Retorno.

(29)

Bifurcaciones

objetoA:ClaseA

:ClaseB

:ClaseC

[cond1] mensajeCond1()

[cond2] mensajeCond2()

(30)

Iteración o bucle

Sintaxis:

* [expresión-iteración ] mensaje

Ejemplo:

v:Vendedor

:LíneaProducto

*[1..8] verificarLínea()

(31)

Diagrama de Secuencia: construcción

Primer Paso:

Se colocan los objetos que participan en

la interacción en la parte superior del diagrama.

Ejemplo

a:AyudaPlanificación

:Cliente

(32)

Diagrama de Secuencia: construcción

Segundo Paso:

se colocan los mensajes que estos

objetos envían y reciben, en orden de sucesión en el

tiempo, desde arriba hasta abajo.

Ejemplo

a:AyudaPlanificación :Cliente :AgenteViaje notificar() objeto establecerItinerario() calcularRuta() mensaje destrucción <<destroy>> retorno <<create>> creación mensaje mensaje (invocación local)

(33)

•Se encierra en un rectángulo y se le agrega una

etiqueta con

sd

seguido del nombre.

borra

sd Nombre

:Objeto1

:Objeto2

crea

mensaje

autodelegación

Diagrama de Secuencia: notación

(34)

Definición

:

mecanismo a través del cual se puede realizar la

especificación de bloques repetitivos, opcionales,

alternativos, entre otros.

Operadores más utilizados:

- ref opt alt loop

Diagrama de Secuencia: fragmentos

(35)

Fragmento: alternativa

Notación

: se encierra en un rectángulo (

frame

), se le

agrega una etiqueta con el operador

alt

y se colocan

las guardas.

Ejemplo

[guard 1]

sd Nombre

:Clase1 :Clase2

Mensaje4

alt

Mensaje3

Mensaje2

Mensaje1

[guard 2]

(36)

Notación

: se encierra en un rectángulo (

frame

), se le

agrega una etiqueta con el operador

loop

y la cantidad

de iteraciones (opcional).

Ejemplo

Fragmento: bucle

:Clase1 :Clase2

Mensaje1

Mensaje2

Mensaje3

Mensaje4

Loop 1..7

sd Nombre

(37)

Diagrama de Secuencia: ejemplo

Estudiante

:Registrador :AdmDeEstudiantes :AdmDeCursos

tomarUnCurso(e,c)

p:= obtenerPreRequisitos(c)

ok:= validarCondicEstudiante(e,c)

informarRechazo (mensaje1)

<<destroy>>

ok2:= validarEstadoCurso (c) [notok2]

informarRechazo(msg2)

sd Tomar un

Curso

alt [not ok]

[ok]

(38)

Prof. R. Giandini Setiembre 2015

Ejemplo: Depósito bancario

:Banco

unaCuenta: CuentaBancaria

depositar:unMonto

depositar:unMonto

(39)

Prof. R. Giandini Setiembre 2015

Ejemplo: Transferencia bancaria

:CuentaBancaria

otraCuenta: CuentaBancaria

extraer:unMonto

depositar:unMonto

transferir:unMonto

(40)
(41)

Prof. R. Giandini Setiembre 2015

Diagrama de Clases

Definición:

Un diagrama de clases muestra las clases del sistema

y sus relaciones. Describe la vista estática de un

sistema.

(42)

Prof. R. Giandini Setiembre 2015

¿Qué es una clase?

Una clase es una descripción de un conjunto de

objetos

que

comparten los mismos atributos, operaciones, relaciones y

semántica.

Estructura:

NombreClase

Atributos

Operaciones

(43)

Prof. R. Giandini Setiembre 2015

¿Cómo podemos proteger los datos?

El encapsulado es el principio para ocultar datos

(data hiding

).

La visibilidad puede ser:

Privada (-): objetos donde está definido el atributo u

operación.

Protegida (#): objetos de las subclases.

Pública (+): objetos de cualquier clase.

(44)

Prof. R. Giandini Setiembre 2015

Clase: atributo

Sintaxis

[visibilidad] nombre [multiplicidad][:tipo][=valor inicial][{lista_propiedades}]

Propiedades:

- changeable

- addOnly

- frozen

Ejemplos

id nombre responsable género

Representación

-id: Integer {frozen} +nombre:String

responsable [1..2]:String #genero:String=musical

(45)

Prof. R. Giandini Setiembre 2015

Clase: operación

Sintaxis

[visibilidad] nombre[(lista de parámetros)][:tipo de retorno][{propiedades}]

• Declaración de un parámetro:

[dirección] nombre :tipo [multiplicidad][=valor]

• Donde dirección puede ser:

-

in

: la operación puede modificar el parámetro y el que

llama no necesita volver a verlo.

-

out

: la operación coloca o cambia el parámetro y lo

devuelve al que llama.

(46)

Prof. R. Giandini Setiembre 2015

Clase: operación

Propiedades

– isQuery

– ….

Ejemplos

Representación

nuevaRep() nombreRep() estaVigente()

Representación

+nuevaRep(in nombre:String) #nombreRep()

(47)

Prof. R. Giandini Setiembre 2015

Diagrama de clases: relaciones

¿Qué son las relaciones entre clases?

Una relación es una conexión semántica entre objetos.

Proveen un camino de comunicación entre ellos.

¿Qué tipos de relaciones existen?

• Asociación

(48)

Prof. R. Giandini Setiembre 2015

Diagrama de clases: relaciones

Notación:

• Asociación

• Agregación

• Composición

• Generalización

• Dependencia

(49)

Prof. R. Giandini Setiembre 2015

Relaciones: Asociación

¿Qué es una Asociación?

Es una relación estructural que especifica que los objetos de

un elemento están conectados con los objetos de otro.

(50)

Prof. R. Giandini Setiembre 2015

Asociación: propiedades (cont.)

Multiplicidad:

indica “cuántos” objetos pueden conectarse

a través de una instancia de una asociación.

Se puede indicar una multiplicidad de:

Exactamente Uno:

Cero o Uno:

Muchos:

Uno o Más:

Número Exacto:

Lista:

Rango:

A

A

A

A

A

A

B

B

B

B

B

B

1 0..1 0..* 1..* 3 0..1,3..5,7..9

(51)

Prof. R. Giandini Setiembre 2015

Rol: son las caras que presentan las clases a las demás.

Navegabilidad: sirve para limitar la navegación a una sola

dirección.

Visibilidad: sirve para limitar la visibilidad a trav

é

s de esta

asociaci

ó

n relativa a los objetos externos a ella.

P

ú

blica (+)

Protegida (#)

Privada (-)

Asociación: propiedades

Usuario

1 propietario *

Clave

GrupoUsuarios

* *

Usuario

1 *

Clave

(52)

Prof. R. Giandini Setiembre 2015

Asociación: propiedades (cont.)

Agregación:

es una asociación especial, una relación del tipo

“todo/parte” dentro de la cual una o más clases son partes de

un todo.

Ejemplo:

Equipo

Miembro

Todo

Parte1

Parte2

Todo

Parte1

Parte2

(53)

Prof. R. Giandini Setiembre 2015

Asociación: propiedades (cont.)

Composición:

es una forma de agregación, con fuerte

sentido de posesión y tiempo de vida coincidentes de las

partes con el conjunto.

– Una parte puede pertenecer solamente a una

composición (un

todo

).

– Cuando el todo desaparece, también lo hacen sus

partes.

Todo

(54)

Prof. R. Giandini Setiembre 2015

Asociación: propiedades (cont.)

Ejemplos de Agregación y Composición

Polígono

Estilo

Color estáLleno

Punto

Círculo

radio

3..*

*

1 1

* 1..*

(55)

Prof. R. Giandini Setiembre 2015

Asociación: notación accesoria

Nombre: indica la naturaleza de la asociación. Puede estar

acompañado de un triángulo que apunta en la dirección que

debe leerse.

Ejemplo

Espectador

compra

Entrada

FormaDePago

(56)

Prof. R. Giandini Setiembre 2015

¿Qué es una Generalización?

Es una relación entre un elemento general (llamado

superclase o padre) y un caso más específico de ese

elemento (llamado subclase o hijo).

Ejemplo

Relaciones: Generalización

Representación

nombreRep() vigenteHasta()

Recital

vigenteHasta()

ObraDeTeatro

vigenteHasta()

MuestraArtística

vigenteHasta()

(57)

Prof. R. Giandini Setiembre 2015

Generalización

Ejemplo con discriminador

Vehículo

PorViento

propulsión

PorMotor

SobreAgua

SobreTierra

Tractor

Velero

propulsión

(58)

Prof. R. Giandini Setiembre 2015

Elementos de anotación

¿Qué es una nota?

Es un símbolo para mostrar restricciones y comentarios

junto a un elemento o una colección de elementos.

Ejemplo

Persona

empleado * trabajo 1

Compañia

jefe

1..* 1

{

Persona.trabajo = Persona.jefe.trabajo

}

(59)

Prof. R. Giandini Setiembre 2015

Referencias

Documento similar

Elaborar el Diagrama de Pareto a partir de estudios de casos aplicando el aprender haciendo para resolver problemas de la vida diaria y la gestión

•17 nodos de azar, un nodo de valor y tres nodos de decisión.. •42 arcos, 8282 probabilidades y

De acuerdo la figura Nº 03, se logra representar el diagrama de Ishikawa o diagrama de causa – Efecto, en la cual se logra ver las principales causas y secundarias,

Las compañías de financiamiento comercial y las cooperativas financieras cuyo monto de capital pagado y reserva legal sea inferior al mínimo que debe acreditarse para la

Se elabora el diagrama de contexto y el diagrama de casos de uso del sistema (Figura 2.7). El sistema Diagen interactuará con el biólogo, que es el actor primario que interacciona

8 Diagrama de Clases para los casos de uso: Visualizar Imagen, Aplicar Filtros sobre Imagen, Realizar mediciones sobre la imagen y Referencias múltiples.. 9 muestra el diagrama

La realización de perfiles de conductividad eléctrica en sondeos profundos del área de estudio ha permitido constatar la existencia de una estratificación importante del agua

RESISTENCIA DE MATERIALES: ANÁLISIS DE VIGAS PARA FLEXIÓN DIAGRAMAS DE FUERZA CORTANTE Y MOMENTO FLECTOR. Para los casos mostrados a continuación, realice el análisis y