Diagrama de UML

Anuncio
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 estructura
de clases del sistema se especifica, con relaciones entre
clases y estructuras de herencia. Durante el análisis del
sistema, el diagrama se desarrolla buscando una
solución ideal. Durante el diseño, se usa el mismo
diagrama, y se modifica para satisfacer los detalles de
las 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
Clase
Los atributos de una clase no deberían ser
manipulables directamente por el resto de objetos.
Por esta razón se crearon niveles de visibilidad para los
elementos 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)
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)
Departamento
dirige
0..1
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)
director
Profesor
1
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)
empleador
trabajadores
Empresa
Empleado
1..*
*
Cargo
nombre
sueldo
subordinado 1..*
superior
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ón
Agregació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
{ disjunta, completa }
Directivo
Administrativo
Obrero
Taxonomía de la clase vehículo
Ejemplos
Motor
1..4
1
Avión
1
n
1..2
1
n
n
Vuelo
n
{ disjunta, completa }
1
Avión militar
Vendedor de billetes
Piloto
Avión comercial
Línea aérea
{ disjunta, completa }
Avión de carga
Avión de pasajeros
1
n
Reserva
Descargar