Funcionamiento del UML de Proyectos
¿Qué es UML(Lenguaje
unificado de Modelado?
El Lenguaje Unificado de Modelado (UML) fue creado para
forjar un lenguaje de modelado visual común y semántica y sintácticamente rico
para la arquitectura, el diseño y la implementación de sistemas de software
complejos, tanto en estructura como en comportamiento. UML tiene aplicaciones
más allá del desarrollo de software, p. ej., en el flujo de procesos en la
fabricación.
Es comparable a los planos usados en otros campos y consiste
en diferentes tipos de diagramas. En general, los diagramas UML describen los
límites, la estructura y el comportamiento del sistema y los objetos que
contiene.
UML no es un lenguaje de programación, pero existen
herramientas que se pueden usar para generar código en diversos lenguajes
usando los diagramas UML. UML guarda una relación directa con el análisis y el
diseño orientados a objetos.
UML y su función en el modelado y diseño orientados a
objetos
Hay muchos paradigmas o modelos para la resolución de
problemas en la informática, que es el estudio de algoritmos y datos. Hay
cuatro categorías de modelos para la resolución de problemas: lenguajes
imperativos, funcionales, declarativos y orientados a objetos (OOP). En
los lenguajes orientados a objetos, los algoritmos se expresan definiendo
'objetos' y haciendo que los objetos interactúen entre sí. Esos objetos son
cosas que deben ser manipuladas y existen en el mundo real. Pueden ser
edificios, artefactos sobre un escritorio o seres humanos.
Los lenguajes orientados a objetos dominan el mundo de la
programación porque modelan los objetos del mundo real. UML es una combinación
de varias notaciones orientadas a objetos: diseño orientado a objetos, técnica
de modelado de objetos e ingeniería de software orientada a objetos.
UML usa las fortalezas de estos tres enfoques para presentar
una metodología más uniforme que sea más sencilla de usar. UML representa
buenas prácticas para la construcción y documentación de diferentes aspectos
del modelado de sistemas de software y de negocios.
La historia y los orígenes de UML
"The Three Amigos" (los tres amigos) de la ingeniería
de software, como se los conocía, habían desarrollado otras metodologías. Se
asociaron para brindar claridad a los programadores creando nuevos estándares.
La colaboración entre Grady, Booch y Rumbaugh fortaleció los tres métodos y
mejoró el producto final.
Los esfuerzos de estos pensadores derivaron en la
publicación de los documentos UML 0.9 y 0.91 en 1996. Pronto se hizo evidente
que varias organizaciones, incluidas Microsoft, Oracle e IBM, consideraron que
UML era esencial para su propio desarrollo de negocios. Ellos, junto con muchas
otras personas y compañías, establecieron los recursos necesarios para
desarrollar un lenguaje de modelado hecho y derecho. "Los tres
amigos" publicaron la Guía del usuario para el Lenguaje Unificado de Modelado
en 1999, y una actualización que incluye información sobre UML 2.0 en la
segunda edición de 2005.
OMG: Tiene un significado diferente
Según su sitio web, el Object Management Group® (OMG®)
es un consorcio internacional sin fines de lucro y de membresía abierta para
estándares tecnológicos, fundado en 1989. Los estándares de OMG son promovidos
por proveedores, usuarios finales, instituciones académicas y agencias
gubernamentales. Los grupos de trabajo de OMG desarrollan estándares de
integración empresarial para una amplia gama de tecnologías y una gama incluso
más amplia de industrias. Los estándares de modelado de OMG, incluidos UML
y Model Driven Architecture® (MDA®), permiten un eficaz diseño visual,
ejecución y mantenimiento de software y otros procesos.
OMG supervisa la definición y el mantenimiento de las
especificaciones de UML. Esta supervisión ofrece a los ingenieros y
programadores la capacidad de usar un lenguaje para muchos propósitos durante
todas las etapas del ciclo de vida del software en sistemas de cualquier
tamaño.
La finalidad de UML según OMG
El OMG define los propósitos de UML de la siguiente manera:
- Brindar
a arquitectos de sistemas, ingenieros y desarrolladores de software las
herramientas para el análisis, el diseño y la implementación de sistemas
basados en software, así como para el modelado de procesos de negocios y
similares.
- Hacer
progresar el estado de la industria permitiendo la interoperabilidad de
herramientas de modelado visual de objetos. No obstante, para habilitar un
intercambio significativo de información de modelos entre herramientas, se
requiere de un acuerdo con respecto a la semántica y notación.
UML cumple con los siguientes requerimientos:
- Establecer
una definición formal de un metamodelo común basado en el estándar MOF
(Meta-Object Facility) que especifique la sintaxis abstracta del UML. La
sintaxis abstracta define el conjunto de conceptos de modelado UML, sus
atributos y sus relaciones, así como las reglas de combinación de estos
conceptos para construir modelos UML parciales o completos.
- Brindar
una explicación detallada de la semántica de cada concepto de modelado
UML. La semántica define, de manera independiente a la tecnología,
cómo los conceptos UML se habrán de desarrollar por las computadoras.
- Especificar
los elementos de notación de lectura humana para representar los conceptos
individuales de modelado UML, así como las reglas para combinarlos en una
variedad de diferentes tipos de diagramas que corresponden a diferentes
aspectos de los sistemas modelados.
- Definir
formas que permitan hacer que las herramientas UML cumplan con esta
especificación. Esto se apoya (en una especificación independiente) con
una especificación basada en XML de formatos de intercambio de modelos
correspondientes (XMI) que deben ser concretados por herramientas
compatibles.
UML y el modelado de datos
El UML es popular entre programadores, pero no suele
ser usado por desarrolladores de bases de datos. Una razón es sencillamente que
los creadores de UML no se enfocaron en las bases de datos. A pesar de ello, el
UML es efectivo para el modelado de alto nivel de datos conceptuales y se puede
usar en diferentes tipos de diagramas UML. Puedes encontrar información sobre
la multidimensionalidad de un modelo de clases orientado a objetos en una base
de datos relacional en este artículo sobre Modelado de bases de datos en
UML.
Conceptos de modelado especificados por UML
El desarrollo de sistemas se centra en tres modelos
generales de sistemas diferentes:
- Funcionales: Se
trata de diagramas de casos de uso que describen la funcionalidad del
sistema desde el punto de vista del usuario.
- De
objetos: Se trata de diagramas de clases que describen la
estructura del sistema en términos de objetos, atributos, asociaciones y
operaciones.
- Dinámicos: Los
diagramas de interacción, los diagramas de máquina de estados y los
diagramas de actividades se usan para describir el comportamiento interno
del sistema.
Estos modelos de sistemas se visualizan a través de dos
tipos diferentes de diagramas: estructurales y de comportamiento.
Conceptos orientados a objetos en UML
Los objetos en UML son entidades del mundo real que existen
a nuestro alrededor. En el desarrollo de software, los objetos se pueden usar
para describir, o modelar, el sistema que se está creando en términos que sean
pertinentes para el dominio. Los objetos también permiten la descomposición de
sistemas complejos en componentes comprensibles que permiten que se construya
una pieza a la vez.
Estos son algunos conceptos fundamentales de un mundo
orientado a objetos:
- Objetos Representan
una entidad y el componente básico.
- Clase Plano
de un objeto.
- Abstracción Comportamiento
de una entidad del mundo real.
- Encapsulación Mecanismo
para enlazar los datos y ocultarlos del mundo exterior.
- Herencia Mecanismo
para crear nuevas clases a partir de una existente.
- Polimorfismo Define
el mecanismo para salidas en diferentes formas.
Tipos de diagramas UML
UML usa elementos y los asocia de diferentes formas para
formar diagramas que representan aspectos estáticos o estructurales de un
sistema, y diagramas de comportamiento, que captan los aspectos dinámicos de un
sistema.
Diagramas UML estructurales
- Diagrama
de clases El diagrama UML más comúnmente usado, y la base
principal de toda solución orientada a objetos. Las clases dentro de un
sistema, atributos y operaciones, y la relación entre cada clase. Las
clases se agrupan para crear diagramas de clases al crear diagramas de
sistemas grandes.
- Diagrama
de componentes Muestra la relación estructural de los
elementos del sistema de software, muy frecuentemente empleados al
trabajar con sistemas complejos con componentes múltiples. Los componentes
se comunican por medio de interfaces.
- Diagrama
de estructura compuesta Los diagramas de estructura compuesta se
usan para mostrar la estructura interna de una clase.
- Diagrama
de implementación Ilustra el hardware del sistema y su software.
Útil cuando se implementa una solución de software en múltiples máquinas con
configuraciones únicas.
- Diagrama
de objetos Muestra la relación entre objetos por medio de
ejemplos del mundo real e ilustra cómo se verá un sistema en un momento
dado. Dado que los datos están disponibles dentro de los objetos, estos
pueden usarse para clarificar relaciones entre objetos.
- Diagrama
de paquetes Hay dos tipos especiales de dependencias que se
definen entre paquetes: la importación de paquetes y la fusión de paquetes.
Los paquetes pueden representar los diferentes niveles de un sistema para
revelar la arquitectura. Se pueden marcar las dependencias de paquetes
para mostrar el mecanismo de comunicación entre niveles.
Diagramas UML de comportamiento
- Diagramas
de actividades Flujos de trabajo de negocios u operativos
representados gráficamente para mostrar la actividad de alguna parte o
componente del sistema. Los diagramas de actividades se usan como una
alternativa a los diagramas de máquina de estados.
- Diagrama
de comunicación Similar a los diagramas de secuencia, pero el
enfoque está en los mensajes que se pasan entre objetos. La misma
información se puede representar usando un diagrama de secuencia y objetos
diferentes.
- Diagrama
de panorama de interacciones Hay siete tipos de diagramas de
interacciones. Este diagrama muestra la secuencia en la cual actúan.
- Diagrama
de secuencia Muestra cómo los objetos interactúan entre sí y el
orden de la ocurrencia. Representan interacciones para un escenario
concreto.
- Diagrama
de máquina de estados Similar a los diagramas de actividades,
describen el comportamiento de objetos que se comportan de diversas formas
en su estado actual.
- Diagrama
de temporización Al igual que en los diagramas de secuencia, se
representa el comportamiento de los objetos en un período de tiempo dado.
Si hay un solo objeto, el diagrama es simple. Si hay más de un objeto, las
interacciones de los objetos se muestran durante ese período de tiempo
particular.
- Diagrama
de caso de uso Representa una funcionalidad particular de un
sistema. Se crea para ilustrar cómo se relacionan las funcionalidades con
sus controladores (actores) internos/externos.
Cómo crear un diagrama UML: Tutoriales y ejemplos
Para ilustrar cómo crear diferentes tipos de diagramas UML,
prueba uno o todos estos tutoriales para guiarte a través del proceso de trazar
diagramas tanto estructurales como de comportamiento.
Ejemplos de tutoriales de diagramas estructurales
DIAGRAMAS DE CLASES
Los diagramas de clases representan las estructuras
estáticas de un sistema, incluidas sus clases, atributos, operaciones y
objetos. Un diagrama de clases puede mostrar datos computacionales u
organizacionales en la forma de clases de implementación y clases lógicas, respectivamente.
Puede haber superposición entre estos dos grupos.
- Las
clases se representan con una forma rectangular dividida en tercios. La
sección superior muestra el nombre de la clase, mientras que la sección
central contiene los atributos de la clase. La sección inferior muestra
las operaciones de la clase (también conocidas como métodos).
- Agrega
formas de clases a tu diagrama de clases para modelar la relación entre
esos objetos. Además, podría ser necesario que agregues subclases.
- Usa
líneas para representar asociación, traspaso, multiplicidad y otras
relaciones entre clases y subclases. Tu estilo de notación preferido
informará la notación de estas líneas.
DIAGRAMAS DE COMPONENTES
Los diagramas de componentes muestran cómo se combinan los
componentes para formar componentes más grandes o sistemas de software. Estos
diagramas están diseñados para modelar las dependencias de cada componente en
el sistema. Un componente es algo necesario para ejecutar una función de
estereotipo. Un estereotipo de componente puede constar de ejecutables,
documentos, tablas de bases de datos, archivos o archivos de bibliotecas.
- Representa
un componente con una forma rectangular. Debe tener dos rectángulos
pequeños en un lado o mostrar un icono con esa forma.
- Agrega
líneas entre formas de componentes para representar las relaciones
pertinentes.
DIAGRAMAS DE IMPLEMENTACIÓN
Un diagrama de implementación modela la implementación
física y la estructura de los componentes de hardware. Los diagramas de
implementación muestran dónde y cómo operarán los componentes de un sistema en
conjunto con los demás.
- Al
trazar un diagrama de implementación, usa la misma notación que usas para
un diagrama de componentes.
- Usa
un cubo 3D para modelar un nodo (lo cual representa una máquina física o
máquina virtual).
- Etiqueta
el nodo con el mismo estilo que se usa para los diagramas de secuencia.
Agrega otros nodos según sea necesario, luego conéctalos con líneas.
Ejemplos de tutoriales de diagramas de comportamiento
Diagrama de actividades
Los diagramas de actividades muestran el flujo de control de
procedimiento entre objetos de clases, junto con procesos organizacionales,
como los flujos de trabajo de negocios. Estos diagramas se integran con formas
especializadas que luego se conectan con flechas. La notación establecida para
los diagramas de actividades es similar a la de los diagramas de estados.
- Empieza
tu diagrama de actividades con un círculo negro.
- Conecta
el círculo a la primera actividad, la cual se modela con un rectángulo
redondeado.
- Ahora,
conecta cada actividad a otras actividades con líneas que muestren el
flujo paso a paso de todo el proceso.
- También
puedes probar usar carriles para representar los objetos que realizan cada
actividad.
Diagrama de caso de uso
Un caso de uso es una lista de pasos que definen la interacción
entre un actor (un humano que interactúa con el sistema o un sistema externo) y
el sistema propiamente dicho. Los diagramas de casos de uso representan las
especificaciones de un caso de uso y modelan las unidades funcionales de un
sistema. Estos diagramas ayudan a los equipos de desarrollo a comprender los
requisitos de su sistema, incluida la función de la interacción humana en el
mismo y las diferencias entre diversos casos de uso. Un diagrama de caso de uso
podría mostrar todos los casos de uso del sistema o solo un grupo de casos de
uso con una funcionalidad similar.
- Para
iniciar un diagrama de casos de uso, agrega una forma ovalada en el centro
del dibujo.
- Escribe
el nombre del caso de uso dentro del óvalo.
- Representa
a los actores con una figura humana cerca del diagrama, luego usa líneas
para modelar las relaciones entre los actores y los casos de uso.
Diagrama de secuencia
Los diagramas de secuencia, también conocidos como diagramas
de eventos o escenarios de eventos, ilustran cómo los procesos interactúan
entre sí mostrando llamadas entre diferentes objetos en una secuencia. Estos
diagramas tienen dos dimensiones: vertical y horizontal. Las líneas verticales
muestran la secuencia de mensajes y llamadas en orden cronológico y los
elementos horizontales muestran instancias de objetos en las que se transmiten
los mensajes.
- Para
crear un diagrama de secuencia, escribe el nombre de la instancia de clase
y el nombre de la clase en un cuadro rectangular.
- Dibuja
líneas entre las instancias de clases para representar al emisor y
receptor de los mensajes.
- Usa
puntas de flecha oscuras para simbolizar mensajes sincrónicos, puntas de
flecha abiertas para mensajes asincrónicos y líneas discontinuas para
mensajes de respuesta.
Comentarios
Publicar un comentario