de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Introducción al Lenguaje Unificado de Modelado (UML)

El Lenguaje Unificado de Modelado (UML) es un lenguaje de modelado que puede usarse para cualquier propósito. El objetivo principal de UML es establecer una norma para visualizar el diseño de un sistema. Se parece mucho a los diseños en otras ramas de la ingeniería.

UML es un lenguaje visual en lugar de un lenguaje de programación. Los diagramas UML se utilizan para representar el comportamiento y la estructura de un sistema. UML es una herramienta de modelado, diseño y análisis para ingenieros de software, personas del negocio y arquitectos de sistemas. El Lenguaje Unificado de Modelado fue aprobado como estándar por el Grupo de Gestión de Objetos (OMG) en 1997. Desde entonces, el OMG ha estado a cargo de él. En 2005, la Organización Internacional para la Estandarización (ISO) aceptó UML como estándar. UML ha sido actualizado a lo largo del tiempo y se examina de forma regular.

¿Qué es UML?

El Lenguaje Unificado de Modelado (UML) fue desarrollado para establecer un lenguaje visual común para la arquitectura, el diseño y la implementación de la estructura y el comportamiento de sistemas de software grandes. UML tiene aplicaciones fuera del desarrollo de software, como en procesos industriales.

Consta de muchos tipos de diagramas y es similar a los planos utilizados en otros dominios. En general, los diagramas UML representan los límites, la estructura y el comportamiento de un sistema, así como los objetos que contiene.

Aunque UML no es un lenguaje de programación, existen herramientas que generan código en múltiples lenguajes utilizando diagramas UML.

Historia de UML

UML surgió de la confusión que rodeaba el desarrollo y la documentación de software. Durante la década de 1990 existían diversas técnicas para representar y documentar sistemas de software. Como resultado, tres desarrolladores de software de Rational Software crearon UML entre 1994 y 1996. Más tarde fue reconocido como estándar en 1997, y ha permanecido así desde entonces, con revisiones muy menores.

¿Es realmente necesario UML?

  • Las aplicaciones complejas requieren la colaboración y planificación de varios equipos, lo que exige una forma clara y directa de comunicación entre ellos.
  • El código no es comprendido por las personas del negocio. Por ello, UML se vuelve esencial para que los no programadores entiendan los requisitos básicos, la funcionalidad y las operaciones del sistema.
  • Cuando los equipos pueden visualizar procesos, interacciones del usuario y la estructura estática del sistema, pueden ahorrar mucho tiempo.

El diseño y análisis orientados a objetos están vinculados a UML. Para crear diagramas, UML toma elementos y crea asociaciones entre ellos. A continuación se presentan algunos ejemplos de diagramas UML.

  • Un diagrama estructural representa las características estáticas o la estructura de un sistema. Se muestran diagramas estructurales. Los diagramas de componentes, diagramas de objetos, diagramas de clases y diagramas de despliegue son todos ejemplos de diagramas utilizados en el desarrollo de software.
  • Un diagrama de comportamiento representa las características dinámicas o el comportamiento de un sistema. Se incluyen diagramas de comportamiento. Diagramas de casos de uso, diagramas de estados, diagramas de actividades y diagramas de interacción para ayudarte a visualizar tus ideas.

La jerarquía esquemática según UML se muestra en la figura a continuación.

Conceptos clave orientados a objetos en UML

Análisis y diseño orientados a objetos (OO) han sido superados por UML.

Un objeto está compuesto por datos y métodos que lo controlan. Los datos representan el estado actual del objeto. Una clase es un tipo de objeto que tiene una jerarquía que puede utilizarse para imitar sistemas del mundo real. La jerarquía se expresa mediante herencia, y las clases pueden estar conectadas de diversas formas según las necesidades.

Los objetos son entidades del mundo real que existen a nuestro alrededor, y UML puede representar principios básicos como abstracción, encapsulamiento, herencia y polimorfismo.

UML es capaz de representar todos los conceptos encontrados en el análisis y diseño orientado a objetos.

Solo se representan nociones orientadas a objetos en los diagramas UML. Por lo tanto, antes de aprender UML, es fundamental tener una comprensión completa de los conceptos de OO.

  • Clase: Una clase define el plano, es decir, la estructura y el funcionamiento de un objeto, y se utiliza en UML.
  • Objetos: Los objetos nos ayudan a descomponer y modularizar sistemas complejos. La modularidad nos permite descomponer nuestro sistema en componentes fáciles de entender, permitiéndonos construirlo pieza por pieza. Las unidades básicas (bloques de construcción) de un sistema son los objetos, que se utilizan para describir una entidad.
  • Herencia: un mecanismo que permite que una clase hija herede las propiedades de su clase padre.
  • Abstracción: un método que protege al usuario de los detalles de implementación.
  • Encapsulamiento: el proceso de reunir datos y protegerlos del mundo exterior.
  • Polimorfismo: un método que permite que una función o entidad exista en varias versiones.

Adiciones en UML:

  • El alcance de la definición original de UML se ha ampliado, y se han añadido enfoques de desarrollo de software como Agile.
  • Inicialmente, UML requería nueve diagramas. El número de diagramas en UML 2.x aumentó de 9 a 13. Los cuatro nuevos diagramas son el diagrama de temporización, el diagrama de comunicación, el diagrama de vista general de interacción y el diagrama de estructura compuesta. El diagrama de estado se renombró como diagrama de máquina de estados en UML 2.x.
  • Los sistemas de software ahora pueden descomponerse en componentes y subcomponentes utilizando UML 2.x.

Diagramas estructurales de UML

Diagrama de clases – El diagrama de clases es el diagrama UML más ampliamente utilizado. Sirve como base para todos los sistemas de software orientados a objetos. Los diagramas de clases se utilizan para representar la estructura estática de un sistema mostrando sus clases, métodos y propiedades. Los diagramas de clases también nos ayudan a determinar las relaciones entre diversas clases o objetos.

Diagrama de estructura compuesta – Los diagramas de estructura compuesta se utilizan para ilustrar la estructura interna de una clase, así como sus puntos de interacción con otros componentes del sistema. El vínculo entre las piezas y su configuración determina cómo se comporta el clasificador (clase, componente o nodo de despliegue). Las partes, puertos y conexiones se utilizan para ilustrar la estructura interna de un clasificador estructurado. También podemos utilizar diagramas de estructura compuesta para modelar la cooperación. Son similares a los diagramas de clases, pero en lugar de representar la clase completa, muestran elementos específicos en profundidad.

Diagrama de objetos – Un diagrama de objetos puede considerarse como una instantánea de las instancias en un sistema y las relaciones que existen entre ellas. Dado que los diagramas de objetos describen el comportamiento de un objeto después de su instanciación, podemos estudiar el comportamiento del sistema en un momento determinado. Un diagrama de objetos es similar a un diagrama de clases, excepto que muestra instancias de clases en el sistema. Describimos los clasificadores reales y sus relaciones mediante diagramas de clases. Por otro lado, los diagramas de objetos representan instancias específicas de clases y las relaciones entre ellas en un momento dado.

Diagrama de componentes – Los diagramas de componentes se utilizan para mostrar cómo están conectados los componentes físicos de un sistema. Se utilizan para simular detalles de implementación. Los diagramas de componentes muestran las relaciones estructurales entre las piezas de un sistema de software y pueden ayudarnos a determinar si el desarrollo planeado ha cumplido todos los requisitos funcionales. Al diseñar y construir sistemas complejos, los diagramas de componentes son esenciales. Los múltiples componentes del sistema se comunican entre sí a través de interfaces.

Diagrama de despliegue – Un diagrama de despliegue es un diagrama que representa el hardware y el software de un sistema. Nos informa sobre los componentes de hardware que existen, así como sobre los componentes de software que se ejecutan sobre ellos. La información generada por el software del sistema se denomina artefactos. Se utilizan principalmente cuando el software se usa, se distribuye o se despliega en múltiples dispositivos con diferentes configuraciones.

Diagrama de Paquetes – Los diagramas de paquetes se utilizan para mostrar cómo se organizan los paquetes y sus componentes. Los diagramas de paquetes simplemente representan las interdependencias entre paquetes distintos, así como la estructura interna de los paquetes. Los paquetes ayudan a organizar los diagramas UML en grupos significativos y a comprender mejor los diagramas. Se utilizan principalmente para mantener organizados los diagramas de clases y los diagramas de casos de uso.

Diagramas de comportamiento de UML

Diagrama de Máquina de Estados – se utiliza para representar el estado de un sistema o de una parte de un sistema en un momento específico. Es un diagrama de comportamiento en el que el comportamiento se representa mediante un número finito de transiciones de estado. Las máquinas de estado y los diagramas de estado son otros nombres para los diagramas de estado. Estos términos se intercambian con frecuencia. Simplemente descrito, un diagrama de estado es una representación visual del comportamiento dinámico de una clase en respuesta al tiempo y a las entradas externas cambiantes.

Diagrama de Actividades – Utilizamos los diagramas de actividades para mostrar cómo funciona el flujo de control de un sistema. Los diagramas de actividades también pueden usarse para referirse a las etapas involucradas en la ejecución de un caso de uso. Los diagramas de actividades se utilizan para representar actividades secuenciales y concurrentes. En consecuencia, los diagramas de actividades se usan para representar visualmente el flujo de trabajo. El contexto del flujo y el orden en que ocurren son el enfoque principal de los diagramas de actividades. Los diagramas de actividades se utilizan para representar o describir los eventos que conducen a un evento específico.

Diagrama de Casos de Uso se utilizan para describir la funcionalidad de un sistema o de un componente del sistema. Se utilizan con frecuencia para representar los requisitos funcionales de un sistema y sus interacciones con agentes externos (actores). Un caso de uso es un diagrama que representa los diversos contextos en los que se puede aplicar un sistema. Los diagramas de casos de uso nos proporcionan una visión general a alto nivel de lo que realiza un sistema o un elemento del sistema sin profundizar en los detalles de la implementación.

Diagrama de Secuencia simplemente representa las interacciones entre elementos en serie, es decir, el orden en que tienen lugar estas interacciones. Un diagrama de secuencia también puede denominarse diagrama de eventos o escenario de eventos. Los diagramas de secuencia muestran cómo y en qué orden colaboran los componentes de un sistema. Los empresarios y los ingenieros de software utilizan con frecuencia estos diagramas para documentar y comprender las necesidades de sistemas nuevos y actuales.

Diagrama de Comunicación (también conocidos como diagramas de colaboración en UML 1.x) se utilizan para representar la transmisión secuencial de información entre objetos. Los objetos y sus relaciones son el enfoque principal de los diagramas de comunicación. Los diagramas de secuencia pueden usarse para describir información similar, pero los diagramas de comunicación representan objetos y enlaces en su estado natural.

Diagrama de Tiempo – Los diagramas de tiempo son un tipo de diagrama de secuencia que representa el comportamiento de los objetos durante un período de tiempo determinado. Se utilizan para representar las restricciones de tiempo y duración que rigen los cambios en el estado y el comportamiento de un objeto.

Diagramas de Visión General de Interacción – Un diagrama de visión general de interacción es un modelo de una serie de eventos que puede usarse para descomponer interacciones complejas en eventos más simples. Es una combinación entre un diagrama de actividades y un diagrama de secuencia.

