Introducción al Diagrama de Clases UML

JosAntonioSandovalAc 338 views 24 slides Apr 23, 2023
Slide 1
Slide 1 of 24
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24

About This Presentation

Introducción ápida al diagrama de clases UML


Slide Content

TECNOLÓGICO NACIONAL DE MÉXICO Centro Nacional de Investigació n y Desarrollo Tecnológico MSI . José Antonio Sandoval Acosta Seminario Técnico Diagrama de Clases Febrero de 2023

UML El lenguaje UML (en inglés, Unified Modeling Language ) es un lenguaje para: Especificación, Visualización, Construcción, y Documentación de las partes de un sistema de software. Consiste en una colección de las mejores prácticas de ingeniería que han mostrado ser exitosas en el modelado de sistemas complejos.

DIAGRAMA DE CLASES Las clases son dibujadas con un rectángulo, dividido en tres partes: El nombre de la clase. Los atributos. Las operaciones correspondientes. Opcionalmente las responsabilidades que cada clase tiene. Además, el diagrama contiene: Las relaciones entre clases y características de esas relaciones.

Representación de una clase

El nombre de la clase debe ser lo menos ambiguo posible, usualmente un sustantivo. Atributos : Los atributos describen las características de los objetos. Poseen un tipo , que nos indica qué clase de atributo es. Si bien existen ciertos tipos primitivos, como enteros , booleanos y reales , cualquier tipo puede ser usado, incluso otras clases. Sintaxis: nombre<:tipo> <= valor_inicial > ubicacion : Cadena responsable : Cadena CajeroAutomatico

La restricción más importante es que los atributos son generalmente visibles únicamente por la clase que los contiene .

Las operaciones son utilizadas para manipular los atributos o realizar consultas. La sintaxis para describir una operación es la siguiente: nombre_operación (<parámetros>) <: tipo_resultado > Cuenta + accountNum:int - name:string ~ retiro(): double

Las responsabilidades son las obligaciones de una clase y son definidas por el usuario. Si bien, existe un compartimiento dentro de la clase para la especificación de las responsabilidades, éstas son de carácter opcional.

Dependiendo del nivel de detalle que queremos alcanzar en el modelo, se pueden obviar algunas de las divisiones del gráfico de clases. Esto permite simplificar el diagrama completo, de acuerdo al nivel de abstracción necesario. Puede utilizarse, por ejemplo

Notas en el diagrama de clases A los gráficos de clases se les puede agregar notas o comentarios sobre algún aspecto interesante de la clase. Estas notas pueden incluir observaciones sobre la clase, alguna restricción de uso, e incluso el pseudo -código de algunas operaciones. Se grafican por medio de un rectángulo con la esquina superior derecha plegada, como si fuera una hoja, y se une con una línea al elemento de la clase al cual corresponde la nota.

Representación de las Notas

Las relaciones más importantes entre clases son: Asociación Herencia Agregación Composición Realización Dependencia

Asociación (Conexión entre clases) Una asociación es una conexión entre clases. Significa que los objetos de dos clases tendrán un vínculo bidireccional en común, el cual puede interpretarse como “para cada X existe un Y”. Se representa por medio de una línea continua entre dos clases.

Multiplicidad Se utiliza multiplicidad cuando no necesariamente los vínculos entre objetos son de uno a uno. Se especifica en cada extremo del vínculo, a través de un rango, cuántos objetos pueden estar vinculados.

Rangos Algunos ejemplos de rangos son los siguientes: Cuando no se especifica ningún rango, se asume el valor uno (1) por defecto. Puede agregarse una flecha a la línea, indicando la dirección del vínculo:

Supongamos que los requerimientos para un sistema de cajero automático precisan que desde una transacción del cajero se pueda recuperar la información de la cuenta del cliente. La dirección en las flechas de la asociación determinan en que dirección puede recorrerse una asociación en el momento de la ejecución. Una asociación sin flechas significa que se puede ir de un objeto a otro y viceversa. 1 0..*

Agregaciones (Posee/contiene) Agregación es un caso especial de asociación. Indica que una o más clases (clases componentes) forman parte de otra clase (clase agregada). Se denota con un rombo en uno de los extremos del vínculo, aquél que corresponde a la clase agregada. Puede interpretarse como “ posee (o contiene) un ”.

Composición En la composición el rombo es relleno con color e implica que si la clase compuesta se elimina, las clases que lo componen también serán eliminadas.

Generalizaciones (Herencia/Especificación/Especialización) La generalización es la relación entre una clase más general y un clase más específica. La clase más especifica (denominada subclase o clase hija ) es consistente con la clase más general (denominada superclase o clase padre ), y contiene información adicional. La generalización permite la especialización de las clases, es decir, en este caso la superclase hereda todas sus características a la subclase.

Generalizaciones Se denota con un triángulo en el extremo del vínculo correspondiente al elemento más general. La relación puede interpretarse informalmente como “ es un ”. El diagrama indica que un taxi es una clase particular de autos, con una patente (placa) extra y un código utilizado por la empresa. Son heredados de la clase Auto todos los demás atributos, como la patente oficial, el modelo, el motor, etc.

Cuando una clase posee más de una subclase, pueden organizarse en forma de árbol de la siguiente manera:

Ejemplo de diagrama de clases de una biblioteca:

Construyendo el diagrama de clases Identificar las clases, nombrarlas y definirlas con lo que sabes que son parte del modelo. Identificar, nombrar y definir las asociaciones entre pares de clases, asignar multiplicidad. Evaluar cada asociación para determinar si debe ser una agregación y cada agregación para ver si se trata de una composición Evaluar las clases para aplicar posibles generalizaciones (herencia).

¡Gracias!