UML-Lenguaje De Modelado Unificado:
UML:
Análisis Orientado a Objetos
El paradigma orientado a objetos surge en los años 80 como un nuevo enfoque para el desarrollo de software. Sustituye a modelos anteriores, ya desfasados, que consideran la resolución de problemas mediante el modelo clásico de entrada, proceso, salida o modelos basados en estructuras jerárquicas de información.
Los objetos representan una variedad de elementos en el sistema:
- - Entidades externas, ajenas al sistema pero que interactúan con él.
- - Elementos físicos que forman parte del dominio del problema.
- - Sucesos: operaciones que tienen lugar.
- - Papeles o roles que desempeñan las personas que interactúan con el sistema.
- - Unidades organizativas: estructuras que aglutinan los objetos en entidades de nivel superior.
- - Lugares: establecen el contexto del problema y el funcionamiento general del sistema.
El término orientado a objetos se basa en dos principales conceptos:
- Ocultación de información: consiste en hacer inaccesibles algunas partes, ocultándolas a los usuarios, que sólo pueden acceder al estado interno del objeto a través de una interfaz concreta.
- Tipos abstractos de datos: un objeto encapsula datos y operaciones. Los datos representan el estado de los objetos en un momento dado y las operaciones actúan sobre los datos para modi?carlos.
Características de los sistemas construidos bajo el concepto de orientación a objetos:
- - Paquetes que encapsulan estática (datos) y dinámica (funciones).
- - Herencia de atributos y comportamiento de otras componentes.
- - Comunicación a través de mensajes.
Ventajas de la orientación a objetos
- - Facilidad de mantenimiento
- - Facilidadparamodificar los programas
- - Reusabilidad
- - Fiabilidad
Bases del análisis orientado a objeto
- - Clase
- - Objeto
- - Atributo
- - Método
- - Instancia
- - Herencia
- - Polimorfismo
UML
Lenguaje estándar que sirve para escribir los planos del software
En un sistema con gran cantidad de Software UML puede usarse para:
- - Visualizar
- - Especificar
- - Construir
- - Documentar
Es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo, por esto los modelos pueden ser interpretados por personas que no participaron en su diseño, UML sirve para especificar, modelos concretos, no ambiguos y completos.
Utilidad de UML
- - Modela de forma visual para especificar, visualizar, construir y documentar artefactos de un sistema de software.
- - Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
- - Capta la información sobre la estructura estática y el comportamiento dinámico de un sistema.
Enfoque de 4 Vistas + 1 de Kruchten
Un enfoque en la presentación de un sistema en UML es conocida como 4+1 vistas. Esta forma de documentar nuestros modelos divide lo que sabemos de él en cinco áreas:
- - Vista de Casos de Uso: contiene requisitos desarrollados en las restantes vistas.
- - Vista Lógica: Muestra la estructura estática del sistema.
- - Vista Física: Muestra el despliegue de la aplicación en la red de computadoras.
- - Vista de Procesos: Muestra los hilos y procesos de ejecución así como la comunicación entre estos.
- - Vista de Desarrollo: Muestra la estructura en modelos del código del sistema.
Diagramas de Estructura
Los Diagramas de Estructura Estática de UML se van a utilizar para representar tanto Modelos Conceptuales como Diagramas de Clases de Diseño. Ambos usos son distintos conceptualmente, mientras que los modelos conceptuales modelan elementos del dominio los diagramas de clases presentan los elementos de la solución software. Ambos tipos de diagramas comparten una parte de la notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).
Diagrama de Clases
Muestran un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí incluyen clases activas).
Representación de un Diagrama de Clases
Diagrama de Objetos
Muestran un conjunto de objetos y sus relaciones, son como fotos instantáneas de los diagramas de clases y cubren la vista de diseño estática o la vista de procesos estática desde la perspectiva de casos reales o prototípicos.
Representación de un Diagrama de Objetos
Diagrama de Componentes
Un diagrama de componentes representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes. Los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de software pero pueden ser usados para modelar y documentar cualquier arquitectura de sistema.
Debido a que estos son más parecidos a los diagramas de casos de usos estos son utilizados para modelar la vista estática y dinámica de un sistema. Muestra la organización y las dependencias entre un conjunto de componentes.
Representación de un Diagrama de Componentes
Diagrama de Estructura Compuesta
Es un diagrama que muestra la estructura interna de un clasificador, incluyendo sus puntos de interacción a otras partes del sistema. Esto muestra la configuración y relación de las partes que juntas realizan el comportamiento de clasificador contenido.
Los diagramas de estructuras se componen por:
- - Parte: Representa un conjunto de una o más instancias que pertenecen a una instancia del clasificador contenida
- - Puertos: Describe el punto de interacción para un clasificador, pueden especificar los servicios que proveen y los servicios que requieren otras partes de otros sistemas.
- - Conector: Une dos o más entidades, permitiéndoles interactuar en tiempo de ejecución
Representación de un Diagrama de Estructura Compuesta
Diagrama de Despliegue
Es un diagrama que se utiliza para modelar el hardware utilizado en las implementaciones de sistemas y relaciones con sus componentes
Los elementos de los diagramas de despliegue son los:
- - Nodos: Elemento de hardware o software
- - Componentes: Muestra unidades de software en tiempo de ejecución y generalmente ayudan a identificar sus dependencias y a su localización en los nodos.
- - Asociaciones: Representa la ruta de comunicación entre los nodos
Se usan mayormente en sistemas empotrados, sistemas cliente-servidor, sistemas completamente distribuidos
Representación de un Diagrama de Despliegue
Diagrama de Paquetes
Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema.
Sus elementos son:
- - Paquetes: Agrupación de elementos, que pueden ser
- - Dependencias: Indican que un elemento de un paquete requiere a otro paquete distinto
Representación de un Diagrama de Paquetes
Diagramas de Comportamiento
Los diagramas de comportamiento se emplean para visualizar, especificar, construir y documentar los aspectos dinámicos de un sistema.
Los aspectos dinámicos de un sistema de software involucran cosas tales como el flujo de mensajes a lo largo del tiempo y el movimiento físico de componentes en una red.
Los diagramas de comportamiento son:
- - Diagrama de Actividades
- - Diagrama de Casos de uso
- - Diagrama de Estados
- - Diagrama de Secuencias
- - Diagrama de Comunicación
- - Diagrama de Tiempos
- - Diagrama Global de interacciones
Diagrama de Actividades
Muestra una visión simplificada de lo que ocurre durante una operación o proceso, es una extensión del diagrama de estados.
A cada actividad se le representa por un rectángulo con las esquinas redondeadas.
El procesamiento dentro de una actividad se lleva a cabo, y al siguiente se lleva a cabo la siguiente actividad. Cuenta con un punto inicial (representado por un círculo relleno) y uno final (representado por una diana).
Representación de un Diagrama de Actividades
Diagrama de Casos de Uso
Se emplean para visualizar el comportamiento de un sistema, un subsistema o una clase, de forma que los usuarios puedan comprender cómo utilizar ese elemento y de forma que los desarrolladores puedan implementarlo.
Muestran un conjunto de casos de uso, actores y sus relaciones, estas pueden ser relaciones de inclusión o extensión.
Representación de un Diagrama de Casos de Uso
Diagrama de Estados
- - Muestra los estados en los que puede encontrarse un objeto junto con las transiciones entre dichos estados, mostrando los puntos inicial y final de la secuencia.
- - Se enfoca en los cambios de estado de un solo objeto.
- - El estado se representa con un rectángulo de vértices redondos.
- - Puede contener variables de estado.
- - Una transición se representa mediante una flecha entre un estado y otro.
- - En ocasiones un estado consta de subestados.
Diagrama de Secuencia
- - Agrega la dimensión de tiempo a las interacciones entre objetos.
- - Los objetos se colocan en la parte superior y el tiempo avanza hacia abajo.
- - La línea de vida se extiende debajo de cada objeto.
- - Un pequeño rectángulo representa la línea de activación del objeto.
- - Los mensajes conectan una línea de vida con otra.
- - La posición del mensaje en la dimensión vertical representa el momento en que ocurre el paso de mensajes.
- - Puede referirse a un escenario de un caso de uso o a todos los escenarios posibles.
Representación de un Diagrama de Secuencia
Diagrama de Colaboraciones
- - Forma alternativa de representar la información de un diagrama de secuencias
- - El diagrama de secuencias se organiza respecto al tiempo y el de colaboraciones respecto al espacio
- - Muestra las asociaciones entre objetos y los mensajes que se pasan del uno al otro.
- - El mensaje se representa con una línea y un mensaje numerado.
- - Algunos mensajes provienen de otros, la secuencia se representa mediante los números anidados.
Representación de un Diagrama de Colaboraciones
Diagrama de Tiempos
- - Muestran el comportamiento de los objetos en un determinado periodo de tiempo.
- - Se emplean para mostrar el cambio en el estado o valor de uno o más elementos tomando en cuenta el factor tiempo.
- - Permite apreciar la interacción entre los eventos de tiempos, las restricciones de tiempo y la duración que los gobierna
- - Forma especial de diagramas de secuencia: ejes girados (el tiempo va de izquierda a derecha) y las líneas de vida se muestran en compartimentos separados de forma vertical.
- - Línea de vida del Estado.
- - Línea de vida del Valor.
Representación de un Diagrama de Tiempo
Diagrama Global de Interacciones
- - Aportan una visión general del flujo de control de las interacciones en el sistema.
- - Híbrido entre diagrama de actividad y diagrama de secuencia: es una forma de diagrama de actividad en el cual los nodos representan diagramas de interacción.
- - Los diagramas de interacción pueden incluir diagramas de secuencia, comunicación, de revisión de interacción y de tiempos.
- - Utilizan la misma notación que para los diagramas de actividad (nodos inicial, final, decisión, combinación, bifurcación y unión son todos lo mismo), introduciendo dos elementos nuevos, ocurrencias de interacción y elementos de interacción
Representación de un Diagrama Global de Interacciones
El Futuro de UML
- - UML 2.0 es extensible mediante la adición de estereotipos que permitan hacer un modelo de dominio propio.
- - La meta ahora es pensar ¿Cómo se puede aplicar UML en un dominio específico?
- - Extensiones para los negocios: UML Business.
- - Interfaces gráficas de usuario.
- - Sistemas expertos.
- - Dos aspectos de unificación:
- * Termina con muchas de las diferencias, a veces inconsecuentes, entre los lenguajes modeladores de métodos previos.
- * Unifica las perspectivas entre diferentes tipos de sistemas, fases de desarrollo y conceptos internos.
Herramientas CASE para modelar con UML
Comparación de Diagramas UML
Bibliografía
- - Schmuller Joseph, Aprendiendo UML en 24 Horas, Prentice Hall, (2005).
- - Sierra María, Ingeniería del Software practica 4, Universidad de Cantabria, (2007)
- - Pressman Roger, Software Engineering: A Practitioner’s Approach, Quinta Edición (2002)
UML
Lenguaje estándar que sirve para escribir los planos del software
En un sistema con gran cantidad de Software UML puede usarse para:
- - Visualizar
- - Especificar
- - Construir
- - Documentar
Es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo, por esto los modelos pueden ser interpretados por personas que no participaron en su diseño, UML sirve para especificar, modelos concretos, no ambiguos y completos.
Utilidad de UML
- - Modela de forma visual para especificar, visualizar, construir y documentar artefactos de un sistema de software.
- - Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
- - Capta la información sobre la estructura estática y el comportamiento dinámico de un sistema.
Enfoque de 4 Vistas + 1 de Kruchten
Un enfoque en la presentación de un sistema en UML es conocida como 4+1 vistas. Esta forma de documentar nuestros modelos divide lo que sabemos de él en cinco áreas:
- - Vista de Casos de Uso: contiene requisitos desarrollados en las restantes vistas.
- - Vista Lógica: Muestra la estructura estática del sistema.
- - Vista Física: Muestra el despliegue de la aplicación en la red de computadoras.
- - Vista de Procesos: Muestra los hilos y procesos de ejecución así como la comunicación entre estos.
- - Vista de Desarrollo: Muestra la estructura en modelos del código del sistema.
Diagramas de Estructura
Los Diagramas de Estructura Estática de UML se van a utilizar para representar tanto Modelos Conceptuales como Diagramas de Clases de Diseño. Ambos usos son distintos conceptualmente, mientras que los modelos conceptuales modelan elementos del dominio los diagramas de clases presentan los elementos de la solución software. Ambos tipos de diagramas comparten una parte de la notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).
Diagrama de Clases
Muestran un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí incluyen clases activas).
Representación de un Diagrama de Clases
Diagrama de Objetos
Muestran un conjunto de objetos y sus relaciones, son como fotos instantáneas de los diagramas de clases y cubren la vista de diseño estática o la vista de procesos estática desde la perspectiva de casos reales o prototípicos.
Representación de un Diagrama de Objetos
Diagrama de Componentes
Un diagrama de componentes representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes. Los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de software pero pueden ser usados para modelar y documentar cualquier arquitectura de sistema.
Debido a que estos son más parecidos a los diagramas de casos de usos estos son utilizados para modelar la vista estática y dinámica de un sistema. Muestra la organización y las dependencias entre un conjunto de componentes.
Representación de un Diagrama de Componentes
Diagrama de Estructura Compuesta
Es un diagrama que muestra la estructura interna de un clasificador, incluyendo sus puntos de interacción a otras partes del sistema. Esto muestra la configuración y relación de las partes que juntas realizan el comportamiento de clasificador contenido.
Los diagramas de estructuras se componen por:
- - Parte: Representa un conjunto de una o más instancias que pertenecen a una instancia del clasificador contenida
- - Puertos: Describe el punto de interacción para un clasificador, pueden especificar los servicios que proveen y los servicios que requieren otras partes de otros sistemas.
- - Conector: Une dos o más entidades, permitiéndoles interactuar en tiempo de ejecución
Representación de un Diagrama de Estructura Compuesta
Diagrama de Despliegue
Es un diagrama que se utiliza para modelar el hardware utilizado en las implementaciones de sistemas y relaciones con sus componentes
Los elementos de los diagramas de despliegue son los:
- - Nodos: Elemento de hardware o software
- - Componentes: Muestra unidades de software en tiempo de ejecución y generalmente ayudan a identificar sus dependencias y a su localización en los nodos.
- - Asociaciones: Representa la ruta de comunicación entre los nodos
Se usan mayormente en sistemas empotrados, sistemas cliente-servidor, sistemas completamente distribuidos
Representación de un Diagrama de Despliegue
Diagrama de Paquetes
Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema.
Sus elementos son:
- - Paquetes: Agrupación de elementos, que pueden ser
- - Dependencias: Indican que un elemento de un paquete requiere a otro paquete distinto
Representación de un Diagrama de Paquetes
Diagramas de Comportamiento
Los diagramas de comportamiento se emplean para visualizar, especificar, construir y documentar los aspectos dinámicos de un sistema.
Los aspectos dinámicos de un sistema de software involucran cosas tales como el flujo de mensajes a lo largo del tiempo y el movimiento físico de componentes en una red.
Los diagramas de comportamiento son:
- - Diagrama de Actividades
- - Diagrama de Casos de uso
- - Diagrama de Estados
- - Diagrama de Secuencias
- - Diagrama de Comunicación
- - Diagrama de Tiempos
- - Diagrama Global de interacciones
Diagrama de Actividades
Muestra una visión simplificada de lo que ocurre durante una operación o proceso, es una extensión del diagrama de estados.
A cada actividad se le representa por un rectángulo con las esquinas redondeadas.
El procesamiento dentro de una actividad se lleva a cabo, y al siguiente se lleva a cabo la siguiente actividad. Cuenta con un punto inicial (representado por un círculo relleno) y uno final (representado por una diana).
Representación de un Diagrama de Actividades
Diagrama de Casos de Uso
Se emplean para visualizar el comportamiento de un sistema, un subsistema o una clase, de forma que los usuarios puedan comprender cómo utilizar ese elemento y de forma que los desarrolladores puedan implementarlo.
Muestran un conjunto de casos de uso, actores y sus relaciones, estas pueden ser relaciones de inclusión o extensión.
Representación de un Diagrama de Casos de Uso
Diagrama de Estados
- - Muestra los estados en los que puede encontrarse un objeto junto con las transiciones entre dichos estados, mostrando los puntos inicial y final de la secuencia.
- - Se enfoca en los cambios de estado de un solo objeto.
- - El estado se representa con un rectángulo de vértices redondos.
- - Puede contener variables de estado.
- - Una transición se representa mediante una flecha entre un estado y otro.
- - En ocasiones un estado consta de subestados.
Representación de un Diagrama de Estados
Diagrama de Secuencia
- - Agrega la dimensión de tiempo a las interacciones entre objetos.
- - Los objetos se colocan en la parte superior y el tiempo avanza hacia abajo.
- - La línea de vida se extiende debajo de cada objeto.
- - Un pequeño rectángulo representa la línea de activación del objeto.
- - Los mensajes conectan una línea de vida con otra.
- - La posición del mensaje en la dimensión vertical representa el momento en que ocurre el paso de mensajes.
- - Puede referirse a un escenario de un caso de uso o a todos los escenarios posibles.
Representación de un Diagrama de Secuencia
Diagrama de Colaboraciones
- - Forma alternativa de representar la información de un diagrama de secuencias
- - El diagrama de secuencias se organiza respecto al tiempo y el de colaboraciones respecto al espacio
- - Muestra las asociaciones entre objetos y los mensajes que se pasan del uno al otro.
- - El mensaje se representa con una línea y un mensaje numerado.
- - Algunos mensajes provienen de otros, la secuencia se representa mediante los números anidados.
Representación de un Diagrama de Colaboraciones
Diagrama de Tiempos
- - Muestran el comportamiento de los objetos en un determinado periodo de tiempo.
- - Se emplean para mostrar el cambio en el estado o valor de uno o más elementos tomando en cuenta el factor tiempo.
- - Permite apreciar la interacción entre los eventos de tiempos, las restricciones de tiempo y la duración que los gobierna
- - Forma especial de diagramas de secuencia: ejes girados (el tiempo va de izquierda a derecha) y las líneas de vida se muestran en compartimentos separados de forma vertical.
- - Línea de vida del Estado.
- - Línea de vida del Valor.
Representación de un Diagrama de Tiempo
Diagrama Global de Interacciones
- - Aportan una visión general del flujo de control de las interacciones en el sistema.
- - Híbrido entre diagrama de actividad y diagrama de secuencia: es una forma de diagrama de actividad en el cual los nodos representan diagramas de interacción.
- - Los diagramas de interacción pueden incluir diagramas de secuencia, comunicación, de revisión de interacción y de tiempos.
- - Utilizan la misma notación que para los diagramas de actividad (nodos inicial, final, decisión, combinación, bifurcación y unión son todos lo mismo), introduciendo dos elementos nuevos, ocurrencias de interacción y elementos de interacción
Representación de un Diagrama Global de Interacciones
El Futuro de UML
- - UML 2.0 es extensible mediante la adición de estereotipos que permitan hacer un modelo de dominio propio.
- - La meta ahora es pensar ¿Cómo se puede aplicar UML en un dominio específico?
- - Extensiones para los negocios: UML Business.
- - Interfaces gráficas de usuario.
- - Sistemas expertos.
- - Dos aspectos de unificación:
- * Termina con muchas de las diferencias, a veces inconsecuentes, entre los lenguajes modeladores de métodos previos.
- * Unifica las perspectivas entre diferentes tipos de sistemas, fases de desarrollo y conceptos internos.
Herramientas CASE para modelar con UML
Comparación de Diagramas UML
Bibliografía
- - Schmuller Joseph, Aprendiendo UML en 24 Horas, Prentice Hall, (2005).
- - Sierra María, Ingeniería del Software practica 4, Universidad de Cantabria, (2007)
- - Pressman Roger, Software Engineering: A Practitioner’s Approach, Quinta Edición (2002)
Historia de UML
- - Concebido en 1994 por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y JimRumbaugh.
- - Un año después se crea la primera versión
- - En 1997 UML 1.1 fue aprobada por la OMG convirtiéndose en la notación estándar de facto para el análisis y el diseño orientado a objetos.
- - UML ha puesto fin a las llamadas “guerras de métodos” que se mantuvo a lo largo de los 90, en las que los principales métodos sacaban nuevas versiones que incorporaban las técnicas de los demás
- - El objetivo principal cuando se empezó a gestar UML era posibilitar el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notación y semántica común.
UML
Lenguaje estándar que sirve para escribir los planos del software
En un sistema con gran cantidad de Software UML puede usarse para:
- - Visualizar
- - Especificar
- - Construir
- - Documentar
Es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo, por esto los modelos pueden ser interpretados por personas que no participaron en su diseño, UML sirve para especificar, modelos concretos, no ambiguos y completos.
Utilidad de UML
- - Modela de forma visual para especificar, visualizar, construir y documentar artefactos de un sistema de software.
- - Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
- - Capta la información sobre la estructura estática y el comportamiento dinámico de un sistema.
Enfoque de 4 Vistas + 1 de Kruchten
Un enfoque en la presentación de un sistema en UML es conocida como 4+1 vistas. Esta forma de documentar nuestros modelos divide lo que sabemos de él en cinco áreas:
- - Vista de Casos de Uso: contiene requisitos desarrollados en las restantes vistas.
- - Vista Lógica: Muestra la estructura estática del sistema.
- - Vista Física: Muestra el despliegue de la aplicación en la red de computadoras.
- - Vista de Procesos: Muestra los hilos y procesos de ejecución así como la comunicación entre estos.
- - Vista de Desarrollo: Muestra la estructura en modelos del código del sistema.
Diagramas de Estructura
Los Diagramas de Estructura Estática de UML se van a utilizar para representar tanto Modelos Conceptuales como Diagramas de Clases de Diseño. Ambos usos son distintos conceptualmente, mientras que los modelos conceptuales modelan elementos del dominio los diagramas de clases presentan los elementos de la solución software. Ambos tipos de diagramas comparten una parte de la notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).
Diagrama de Clases
Muestran un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí incluyen clases activas).
Representación de un Diagrama de Clases
Diagrama de Objetos
Muestran un conjunto de objetos y sus relaciones, son como fotos instantáneas de los diagramas de clases y cubren la vista de diseño estática o la vista de procesos estática desde la perspectiva de casos reales o prototípicos.
Representación de un Diagrama de Objetos
Diagrama de Componentes
Un diagrama de componentes representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes. Los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de software pero pueden ser usados para modelar y documentar cualquier arquitectura de sistema.
Debido a que estos son más parecidos a los diagramas de casos de usos estos son utilizados para modelar la vista estática y dinámica de un sistema. Muestra la organización y las dependencias entre un conjunto de componentes.
Representación de un Diagrama de Componentes
Diagrama de Estructura Compuesta
Es un diagrama que muestra la estructura interna de un clasificador, incluyendo sus puntos de interacción a otras partes del sistema. Esto muestra la configuración y relación de las partes que juntas realizan el comportamiento de clasificador contenido.
Los diagramas de estructuras se componen por:
- - Parte: Representa un conjunto de una o más instancias que pertenecen a una instancia del clasificador contenida
- - Puertos: Describe el punto de interacción para un clasificador, pueden especificar los servicios que proveen y los servicios que requieren otras partes de otros sistemas.
- - Conector: Une dos o más entidades, permitiéndoles interactuar en tiempo de ejecución
Representación de un Diagrama de Estructura Compuesta
Diagrama de Despliegue
Es un diagrama que se utiliza para modelar el hardware utilizado en las implementaciones de sistemas y relaciones con sus componentes
Los elementos de los diagramas de despliegue son los:
- - Nodos: Elemento de hardware o software
- - Componentes: Muestra unidades de software en tiempo de ejecución y generalmente ayudan a identificar sus dependencias y a su localización en los nodos.
- - Asociaciones: Representa la ruta de comunicación entre los nodos
Se usan mayormente en sistemas empotrados, sistemas cliente-servidor, sistemas completamente distribuidos
Representación de un Diagrama de Despliegue
Diagrama de Paquetes
Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema.
Sus elementos son:
- - Paquetes: Agrupación de elementos, que pueden ser
- - Dependencias: Indican que un elemento de un paquete requiere a otro paquete distinto
Representación de un Diagrama de Paquetes
Diagramas de Comportamiento
Los diagramas de comportamiento se emplean para visualizar, especificar, construir y documentar los aspectos dinámicos de un sistema.
Los aspectos dinámicos de un sistema de software involucran cosas tales como el flujo de mensajes a lo largo del tiempo y el movimiento físico de componentes en una red.
Los diagramas de comportamiento son:
- - Diagrama de Actividades
- - Diagrama de Casos de uso
- - Diagrama de Estados
- - Diagrama de Secuencias
- - Diagrama de Comunicación
- - Diagrama de Tiempos
- - Diagrama Global de interacciones
Diagrama de Actividades
Muestra una visión simplificada de lo que ocurre durante una operación o proceso, es una extensión del diagrama de estados.
A cada actividad se le representa por un rectángulo con las esquinas redondeadas.
El procesamiento dentro de una actividad se lleva a cabo, y al siguiente se lleva a cabo la siguiente actividad. Cuenta con un punto inicial (representado por un círculo relleno) y uno final (representado por una diana).
Representación de un Diagrama de Actividades
Diagrama de Casos de Uso
Se emplean para visualizar el comportamiento de un sistema, un subsistema o una clase, de forma que los usuarios puedan comprender cómo utilizar ese elemento y de forma que los desarrolladores puedan implementarlo.
Muestran un conjunto de casos de uso, actores y sus relaciones, estas pueden ser relaciones de inclusión o extensión.
Representación de un Diagrama de Casos de Uso
Diagrama de Estados
- - Muestra los estados en los que puede encontrarse un objeto junto con las transiciones entre dichos estados, mostrando los puntos inicial y final de la secuencia.
- - Se enfoca en los cambios de estado de un solo objeto.
- - El estado se representa con un rectángulo de vértices redondos.
- - Puede contener variables de estado.
- - Una transición se representa mediante una flecha entre un estado y otro.
- - En ocasiones un estado consta de subestados.
Representación de un Diagrama de Estados
Diagrama de Secuencia
- - Agrega la dimensión de tiempo a las interacciones entre objetos.
- - Los objetos se colocan en la parte superior y el tiempo avanza hacia abajo.
- - La línea de vida se extiende debajo de cada objeto.
- - Un pequeño rectángulo representa la línea de activación del objeto.
- - Los mensajes conectan una línea de vida con otra.
- - La posición del mensaje en la dimensión vertical representa el momento en que ocurre el paso de mensajes.
- - Puede referirse a un escenario de un caso de uso o a todos los escenarios posibles.
Representación de un Diagrama de Secuencia
Diagrama de Colaboraciones
- - Forma alternativa de representar la información de un diagrama de secuencias
- - El diagrama de secuencias se organiza respecto al tiempo y el de colaboraciones respecto al espacio
- - Muestra las asociaciones entre objetos y los mensajes que se pasan del uno al otro.
- - El mensaje se representa con una línea y un mensaje numerado.
- - Algunos mensajes provienen de otros, la secuencia se representa mediante los números anidados.
Representación de un Diagrama de Colaboraciones
Diagrama de Tiempos
- - Muestran el comportamiento de los objetos en un determinado periodo de tiempo.
- - Se emplean para mostrar el cambio en el estado o valor de uno o más elementos tomando en cuenta el factor tiempo.
- - Permite apreciar la interacción entre los eventos de tiempos, las restricciones de tiempo y la duración que los gobierna
- - Forma especial de diagramas de secuencia: ejes girados (el tiempo va de izquierda a derecha) y las líneas de vida se muestran en compartimentos separados de forma vertical.
- - Línea de vida del Estado.
- - Línea de vida del Valor.
Representación de un Diagrama de Tiempo
Diagrama Global de Interacciones
- - Aportan una visión general del flujo de control de las interacciones en el sistema.
- - Híbrido entre diagrama de actividad y diagrama de secuencia: es una forma de diagrama de actividad en el cual los nodos representan diagramas de interacción.
- - Los diagramas de interacción pueden incluir diagramas de secuencia, comunicación, de revisión de interacción y de tiempos.
- - Utilizan la misma notación que para los diagramas de actividad (nodos inicial, final, decisión, combinación, bifurcación y unión son todos lo mismo), introduciendo dos elementos nuevos, ocurrencias de interacción y elementos de interacción
Representación de un Diagrama Global de Interacciones
El Futuro de UML
- - UML 2.0 es extensible mediante la adición de estereotipos que permitan hacer un modelo de dominio propio.
- - La meta ahora es pensar ¿Cómo se puede aplicar UML en un dominio específico?
- - Extensiones para los negocios: UML Business.
- - Interfaces gráficas de usuario.
- - Sistemas expertos.
- - Dos aspectos de unificación:
- * Termina con muchas de las diferencias, a veces inconsecuentes, entre los lenguajes modeladores de métodos previos.
- * Unifica las perspectivas entre diferentes tipos de sistemas, fases de desarrollo y conceptos internos.
Herramientas CASE para modelar con UML
Comparación de Diagramas UML
Bibliografía
- - Schmuller Joseph, Aprendiendo UML en 24 Horas, Prentice Hall, (2005).
- - Sierra María, Ingeniería del Software practica 4, Universidad de Cantabria, (2007)
- - Pressman Roger, Software Engineering: A Practitioner’s Approach, Quinta Edición (2002)
Historia de UML
- - Concebido en 1994 por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh.
- - Un año después se crea la primera versión
- - En 1997 UML 1.1 fue aprobada por la OMG convirtiéndose en la notación estándar de facto para el análisis y el diseño orientado a objetos.
- - UML ha puesto fin a las llamadas “guerras de métodos” que se mantuvo a lo largo de los 90, en las que los principales métodos sacaban nuevas versiones que incorporaban las técnicas de los demás
- - El objetivo principal cuando se empezó a gestar UML era posibilitar el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notación y semántica común.
UML
Lenguaje estándar que sirve para escribir los planos del software
En un sistema con gran cantidad de Software UML puede usarse para:
- - Visualizar
- - Especificar
- - Construir
- - Documentar
Es un lenguaje que nos ayuda a interpretar grandes sistemas mediante gráficos o mediante texto obteniendo modelos explícitos que ayudan a la comunicación durante el desarrollo, por esto los modelos pueden ser interpretados por personas que no participaron en su diseño, UML sirve para especificar, modelos concretos, no ambiguos y completos.
Utilidad de UML
- - Modela de forma visual para especificar, visualizar, construir y documentar artefactos de un sistema de software.
- - Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
- - Capta la información sobre la estructura estática y el comportamiento dinámico de un sistema.
Enfoque de 4 Vistas + 1 de Kruchten
Un enfoque en la presentación de un sistema en UML es conocida como 4+1 vistas. Esta forma de documentar nuestros modelos divide lo que sabemos de él en cinco áreas:
- - Vista de Casos de Uso: contiene requisitos desarrollados en las restantes vistas.
- - Vista Lógica: Muestra la estructura estática del sistema.
- - Vista Física: Muestra el despliegue de la aplicación en la red de computadoras.
- - Vista de Procesos: Muestra los hilos y procesos de ejecución así como la comunicación entre estos.
- - Vista de Desarrollo: Muestra la estructura en modelos del código del sistema.
No hay comentarios:
Publicar un comentario