16
Objetos Modelo de Clases UML

Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Embed Size (px)

Citation preview

Page 1: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

ObjetosModelo de Clases UML

Page 2: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

• El Lenguaje de Modelado Unificado. G. Booch, J. Rumbaugh,

I. Jacobson. Addison Wesley, 1999.

Bibliografía

Page 3: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

1. Diagrama de clases UML

1.1. Clases

1.2. Asociaciones

1.3. Generalizaciones

2. Mecanismos de extensión

2.1. Restricciones

3. Ejemplo

Índice de Contenido

Page 4: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Clases

1. Diagrama de clases UML 1.1. Clases

Persona

nombre

dirección

teléfonos

crear()

eliminar()

Nombre

Atributo: tipo = valor {propiedad}

Método (parámetros):tipo {propiedad}

Responsabilidades

Persona

Descripción de un conjunto de objetos que comparten los mismos atributos,

operaciones, relaciones y semántica.

Pueden ser concretas o abstractas

Visibilidad:

+ público

# protegido

- privado

Page 5: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Asociación

Nombre

rol rol

multiplicidad multiplicidad

navegavilidad

Trabaja_en

empleado patrón

1..* 1Persona Empresa

1.2. Asociaciones1. Diagrama de clases UML

Multiplicidad:0, 1 N..M* 3..*1 2..53, 4, 6..*

Las asociaciones representan relaciones existentes entre clases.

Asociaciones: - Binarias

- Reflexivas

- Ternarias

Dirección del nombre

Rol empleado: Relación de Persona con respecto a Empresa

Page 6: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Asociación n-aria

* *

Equipo Temporada

Las asociaciones representan relaciones existentes entre más de dos

clases.

Jugador

*jugador

añoequipo

1.2. Asociaciones1. Diagrama de clases UML

Page 7: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Clases de Asociación

empleado patrón

1..* 1Persona Empresa

En una asociación entre dos clases, la propia asociación puede tener

atributos.

Trabaja_En

Descripción

Fecha_Contratación

Salario

1.2. Asociaciones1. Diagrama de clases UML

Page 8: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Agregación:

Universidad Estudiante

Composición (agregación física):

Parte

Todo

Universidad Departamento

1..* 1..*

1 1..*

Una agregación es una asociación que permite representar objetos

compuestos. Cuando los objetos de una clase (TODO) están compuestos

por la unión de los objetos de otra clase (PARTE) existe una agregación.

1.2. Asociaciones1. Diagrama de clases UML

Page 9: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Generalización:

Padre

Hijo Hijo Persona

Hombre MujerParcial

Exclusiva

La generalización es una asociación entre una clase más general (super-

clase o clase padre) y una clase más específica (subclase o clase hija).

Lleva implícito dos principios: herencia (simple o múltiple) e inclusión.

1.3. Generalización1. Diagrama de clases UML

Page 10: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Herencia Múltiple:

Animal

Bípedo Cuadrúpedo

Con Pelos

Con Plumas

Con Escamas

Herbívoro

Carnívoro

cubertura

cobertura

cobertura

comida

nro patas nro patas

comida

Conejo

1.3. Generalización1. Diagrama de clases UML

Page 11: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Mecanismos de extensión de UML

2. Mecanismos de extensión

• Estereotipos: palabras claves que alteran el

significado o funcionalidad de un elemento.

<<persistent>>

• Valor etiquetado: comentarios que permiten añadir

información al elemento. {versión=3.1}

• Restricción: limitan la funcionalidad de un

elemento. {edad>18}

•Permiten adecuar la semántica de los elementos de modelos

particulares

•Extienden las posibilidades de anotación

Page 12: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Restricciones:

Empleado

Curso

{restricción} OCL

Restricciones sobre asociaciones

ImparteRecibe {or}

Empleado

Departamento

DirigePertenece

{subconjunto}

Curso

Alumnos

{ordenado}

2. Mecanismos de extensión 2.1. Restricciones

Page 13: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Restricciones sobre generalizaciones