Glosario de UML

  • Clase Abstracta – Una clase que nunca se instanciará. Nunca existirá una instancia de esta clase.
  • Actor – Un objeto o persona que inicia eventos con los que el sistema está involucrado.
  • Actividad: Un paso o acción dentro de un diagrama de actividades. Representa una acción realizada por el sistema o por un actor.
  • Diagrama de Actividades: Un diagrama de flujo mejorado que muestra los pasos, decisiones y operaciones paralelas dentro de un proceso, como un algoritmo o un proceso empresarial.
  • Agregación – Es una parte de otra clase. Se representa con un diamante vacío junto a la clase que lo contiene en los diagramas.
  • Artefactos – Documentos que describen la salida de una etapa en el proceso de diseño. La descripción es gráfica, textual o alguna combinación.
  • Asociación – Una conexión entre dos elementos de un modelo. Esto podría representar una variable miembro en código, o la asociación entre un registro de personal y la persona que representa, o una relación entre dos categorías de trabajadores, o cualquier relación similar. Por defecto, ambos elementos en una asociación son iguales y se conocen mutuamente a través de la asociación. Una asociación también puede ser una asociación navegable, lo que significa que el extremo origen de la asociación conoce al extremo destino, pero no al revés.
  • Clase de asociación: Una clase que representa y añade información a la asociación entre dos clases distintas.
  • Atributos – Características de un objeto que pueden usarse para referenciar otros objetos o guardar información sobre el estado del objeto.
  • Clase base: Una clase que define atributos y operaciones que son heredados por una subclase a través de una relación de generalización.
  • Rama: Un punto de decisión en un diagrama de actividad. Varios transiciones surgen de la rama, cada una con una condición de guarda. Cuando el control llega a la rama, debe ser verdadera exactamente una condición de guarda; y el control sigue la transición correspondiente.
  • Clase: Una categoría de objetos similares, todos descritos por los mismos atributos y operaciones y todos compatibles con la asignación.
  • Diagrama de clases – Muestra las clases del sistema y las relaciones entre ellas.
  • Clasificador: Un elemento de UML que tiene atributos y operaciones. Específicamente, actores, clases e interfaces.
  • Colaboración: Una relación entre dos objetos en un diagrama de comunicación, indicando que los mensajes pueden pasar de un objeto a otro.
  • Diagrama de comunicación – Un diagrama que muestra cómo se realizan las operaciones, enfatizando los roles de los objetos.
  • Componente: Una unidad desplegable de código dentro del sistema.
  • Diagrama de componentes: Un diagrama que muestra las relaciones entre diversos componentes e interfaces.
  • Concepto – Un sustantivo o idea abstracta que debe incluirse en un modelo de dominio.
  • Fase de construcción – La tercera fase del Proceso Unificado Racional durante la cual se construyen varias iteraciones de funcionalidad en el sistema en construcción. Es aquí donde se realiza el trabajo principal.
  • Dependencia: Una relación que indica que un clasificador conoce los atributos y operaciones de otro clasificador, pero no está directamente conectado a ninguna instancia del segundo clasificador.
  • Diagrama de despliegue: Un diagrama que muestra las relaciones entre varios procesadores.
  • Dominio – La parte del universo con la que el sistema está involucrado.
  • Fase de elaboración – La segunda fase del Proceso Unificado Racional que permite una planificación adicional del proyecto, incluyendo las iteraciones de la fase de construcción.
  • Elemento: Cualquier elemento que aparece en un modelo.
  • Encapsulamiento – Los datos en los objetos son privados.
  • Generalización – Indica que una clase es una subclase de otra clase (superclase). Una flecha hueca apunta hacia la superclase.
  • Evento: En un diagrama de estados, esto representa una señal, evento o entrada que hace que el sistema realice una acción o cambie de estado.
  • Estado final: En un diagrama de estados o un diagrama de actividades, esto indica un punto en el que el diagrama finaliza.
  • División: Un punto en un diagrama de actividades donde comienzan múltiples hilos de control paralelos.
  • Generalización: Una relación de herencia, en la que una subclase hereda y añade a los atributos y operaciones de una clase base.
  • GoF – Conjunto de patrones de diseño de los Cuatro Jinetes.
  • Alta cohesión – Un patrón evaluativo GRASP que asegura que la clase no sea demasiado compleja, realizando funciones no relacionadas.
  • Bajo acoplamiento – Un patrón evaluativo GRASP que mide cuánto depende una clase de otra clase o está conectada a otra clase.
  • Fase de inicio – La primera fase del Proceso Unificado Racional que trata la conceptualización original y el inicio del proyecto.
  • Herencia – Las subclases heredan los atributos o características de su clase padre (superclase). Estos atributos pueden ser sobrescritos en la subclase.
  • Estado inicial: En un diagrama de estados o un diagrama de actividades, esto indica el punto en el que comienza el diagrama.
  • Instancia – Una clase se utiliza como una plantilla para crear un objeto. Este objeto se llama una instancia de la clase. Puede crearse cualquier número de instancias de la clase.
  • Interfaz: Un clasificador que define atributos y operaciones que forman un contrato para el comportamiento. Una clase o componente proveedor puede optar por realizar una interfaz (es decir, implementar sus atributos y operaciones). Un cliente clase o componente puede luego depender de la interfaz y así utilizar el proveedor sin conocer los detalles reales de la clase del proveedor.
  • Iteración – Una sección mini proyecto durante la cual se agrega una pequeña parte de funcionalidad al proyecto. Incluye el ciclo de desarrollo de análisis, diseño y codificación.
  • Unión: Un punto en un diagrama de actividades donde múltiples hilos de control paralelos se sincronizan y vuelven a unirse.
  • Miembro: Un atributo o una operación dentro de un clasificador.
  • Fusión: Un punto en un diagrama de actividades donde diferentes caminos de control se unen.
  • Mensaje – Una solicitud de un objeto a otro pidiendo al objeto que recibe el mensaje que haga algo. Básicamente es una llamada a un método en el objeto receptor.
  • Método – Una función o procedimiento en un objeto.
  • Modelo – El artefacto central de UML. Consiste en diversos elementos organizados en una jerarquía mediante paquetes, con relaciones entre los elementos también.
  • Multiplicidad – Mostrado en un modelo de dominio e indicado fuera de los cuadros de conceptos, indica la relación de cantidad de objetos con cuantiles de otros objetos.
  • Navegabilidad: Indica qué extremo de una relación es consciente del otro extremo. Las relaciones pueden tener navegabilidad bidireccional (cada extremo es consciente del otro) o navegabilidad unidireccional (un extremo es consciente del otro, pero no al revés).
  • Notación – Documento gráfico con reglas para crear métodos de análisis y diseño.
  • Nota: Una nota de texto añadida a un diagrama para explicar el diagrama con más detalle.
  • Objeto – Objeto: En un diagrama de actividad, un objeto que recibe información de actividades o proporciona información a actividades. En un diagrama de colaboración o un diagrama de secuencia, un objeto que participa en el escenario representado en el diagrama. En general: una instancia o ejemplo de un clasificador dado (actor, clase o interfaz).
  • Paquete – Un grupo de elementos UML que lógicamente deberían agruparse juntos.
  • Diagrama de paquetes: Un diagrama de clases en el que todos los elementos son paquetes y dependencias.
  • Patrón – Soluciones utilizadas para determinar la asignación de responsabilidades entre objetos para interactuar. Es un nombre para una solución exitosa a un problema común bien conocido.
  • Parámetro: Un argumento a una operación.
  • Polimorfismo – Mismo mensaje, método diferente. También se utiliza como un patrón.
  • Privado: Un nivel de visibilidad aplicado a un atributo o una operación, que indica que solo el código del clasificador que contiene al miembro puede acceder al miembro.
  • Procesador: En un diagrama de despliegue, esto representa una computadora u otro dispositivo programable donde puede desplegarse el código.
  • Protegido: Un nivel de visibilidad aplicado a un atributo o una operación, que indica que solo el código del clasificador que contiene al miembro o de sus subclases puede acceder al miembro.
  • Público: Un nivel de visibilidad aplicado a un atributo o una operación, que indica que cualquier código puede acceder al miembro.
  • Flecha de dirección de lectura – Indica la dirección de una relación en un modelo de dominio.
  • Realización: Indica que un componente o una clase proporciona una interfaz dada.
  • Rol – Utilizado en un modelo de dominio, es una descripción opcional sobre el rol de un actor.
  • Diagrama de secuencia: Un diagrama que muestra la existencia de objetos a lo largo del tiempo, y los mensajes que se intercambian entre esos objetos a lo largo del tiempo para realizar algún comportamiento. Diagrama de estado – Un diagrama que muestra todos los estados posibles de un objeto.
  • Estado: En un diagrama de estado, esto representa un estado de un sistema o sub-sistema: lo que está haciendo en un momento dado, así como los valores de sus datos.
  • Diagrama de estado: Un diagrama que muestra los Estados de un sistema o sub-sistema, las Transiciones entre Estados y los Eventos que causan las Transiciones.
  • Estático: Un modificador aplicado a un Atributo para indicar que solo hay una copia del Atributo compartida entre todas las instancias del Clasificador. Un modificador aplicado a una Operación para indicar que la Operación existe por sí misma y no opera sobre una instancia específica del Clasificador.
  • Estereotipo: Un modificador aplicado a un elemento de modelo que indica algo sobre él que normalmente no puede expresarse en UML. En esencia, los estereotipos te permiten definir tu propio “dialecto” de UML.
  • Subclase: Una Clase que hereda Atributos y Operaciones que están definidos por una Subclase mediante una relación de Generalización.
  • Carril: Un elemento de un diagrama de actividad que indica qué partes de un sistema o dominio realizan actividades específicas. Todas las actividades dentro de un carril son responsabilidad del Objeto, Componente o Actor representado por el carril.
  • Caja de tiempo – Cada iteración tendrá un límite de tiempo con objetivos específicos.
  • Transición: En un diagrama de actividad, representa un flujo de control de una actividad, rama, fusión, bifurcación o unión a otra. En un diagrama de estado, representa un cambio de un estado a otro.
  • Fase de transición – La última fase del Proceso Unificado Racional durante la cual los usuarios son capacitados para usar el nuevo sistema y el sistema se pone a disposición de los usuarios.
  • Lenguaje Unificado de Modelado – El Lenguaje Unificado de Modelado utiliza documentos de texto y gráficos para mejorar el análisis y diseño de proyectos de software al permitir relaciones más cohesivas entre objetos.
  • Casos de uso: En un diagrama de casos de uso, representa una acción que el sistema realiza en respuesta a una solicitud de un Actor.
  • Diagrama de casos de uso: Un diagrama que muestra las relaciones entre Actores y casos de uso.
  • Visibilidad: Un modificador aplicado a un Atributo o Operación que indica qué código tiene acceso al miembro. Los niveles de visibilidad incluyen Público, Protegido y Privado.
  • Flujo de trabajo – Un conjunto de actividades que produce un resultado específico.

Recursos y referencias de UML

Dejar una contestacion

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *