miércoles, 12 de noviembre de 2008

RESUMEN DE UML

Introducción a UML:
UML es un lenguaje de modelado de software:
Ø Proporciona un vocabulario y reglas para crear modelos software.
Ø Suficientemente expresivo para cubrir distintas vistas de la arquitectura del software a lo largo del ciclo de vida.
Ø Mayor nivel de abstracción que un lenguaje de programación.
UML es un lenguaje para visualizar los elementos de un gran sistema software, facilitando:
Ø la comunicación entre los participantes (incluidas herramientas) en el desarrollo,
Ø la comprensión de las soluciones (notación gráfica),
Ø el mantenimiento de las soluciones conceptuales a lo largo del tiempo (documentación).
UML es un lenguaje para especificar software:
Ø Se pueden construir modelos precisos, no ambiguos y completos.
Ø Cubre las decisiones de análisis, diseño e implementación.
UML es un lenguaje para construir software:
Ø No es un lenguaje de programación visual, pero sus modelos se pueden conectar de forma directa a una gran variedad de ellos.
Ø Correspondencias entre UML y lenguajes: Java, C++, etc.
Ø Ingeniería directa: generación de código.
Ø Ingeniería inversa: reconstrucción de modelos.
UML es un lenguaje para documentar:
Ø requisitos, arquitectura, diseño, código fuente, pruebas, ...
El modelo conceptual está compuesto por 3 bloques de construcción básicos:
Elementos
• Abstracciones básicas a partir de las que se construyen los modelos
Relaciones
• Entre los elementos
Diagramas
• Grupo consistente de elementos y sus relaciones
La documentación con UML se basa en el uso de los diagramas:
Ø Diagrama de clases
Ø Diagrama de casos de uso
Ø Diagrama de secuencia
Ø Diagrama de colaboración
Ø Diagrama de estados
Ø Diagrama de actividades
Ø Diagrama de componentes
Ø Diagrama de despliegue
Definiciones:
Caso de uso; descripción de un conjunto de secuencias de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable, de valor para un actor. Un caso de uso es realizado por una colaboración.
En relación con los escenarios, un caso de uso es un conjunto de escenarios, siendo un escenario una secuencia de acciones que ilustra un comportamiento, con lo cual un caso de uso describe un conjunto de comportamientos.
Un caso de uso captura el comportamiento esperado de un sistema, subsistema, clase o interface que se está desarrollando, sin tener que especificar cómo se implementa ese comportamiento.
Esto es importante porque el análisis del sistema no debería estar influenciado mientras sea posible por cuestiones de implementación, el qué frente al cómo. Lo que implica el diseño funcional, el qué, frente al diseño detallado, el cómo.
Un caso de uso, a la hora de implementarse, se realizará a través de una colaboración entre clases y otros elementos que colaboran entre si para llevar a cabo ese comportamiento. Esta sociedad de elementos, tanto su estructura estática como dinámica, se modela en UML como una colaboración.
Un caso de uso sigue normalmente cuatro fases:
Ø El actor envía al sistema una petición y los datos necesarios para llevarla a cabo
Ø El sistema valida la petición y los datos
Ø El sistema altera su estado interno
Ø El sistema devuelve el resultado al actor
Actor; conjunto coherente de roles que juegan los usuarios de los casos de usos cuando interactúan con estos. Normalmente representan a una persona, un dispositivo hardware u otro sistema al interactuar con el nuestro
Se pueden definir categorías generales de actores y especializarlos a través de la relaciones de generalización
Los actores se conectan a los casos de uso mediante asociaciones.
Diagrama de casos de uso; muestra un conjunto de casos de uso y actores junto con sus relaciones.
El objetivo es lograr claridad sobre lo que desea el usuario y la forma en la que se va a presentar la solución que se está buscando.
Muestra las operaciones que se esperan de la aplicación y sus relaciones con el entorno (usuarios u otras aplicaciones).
Los elementos que intervienen son:
Ø Los actores
Ø Los Casos de Uso
Ø Relaciones de dependencia, generalización y asociación
Se utilizan para especificar el comportamiento deseado del un sistema o subsistema:
Describe el conjunto de secuencias de acciones que lleva a cabo el sistema para
Producir un resultado para un actor.
Capturan el comportamiento deseado del sistema, sin especificar como se lleva a cabo dicho comportamiento.
Principalmente son un medio de comunicación para que los desarrolladores y los usuarios lleguen a un consenso en la especificación Ayudan a validar el sistema durante el desarrollo
Los casos de uso son principalmente descripciones textuales
Clase; descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. Describe estructura de los objetos de un sistema:
- identidad,
- relaciones con otros objetos,
- atributos y operaciones
Es el más característico del Diseño O.O.
Gráficamente se representan en los diagramas de clases
Las clases se representan mediante un rectángulo con tres divisiones internas.
La primera de ellas especifica el nombre de la clase, la segunda los atributos de la misma y la tercera los
Métodos asociados.
Diagrama de clases; diagrama que muestra un conjunto de clases, interfaces y colaboraciones y sus
Relaciones. Muestra una colección de elementos declarativos estáticos del modelo.
El objetivo es mostrar el conjunto de clases que componen el sistema, junto con las relaciones que existen entre estas.
Se utilizan para modelar el diseño estático de un sistema
Los elementos que intervienen son:
Ø Clases
Ø Relaciones de dependencia, generalización y asociación.
Ø Paquetes
Ø Interfaces
Interacción. Una interacción es un comportamiento que implica un intercambio de mensajes entre varios objetos en un contexto determinado con un objetivo determinado
Secuencia de mensajes que implementan un comportamiento dentro de una colaboración. Un mensaje es la especificación de una comunicación entre objetos que transmite información con el fin de desencadenar una actividad; la recepción de una instancia de un mensaje se considera normalmente una instancia de un evento. Comunicación unidireccional entre dos objetos, un flujo de objeto con la información de un remitente a un receptor.
Su objetivo es el establecimiento de prototipos de colaboración. Estos prototipos son los escenarios. Un Escenario es secuencia específica de acciones que ilustra un comportamiento. Se puede utilizar para ilustrar la interacción o la ejecución de una instancia de un caso de uso.
Las interacciones se llevan a cabo entre objetos no entre clases
Un enlace es una conexión semántica entre objetos
Elementos que intervienen en las interacciones:
Objetos: instancias concretas de clases
Enlaces: enlazan instancias y soporte al envío de mensajes
Mensajes: desencadenan operaciones
Funciones: implementadas por los extremos de los enlaces
Diagrama de interacción; muestra una interacción, que consta de un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos. El término genérico de interacción abarca los diagramas de colaboración, de secuencia y de actividades.
Complementan los modelos obtenidos de los casos de uso iniciales y los diagramas de clase
Son útiles para modelar aspectos dinámicos de cualquier interacción entre cualquier instancia en cualquier vista del sistema (clases, interfaces, componentes,...)
Las interacciones se pueden “adornar” con restricciones temporales (marcas temporales)
Hay dos tipos de diagramas: de secuencia y de colaboración.
-Un diagrama de secuencia es un diagrama en el que se destaca la ordenación temporal de los eventos
Un diagrama de colaboración destaca la organización estructural de los objetos eque envían y reciben los mensajes
Ø Son semánticamente equivalentes
Ø Se puede generar uno a partir del otro, sin perdida de información
Ø Visualmente, sin embargo, esta información puede ser más difícil de percibir
Diagramas de colaboración; diagrama de interacción que resalta la organización estructural de los objetos que envían y reciben mensajes.
Destacan la organización de los objetos que participan en una interacción
Es un grafo en el que los nodos son los objetos y los arcos los enlaces
Los arcos se etiquetan con los mensajes que envían y reciben los objetos
Dan una visión del flujo de control en el contexto de la organización de los objetos que colaboran
Ø Permiten indicar que objetos actúan como atributos de otros.
Ø Permiten indicar que objetos son temporales y cuales no.
Ø Permite indicar que relaciones estructurales actúan en una colaboración
Hay dos características que los distinguen de los diagramas de secuencia: o El camino: Para indicar como se enlazan los objetos se utilizan estereotipos en los extremos de los enlaces El número de secuencia: Para indicar la ordenación de los mensajes se utiliza la numeración decimal de
Diagrama de secuencia; diagrama de interacción que destaca la ordenación temporal de mensajes.
Un diagrama de secuencia muestra la interacción de un conjunto de objetos de una aplicación a través del tiempo. Posibilita la representación de la secuencia temporal de envío de mensajes entre los objetos pertenecientes a las clases diseñadas en el contexto de una operación. El concepto de mensaje en el contexto de los diagramas de secuencia, materializa y unifica todas las formas de comunicación entre objetos.
Los Objetos se representan mediante un rectángulo que encabeza una línea discontinua, que representa la línea de vida del objeto.
Los Mensajes se denotan mediante una flecha dirigida desde el objeto que emite el mensaje hasta el objeto que lo ejecuta.
Los tipos de mensajes posibles son los siguientes:
- Simple
- Síncrono
- Abandono
- Time-Out
- Asíncrono
Los diagramas de secuencia se suelen asociar a los casos de uso, mostrando como estos se realizan a través de interacciones entre sociedades de objetos
Diagrama de estados; permiten la representación del ciclo de vida de los objetos.
El comportamiento de los objetos puede describirse de manera formal en términos de estados y eventos.
Los objetos que no representan un comportamiento reactivo muy marcado pueden considerarse como objetos que se encuentran siempre en el mismo estado.
Cuando un objeto muestra un comportamiento se dice que tiene asociado un autómata
Elementos:
Estado: condición o situación de un objeto durante la cual:
Ø Se satisface alguna condición
Ø Se realiza alguna actividad
Ø Se espera algún evento
Evento: especificación de un acontecimiento significativo que ocupa un lugar en el tiempo y en el espacio
- Transición: relación entre dos estados que indica como los objetos cambian de estado
(Eventos + condiciones)
- Actividad: ejecución no atómica en curso dentro de una máquina de estados
- Acción: computación atómica ejecutable que produce un cambio de estado en el modelo devuelve un valor

No hay comentarios: