Una guía completa para el diagrama de clases UML

Table of Contents hide

El lenguaje de modelado unificado ( UML ) es un lenguaje de modelado de desarrollo de propósito general en el campo de la ingeniería de software, diseñado para proporcionar un enfoque estándar para visualizar el diseño del sistema. La motivación original para crear UML fue el deseo de estandarizar diferentes sistemas de notación y métodos de diseño de software. En UML, un diagrama de clases es uno de los seis tipos de diagramas de estructura . Los diagramas de clase son la base del proceso de modelado de objetos y modelan la estructura estática del sistema.

Los diagramas de estructura muestran la estructura estática del sistema y sus partes en diferentes niveles de abstracción e implementación y cómo se relacionan entre sí. Los elementos en un diagrama de estructura representan los conceptos significativos de un sistema y pueden incluir conceptos abstractos, del mundo real y de implementación. Hay siete tipos de diagrama de estructura de la siguiente manera:

 

Descripción general de los 14 tipos de diagramas UML

¿Qué es un diagrama de clases?

Un diagrama de clases en el lenguaje de modelado unificado (UML) es un diagrama de estructura estática que describe la estructura de un sistema al mostrar sus clases, sus atributos, operaciones (o métodos) y las relaciones entre objetos. Un diagrama de clases es un modelo para un sistema o subsistema. Puede usar diagramas de clases para modelar los objetos que componen el sistema, mostrar las relaciones entre los objetos y describir las funciones de estos objetos y los servicios que brindan.

El origen de UML

El objetivo de UML es proporcionar una notación estándar que puedan utilizar todos los métodos orientados a objetos y seleccionar e integrar los mejores elementos de las notaciones precursoras. UML ha sido diseñado para una amplia gama de aplicaciones. Por lo tanto, proporciona construcciones para una amplia gama de sistemas y actividades (por ejemplo, sistemas distribuidos, análisis, diseño e implementación de sistemas).

UML es una notación que resultó de la unificación de OMT de

  1. Técnica de modelado de objetos OMT  [ James Rumbaugh  1991]: fue la mejor para análisis y sistemas de información con uso intensivo de datos.
  2. Booch [ Grady Booch  1994]: fue excelente para el diseño y la implementación. Grady Booch había trabajado extensamente con el  lenguaje Ada  y había sido un jugador importante en el desarrollo de técnicas orientadas a objetos para el lenguaje. Aunque el método de Booch fue fuerte, la notación fue menos bien recibida (muchas formas de nubes dominaron sus modelos, no muy ordenadas)
  3. OOSE (Ingeniería de software orientada a objetos [ Ivar Jacobson  1992]): presentó un modelo conocido como Casos de uso. Los casos de uso son una técnica poderosa para comprender el comportamiento de un sistema completo (un área donde OO tradicionalmente ha sido débil).

En 1994, Jim Rumbaugh, el creador de OMT, sorprendió al mundo del software cuando dejó General Electric y se unió a Grady Booch en Rational Corp. El objetivo de la asociación era fusionar sus ideas en un método único y unificado (el título provisional de la era de hecho el “Método Unificado”).

Historia UML

El Propósito del Diagrama de Clase

Los diagramas de clases son útiles en muchas fases del diseño del sistema. Durante la fase de análisis, los diagramas de clases pueden ayudarlo a comprender los requisitos del dominio del problema e identificar sus componentes. En los proyectos de software orientados a objetos, el diagrama de clases creado en las primeras etapas del proyecto contiene clases que a menudo se convierten en clases y objetos de software reales al escribir código.

Posteriormente, puede refinar los primeros análisis y modelos conceptuales en diagramas de clase para mostrar partes específicas del sistema, interfaces de usuario, implementaciones lógicas, etc.

Los diagramas de clases se utilizan ampliamente en el modelado de sistemas orientados a objetos porque son los únicos diagramas UML que se pueden asignar directamente a lenguajes orientados a objetos. Durante la fase de implementación del ciclo de desarrollo de software, puede usar diagramas de clase para transformar modelos en código y código en modelos.

Ejemplo de clase

Un perro tiene estados: color, nombre, raza, así como comportamientos: menear, ladrar, comer. Un objeto es una instancia de una clase.

 

Notación de clase UML

Una clase representa un concepto que encapsula estado ( atributos ) y comportamiento ( operaciones ). Cada atributo tiene un tipo. Cada  operación  tiene una  firma . El nombre de la clase es la  única información obligatoria .

Nombre de la clase:

  • El nombre de la clase aparece en la primera partición.

Atributos de clase:

  • Los atributos se muestran en la segunda partición.
  • El tipo de atributo se muestra después de los dos puntos.
  • Los atributos se asignan a las variables miembro (miembros de datos) en el código.

Operaciones de Clase (Métodos):

  • Las operaciones se muestran en la tercera partición. Son servicios que brinda la clase.
  • El tipo de retorno de un método se muestra después de los dos puntos al final de la firma del método.
  • El tipo de devolución de los parámetros del método se muestra después de los dos puntos que siguen al nombre del parámetro. Las operaciones se asignan a los métodos de clase en el código.

Relaciones de clase

Una clase puede estar involucrada en una o más relaciones con otras clases. Una relación puede ser de uno de los siguientes tipos: (Consulte la figura de la derecha para ver la representación gráfica de las relaciones).

Tipo de relación Representación grafica
Herencia  (o generalización):
  • Representa una relación «es-un».
  • Un nombre de clase abstracto se muestra en cursiva.
  • SubClass1 y SubClass2 son especializaciones de Super Class.
  • Una línea continua con una punta de flecha hueca que apunta desde la clase secundaria a la principal
Herencia (o generalización)
Asociación sencilla :
  • Un vínculo estructural entre dos clases de pares.
  • Hay una asociación entre Class1 y Class2
  • Una línea sólida que conecta dos clases.
asociación simple
Agregación :Un tipo especial de asociación. Representa una relación de “parte de”.
  • Class2 es parte de Class1.
  • Muchas instancias (indicadas por *) de Class2 se pueden asociar con Class1.
  • Los objetos de Class1 y Class2 tienen vidas separadas.
  • Una línea sólida con un rombo sin relleno en el extremo de la asociación conectado a la clase de compuesto
Agregación
Composición :Un tipo especial de agregación donde las partes se destruyen cuando se destruye el todo.
  • Los objetos de Class2 viven y mueren con Class1.
  • Class2 no puede valerse por sí mismo.
  • Una línea sólida con un rombo lleno en la asociación conectada a la clase de compuesto
dependencia :
  • Existe entre dos clases si los cambios en la definición de una pueden causar cambios en la otra (pero no al revés).
  • Clase1 depende de Clase2
  • Una línea discontinua con una flecha abierta
Dependencia

Nombres de relaciones

  • Los nombres de las relaciones se escriben en el medio de la línea de asociación.
  • Los buenos nombres de relaciones tienen sentido cuando los lees en voz alta:
    • “Cada hoja de cálculo  contiene  cierto número de celdas”,
    • “una expresión  se evalúa como  un valor”
  • A menudo tienen una  pequeña punta de flecha para mostrar la dirección  en la que leer la relación, por ejemplo, las expresiones se evalúan como valores, pero los valores no se evalúan como expresiones.

 

Relación – Roles

  • Un rol es un propósito direccional de una asociación.
  • Los roles se escriben al final de una línea de asociación y describen el propósito que desempeña esa clase en la relación.
    • Por ejemplo, una celda está relacionada con una expresión. La naturaleza de la relación es que la expresión es la  fórmula  de la celda.

Visibilidad de atributos de clase y operaciones

En el diseño orientado a objetos, existe una notación de visibilidad para atributos y operaciones. UML identifica cuatro tipos de visibilidad:  pública ,  protegida ,  privada y  de paquete .

Los símbolos +, -, # y ~ antes de un nombre de atributo y operación en una clase indican la visibilidad del atributo y la operación.

  • + denota atributos públicos u operaciones
  • – denota atributos privados u operaciones
  • # denota atributos u operaciones protegidas
  • ~ denota atributos u operaciones del paquete

Ejemplo de visibilidad de clase

En el ejemplo anterior:

  • atributo1 y op1 de MyClassName son públicos
  • atributo3 y op3 están protegidos.
  • atributo2 y op2 son privados.

El acceso para cada uno de estos tipos de visibilidad se muestra a continuación para miembros de diferentes clases.

