El Lenguaje Unificado de Modelado … · 2. Diagramas de Clases Definición Un Diagrama de Clases...

62
El Lenguaje Unificado de Modelado

Transcript of El Lenguaje Unificado de Modelado … · 2. Diagramas de Clases Definición Un Diagrama de Clases...

El Lenguaje

Unificado de

Modelado

El Triángulo de Desarrollo de Software

Herramienta Visual

Proceso

Notación

Rational

software

Definición:

El UML es un lenguaje gráfico para la especificación, visualización, construcción y documentación de modelos orientados a objetos que representan sistemas en software.

= Unified Modeling Language

UML no es un método sino un lenguaje de modelamiento

El Lenguaje Unificado de Modelado

Objetivo del UML

Describir cualquier tipo de sistema en términos de diagramas orientados a objetos

Algunas categorías de Sistemas

Sistemas de Información

Sistemas de Tiempo Real

Sistemas Embebidos

Sistemas Distribuidos

Software de Sistemas

Sistemas de Negocios

UML toma lo mejor de varios métodos

Rumbaugh

Jacobson

Meyer

Harel

Wirfs-Brock

Fusion

Embly

Gamma et. al.

Shlaer-Mellor

Odell

Booch

Pre y Post condiciones

Máquinas de estado

Responsabilidades

Descripción de operaciones,

numeración de mensajes

Singleton clases

Marcos de trabajo,

patrones, notas

Ciclo de vida de objetos

Clasificación

- Proporciona a los desarrolladores un lenguaje de

modelamiento ampliamente aceptado y listo para usar.

- Integra las mejores prácticas del desarrollo de software.

- Permite la intercambio de modelos entre las diferentes

herramientas de software.

- Es independiente del lenguaje de programación y de

métodos y procesos particulares de desarrollo de software.

- Proporciona sus propios mecanismos de extensión

- Agrupa los conceptos de orientación a objetos definiendo

su significado.

Características del UML

Por qué aprender UML

-Porque UML es el lenguaje de modelado de objetos

estándar dominante.

-Porque es apoyado por metodólogos y empresas importantes en Tecnologías de Información.

-Porque cuenta con la aprobación de la OMG como notación estándar.

-Porque todas las herramientas modernas proporcionan

soporte para UML.

-Porque nos facilita el aprendizaje del enfoque orientado a objetos pues basta con aprender este estándar y no perdernos en toda la jungla de métodos y notaciones existentes.

- Los lenguajes de modeladoorientados al objetocomenzaron a aparecer amediados de la década de '70.

- El número de lenguajes quemodelaban objetos aumentóde menos de 10 a más de 50durante el período entre 1989-1994.

Breve historia del UML

- Muchos de los que utilizaban estos lenguajes no encontraban satisfacción completa en ninguno de ellos, esto motivó la llamada "Guerra de los Métodos".

. . . La “Guerra de los Métodos”

Existían muchos métodos y cada uno tenía un lenguaje de modelado propio.

Esto dificultó el aprendizaje, aplicación, construcción, uso de herramientas, etc.

Pugna entre los distintos gurús que defendían sus propios métodos y simbologías.

Se observa la necesidad de una notación estándar.

. . . Breve historia del UML

El desarrollo del UML comenzó en finales de

1994 en que Grady Booch y Jim Rumbaughde Rational Software Corporation, comenzaron su trabajo sobre la unificación de los métodos de Booch y de OMT (Object Modeling Technique).

A finales de 1995, Ivar Jacobson y su compañía de Objectory se unieron a Rational y combinaron sus métodos.

Booch, Rumbaugh, y Jacobson, definieron el

UML 0,9 y 0,91 en junio y octubre de 1996.

. . . Breve historia del UML

. . . Breve historia del UMLDic ’02 UML 2.0

Sep ‘97 UML 1.1

Ene ‘97 UML 1.0

Jun ‘96 UML 0.9

Oct ‘95 Método Unificado 0.8

Microsoft

Oracle

IBM, HP

Etc.

Ivar Jacobson se une a

Rational en otoño ‘95

James Rumbaugh se une

a Rational en Oct ‘94 OMT Booch

