Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase de UML PDF
Clase de UML PDF
modelado
Metodologías, UML y
patrones de diseño
Fuente: Ricardo Borillo Doménech
borillo@si.uji.es
Índice
Conceptos
Lenguajes de modelado: UML
Metologías:
Metologías clásicas: RUP, Métrica, MSF
Metologías ágiles: eXtreme Programming
Patrones de diseño de sofware
Arquitecturas dirigidas por modelos (MDA)
Herramientas de modelado
Introducción a las
metodologías
Componentes básicos
RUP. Técnicas y su aplicación a la gestión
de proyectos software orientados a objeto.
XP. Gestión ágil de proyectos y grupos de
desarrollo.
UML. Diagramas, elementos notacionales
y semántica de los modelos generados.
Modelado con UML
Qué es UML?
El UML modela sistema mediante el uso de
objetos que forman parte de él así como, las
relaciones estáticas o dinámicas que existen
entre ellos.
UML puede ser utilizado por cualquier
metodología de análisis y diseño orientada por
objetos para expresar los diseños.
Qué es UML?
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
Historia de UML
2001 UML 2.0
Vista de
Vista de Diseño Implementación
Vista de los
Casos de Uso
Vista de Vista de
Procesos Despliegue
Diagramas de UML
State
State
Use Case Diagramas
Diagrams de
Use Case Diagrams State
Use Case Diagramas
Diagrams de Clases State
Diagrams
Use Case Casos Diagramas
Diagrams de
Diagramas
Diagrams de de Uso Diagrams
Diagrams Objetos
Secuencia
Scenario State
Scenario State
Diagramas
Diagrams de Diagramas
Diagrams de
Diagrams Diagrams
Colaboración Modelo Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas
Diagrams de Diagrams
Diagrams
Estados Diagramas de Distribución
Actividad
Mecanismos comunes en UML
{orderById}
«utility»
Producto
-Paginas : int
+Insert() IDataManaged
+Update()
+Delete()
#GetNumPaginas() : int
«utility» «utility»
p1 : Producto p2 : Producto
Paginas : int Paginas : int
Nombre de la clase
Atributos
Métodos
Diagrama de clases
Técnicas de modelado:
Modelado del vocabulario de un sistema a
partir de las descripciones funcionales.
Modelado de la distribución de
responsabilidades en un sistema.
Modelado de cosas que no son software
(hardware, personas, etc).
Modelado de tipos primitivos.
Diagrama de clases
Objeto: es una instancia de una clase. Se
caracteriza por tener una identidad única, un
estado definido por un conjunto de valores de
atributos y un comportamiento representado por
sus operaciones y métodos.
Técnicas de modelado:
Modelado de dependencias simples.
Modelado de herencia simple.
Modelado de relaciones estructurales
(composiciones y agregaciones).
Modelado de comentarios.
Diagrama de clases
Diagrama de
Interacción
Diagrama de interacción
Estos son modelos que describen como
los grupos de objetos que colaboran en
algunos ambientes. Por lo general, un
diagrama de interacción captura el
comportamiento de un único caso de uso.
Hay dos tipos de diagramas de
interacción: diagramas de secuencia y
diagramas de colaboración.
Diagrama de interacción
Un diagrama de secuencia muestra la
interacción de un conjunto de objetos de una
aplicación a través del tiempo. Esta descripción
es importante porque puede dar detalle a los
casos de uso, aclarándolos al nivel de mensajes
de los objetos existentes, como también
muestra el uso de los mensajes de las clases
diseñadas en el contexto de una operación.
Diagrama de interacción
Elementos básicos del diagrama de
interacción:
Objetos o actores para cada entidad.
Enlaces entre los objetos.
Procedimientos a invocar entre los objetos.
Mensajes entre los objetos.
Diagrama de interacción
Un objeto se representa como una línea vertical
punteada (línea de vida), con un rectángulo de
encabezado y con rectángulo a través de la línea
principal que denotan la activación, es decir, el período
de tiempo en el cual el objeto se encuentra
desarrollando alguna operación.
El rectángulo de encabezado contiene el nombre del
objeto y el de su clase, en un formato nombreObjeto:
nombreClase. El envío de mensajes entre objetos se
denotan mediante una línea sólida dirigida, desde el
objeto que emite el mensaje hacia el objeto que lo
ejecuta.
Diagrama de interacción
Diagrama de interacción
Diagramas de Colaboración:
Es una forma de representar interacción entre los
objetos, es decir, las relaciones entre ellos y la
secuencia de los mensajes de las iteraciones que
están indicadas por un número A diferencia de los
diagramas de secuencia, pueden mostrar el contexto
de la operación (cuáles objetos son atributos, cuáles
temporales, etc) y ciclos en la ejecución. Muestra
como varios objetos colaboran en un solo caso de
uso.
Diagrama de interacción
Diagrama de interacción
Técnicas de modelado:
Modelado dinámico del sistema.
Implementación de un caso de uso en
concreto para cada diagrama.
Modelado del flujo de control por ordenación
temporal (secuencia).
Modelado del flujo de control por organización
(colaboración).
Diagrama de
Estados
Diagrama de estados
Diagrama de Estados:
Muestra el conjunto de estado por los cuales
pasa un objeto durante su vida en una
aplicación junto con los cambios que permiten
pasar de un estado a otro. Esta representado
principalmente por los siguientes elementos:
Estado.
Elemento.
Transición.
Diagrama de estados
Estado: Identifica un período de tiempo del
objeto (no instantáneo) en el cual el objeto esta
esperando alguna operación, tiene cierto estado
característico o puede recibir cierto tipo de
estímulos.
Diagrama de estados
Partes que componen un estado:
Nombre
Acciones de entrada y de salida.
Transiciones internas.
Subestados.
Eventos diferidos.
Diagrama de estados
Eventos: Es una ocurrencia que puede causar
la transición de un estado a otro de un objeto.
Esta, puede ser una:
Técnicas de modelado:
Modelado de la vida de un objeto. Este tipo
de diagramas se asocian directamente a
una clase.
Diagrama de
Actividades
Diagrama de Actividades
Un diagrama de actividades es un caso especial
de un diagrama de estados en el cual casi todos
los estados son estados de acción (identifican
que acción se ejecuta al esta en él ) y casi todas
las transiciones son enviadas al terminar la
acción ejecutada en el estado anterior.
Generalmente modelan los pasos de un
algoritmo y puede dar detalle a un caso de uso,
un objeto o un mensaje en un objeto.
Diagrama de Actividades
Sirven para representar transiciones internas,
sin hacer mucho énfasis en transiciones o
eventos externos.
Los elementos que conforman el diagrama son:
Acción
Transición.
Objetos
Diagrama de Actividades
Estado de Acción: representa un estado
con acción interna, con lo menos una
transición que indica la culminación de la
acción (por medio de un evento implícito).
Permite modular un paso dentro del
algoritmo. Se representan por un rectángulo
con bordes redondeados.
Diagrama de Actividades
Estado de Actividad: Estado más
general que permite su descomposición
en otro diagrama de actividades interno,
de nivel más bajo.
Su representación, en cuanto a la notación,
es la misma que el de Acción.
Diagrama de Actividades
Casos especiales:
Estado inicial. Representa el punto de
entrada del diagrama de actividades.
Estado final. Su existencia depende de si el
diagrama es cíclico.
Ítem de decisión. Representado con un
rombo, permite tomar bifurcaciones
condicionales.
Diagrama de Actividades
Casos especiales:
Carriles o “Swim Lanes”. Permiten acotar el
área a las cuales las actividades están
asociadas (departamentos, módulos del
sistema, etc).
Flujos con objetos. Hacer explícita la relación
con una entidad en concreto.
Diagrama de Actividades
Transición: Es la relación entre dos
estados y se encuentran unidos por
flechas; indicando que un objeto que está
en el primer estado realizará una acción
especificada y entrará en el segundo
estado cuando un evento implícito ocurra
y unas condiciones especificas sean
satisfechas.
Diagrama de Actividades
Tipos de transiciones:
Bifurcaciones condicionales. Permiten tomar
distintos caminos dentro del diagrama en
función de una condición o “guarda”.
División y unión. Permiten representar el
paralelismo en la ejecución de actividades.
Diagrama de Actividades
Diagrama de interacción
Técnicas de modelado:
Modelado de un flujo de trabajo o Workflow. Uso
intensivo de estados de actividad, swim lanes y
bifurcaciones condicionales.
Modelado de una operación concreta que resulta
muy complicada. Uso intensivo de transiciones
(simples o paralelas) y de estados de acción.
Diagrama de
Componentes
Diagrama de componentes
Técnicas de modelado:
Modelado de ejecutables y bibliotecas.
Modelado de tablas, archivos y documentos.
Modelado y diseño de un API.
Modelado del código fuente.
Planificación de versiones ejecutables para su
implementación con Nant.
Diagrama de
Despliegue
Diagrama de despliegue
Los diagramas de despliegue muestran la
disposición física de los distintos nodos que
componen un sistema y el reparto de los
componentes sobre dichos nodos
Diagrama de despliegue
La vista de despliegue representa la disposición de las
instancias de componentes de ejecución en instancias de
nodos conectados por enlaces de comunicación.
Un nodo es un recurso de ejecución tal como
Dispositivos
Procesadores
Memoria
Técnicas de modelado:
Modelado de procesadores y dispositivos.
Modelado de distribución de componentes.
RUP: El Proceso
Unificado de Rational
Proceso Unificado de Rational
Orígenes
Modelo original Objectory definido por Ivan
Jacobson (1987)
Rational Software compra la empresa de
Objectory (1995)
Surge la primera versión de UML (1997)
Se publica la primera versión del Proceso
Unificado de Rational - RUP (junio 1998)
Casos de uso
Dirigido por casos de uso
Se centra en la funcionalidad que el sistema debe poseer
para satisfacer las necesidades de un usuario (persona,
sistema externo, dispositivo) que interactua con él
Casos de uso como el hilo conductor que orienta las
actividades de desarrollo
Casos de Uso
<<defineNecesidades>>
<<realiza>> <<verifica>>
Análisis Diseño Pruebas
Recopilar,
Clarificar y Realizar los Verificar que se
Validar los casos de uso satisfacen los
requerimientos casos de uso
Arquitectura
Centrado en la arquitectura
Concepto similar a la arquitectura de un edificio
Varios planos con diferentes aspectos del edificio
Tener una imagen completa del edificio antes que comience la
construcción
Arquitectura en software
Diferentes vistas del sistema: estructural, funcional, dinámico, etc.
Plataforma en la que va a operar
Determina la forma del sistema
Arquitectura:
determina la forma del sistema
Casos de uso: determinan la función del sistema
Modelo que implementa
Iterativo e incremental
Descomposición de un proyecto grande en mini-proyectos
Cada mini-proyecto es una iteración
Las iteraciones deben estar controladas
Cada iteración trata un conjunto de casos de uso
Ventajas del enfoque iterativo
Detección temprana de riesgos
Administración adecuada del cambio
Mayor grado de reutilización
Mayor experiencia para el grupo de desarrollo
Estructura
Dinámica
Ciclo: cada ciclo una nueva versión del producto
Fase: Etapas de un ciclo que finalizan en un HITO
Roles QUIÉN?
Actividades CÓMO?
Artefactos QUÈ?
Flujo de Trabajo CUÁNDO?
realiza
diagrama de
secuencia
Roles
Definición del comportamiento y
responsabilidades de los participantes
Propietario de una serie de artefactos
fase ciclo
Construcción
Perfeccionar Sincronizar
el plan Artefactos
Problema
Contexto
Fuerza
Solución
Beneficios Consecuencias
Patrones relacionados
Clasificación de los patrones
Fundamentales
De creación
De partición
Estructurales
De comportamiento
De concurrencia
Fundamentales
Son los patrones más básicos y
fundamentales:
Muchos del resto de patrones utiliza al menos
uno de ellos
Son tan básicos que muchas veces no se
mencionan dándolos por supuestos
Fundamentales
Delegate
Interface
Abstract superclass
Interface + abstract class
Immutable
Proxy
De creación
Provee de una guía de cómo crear objetos
cuando su creación precisa de la toma de
decisiones:
“Las decisiones normalmente involucran la
determinación de forma dinámica de qué clase
instanciar o a qué objeto delegar la responsabilidad”
Estos patrones nos ayudan a estructurar y encapsular
las decisiones
De creación
Factory
Builder
Prototype
Singleton
Object pool
De partición
Siguen el paradigma de “divide y
vencerás”
“Nos proporcionan la guía de cómo
particionar las clases e interfaces para llegar
a un buen diseño”
De partición
Filter
Composite
Read-only interface
Estructurales
“Describen las formas más comunes en
las que diferentes tipos de objetos pueden
organizarse para trabajar conjuntamente”
Estructurales
Adapter
Iterator
Bridge
Façade
Flyweight
Dynamic linkage
Virtual proxy
Decorator
Cache management
De comportamiento
“Patrones utilizados para organizar,
gestionar y combinar comportamiento”
De comportamiento
Chain of responsibility
Command
Little language
Mediator
Snapshot
Observer
State
Null object
Strategy
Template method
Visitor
De concurrencia
Patrones para la coordinación de
operaciones concurrentes y que permiten
solucionar dos problemas principalmente:
Recursos compartidos
Secuenciación de operaciones
De concurrencia
Single threaded execution
Lock object
Guarded suspension
Balking
Scheduler
Read/Write lock
Producer-consumer
Two-phase termination
Double buffering
Asynchronous processing
Future
Arquitecturas dirigidas
por modelos (MDA)
Introducción
Nueva orientación de las actividades del OMG
La base de todo son los modelos (ni su
implementación, ni la plataforma)
Basado en el desarrollo de modelos
independientes de la plataforma (PIM)
Define un segundo nivel en el que diseñamos
para una plataforma concreta pero de forma
abstracta (PSM)
Definición de transformaciones de PIM a PSM
Aunque la plataforma cambie, siempre
mantenemos el PIM
PIM, PSM y transformaciones en
MDA
Reglas de transformación