Acceso correcto público (+) privado (-) protegido (#) Paquete (~)
Miembros de la misma clase
Miembros de clases derivadas no
Miembros de cualquier otra clase no no en el mismo paquete

Multiplicidad

Cuántos objetos de cada clase participan en las relaciones y la multiplicidad se puede expresar como:

  • Exactamente uno – 1
  • Cero o uno – 0..1
  • Muchos – 0..* o *
  • Uno o más – 1..*
  • Número exacto – por ejemplo, 3..4 o 6
  • O una relación compleja, por ejemplo, 0..1, 3..4, 6.* significaría cualquier número de objetos distintos de 2 o 5

Ejemplo de multiplicidad

  • Requisito: Un Estudiante puede tomar muchos Cursos y muchos Estudiantes pueden inscribirse en un Curso.
  • En el siguiente ejemplo, el  diagrama de clases  (a la izquierda) describe la declaración del requisito anterior para el modelo estático, mientras que el diagrama de objetos (a la derecha) muestra la instantánea (una instancia del diagrama de clases) de la inscripción del curso para los cursos Ingeniería de Software y Gestión de Bases de Datos respectivamente)

Diagrama de objetos

Ejemplo de agregación: computadora y partes

  • Una agregación es un caso especial de asociación que denota una jerarquía «consiste en»
  • El agregado es la clase principal, los componentes son las clases secundarias
Ejemplo de agregación

Ejemplo de herencia: taxonomía de celdas

  • La herencia es otro caso especial de una asociación que denota una especie de jerarquía.
  • La herencia simplifica el modelo de análisis al introducir una taxonomía
  • Las clases secundarias heredan los atributos y operaciones de la clase principal.
Ejemplo de herencia

 

Diagrama de clase: ejemplo de herramienta de diagrama

Un diagrama de clases también puede tener notas adjuntas a clases o relaciones. Las notas se muestran en gris.

Ejemplo de diagrama de clase

 

En el ejemplo anterior:

Podemos interpretar el significado del diagrama de clases anterior leyendo los puntos de la siguiente manera.

  1. La forma es una clase abstracta. Se muestra en cursiva.
  2. La forma es una superclase. Círculo, Rectángulo y Polígono se derivan de Forma. En otras palabras, un círculo es una forma. Esta es una relación de generalización/herencia.
  3. Existe una asociación entre DialogBox y DataController.
  4. La forma es parte de la ventana. Esta es una relación de agregación. La forma puede existir sin Ventana.
  5. El punto es parte del círculo. Esta es una relación de composición. El punto no puede existir sin un círculo.
  6. La ventana depende del evento. Sin embargo, Event no depende de Window.
  7. Los atributos de Circle son radio y centro. Esta es una clase de entidad.
  8. Los nombres de los métodos de Circle son area(), circum(), setCenter() y setRadius().
  9. El radio del parámetro en Circle es un parámetro de tipo float.
  10. El método area() de la clase Circle devuelve un valor de tipo double.
  11. Los atributos y nombres de métodos de Rectangle están ocultos. Algunas otras clases en el diagrama también tienen sus atributos y nombres de métodos ocultos.

Ejemplo de diagrama de clases: sistema de pedidos

Ejemplo de diagrama de clases: sistema de pedidos

Ejemplo de diagrama de clase: GUI

Un diagrama de clases también puede tener notas adjuntas a clases o relaciones.

Ejemplo de diagrama de clase: GUI

Tratar con un sistema complejo: ¿diagrama de clase única o múltiple?

Inevitablemente, si está modelando un sistema grande o un área comercial grande, habrá numerosas entidades que deberá considerar. ¿Deberíamos usar un diagrama de clases múltiple o único para modelar el problema? La respuesta es:

  • En lugar de modelar cada entidad y sus relaciones en un solo diagrama de clases, es mejor usar diagramas de clases múltiples.
  • Dividir un sistema en múltiples diagramas de clases hace que el sistema sea más fácil de entender, especialmente si cada diagrama es una representación gráfica de una parte específica del sistema.

Perspectivas del diagrama de clases en el ciclo de vida del desarrollo de software

Podemos usar diagramas de clase en diferentes fases de desarrollo de un  ciclo de vida de desarrollo de software  y, por lo general, modelar diagramas de clase en tres perspectivas diferentes (niveles de detalle) progresivamente a medida que avanzamos:

