Vous êtes sur la page 1sur 73

David Sierra Gutirez

Qu es UML?
El UML modela sistema mediante el uso de objetos que

forman parte de l as como, las relaciones estticas o dinmicas que existen entre ellos. UML puede ser utilizado por cualquier metodologa de anlisis y diseo orientada por objetos para expresar los diseos.

Qu es UML?
UML es un Lenguaje de Modelado Unificado basado en una

notacin grfica la cual permite: especificar, construir, visualizar y documentar los objetos de un sistema programado. Este lenguaje es el resultado de la unificacin de los mtodos de modelado orientados a objetos de Booch, Rumbaugh (OMT: Object Modeling Technique) y Jacobson (OOSE: Object-Oriented Sotfware Engineering).

UML
UML es un lenguaje de modelado que sirve para visualizar,

especificar , construir y documentar un sistema software. Lenguaje de modelado:


Lenguaje cuyo vocabulario y reglas se centran en la representacin conceptual y fsica de un sistema (Booch, Jacobson y Rumbaugh).

UML para visualizar


Smbolos con semntica bien definida. UML transciende al lenguaje de programacin. Modelo explcito, que facilita la comunicacin.

UML para especificar


Especificar es equivalente a construir modelos que cumplan

las condiciones de no ambigedad y completitud. UML cubre la especificacin del anlisis, diseo e implementacin de un sistema software.

UML para construir


Es posible hacer

corresponder con los lenguajes de Modelo programacin UML (Java, C#, B.Datos, etc.).

Ingeniera Directa CDIGO Ingeniera Inversa

UML para documentar


UML cubre la documentacin de un sistema:

Requisitos Arquitectura Diseo Cdigo fuente Planificacin Pruebas Prototipos Versiones

UML aglutina enfoques OO


Rumbaugh
Booch Odell Shlaer-Mellor
Object life cycles

Jacobson

Meyer
Pre- and Post-conditions

UML
State Charts

Harel

Gamma et. al.


Frameworks, patterns, notes

Embly
Singleton classes

Wirfs-Brock
Fusion
Operation descriptions, message numbering Responsabilities

Historia de UML
2001 2000

UML 2.0 UML 1.4 UML 1.3


Revisiones menores

1999
1998 Nov 97
UML aprobado por el OMG

UML 1.2

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

Modelos y Diagramas

Modelo: captura una vista de un sistema del mundo real. Es una abstraccin de dicho sistema, considerando un cierto propsito.

Diagrama: representacin grfica de una coleccin de elementos de


modelado, a menudo dibujada como un grafo con vrtices conectados por arcos.

Organizacin de Modelos
Vista de Diseo Vista de Implementacin

Vista de los Casos de Uso


Vista de Procesos

Vista de Despliegue

Diagramas de UML
Use Case Use Case Diagramas Diagrams de Diagrams Secuencia Scenario Scenario Diagramas Diagrams de Diagrams Colaboracin Scenario Scenario Diagramas Diagrams de Diagrams Estados Use Case Use Case Diagramas Diagrams de Diagrams Casos de Uso State State Diagramas Diagrams de Diagrams Clases State State Diagramas Diagrams de Diagrams Objetos State State Diagramas Diagrams de Diagrams Componentes
Component Component Diagrams Diagramas de Diagrams

Modelo

Diagramas de Actividad

Distribucin

Bloques de construccin
UML incluye tres clases de bloques de construccin: Elementos

Estructurales Comportamiento Agrupacin Anotacin Dependencia Asociacin Generalizacin Realizacin

Relaciones

Bloques de construccin (2)


Diagramas Clases Objetos Casos de Uso Secuencia Colaboracin Estados Actividades Componentes Despliege

Bloques de construccin Elementos Estructurales


Son los nombres de los modelos UML. En su mayora

partes estticas de un modelo y representas cosas conceptuales o materiales.


Clases

Interfaz
Colaboraciones Casos de Uso Clases Activas Componentes Nodos

Bloques de construccin Elementos Estructurales


Clases: Descripcin de un conjunto de objetos que

comparten los mismos atributos, operaciones, relaciones y semntica.


Ventana
Origen Tamao abrir() Cerrar() Mover() Dibujar()

Bloques de construccin Elementos Estructurales


Interfaz: Coleccin de operaciones que especifican un

servicio de una clase o componente. Lo que describe el comportamiento visible externamente. Colaboracin: Define una interaccin. Es una agrupacin de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo.
Cadena de Responsabilidad

Iortografa

Bloques de construccin Elementos Estructurales


Caso de Uso: Descripcin de un conjunto de

secuencias de acciones que un sistema ejecuta y que produce un resultado observable de inters para un actor particular.

Realizar pedido

Bloques de construccin Elementos Estructurales


Clase Activa: Clase cuyos objetos tienen uno o mas

procesos o hilos de ejecucin y por lo tanto pueden dar origen a actividades de control. Componente: Parte fsica y reemplazable de un sistema que conforma un conjunto de interfaces y su implementacin (cdigo).
GestorEventos Orderform.java

Suspender() Vaciarcola()

Bloques de construccin Elementos Estructurales


Nodo: Elemento fsico que existe en tiempo de

ejecucin y representa un recurso computacional (Memoria, capacidad de procesamiento).

Servidor

Bloques de construccin Elementos de Agrupacin


Partes organizativas de los modelos UML. Son las cajas

en las que puede descomponerse un Modelo. Hay un elemento principal de agrupacin, los Paquetes.
Mecanismo de propsito general para organizar

elementos en grupos (a nivel conceptual slo en fase de desarrollo).

Reglas de Negocio

Bloques de construccin Elementos de Anotacin


Partes explicativas de los modelos UML. Son

comentarios que se pueden aplicar para describir, clarificar y hacer observaciones sobre cualquier elemento de un modelo.

Devuelve una copia del objeto receptor

Bloques de construccin Relaciones


Son cuatro y realizan la funcin de bloque bsico de

construccin para relaciones.


Dependencia Asociacin Generalizacin Realizacin

Bloques de construccin Relaciones


Dependencia: Es una relacin semntica entre dos

elementos. Un cambio en el elemento independiente puede provocar un cambio en el sentido del elemento dependiente. Puede incluir a veces una etiqueta.
Asociacin: Son conexiones entre objetos y representa

una relacin estructural entre un todo y sus partes (cardinalidad).


0..1 patrn * empleado

Bloques de construccin Relaciones


Generalizacin: Relacin de especializacin /

generalizacin en la que los objetos del elemento especializado (hijo) pueden sustituir al general (padre). El hijo comparte la estructura del padre.
Realizacin: Es una relacin entre un Clasificador que

especifica un contrato que otro Clasificador garantiza. Suelen encontrarse entre interfaces y las clases y componentes que las realizan, y los casos de uso y las colaboraciones.

Bloques de construccin Diagramas


Un diagrama es una representacin grfica de un

conjunto de elementos, visualizado habitualmente como un grafo conexo de nodos. Diagrama de clases:
Muestra un conjunto de clases, interfaces y

colaboraciones, as como sus relaciones. Habituales en el modelado de sistemas orientados a objetos. Vista de diseo esttica. Incluye las Clases Activas.

Bloques de construccin Diagramas


Diagrama de Objetos: Muestra un conjunto de objetos y sus relaciones. Muestra instancias de los elementos encontrados en el diagrama de clases. Vista de diseo / proceso esttica. Son casos reales. Diagrama de Casos de Uso: Muestra casos de uso y actores (tipo especial de clases) y sus relaciones. Vista esttica de un sistema. Importantes en el modelado y organizacin del sistema

Bloques de construccin Diagramas


Diagrama de Interaccin:

Muestra un conjunto de objetos y sus relaciones. Incluye mensajes que se envan entre ellos Vista dinmica de un sistema. Resalta la ordenacin temporal de los mensajes. Resalta la organizacin estructural de los objetos que envan y reciben mensajes.

Diagrama de Secuencia:

Diagrama de Colaboracin

Bloques de construccin Diagramas


Diagrama de Estados: Muestra una mquina de estados conformados por estados, transiciones, eventos y actividades Cubren una vista dinmica de un sistema. Diagrama de Actividades: Es un diagrama de estados que muestra el flujo de actividades dentro de un sistema. Resaltan el flujo de control entre objetos.

Bloques de construccin Diagramas


Diagrama de Componentes: Muestra la organizacin y las dependencias entre un conjunto de componentes. Cubren la vista esttica de implementacin de un sistema . Se relacionan con los diagramas de clases ya que un componente aglutina una o mas clases, interfaces y colaboraciones. Diagrama de Despliegue: Muestra la configuracin de los nodos de procesamiento en tiempo de ejecucin y los componentes que residen en ellos. Cubren una vista esttica de una arquitectura. Se relacionan con los diagramas de componentes en que un nodo incluye, por lo comn, uno o mas componentes.

Reglas de UML
Un modelo bien formado es aqul que es semnticamente

autoconsistente y est en armona con todos sus modelos relacionados UML tiene reglas para
Nombres, alcance, visibilidad, integridad, ejecutar.

Tambin es habitual que los modelos sean: Abreviados (elementos se ocultan para simplificar) Incompletos (pueden estar ausentes ciertos elementos) Inconsistentes (no se garantiza la integridad del modelo). Las reglas UML estimulan la consistencia pero no obligan.

Mecanismos Comunes de UML


En el anlisis cada uno puede imprimir su estilo en los

procesos y UML aplica esta misma teora mediante cuatro mecanismos comunes que se aplican de forma consistente en todo el lenguaje:
Especificaciones
Adornos Divisiones comunes

Mecanismos de extensibilidad

Mecanismos Comunes de UML Especificaciones


Las especificaciones UML proporcionan la base

semntica que incluye a todos los elementos de todos los modelos de un sistema, y cada elemento esta relacionando de forma consistente.
Detrs de un objeto (pej Clase) hay una especificacin

que proporciona el conjunto completo de atributos, operaciones y comportamiento. Las especificacin UML se utiliza para enunciar los detalles del sistema.

Mecanismos Comunes de UML Adornos


Los elementos UML tienen una notacin grfica nica

y clara Las especificaciones suelen incluir gran cantidad de detalles sobre dicho elemento. Los adornos nos apoyan la visin grfica de un elemento dando mas informacin (pej. Publico +, protegido #, privado -) GestorEventos

+Suspender() +Vaciarcola() #limpiar() - IniciarCLK()

Mecanismos Comunes de UML Divisiones Comunes


El modelado OO permite que el mundo pueda

dividirse al menos en un par de formas.


Clase-Objeto
Cliente
Nombre Direccion Telefono

Juan: Cliente :Cliente

Elisa

Interfaz(contrato)-Implementacin(realizacin)
Asistenteortografico.dll

Iunknown

Iortografa

Mecanismos Comunes de UML Mecanismos de extensibilidad


UML incluidos son:
Estereotipos: Extensin de UML que permite crear nuevos tipos de

bloques derivados de los existentes, pero especficos para un problema. (buscar ejemplo). Valores Etiquetados: Permite aadir nueva informacin de un elemento. (pej. Indicar version de una clase {ver =1.2}. Restricciones: Permite aadir o modificar reglas existentes.
ColaEventos {ver=1.2 Autor=yomismo}
exception Overflow

aadir() quitar() vaciar()

{ordenado}

Arquitectura
Conjunto de decisiones significativas sobre: Organizacin de un sistema software Seleccin de elementos (estructurales e interfaces). Comportamiento. Especifica colaboraciones entre elementos. Composicin y comportamiento en subsistemas. Estilo arquitectnico (elementos estticos, dinmicos, sus interfaces, colaboraciones y composicin final).

Arquitectura
La arquitectura puede describirse sobre 5 vistas interrelacionadas

que proyectan la organizacin y estructura del sistema.


Casos de uso: Describen el

comportamiento del sistema Diseo: Clases, interfaces y colaboraciones (requisitos funcionales) Procesos: Mecanismos de sincronizacin y concurrencia (hilos y procesos) Implementacin: Componentes y archivos. Despliegue: Nodos que conforman la topologa hardware.

Ciclo de vida de desarrollo de software


UML recomienda que un proceso de desarrollo fuese Dirigido por los casos de uso: Son la base para establecer el comportamiento del sistema. Centrado en la arquitectura: Conceptualizar, construir, gestionar y hacer evolucionar el sistema en desarrollo. Iterativo e incremental: Pretende reducir paulatinamente el riesgo-xito del proyecto en cada versin.

Ciclo de vida de desarrollo de software


El proceso se puede dividir en cuatro fases: Iniciacin: Base, fundamentos para iniciar. Elaboracin: Definicin del producto y su arquitectura. Construccin: Generar y poner a disposicin el producto a los usuarios. Transicin: Se pasa a manos de los usuario.

Ciclo de vida de desarrollo de software

Casos de Uso
Un diagrama de Casos de Uso muestra la distintas

operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno (usuario u otras aplicaciones).
Es

una herramienta esencial para la captura de requerimientos y para la planificacin y control de un proyecto interactivo.

Casos de Usos
Los casos de Uso Se representa en el diagrama por una

elipse que denota un requerimiento solucionando por el sistema. Cada caso de uso de uso es una operacin completa desarrollada por los actores y por el sistema en un dilogo. El conjunto de casos de uso representa la totalidad de operaciones desarrolladas por el sistema.

Casos de Uso
Para elaborar correctamente un diagrama hay: Nombrar un comportamiento simple, identificable y razonablemente atmico del sistema. Factoriza el comportamiento comn, incorporando ese comportamiento desde otros casos de uso que incluye. Factoriza las variantes, colocando ese comportamiento en otros casos de uso que lo extienden. Describe el flujo de eventos de forma clara para que alguien externo sea capaz de entenderlo. El caso de uso se describe por un conjunto mnimo de escenario que especifican la semntica y las variantes.

Nota 1: Hay que mostrar slo los casos de uso que sean importantes para comprender el comportamiento del sistema Nota 2: Hay que mostrar slo los actores relacionado con ese caso de uso.

Casos de Uso
Actor: Es un usuario del sistema, que necesita o usa alguno

de los casos de uso. Un usuario puede jugar ms de un rol. Un solo actor puede actuar en muchos casos de uso; recprocamente, un caso de uso puede tener varios actores. Los actores no necesitan ser humanos pueden ser sistemas externos que necesitan alguna informacin del sistema actual.

Casos de Uso

Casos de Uso
Tambin se puede encontrar tres tipos de relaciones,

como son:
Comunica (comunicates) Entre un actor y un caso de

uso, denota la participacin del actor en el caso de uso determinado.

Casos de Uso
Usa (uses): Relacin entre dos casos de uso, denota la

inclusin del comportamiento de un escenario en otro. Se utiliza cuando se repite un caso de uso en dos o ms casos de uso separados. Frecuentemente no hay actor asociado con el caso de uso comn.

Casos de Uso
Extiende (extends): Relacin entre dos casos, denota

cuando un caso de uso es una especializacin de otro. Se usa cuando se describe una variacin sobre el normal comportamiento.

Casos de Uso - Ejemplo


Realizar llamada telefnica
extend

Realizar llamada de conferencia

Red telefnica

Recibir llamada telefnica

extend

Recibir llamada adicional

Usuario

Usar Agenda Telfono mvil

Diagramas de Interaccin
Son los diagramas que se utilizan para modelar los

aspectos dinmicos de los sistemas. Estos diagramas muestran una interaccin entre objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos.
Diagrama de Secuencia: Destaca la ordenacin temporal

de los mensajes. Diagrama de colaboracin: Destaca la organizacin estructural de los objetos que envan y reciben mensajes.

Diagramas de Interaccin Diagrama de Secuencias.

Diagramas de Interaccin Diagrama de Colaboraciones.

Diagramas de Interaccin Diagrama de Secuencias.

Diagramas de Interaccin Diagrama de Colaboraciones.

Diagramas de Interaccin
Cundo debemos utilizar uno u otro diagrama?. Si queremos modelar flujos de control por ordenacin temporal deberemos utilizar los diagramas de secuencias. Si queremos modelar los flujos de control por organizacin deberemos utilizar los diagramas de colaboracin. Los diagramas de colaboracin nos permiten visualizar mejor las iteraciones y bifurcaciones complejas.

Ejercicio
Identificar las clases relevantes y realizar el diagrama de

secuencia para el siguiente caso de uso, que corresponde a la realizacin de una llamada desde un telfono mvil.
El usuario pulsa los dgitos del nmero de telfono Para cada dgito la pantalla se actualiza para aadir el dgito marcado se emite un tono por el receptor El usuario pulsa el botn Enviar El indicador en uso se ilumina en pantalla El mvil establece conexin con la red Los dgitos acumulados se mandan a la red Se establece la conexin con el nmero marcado

Ejercicio

Ejercicio

Diagramas de Clases
Son los diagramas ms utilizados en el modelado de

sistemas orientados a objetos. Los diagramas muestran Clases, Interfaces y Colaboraciones as como sus relaciones. Los diagramas de Clases estn relacionados con los diagramas de componentes y de despliegue.

Diagrama de clases - Clase


Visibilidad
+ pblico - privado # protegido
NombreClase [visibilidad] atributo1: tipo [=valordefecto] [visibilidad] atributo2: tipo [=valordefecto] [visibilidad] operacin1(args): retorno [visibilidad] operacin2(args): retorno Responsabilidades -- responsabilidad1 -- responsabilidad2

Responsabilidades
Descripcin de lo que tiene que realizar la clase

Diagrama de clases - Relaciones


Notacin general
Clase

Clase1

Plantilla
Rol 1 [0..*] Relacin 1-2 {Restriccin} Rol 2 [0..*]

Diagrama de clases - Relaciones


Relacin de dependencia Relacin de agregacin

Clase1

Clase2

Clase1

Clase2

Relacin de asociacin

Relacin de composicin

Clase1

Clase2

Clase1

Clase2

Diagrama de clases - Relaciones


Relacin de generalizacin Relacin de navegabilidad

Clase1

Clase1
Clases asociacin

Clase2

Clase2

Clase3

Clase1 Clase3

Clase2

Diagrama de clases - Ejemplo


Empresa
1
1 ..* 1 ..*

Departamento nombre: String


Ubicacin
* *

Oficina direccin: String telfono: Number

{subconjunto}

miembro

1 ..*

director

Persona nombre: String obtenerFoto(p:Foto)

OficinaPrincipal Foto foto: Imagen

Diagrama de clases Ejemplo 2

Vous aimerez peut-être aussi