2. Mecanismos de extensión 2.1. Restricciones

Persona

AlumnoDocente

parcial y solapada

{overlapping, incomplete}

total y solapada

{overlapping, complete}

Persona

AlumnoEmpleado

Empleado

VendedorAnalista

{disjoint, incomplete}

parcial y exclusiva

Persona

MujerHombre

{disjoint, complete}

total y exclusiva

Page 14: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Consejos prácticos. No comenzar construyendo diagramas de clases;

primero, es necesario comprender el problema. Intentar mantener el Modelo sencillo. Seleccionar con cuidado los nombres. No introducir punteros o referencias a otros objetos

como atributos. Intentar evitar asociaciones n- arias. No intentar establecer el grado de multiplicidad

perfecto al principio. No introducir atributos de enlace dentro de la clase. Utilizar asociaciones cualificadas donde sea posible. Intentar evitar generalizaciones profundamente

anidadas. Intentar asociaciones uno a uno. No se sorprenda si su modelo requiere una revisión. Documentar siempre los Modelos de Objetos.

Page 15: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

Un estudio de arquitectura desea crear una base de datos para gestionar sus proyectos. Nos dan

las siguientes especificaciones:

• Cada proyecto tiene un código y un nombre. Un proyecto tiene uno y solo un jefe de

proyecto y un jefe de proyecto sólo puede estar involucrado en un proyecto o en ninguno.

• De cada jefe de proyecto se desean recoger sus datos personales (código, nombre,

dirección y teléfono). Un jefe de proyecto se identifica por un código. No hay dos nombres

de jefe de proyecto con el mismo nombre.

• Un proyecto se compone de una serie de planos, pero éstos se quieren guardar de modo

independiente al proyecto. Es decir, si en un momento dado se dejara de trabajar en un

proyecto, se desea mantener la información de los planos asociados.

• De los planos se desea guardar su número de identificación, la fecha de entrega, los

arquitectos que trabajan en él y un dibujo del plano general con información acerca del

número de figuras que contiene.

• Los planos tienen figuras. De cada figura se desea conocer, el identificador, el nombre, el

color, el área y el perímetro. Además, de los polígonos se desea conocer el número de

líneas que tienen, además de las líneas que lo forman. El perímetro se desea que sea un

método diferido; el área se desea implementarlo como genérico para cualquier tipo de

figura, pero además se desea un método específico para el cálculo del perímetro de los

polígonos.

• De cada líneas que forma parte de un polígono se desea conocer el punto de origen y el de

fin (según sus coordenadas, X e Y), así como la longitud. Cada línea tiene un identificador

que permite diferenciarlo del resto. La longitud de la línea se puede calcular a partir de sus

puntos origen y final.

3. Ejemplo

Page 16: Objetos Modelo de Clases UML - kybele.etsii.urjc.es · Diagrama de clases UML 1.1. Clases Persona nombre dirección teléfonos crear() eliminar() Nombre Atributo: tipo = valor {propiedad}

La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su

servicio, emplear una base de datos para almacenar la información

referente a las películas que ofrece en alquiler. Esta información es la

siguiente:• Una película se caracteriza por su título, nacionalidad, productora y

fecha (p.e., “Quo Vadis”, “Estados Unidos”, “M.G.M.”, 1955).

• En una película pueden participar varios actores (nombre,

nacionalidad, sexo) algunos de ellos como actores principales.

• Una película está dirigida por un director (nombre, nacionalidad).

• De cada película se dispone de uno o varios ejemplares diferenciados

por un número de ejemplar y caracterizados por su estado de

conservación.

• Un ejemplar se puede encontrar alquilado a algún cliente (DNI,

nombre, dirección, teléfono). Se desea almacenar la fecha de

comienzo del alquiler y la de devolución.

• Cada socio puede tener alquilados, en un momento dado, 4

ejemplares como máximo.

• Un socio tiene que ser avalado por otro socio que responda de él en

caso de tener problemas en el alquiler.

Enunciado 1