Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Actividad 6 Universidad Veracruzana Principios de construcción de software Itzel Alessandra Reyes Flores Resumen del Capítulo 4 Class Diagram del libro UML at Classroom Daniela Morales Sixto Viernes 24 de febrero de 2023 El diagrama de clase El diagrama de clases visualiza las clases que un sistema de software consiste en y las relaciones entre estas clases, este visualiza las instancias de las clases que se modelan en un diagrama de clases. En UML, representamos los objetos concretos de un sistema y sus relaciones (enlaces) mediante diagramas de objetos. Un objeto tiene una identidad única y una serie de características que lo describen con más detalle. Rara vez aparece aislado en un sistema; En cambio, suele interactuar y comunicarse con otros objetos. Las relaciones entre los objetos se denominan enlaces. El carácter de un enlace de un objeto incluye sus características estructurales (atributos) y su comportamiento (en forma de operaciones). Las operaciones son idénticas para todos los objetos de una clase, por lo que suelen describirse exclusivamente para la clase, el diagrama de objetos siempre representa sólo una instantánea de los objetos en un momento y los objetos pueden evolucionar y cambiar a medida que pasa el tiempo. Si determinados objetos no están representados en el diagrama de objetos, esto no significa que no existan; simplemente expresa que los objetos no registrados no son importantes por el momento. Por otro lado, tenemos las clases, una clase es el plan de construcción de un conjunto de objetos similares que aparecen en el sistema que se va a especificar. Las clases pueden caracterizar, por ejemplo, personas (por ejemplo, estudiantes), cosas (por ejemplo, edificios), eventos (por ejemplo, cursos o exámenes), o incluso conceptos abstractos como los grupos. Los objetos representan las formas concretas de las clases y se denominan instancias. Las características relevantes de las instancias de una clase clases se describen mediante la definición de características estructurales (atributos) y de comportamiento (operaciones). Las operaciones permiten a los objetos comunicarse entre sí y actuar y reaccionar. En un diagrama de clases, una clase se representa mediante un rectángulo que puede subdividirse en varios compartimentos. El primer compartimento debe contener el nombre de la clase, que generalmente comienza con una letra mayúscula y se sitúa en el centro en negrita. De acuerdo con las convenciones de nomenclatura habituales, los nombres de las clases son sustantivos singulares. El nombre de la clase debe describirla utilizando el vocabulario típico del dominio de la aplicación. El segundo compartimento del rectángulo contiene los atributos de la clase, y el tercer compartimento las operaciones de la clase. El contenido de estos compartimentos se coloca justificado a la izquierda y es opcional. En general, el nivel de detalle de estos compartimentos refleja la fase respectiva del proceso de desarrollo de software en la que se está examinando la clase. Dentro de las clases un atributo tiene al menos un nombre. El tipo del atributo puede especificarse después del nombre utilizando: Tipo. Los posibles tipos de atributos incluyen tipos de datos primitivos, como el entero y el String, tipos de datos compuestos, por ejemplo, una fecha, una enumeración o clases definidas por el usuario Las operaciones se caracterizan por su nombre, sus parámetros y el tipo de tipo de su valor de retorno. Cuando se llama a una operación en un programa, se ejecuta el comportamiento asignado a esta operación. En los lenguajes de programación, una operación corresponde a una declaración de método. El diagrama de clases no es adecuado para describir el comportamiento de los objetos en detalle ya que sólo modela las firmas de las operaciones que los objetos proporcionan. En un diagrama de clases, el nombre de la operación va seguido de una lista de parámetros entre paréntesis. La propia lista puede estar vacía. Un parámetro se representa de forma similar a un atributo. La única información obligatoria es el nombre del parámetro. La visibilidad de los atributos y las operaciones especifica quién tiene y quién no tiene puede acceder a ellos. Si un atributo u operación no tiene especificada una visibilidad, no se asume ninguna visibilidad por defecto. Los atributos suelen definirse a nivel de instancia. Si, por ejemplo, una clase se realiza en un lenguaje de programación, se reserva memoria para cada atributo de un objeto cuando se crea. Estos atributos también se denominan variables de instancia o atributos de instancia. Estas variables también se denominan atributos estáticos o atributos de clase. Los contadores del número de instancias de una clase o constantes como π se realizan a menudo como atributos estáticos. En el diagrama de clase, los atributos estáticos están subrayados, al igual que las operaciones estáticas. Una asociación binaria nos permite asociar las instancias de dos clases entre sí. Las relaciones se muestran como aristas (línea continua) entre las clases asociadas. Una asociación binaria nos permite asociar las instancias de dos clases entre sí. Las relaciones se muestran como aristas (línea continua) entre las clases asociadas implicadas. La arista puede etiquetarse con el nombre de la asociación seguido opcionalmente de la dirección de lectura, un pequeño triángulo negro. Existen multiplicidades para las asociaciones n-arias no hay direcciones de navegación para las asociaciones n-arias; sin embargo, las multiplicidades de asociaciones y nombres de roles son posibles. Las multiplicidades definen cuántos objetos de un rol/clase pueden ser asignados a una (n - 1)-tupla fija de objetos de los otros roles/clases. Dentro de las clases de asociación si desea asignar atributos u operaciones a la relación entre una o más clases una o más clases en lugar de a una clase en sí, puede hacerlo utilizando una clase de asociación. Si en una relación intervienen más de dos objetos asociados, puede modelarla mediante una asociación n-aria. Una asociación n-aria se representa con un diamante hueco en el centro. El diamante está conectado con todos los socios de la relación mediante una arista no dirigida. El nombre de la asociación se especifica junto al diamante. No hay direcciones de navegación para las asociaciones n-arias; sin embargo, las multiplicidades y los nombres de los roles son posibles. Las multiplicidades definen cuántos objetos de un rol/clase pueden ser asignados a una (n - 1)-tupla fija de objetos de los otros roles/clases. Una agregación es una forma especial de asociación que se utiliza para expresar la agregación que las instancias de una clase son partes de una instancia de otra clase. UML distingue entre dos tipos: la agregación compartida y la composición. Ambas se representan con un diamante en el extremo de la asociación de la clase que representa el "todo". La diferenciación entre composición Relación parte-todo y la agregación compartida se indica mediante un diamante sólido para una composición y un diamante hueco para una agregación compartida. Herencia de la relación de generalización expresa que las características (tributos y operaciones de la superclase a la subclase) y asociaciones que se especifican para una clase general (superclase) se transmiten a sus subclases. Las clases que no pueden ser instanciadas se modelan como abstractas. Se trata de clases para las que no hay objetos, sólo se pueden instanciar sus subclases pueden ser instanciadas. Las clases abstractas se utilizan exclusivamente para destacar características comunes de sus subclases Los atributos, parámetros y valores de retorno de las operaciones tienen un tipo que especifica las formas concretas que pueden adoptar. Por ejemplo, el nombre de una persona tieneel tipo String. Un tipo puede ser una clase o un tipo de datos. Las instancias de los tipos de datos también se conocen como sus valores. A diferencia de las instancias de las clases (objetos), los valores no tienen identidad propia. Si dos valores son idénticos, no se pueden diferenciar. Los diagramas de clases suelen crearse con la intención de implementar los elementos modelados en un lenguaje de programación orientado a objetos. Como muchos de los conceptos del diagrama de clases están disponibles de forma idéntica o forma idéntica o similar en lenguajes de programación orientados a objetos como Java C#, o C++, en muchos casos la traducción puede realizarse automáticamente y sólo requiere una intervención manual mínima. Referencia Kappel, G., Huemer, C., Scholz, M., & Seidl, M. (2015). UML @ Classroom. Springer.
Compartir