Use Case

(OOSE)

Otros métodos

1997(Adoptada por OMG)

1998 (revisión editorial sin cambios significativos)

1999(revisión menorpúblicamente disponible)

2000(planificada una revisión menor)

2001(planificada una revisión menor)

2002(planificada una revisión mayor)

Versiones del UML<<document>>

UML 1.1

<<document>>

UML 1.2

<<document>>

UML 1.5

<<document>>

UML 1.3

<<document>>

UML 2.0

<<document>>

UML 1.4

<<document>>

ISO Publica

especificación

Vistas de un modelo

“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”

Vista

lógica

Vista de

procesos

Vista de

despliegue

Vista de

implementaciónVista de

requerimientos

Diagrama de Clases

Diagrama de Objetos

Diagrama de Estado

Diagrama de Secuencia

Diagrama de Colaboración

Diagrama de Actividad

Diagrama de Casos de Uso

Diagrama de Componentes

Diagrama de Despliegue

Modelando con UML

Use CaseDiagrams

Use CaseDiagrams

Diagramas de Casos de Uso

ScenarioDiagrams

ScenarioDiagrams

Diagramas deColaboración

StateDiagrams

StateDiagrams

Diagramas deComponentes

ComponentDiagramsComponent

DiagramsDiagramas de

Despliegue

StateDiagrams

StateDiagrams

Diagramas de Objetos

ScenarioDiagrams

ScenarioDiagrams

Diagramas deEstados

Use CaseDiagrams

Use CaseDiagrams

Diagramas deSecuencia

StateDiagrams

StateDiagrams

Diagramas deClases

Diagramas deActividad

Modelo

DefiniciónUn Diagrama de Casos de Uso representa lo que hace el sistema y como se relaciona con su entorno.

Representa los distintos requerimientos que hacen los usuarios de un sistema.

Un diagrama de casos de uso esta compuesto por - Casos de uso- Actores- Relaciones entre ellos

1. Diagramas de Casos de Uso

Nombre

Elementos

Caso de Uso (Use Case) Es una secuencia de acciones realizadas por el sistema que producen un resultado observable y valioso para alguien en particular.

ActorUn actor es un conjunto externo uniforme de personas, sistemas, o cosas que solicita un servicio al sistema que estamos modelando.

Nombre del caso de uso

Relaciones entre los elementos

Relaciones entre actoresLa única relación permitida entre los actores es la Relación de Generalización.

Director de

Escuela

Usuario

Secretaria

. . . Relaciones entre los elementos

Relaciones entre un actor y un caso de usoLa única relación permitida es una Asociación y se le conoce como Relación de Comunicación o <<comunicates>>.

Secretaria

Registra

Matrícula

<<comunicates>>

. . . Relaciones entre los elementos

Relaciones entre casos de usoPueden ser de tres tipos:1. Relación de generalizaciónEl Caso de Uso de A hereda la especificación del Caso de Uso B.

B

A

Realizar cobranza

Cobranza con tarjeta

Cobranza en efectivo

Cobranza con cheque

. . . Relaciones entre los elementos

2. Relación <<include>>El caso de uso A siempre incluye (o usa) el comportamiento de B.

Validar usuario

Abrir cursos

<<include>>Registrar matrícula

<<include>>

Ejemplo:

B

A

<<include>>

. . . Relaciones entre los elementos

3. Relación <<extend>>El caso de uso A, extiende al caso de uso B. A ocurre en casos especiales para extender B.

B

A

<<extend>>

Registrar matrícula<<extend>>

Registrar matrícula

extemporánea

Ejemplo:

Ejemplo de Diagrama de Casos de Uso

<<extend>>

Registrar matrícula

extemporánea

Caso de uso Registrar Matrícula

Validar usuario

Aperturar cursos

<<include>>

Registrar matrícula

<<include>>

Director de

Escuela

Usuario

Secretaria

<<comunicates>>

<<comunicates>>

2. Diagramas de Clases

DefiniciónUn Diagrama de Clases muestra Clases (grupos de objetos que tienen las mismas características y comportamiento) y sus relaciones.

Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos.

Un diagrama de clases esta compuesto por

- Clases- Relaciones entre clases

Clases

Definición:Es un conjunto de objetos que tienen los mismos atributos y comportamiento.

Representación:Se representa mediante un rectángulo con tres partes:

Automovil

MatriculaColorVelocidad

Arrancar( )Acelerar( )Frenar( )

NombreClase

Atributo1Atributo2

. . .

Operacion1operacion2

. . .

Ejemplo:

La Clase Automóvil

Relaciones entre Clases

1.- Relación de Dependencia

2.- Relación de Generalización

3.- Relación de Asociación

3.1.- Asociación de Agregación

3.2.- Asociación de Composición

. . . Relaciones entre Clases

1.- Relación de dependenciaEs una relación semántica entre dos elementos en la cual un cambio en un elemento (el elemento independiente) puede afectar a la semántica del otro elemento (elemento dependiente).

Clase dependiente

Clase independiente

Canal

Video

. . .

. . .Grabar(c : canal)

Televisión

. . .

. . .cambiar(c : canal)

. . . Relaciones entre Clases

2.- Relación de generalizaciónEs una relación entre dos clases en donde una de ellas, llamada subclase o clase hija (subclass o child), hereda los atributos y el comportamiento de otra, llamada superclase o clase padre (superclass o parent).

Clase hija

Clase Padre

camión auto avión helicóptero

AéreoTerrestre

Vehículo

WAN

Red

LAN

. . . Relaciones entre Clases

3.- Relación de asociación

Es una relación estructural que describe un conjunto de enlaces o conexiones entre dos o más objetos. Esta relación entre clases permite asociar objetos que colaboran entre si.

Acta Alumno

0..* 1..*

. . . Relaciones entre Clases

3.1.- Asociación de Agregación

Es un tipo especial de asociación e indica que el objeto base utiliza al objeto incluido para poder funcionar. Si el objeto base desaparece no desaparecen los objetos incluidos. Muestra una relación todo - parte.

Computadora

CPU

Hard

Disk

Teclado

MouseWAN

Red

LAN

Monitor

HUB

. . . Relaciones entre Clases

3.2.- Asociación de ComposiciónEs un tipo de asociación, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. El objeto incluido sólo existe mientras exista el objeto base. El objeto se construye a partir del objeto incluido pero no podría existir si ellos.

Hombre

ExtremidadesTroncoCabeza

Ejemplo: El Hombre esta formado por cabeza, tronco y extremidades

Ejemplo de diagrama de clases:

Vuelo de un avion comercial

AvionCarga

CapCarga

Avión

NroPlaca

Modelo

Vuelo de un avion comercial

1 . . 4

1

Boleto

Nro

Cliente

Nombre

Nacionalidad

Motor

Marca

Año

Vuelo

IdVuelo

FechaSal

DestinoAviónPasajeros

NroAsientos

1

1

* 1

* 1

Ejercicio de diagrama de clases:

Un sistema de planillas en una empresa guarda

información de empleados y obreros, su record de

asistencia, los conceptos de pago, las bonificaciones

y descuentos. Si pide construir un diagrama de

clases que muestre las Clases y sus Relaciones

(asociación, agregación, composición,

generalización, según existan). Cada planilla

corresponde con un periodo de tiempo (mes) y

contiene boletas de pago, las que a su vez contiene el

detalle de los pagos y descuentos.

3. Diagramas de Objetos

DefiniciónUn Diagrama de Objetos muestra una instanciaprototípica de un Diagrama de Clases con el fin de ilustrar los objetos reales participantes en un determinado momento.

Un Diagrama de Objetos tiene los mismos elementos que un Diagrama de Clase pero los objetos y sus atributos tienen valores conocidos.

Ejemplo de diagrama de objetos:

Vuelo de un avion comercial

1 . . 4

:Boleto

Nro: 102030

:Cliente

Nombre: Juan Pérez

Nacionalidad: peruana

:Motor

Marca: General Motors

Año: 1996

:Vuelo

IdVuelo: 666

FechaSal: 01/01/2001

Destino: Lima

:AviónPasajeros

NroPlaca: XXX123

Modelo: Boeing 777

Nro: 555

Capacidad: 100

1

1

* 1

* 1

4. Diagramas de Secuencia

DefiniciónUn Diagrama de Secuencia muestra la interacción de un conjunto de objetos, poniendo énfasis en el orden cronológico del envío de mensajes entre objetos.

Un diagrama de secuencia esta compuesto por:

- Objetos (o actores)- Línea de vida de un objeto - Activación o foco de Control- Mensajes

Elementos de un Diagrama de Secuencia

objeto:Clase

Objetos o actores Son las entidades que participan en la interacción para lograr una funcionalidad, éstas envían y o reciben mensajes.

objeto:Clase

Línea de vida de un objeto

Indica la vida de un objeto durante la interacción y se representa mediante una línea vertical discontínua.

Elementos de un Diagrama de Secuencia

objeto:Clase objeto:Clase

Activación o foco de Controlobjeto:Clase

Mensajes

Muestra el periodo de tiempo en el cual el objeto se encuentra desarrollando una operación.

Son las invocaciones que envia un objeto a otro para que realice una tarea.

Tipos de mensajes

Mensaje Simple:

Se usa cuando no se conocen detalles del tipo de comunicación o cuando no resulta relevante en el diagrama.

Mensaje Síncrono:

Mensaje Asíncrono:

El objeto que envia el mensaje espera a que el objeto que lo recibe le termine la operacion. El mensaje síncrono más comun es la llamada a procedimientos.

Cuando el objeto que envia el mensaje sigue con su trabajo sin esperar respuesta del objeto receptor del mensaje.

Imprimir (arch)

Imprimir(arch)

[ impresora OK]

Imprimir(arch)

[impresora !OK]

Imprimir(arch)

:computadora :cola:impresora:ServidorImpresion

Ejemplo de Diagrama de Secuencia

Un usuario desea imprimir un archivo para lo cual le envía la orden a la computadora, la cual a su vez se la envía al servidor de impresión siendo este el encargado de dirigirlo a la impresora. En caso de que la impresora este ocupada el archivo a imprimir se dirige hacia la cola de impresión, la cual en su momento le indicará al servidor de

impresión que tiene el archivo pendiente por imprimir.

Ejercicio de Diagrama de Secuencia

Se desea trasladar una cabra, una vaca y un lobo, a través de un río empleando una barca. Solo se puede llevar uno de ellos en cada viaje. Si dejamos a la cabra con el lobo, el lobo se comera a la cabra. Si dejamos la vaca con la cabra, la cabra se come a la vaca. Muestre un diagrama de secuencia en el cual se pueda trasladar a los tres por el rio.

5. Diagramas de Colaboración

Definición: Un Diagrama de Colaboración muestra la interacción de un conjunto de objetos, poniendo énfasis en la estructura organizacional de los objetos que envían y reciben mensajes.

Un diagrama de colaboración esta compuesto por:

- Objetos

- Enlaces

- Flujo de Mensajes

Ejemplo de Diagrama de Colaboración

Una nota de pedido contiene un renglón por cada artículo, que se está despachando. Si la cantidad del artículo que aún queda en almacén es menor que el punto de reorden, está lanza una orden de

compra del artículo, si hay existencias el pedido se atiende.

Prepara( )

1*[para cada renglón]: Prepara( ) 1.3 reorden:=NecesitaReorden( )

1.1 Existe:=RevisaExistencia( )

1.2 [Existe]: descuenta( )

1.4 [reorden]: colocarOrdenCompra( )1.5[Existe]:Entrega( )

:Pedido

:renglónPedido

:OrdenCompra:NotaSalida

:Artículo

Diagramas de Secuencia y Colaboración

Ambos diagramas muestran la interacción entre objetos, pero el Diagrama de Secuencia reserva una dimension para el tiempo haciendo más fácil observar el orden de ejecución de los mensajes, mientras que el Diagrama de Colaboración los enumera. Ambos diagramas representan lo mismo y puede transformarse de uno a otro

sin perdida de información.

Imprimir (arch)

1: Imprimir(arch) 1.1: [ impresora OK]

Imprimir(arch)

1.2: [impresora !OK]

Imprimir(arch)

:computadora

:cola

:impresora

:ServidorImpresion

Ejercicio de Diagrama de Colaboración

En una biblioteca un lector (socio) escoge un libro si desea prestarlo se lo solicita al encargado, el encargado verifica la situacion del libro (algunos solo salen para sala o tal vez esten prestados) y luego verifica la situacion del socio, si estas verificaciones son conformes entonces se realiza el prestamo del libro.

Solución Word

6. Diagramas de Estados

Definición: Describe el comportamiento de un elemento del modelo, mostrando la posible secuencia de estadosen los que puede entrar el objeto y como cambia al reaccionar ante un evento durante su ciclo de vida.

Un Diagrama de Estados esta compuesto por:

- Estados

- Eventos evento

- Transiciones

Elementos de un Diagrama de Estados

Estado: Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto esta esperando alguna condición, operación u evento, tiene cierto estado característico o puede recibir cierto tipo de estímulos.

Evento: Es una ocurrencia que puede causar la transición del objeto de un estado a otro.

Transición: Una transición es una relación entre dos estados que indica que un objeto en un primer estado puede entrar a un segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre. Se representa como una línea sólida entre dos estados

Estado1

Estado inicial

Estado2

Estado final

Evento( )

Transición

Ejemplo de Diagrama de Estados

Una cuenta bancaria puede estar activa, suspendida o cerrada.Cuando esta en activa puede a su vez estar en azul (si el saldo es +) o en rojo (si el saldo es -). Muestre su diagrama de estados.

suspender cuenta

activar cuenta

cerrar cuenta

retiro [saldo<0] / poner en rojo

depósito [saldo>0] / poner en azul

en azul en rojo

Cerrada Suspendida

Activa

7. Diagramas de Actividad

Definición: Muestra las operaciones que se realizan para conseguir un objetivo. Es un caso especial de un diagrama de estados donde todos los estados ejecutan una tarea. Se utilizan para dar detalle a un caso de uso, modelando los flujos de trabajo u operaciones.

Un Diagrama de Actividad esta compuesto por:

- Estados de actividad o simplemente Actividad- Estados de acción o simplemente Acción- Transiciones

Elementos de un Diagrama de Actividad

Estados de actividad (Actividad).- Son estados que llevan a cabo alguna actividad. No son atómicos es decir pueden descomponerse. Pueden ser interrumpidos y se consideran que toman algún tiempo en completarse.

Estado de acción (Acción).- Es una actividad que no se puede descomponer y permiten modelar un paso dentro de un algoritmo. Se considera que su ejecución toma un tiempo insignificante.

Transiciones.- Es el paso de un estado de actividad a otro, una transición ocurre al finalizar una actividad.

Otros elementosDecisión Barra de Sincronización Carriles Estados inicial y final

Ejemplo de Diagrama de Actividad

Muestre un proceso común de una solicitud de servicio.

Cliente Vendedor Jefe Ventas

[Tarifa no OK]

[Tarifa OK]

Sol. de servicioPide datos cliente

Consulta tarifa

Negoc. condiciones

Pide datos

Servicio

Ingresa orden

Consulta disponib.

Decide costo

Ejercicio de Diagrama de Actividad

Un cliente solicita un pedido, este pedido va al departamento de ventas para ser procesado y simultaneamente el cliente espera hasta que se apruebe y se le entregue la mercaderia. Despues de procesar el pedido en ventas, el pedido se dirige a almacen para extraer los productos y enviarlos. En este punto el cliente recibe el pedido y Ventas hace la factura. El cleinte paga la factura y Ventas considera el pedido atendido.

8. Diagramas de Componentes

Definición: Un diagrama de componentes muestra las dependencias lógicas entre componentes software, tales como archivos de código fuente, binarios, ejecutables, tablas, etc.

Un Diagrama de Componentes esta compuesto por:

- Componentes- Interfaces- Relaciones de realización y dependencia

Elementos de un Diagrama de Componentes

Componentes.-Son cada una de las partes físicas y reemplazable de un sistema.

Se dice que es parte física en el sentido en que viven en el mundo de bits y no son sólo esquemas conceptuales.

Se dice que es reemplazable pues puede ser reemplazado por un nuevo componente que mejore la funcionalidad o añada alguna sin que afecte a otros componentes.

nombreEsto se logra mediante el uso de interfaces bien definidas las cuales son implementadas por los componentes.

Interfaces.- Es una colección de operaciones que son usadas para especificar un servicio provisto por una clase o un componente. Esto permite utilizar los servicios sin abrumarnos con sus detalles de implementación asimismo se puede cambiar los componentes pero si sus interfaces son las mismas entonces este cambio es inmediato y no afecta al resto del sistema.

<<interface>>Interface

. . . Elementos de un Diag. de Componentes

Relaciones entre Componentes

Relación de realización.- El componente que realiza o implementa la interfaz es conectado mediante una línea discontínua terminada en una cabeza de flecha hueca.

Relación de dependencia.-Ocurre entre las componentes que utilizan la interfaz implementada por otra componente y la respectiva interfaz. Se representa con una línea discontínua con cabeza de flecha abierta.

<<interface>>

Estereotipos de Componentes

executable.- son componentes que

pueden ejecutarse en un nodo.

library.- son las librerías estáticas o

dinámicas.

table.- un componente que es una

tabla de una base de datos.

file.- un componente que es un

archivo de código fuente o datos.

document.- un componente que es

un documento.

Ejemplo de un Diagrama de Componentes

Se tiene un robot que es manejado mediante la librería manejo.dll, la cual

implementa dos grupos de interfaces Imanejo e Iautoprueba. La interfaz

Imanejo es utilizada por camino.dll, la cual proporciona el comportamiento a

seguir cuando el robot se desplaza sin contratiempos. Si el robot encuentra algún

obstáculo, camino.dll utiliza a colision.dll. Periódicamente, el robot se

autocomprueba, para ello manejo.dll, cuenta con la interfaz Iautoprueba la cual

es utilizada por test.dll que le ordena las pruebas que debe realizar. Muestre los

componentes y sus interfaces mediante un Diagrama de Componentes

Manejo.dllCamino.dll

Test.dll

Imanejo

Iautoprueba

Colisión.dll

9. Diagramas de Despliegue

Definición: Muestra el hardware en donde será desplegado los componentes de nuestro sistema. Esto significa que muestra las relaciones fisicas entre el software y el hardware.

Un Diagrama de Despliegue esta compuesto por:

- Nodos

- Conexiones entre nodos

Elementos de un Diagrama de Despliegue

Nodos: Representación de cualquier tipo de hardware sobre el cual correrá o del que se servirá nuestro sistema.

<<procesador>>

Será un Procesador, si tiene capacidad de proceso como una PC.

Será un Dispositivo si no tiene capacidad de proceso. Vienen a ser los equipos que sirven de interfaz con el mundo real como teléfono, impresora, sensores, etc.

<<dispositivo>>

Conexiones: Los nodos se conectan mediante asociaciones de comunicación fisica o no, como conexión satelital, cable serial, señal infraroja, etc.

Ejemplo de un Diagrama de Despliegue

Un usuario que se conecta vía Internet a un Servidor de Aplicaciones de una empresa. En este instante el componente CLIENTE viaja desde el Servidor de Aplicaciones hacia la PC del usuario, luego el componente CLIENTE puede solicitar algún servicio al componente APLICACION el cual buscará los datos necesarios en el componente

BD ubicado en el Servidor de Base de Datos.

<<procesador>>

PC usuario

<<procesador>>

Servidor de Aplicaciones <<procesador>>

Servidor de BD

Cliente

Cliente

BD

Aplicación

<<Becomes>>

<<HTTP>><<TCP/IP>>

Conclusiones:

1. El UML es el lenguaje estándar a nivel

mundial para representar modelos orientados a objetos de sistemas intensivos en software.

2. Debemos utilizarlo en todos nuestros modelos para poder comunicarnos con otros desarrolladores.

Recomendaciones:

-Primero aprenda la notación

-Segundo aprenda la herramienta

-Tercero aprenda el Proceso

Apostar por enfoque Orientado a Objetos

Rational

software