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:
- Diagrama de clase
- Diagrama de componentes
- Diagrama de implementación
- Diagrama de objetos
- Diagrama de paquete
- Diagrama de estructura compuesta
- Diagrama de perfil
¿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
- 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.
- 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)
- 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”).
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):
|
|
Asociación sencilla :
|
|
Agregación :Un tipo especial de asociación. Representa una relación de “parte de”.
|
|
Composición :Un tipo especial de agregación donde las partes se destruyen cuando se destruye el todo.
|
|
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 | sí | sí | sí | sí |
Miembros de clases derivadas | sí | no | sí | sí |
Miembros de cualquier otra clase | sí | 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)
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 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.
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.
En el ejemplo anterior:
Podemos interpretar el significado del diagrama de clases anterior leyendo los puntos de la siguiente manera.
- La forma es una clase abstracta. Se muestra en cursiva.
- 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.
- Existe una asociación entre DialogBox y DataController.
- La forma es parte de la ventana. Esta es una relación de agregación. La forma puede existir sin Ventana.
- El punto es parte del círculo. Esta es una relación de composición. El punto no puede existir sin un círculo.
- La ventana depende del evento. Sin embargo, Event no depende de Window.
- Los atributos de Circle son radio y centro. Esta es una clase de entidad.
- Los nombres de los métodos de Circle son area(), circum(), setCenter() y setRadius().
- El radio del parámetro en Circle es un parámetro de tipo float.
- El método area() de la clase Circle devuelve un valor de tipo double.
- 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 clase: GUI
Un diagrama de clases también puede tener notas adjuntas a clases o relaciones.
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.
¿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.
Herramienta de modelado UML gratuita para todo tipo de fines no comerciales. Compatibilidad con los 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.
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.
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.
Razón 5
Enorme colección de recursos de aprendizaje GRATUITOS (apoyo de VP Community Circle)
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 .
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 .
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!
Referencias
- ¿Qué es UML?
- ¿Por qué modelado UML?
- Descripción general de los 14 tipos de diagramas UML
- ¿Qué es el diagrama de clases?
- ¿Qué es el diagrama de componentes?
- ¿Qué es el Diagrama de Despliegue?
- ¿Qué es el diagrama de objetos?
- ¿Qué es el diagrama de paquete?
- ¿Qué es el diagrama de estructura compuesta?
- ¿Qué es el diagrama de perfil?
- ¿Qué es el diagrama de casos de uso?
- ¿Qué es el diagrama de actividades?
- ¿Qué es el diagrama de máquina de estado?
- ¿Qué es el diagrama de secuencia?
- ¿Qué es el diagrama de comunicación?
- ¿Qué es el diagrama general de interacción?
- ¿Qué es el diagrama de tiempo?