Perspectiva conceptual : Los diagramas se interpretan como que describen cosas en el mundo real. Por lo tanto, si toma la perspectiva conceptual, dibuja un diagrama que representa los conceptos en el dominio en estudio. Estos conceptos se relacionarán naturalmente con las clases que los implementan. La perspectiva conceptual se  considera independiente del lenguaje .

Perspectiva de especificación : los diagramas se interpretan como una descripción de abstracciones o componentes de software con especificaciones e interfaces, pero sin compromiso con una implementación particular. Por lo tanto, si toma la perspectiva de la especificación, estamos  viendo las interfaces del software , no la implementación.

Perspectiva de implementación : Los diagramas se interpretan como una descripción de las implementaciones de software en una tecnología y un  lenguaje en particular . Por lo tanto, si toma la perspectiva de la implementación, estamos  viendo la implementación del software .

¿Busca una herramienta de diagramación de clases gratuita?

Visual Paradigm Online (VP Online) Free Edition es un software de dibujo en línea gratuito que admite diagramas de clase, otros diagramas UML, herramientas ERD y herramientas de organigrama. Tiene un editor simple pero poderoso que le permite crear diagramas de clase de forma rápida y sencilla. Este editor UML gratuito no tiene anuncios, no tiene plazos de acceso ni restricciones, por ejemplo, en la cantidad de diagramas, la cantidad de formas, etc. Usted es dueño de los diagramas que crea para fines personales y no comerciales.

Herramienta de diagrama de clase en línea

¿Busca un modelado UML más formal en su escritorio?

Visual Paradigm Community Edition se lanzó en 2004 para proporcionar un  software UML gratuito  con un único propósito no comercial, apoyando a los usuarios que estaban dando sus primeros pasos en el modelado UML y que necesitan un software de modelado UML gratuito y multiplataforma para uso personal, como como aplicar UML en proyectos de estudiantes.

Pantalla de paradigma visual

Herramienta de modelado UML gratuita para todo tipo de fines no comerciales. Compatibilidad con los 13 diagramas UML 2.x

Herramienta UML gratuita compatible con 13 diagramas UML 2.x

Somos adoptados por más de 1 millón de instalaciones en todo el mundo y seguimos creciendo. Muchas personas utilizan las ediciones pagas de Visual Paradigm para dibujar diagramas UML y ERD profesionales para el diseño y análisis de sistemas y bases de datos, todos los días.

Razón 2

Confianza de los profesionales de TI y las grandes organizaciones

Muchas organizaciones de primer nivel, empresas de TI, consultores, universidades, ONG y unidades gubernamentales de todo el mundo han adoptado Visual Paradigm (las ediciones pagas). La siguiente figura muestra algunos de nuestros clientes pagos.

Clientes de Paradigma Visual

Razón 3

Alta calidad – Galardonado

No solo confiamos en las empresas más conocidas del mundo, sino también en la industria. Visual Paradigm es ganador de múltiples premios internacionales.

Premios Paradigma Visual

Razón 4

La plataforma de modelado más utilizada para la academia

La herramienta UML más utilizada para la academia, adoptada por miles de universidades y colegios.

Escuelas que utilizan el paradigma visual

Razón 5

Enorme colección de recursos de aprendizaje GRATUITOS (apoyo de VP Community Circle)

Cientos de ejemplos y plantillas de diagramas UML y ERD

Cientos de ejemplos de UML y ERD  listos para importar a Visual Paradigm para experimentar al instante o para comenzar con su propio modelo UML. Todo GRATIS.

Razón 6

Ruta de actualización a las ediciones comerciales para un amplio espectro de aplicaciones y posibilidades

Fácil actualización para un gran conjunto de funciones adicionales (por ejemplo, BPMN y soporte de colaboración en equipo) y para uso comercial, a partir de  $ 6 / mes .

Funciones empaquetadas en Visual Paradigm

Razón 7

Foro de usuarios activo para obtener ayuda e intercambiar ideas y experiencias

Apoye, comparta e intercambie sus ideas con otras personas en el  foro de usuarios activos de Visual Paradigm .

Foro de Paradigma Visual

Razón 8

Aplicación multiplataforma, fácil de usar, rápida y receptiva

Visual Paradigm puede ejecutarse en diferentes plataformas como Windows, Linux y Mac. ¡Su interfaz intuitiva y sus potentes funciones de modelado hacen que el modelado sea rápido y fácil!

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.