Anda di halaman 1dari 89

INTRODUCCION A UML

I. Introduccin: UML

Perspectivas de UML
UML es el lenguaje de modelado orientado a objetos estndar predominante ahora y en los prximos aos Razones: Participacin de metodlogos influyentes Participacin de importantes empresas Estndar del OMG Evidencias: Herramientas que proveen la notacin UML Edicin de libros (ms de 300 en www.amazon.com) Congresos, cursos, camisetas, etc.

II. Breve Tour por UML

Modelos y Diagramas
Un modelo captura una vista de un sistema del mundo

real. Es una abstraccin de dicho sistema, considerando


un cierto propsito. As, el modelo describe completamente aquellos aspectos del sistema que son relevantes

al propsito del modelo, y a un apropiado nivel de detalle.


Diagrama: una representacin grfica de una coleccin de elementos de modelado, a menudo dibujada como un

grafo con vrtices conectados por arcos


OMG UML 1.4 Specification

II. Breve Tour por UML

... Modelos y Diagramas


Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems es ejecutable). Sin embargo, se requieren otros modelos ...

Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos

II. Breve Tour por UML

Diagramas de UML 1.5


Diagrama de Casos de Uso Diagrama de Clases Diagrama de Objetos Diagramas de Comportamiento Diagrama de Estados Diagrama de Actividad Diagramas de Interaccin Diagrama de Secuencia Diagrama de Colaboracin Diagramas de implementacin Diagrama de Componentes Diagrama de Despliegue

II. Breve Tour por UML

... Diagramas de UML


Los diagramas expresan grficamente partes de un modelo
Use Case Use Case Diagrams Diagramas de Diagrams Casos de Uso
State State Diagrams Diagramas Diagrams de Clases

Use Case Use Case Diagrams Diagramas Diagrams de Secuencia


Scenario Scenario Diagrams Diagramas Diagrams de Colaboracin

State State Diagrams Diagramas Diagrams de Objetos

Modelos

State State Diagrams Diagramas Diagrams de Componentes


Component Component Diagrams Diagramas de Diagrams

Scenario Scenario Diagrams Diagramas Diagrams de Estados

Diagramas de Actividad

Distribucin

II. Breve Tour por UML

Organizacin de Modelos
4+1 vistas de Kruchten (1995)

Vista de Vista Lgica Realizacin

Vista de los Casos de Uso


Vista de Procesos Vista de Distribucin

Este enfoque sigue el browser de Rational Rose

II. Breve Tour por UML

... Organizacin de Modelos


Propuesta de Rational Unified Process (RUP)

M. de Casos de Uso del Negocio (Business Use-Case Model) M. de Objetos del Negocio (Business Object Model) M. de Casos de Uso (Use-Case Model) M. de Anlisis (Analysis Model) M. de Diseo (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementacin (Implementation Model) M. de Pruebas (Test Model)

II. Breve Tour por UML

Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado Se representan grficamente como:

Nombre de paquete

II. Breve Tour por UML

Paquetes en UML
Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema)

Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes

II. Breve Tour por UML

Paquetes en UML
Todos los elementos no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa El operador :: permite designar una clase definida en un contexto distinto del actual

II. Breve Tour por UML

...Paquetes en Rational Rose


Customers

Otra Clase

Customers

<<access>>

CheckingAccount
(f rom Banking)

Banking

Banking

CheckingAccount

II. Breve Tour por UML

Paquetes en UML

Prctica 1

III. El Paradigma OO: Requisitos

Requisitos del software

III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario Permiten definir los lmites del sistema y las relaciones entre el sistema y el entorno Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementacin Comparacin con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado

III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo El usuario debera poder entenderlos para realizar su validacin

III. El Paradigma OO: Requisitos

Casos de Uso
Ejemplo:

Actor A

Caso de Uso A

Caso de Uso B

Actor B

III. El Paradigma OO: Requisitos

Casos de Uso
Actores: Principales: personas que usan el sistema Secundarios: personas que mantienen o administran el sistema Material externo: dispositivos materiales imprescindibles que forman parte del mbito de la aplicacin y deben ser utilizados Otros sistemas: sistemas con los que el sistema interacta

La misma persona fsica puede interpretar varios papeles como actores distintos
El nombre del actor describe el papel desempeado

III. El Paradigma OO: Requisitos

Casos de Uso
Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, los escenarios, desde el punto de vista del usuario Un escenario es una instancia de un caso de uso Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estar dirigido por los casos de uso

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


UML define cuatro tipos de relacin en los Diagramas de Casos de Uso:
Comunicacin

Actor

Caso de Uso

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Inclusin : una instancia del Caso de Uso origen

incluye tambin el comportamiento descrito por el Caso de Uso destino


<<include>>

Caso de Uso Origen

Caso de Uso Destino

<<include>> reemplaz al denominado <<uses>>

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo
<<include>>:

Reintegro Cuenta Corriente

<<include>>

Cliente

Verificar Operacin <<include>>

Reintegro Cuenta de Crdito

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Extensin : el Caso de Uso origen extiende el

comportamiento del Caso de Uso destino

<<extend>>

Caso de Uso Origen

Caso de Uso Destino

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo
<<extend>>:

Cliente

Solicitar Prstamo

[Tarjeta Caducada] <<extend>>

Solicitar Nueva Tarjeta

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Ejemplo <<include>> y <<extend>>:

<<include>>

Identificacin

Cliente

Transferencia

<<extend>>

Transferencia en Internet

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Otro ejemplo <<include>> y <<extend>>:

Supply Customer Data

Order Product Arrange Payment

<<include>>

<<include>>

<<include>>

the salesperson asks for the catalog

1 Salesperson

* Place Order

<<extend>>

Request Catalog

III. El Paradigma OO: Requisitos

Casos de Uso: Relaciones


Herencia : el Caso de Uso origen hereda la

especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla

Caso de Uso Hijo

Caso de Uso Padre

III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso Preguntas clave: cules son las tareas del actor? qu informacin crea, guarda, modifica, destruye o lee el actor? debe el actor notificar al sistema los cambios externos? debe el sistema informar al actor de los cambios internos?

III. El Paradigma OO: Requisitos

Casos de Uso: Construccin


La descripcin del Caso de Uso comprende:
el inicio: cundo y qu actor lo produce? el fin: cundo se produce y qu valor devuelve? la interaccin actor-caso de uso: qu mensajes

intercambian ambos? objetivo del caso de uso: qu lleva a cabo o intenta? cronologa y origen de las interacciones repeticiones de comportamiento: qu operaciones son iteradas? situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?
Prctica 7

III. El Paradigma OO: Requisitos


Identificador Nombre Descripcin CU-<id-requisito> <nombre del requisito funcional> El sistema deber comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activacin> , abstracto durante la realizacin de los casos de uso <lista de casos de uso>} <precondicin del caso de uso> Paso 1
Accin {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso CU-x> Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x>

Precondicin Secuencia Normal

2 Postcondicin Excepciones

<postcondicin del caso de uso> Paso 1


Accin Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso CU-x>, a continuacin este caso de uso {continua, aborta} Cota de tiempo n segundos

Rendimiento Paso 1 Frecuencia esperada Importancia Urgencia Comentarios

<n de veces> veces / <unidad de tiempo> {sin importancia, importante, vital} {puede esperar, hay presin, inmediatamente} <comentarios adicionales>

III. El Paradigma OO: Requisitos

Comentarios
En mtodos OO que carecen de una tcnica de captura de requisitos se comienza inmediatamente con la construccin del modelo de anlisis/diseo Los Casos de Uso son una idea maravillosa que ha sido generalmente complicada. El verdadero truco para los Casos de Uso es mantenerlos simples. Recordad, maana van a cambiar. Rober C. Martin

Los requisitos NO funcionales tambin son importantes. Desempeo, cumplimiento de estndares o leyes, atributos de calidad (confiabilidad, disponibilidad, seguridad, mantenibilidad, portabilidad), etc.

Modelo de datos

Modelo de datos. Concepto.


Es definir todos los objetos de datos que se procesan dentro del sistema y las relaciones entre los objetos de datos.

Continua modelo de datos

Continua modelo de datos

Continua modelo de datos

Modelo de clases
Una clase OO encapsula atributos de los satos pero tambin incorpora las operaciones que manipulan los datos implicados por dichos atributos. Las clases se manifiestan en la siguiente forma: entidades externas, sucesos o eventos, cosas, papeles o roles , unidades organizacionales, sitios y estructuras

Representacin de una clase

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = unidad atmica que encapsula estado y comportamiento

La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento


Un objeto puede caracterizar una entidad fsica (coche) o abstracta (ecuacin matemtica)

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
En UML, un objeto se representa por un rectngulo con un nombre subrayado

Otro objeto

Un objeto

Otro objeto ms

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:

Cuenta Corriente 101 Juan Banco de Valencia

Felipe Cuenta Corriente 114

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = Identidad + Estado + Comportamiento El estado est representado por los valores de los atributos Un atributo toma un valor en un dominio concreto

Un coche Azul 979 Kg 70 CV ...

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Ejemplo de interaccin:
Un Objeto Operacin 1

1: Un mensaje

Operacin 2

Otro Objeto

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo

III. El Paradigma OO: Fundamentos de Modelado OO

Persistencia
La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo Podremos despus reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecucin (materializacin del objeto) Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debera ser transparente, un objeto existe desde su creacin hasta que se destruya

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico El comportamiento global se basa pues en la comunicacin entre los objetos que la componen

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Categoras de objetos: Activos - Pasivos Cliente Servidores, Agentes Objeto Activo: posee un hilo de ejecucin (thread) propio y puede iniciar una actividad Objeto Pasivo: no puede iniciar una actividad pero puede enviar estmulos una vez que se le solicita un servicio Cliente es el objeto que solicita un servicio. Servidor es el objeto que provee el servicio solicitado

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Los agentes renen las caractersticas de clientes y servidores Son la base del mecanismo de delegacin Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Ejemplo con objeto agente:

Servidor 1 2: Un agente 1: Un cliente 3: Servidor 2

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
La unidad de comunicacin entre objetos se llama mensaje
Objeto 1 1: Mensaje A Objeto 2

2: Mensaje C 4: Mensaje E Objeto 3 3: Mensaje D Objeto 4

III. El Paradigma OO: Fundamentos de Modelado OO

Mensaje y Estmulo
Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal

Un mensaje es la especificacin de un estmulo


Tipos de flujo de control:

Llamada a procedimiento o flujo de control anidado Flujo de control plano Retorno de una llamada a procedimiento Otras variaciones
Esperado (balking)

Cronometrado (time-out)

Clases y relaciones entre clases

III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin
El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin:

Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin

La clasificacin es uno de los mecanismos de abstraccin ms utilizados

III. El Paradigma OO: Clases y relaciones entre clases

Clases
La clase define el mbito de definicin de un conjunto de objetos Cada objeto pertenece a una clase

Los objetos se crean por instanciacin de las clases

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Cada clase se representa en un rectngulo con tres compartimientos:
nombre de la clase atributos de la clase operaciones de la clase

Motocicleta color cilindrada velocidad mxima arrancar() acelerar() frenar()

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Notacin Grfica


Otros ejemplos:

lista primero() ultimo() aadir() quitar() cardinalidad()

pila apilar() desapilar() cardinalidad()

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
La encapsulacin presenta dos ventajas bsicas: Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento Los atributos de una clase no deberan ser manipulables directamente por el resto de objetos

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
Los niveles de encapsulacin estn heredados de los niveles de C++:
(-) Privado : es el ms fuerte. Esta parte es

totalmente invisible (excepto para clases friends en terminologa C++)


(#) Los atributos/operaciones protegidos estn

visibles para las clases friends y para las clases derivadas de la original
(+) Los atributos/operaciones pblicos son visibles

a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin)

III. El Paradigma OO: Clases y relaciones entre clases

Clases: Encapsulacin
Ejemplo:

III. El Paradigma OO: Clases y relaciones entre clases

Relaciones entre Clases


Los enlaces entre de objetos pueden representarse entre las respectivas clases

Formas de relacin entre clases:


Asociacin y Agregacin (vista como un caso

particular de asociacin) Generalizacin/Especializacin


Las relaciones de Agregacin y Generalizacin forman jerarquas de clases

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Univ. de Murcia : Universidad Un enlace

Antonio : Estudiante

Universidad Una asociacin

Estudiante

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
Ejemplo:
marido casado-con mujer
0..1 0..1

Persona nombre s.s.

emplea-a

Compaa trabaja-para nombre direccin *

jefe Administra

0..1

empleado

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin
Especificacin de multiplicidad (mnima...mxima)
1 Uno y slo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)

La multiplicidad mnima >= 1 establece una restriccin de existencia

III. El Paradigma OO: Clases y relaciones entre clases

Asociacin Cualificada
Aerolnea
nro_billete

0..1

Viajero

Tablero Ajedrez

fila columna

Cuadro

Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador

III. El Paradigma OO: Clases y relaciones entre clases

Agregacin
La agregacin representa una relacin parte_de entre objetos En UML se proporciona una escasa caracterizacin de la agregacin

Puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes

III. El Paradigma OO: Clases y relaciones entre clases

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

Window
1 1 1

scrollbar Slider

title 1 Header

body

Panel

III. El Paradigma OO: Clases y relaciones entre clases

... Ejemplos
Person

*
1

Member-of { subset } Chair-of

* Committee *
Represents an incorporated entity.

worker

Person

employee

employer
0..1

Company

*
0..1

boss {Person.employer = Person.boss.employer}

III. El Paradigma OO: Clases y relaciones entre clases

Ejemplos
Agregacin
Polgono
1

contiene {ordenado}
3..*

Punto

* Cuenta * or *
1

Persona

Asociacin excluyente
Empresa

Usuario *

est-autorizado-en * Autorizacin prioridad privilegios camb_privil()

Estacin

Clase de asociacin

III. El Paradigma OO: Clases y relaciones entre clases

Clases y Objetos
Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo Un Diagrama de Clases muestra la abstraccin de una parte del dominio

Un Diagrama de Objetos representa una situacin concreta del dominio


Las clases abstractas no son instanciadas

III. El Paradigma OO: Clases y relaciones entre clases

Generalizacin
Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases

Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin


La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base clase derivada Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estn disponibles en sus clases hijas

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Vehculo

Veihculo Terrestre

Vehculo Areo

Coche

Camin

Avin

Helicptero

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
Coche

Funcionando

Estropeado

Restricciones predefinidas en UML:


disjunta - no disjunta total (completa) - parcial (incompleta)

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
La nocin de clase est prxima a la de conjunto Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Particionamiento del espacio de objetos => Clasificacin Esttica Particionamiento del espacio de estados de los objetos => Clasificacin Dinmica En ambos casos se recomienda considerar generalizaciones/especializaciones disjuntas

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Esttica:

Vehculo Areo
{ esttica }

Avin

Helicptero

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Un ejemplo de Clasificacin Dinmica:

Coche
{ dinmica }

Funcionando

Estropeado

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Extensin: Posibles instancias de una clase Intensin: Propiedades definidas en una clase

int(A) int(B)
ext(B) ext(A)
B

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Esttica

C0
ext(C0) = ext(Ci) completa ext(Ci) ext(Cj) = disjunta

{ static }

C1

Cn

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Clasificacin Dinmica

C0

ext(C0) = ext(Ci)
{ dinmica }

completa

extt(Ci) extt(Cj) = disjunta en t extt1(Ci) extt2(Cj) posiblemente no disjunta en diferentes instantes

C1

Cn

III. El Paradigma OO: Clases y relaciones entre clases

... Generalizacin
Ejemplo: varias especializaciones a partir de la misma clase padre, usando discriminadores:
Comercial Militar

uso Vehculo Areo

estructura

Avin

Helicptero

III. El Paradigma OO: Clases y relaciones entre clases

Clasificacin Mltiple (herencia mltiple)


Se presenta cuando una subclase tiene ms de una superclase

La herencia mltiple debe manejarse con precaucin. Algunos problemas son el conflicto de nombre y el conflicto de precedencia Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia mltiple

III. El Paradigma OO: Clases y relaciones entre clases

Herencia Mltiple
Uso disciplinado de la herencia mltiple: clasificaciones disjuntas con clases padre en hojas de jerarquas alternativas
Bpedo nro patas Con Pelos Cuadrpedo nro patas Herbvoro

cubertura
Con Plumas cobertura cobertura Con Escamas Animal

comida

comida Carnvoro

Conejo

Modelo de clase responsabilidad Colaborador CRC


El modelo de clases responsabilidad colaborador (CRC) proporciona un medio simple para identificar y organizar las clases relevantes para los requisitos del sistema o producto. una coleccin de tarjetas ndices Un modelo CRC es estndar que representan clases. El objeto es desarrollar una representacin organizada de las clases

.Continua CRC

.Continua CRC

Asociaciones y dependencias

Examen Mircoles 7 de Noviembre de 2012

Anda mungkin juga menyukai