18
Diseño de Sistemas de Información Héctor Cuadra

Diagrama de UML - chitita.uta.clchitita.uta.cl/cursos/2010-2/0001282/recursos/r-6.pdf · En UML se proporciona una escasa caracterización de la agregación. Esta relación puede

Embed Size (px)

Citation preview

Diseño de Sistemas de Información

Héctor Cuadra

Diagrama de clases El Diagrama de Clase es el diagrama principal de

análisis y diseño para un sistema. En él, la estructurade clases del sistema se especifica, con relaciones entreclases y estructuras de herencia. Durante el análisis delsistema, el diagrama se desarrolla buscando unasolución ideal. Durante el diseño, se usa el mismodiagrama, y se modifica para satisfacer los detalles delas implementaciones.

Ejemplo

Mecanismos de abstracción Clasificación / Instanciación

Composición / Descomposición

Agrupación / Individualización

Especialización / Generalización

La clasificación es uno de los mecanismos de abstracción más utilizados. La clase define el ámbito de definición de un conjunto de objetos, y cada objeto pertenece a una clase, Los objetos se crean por instanciación de las clases.

Cada clase se representa en un rectángulo con tres compartimientos:

nombre de la clase

atributos de la clase

operaciones de la clase

ClaseLos atributos de una clase no deberían sermanipulables directamente por el resto de objetos. Por esta razón se crearon niveles de visibilidad para loselementos que son:(-) Privado : es el más fuerte. Esta parte es totalmente

invisible (excepto para clases friends en terminología C++) (#) Los atributos/operaciones protegidos están visibles para

las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones públicos son visibles a otras

clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación)

Ejemplos

Relaciones entre clases:

Los enlaces entre objetos pueden

representarse entre las respectivas clases y

sus formas de relación son:

Asociación y Agregación (vista como un caso particular de asociación)

Generalización/Especialización.

Las relaciones de Agregación y Generalización

forman jerarquías de clases.

Ejemplos (Asociación)

ProfesorDepartamento

10..1

director

1

dirige

0..1

La asociación expresa una conexión bidireccional entre objetos. Una asociación es una abstracción de la relación existente en los enlaces entre los objetos. Puede determinarse por la especificación de multiplicidad (mínima...máxima)

1..1 Uno y sólo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)

Clase Asociación Una clase asociación (association class) es un

elemento de modelado que tiene propiedades tanto de asociación como de clase. Una clase asociación puede ser vista tanto como una asociación que también tiene propiedades de clase, o como una clase que también tiene propiedades de asociación. Se representa gráficamente como una clase unida por una línea punteada a una asociación.

Ejemplos (Clase Asociación)

Empresa Empleado

1..** 1..**

trabajadoresempleador

Cargo

nombre

sueldo 0..1

1..*

superior

subordinado 1..*

0..1

Agregación. La agregación representa una relación parte_de

entre objetos. En UML se proporciona una escasa caracterización de la agregación. Esta relación puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes.

ComposiciónAgregación disjunta y estricta : las partes sólo existen asociadas al compuesto (solo se accede a ellas a través del compuesto)

dependencia Relación (mas débil que un asociación) que muestra la

relación entre un cliente y el proveedor de un servicio usado por el cliente.

Cliente es el objeto que solicita un servicio

Servidor es el objeto que provee un servicio

Gráficamente la dependencia se muestra como una línea discontinua con una punta de flecha que apunta del cliente al proveedor.

ejemplo

Generalización:

Permite gestionar la complejidad mediante un ordenamiento taxonómico de clases, se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización. La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los nombres usados: clase padre -clase hija. Otros nombres: superclase - subclase, clase base - clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas. La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas. Generalización y Especialización no son operaciones reflexivas ni simétricas pero sí transitivas. La especialización es una técnica muy eficaz para la extensión y reutilización.

Ejemplos (Generalización)

Trabajador

Directivo Administrativo Obrero

{ disjunta, completa }

Taxonomía de la clase vehículo

Ejemplos

Avión militar Avión comercial

Avión de carga Avión de pasajeros

Motor Vendedor de billetes

Avión

1..4

1

1..4

1

Piloto

Reserva

n

1

n

1

Línea aérea

Vuelon1 n1

1..2

n

1..2

n

n1 n1

1

n

1

n{ disjunta, completa }

{ disjunta, completa }