8/14/2019 Cap4 8 TemaDiagramas de Clases
1/22
DIAGRAMA DE CLASES
8/14/2019 Cap4 8 TemaDiagramas de Clases
2/22
Diagramas UML para Anlisis:
El Diagrama de Clases es el diagramaprincipal para el anlisis y diseo delsistema
Un diagrama de clases presenta las clasesdel sistema con sus relaciones estructuralesy de herencia
La definicin de clase incluye definicionespara atributos y operaciones
El modelo de casos de uso debera aportarinformacin para establecer las clases,objetos, atributos y operaciones
8/14/2019 Cap4 8 TemaDiagramas de Clases
3/22
Elementos de UML de los diagramasde clases Clases, su estructura y su
comportamiento Relaciones de asociacin, agregacin,
dependencia, y herencia
Indicadores de multiplicidad ynavegacin
Nombres del papel que juega cada claseen una relacin
Ejemplo de la Notacin de una Clase
8/14/2019 Cap4 8 TemaDiagramas de Clases
4/22
Ejemplo de la Notacin de una Clase Atributos:Los atributos o caractersticas de una
Clase pueden ser de tres tipos, los que definen elgrado de comunicacin y visibilidad de ellos con el
entorno, estos son: public(+): Indica que el atributo ser visible tantodentro como fuera de la clase, es decir, es accesibledesde todos lados.
private(-): Indica que el atributo slo ser accesibledesde dentro de la clase (slo sus mtodos lo pueden
accesar). protected(#): Indica que el atributo no ser accesibledesde fuera de la clase, pero si podr ser accesado pormtodos de la clase adems de las subclases que sederiven.
8/14/2019 Cap4 8 TemaDiagramas de Clases
5/22
+Nombre : char
#Edad : int
-Sueldo : double
Profesor
Ejemplo de la Notacin de una Clase Atributos
8/14/2019 Cap4 8 TemaDiagramas de Clases
6/22
Ejemplo de la Notacin de una Clase Mtodos:Los mtodos u operaciones de una clase
son la forma en como sta interacta con su entorno,stos pueden tener las caractersticas:
public (+): Indica que el mtodo ser visible tantodentro como fuera de la clase, es decir, esaccsesible desde todos lados.
private (-): Indica que el mtodo slo seraccesible desde dentro de la clase (slo otrosmtodos de la clase lo pueden accesar).
protected(#): Indica que el mtodo no seraccesible desde fuera de la clase, pero si podr seraccesado por mtodos de la clase adems demtodos de las subclases que se deriven (verherencia).
8/14/2019 Cap4 8 TemaDiagramas de Clases
7/22
+Evaluar() : decimal
#PrepararClase()-Eximir() : bool
+Nombre : char
#Edad : int
-Sueldo : double
Profesor
Ejemplo de la Notacin de una Clase Mtodos
8/14/2019 Cap4 8 TemaDiagramas de Clases
8/22
Relaciones entre las Clases Asociacin
Una asociacin es una conexin bi-direccional entre clases Una asociacin se representa como una lnea que conecta las
clases relacionadas
Agregacin Una agregacin es una relacin ms fuerte: entre el todo y laspartes que lo componen
Una agregacin se representa como una lnea que conecta lasclases relacionadas con un rombo junto a la clase querepresenta el todo
Dependencia Una relacin de dependencia es una relacin ms dbil: la que
hay entre un cliente y un proveedor cuando el cliente no tieneconocimiento semntico del proveedor
Una dependencia se representa como una lnea punteada queapunta del cliente al proveedor
8/14/2019 Cap4 8 TemaDiagramas de Clases
9/22
Relaciones entre las Clases Asociacin
Se lee como Un Profesor es director de 0 1 Departamento
Un Departamento es dirigido por un Director
Departamento Profesor -dirigido
0..1
-director
1
Roles
8/14/2019 Cap4 8 TemaDiagramas de Clases
10/22
Relaciones entre las Clases Asociacin
Clase Asociacin
Definicin Segn OMG: "Un elemento demodelado que tiene ambas propiedades deasociacin y de clase. Una Clase Asociacin puedeser vista como una asociacin que tambin tiene
propiedades de clase, o como una clase quetambin tiene propiedades de asociacin. No
solamente conecta un conjunto de clasificadoressino que tambin define un conjunto decaractersticas que pertenecen a la relacin en smisma y no a cualquiera de los clasificadores."
8/14/2019 Cap4 8 TemaDiagramas de Clases
11/22
EmpleadoEmpresa -empleador
*
-trabajadores
1..*
Cargo
-Sueldo : double
-Nombre : char
* *
Relaciones entre las Clases Asociacin
Clase Asociacin
8/14/2019 Cap4 8 TemaDiagramas de Clases
12/22
Relaciones entre las Clases Asociacin
Multiplicidad y Navegacin La multiplicidad define cmo varios objetos participan en las
relaciones
La multiplicidad de una relacin es el nmero de ejemplares deuna clase relacionados con UNA instancia de otra clase
Para cada asociacin y agregacin, hay dos decisiones demultiplicidad que tomar: una para cada extremo de la relacin
Aunque las asociaciones y las agregaciones son bi-direccionalespor defecto, a veces es deseable restringir la navegabilidad de larelacin a una sola direccin
Si la navegabilidad est restringida, se aade una punta de flechapara indicar la direccin de navegacin
Departamento Profesor -dirigido
0..1
-director
1
8/14/2019 Cap4 8 TemaDiagramas de Clases
13/22
Relaciones entre las Clases Asociacin
Multiplicidad y Navegacin
Ejemplos de multiplicidades 0..1
1
0..*
*
1..*
1..6
1..3,7..10,15,19..*
8/14/2019 Cap4 8 TemaDiagramas de Clases
14/22
Relaciones entre las Clases Agregacin
Tipo especial de asociacin
Connotacin semntica de posesin, contencino composicin
Usado en modelos de clases para mostrar comolos elementos ms complejos se construyendesde una coleccin de simples elementos (ej.un automvil de ruedas, neumticos, motor,etc.)
8/14/2019 Cap4 8 TemaDiagramas de Clases
15/22
Relaciones entre las Clases Agregacin
Notacin
Automovil
Ruedas Chasis
1*
1*
8/14/2019 Cap4 8 TemaDiagramas de Clases
16/22
Relaciones entre lasClases
Composicin
Agregacin conconnotacin deposesin
Coincidencia en tiempode vida entre el todo ylas partes
Ventana
Barra Encabezado Panel
1
-Cuerpo1
1
-Titulo1
1
-Deslizador*
8/14/2019 Cap4 8 TemaDiagramas de Clases
17/22
Relaciones entre las Clases Dependencia
Refleja relacin semntica entre dos clases
No representa asociacin entre ejemplares
Refleja que el cambio de una clase puedeafectar a la otra
8/14/2019 Cap4 8 TemaDiagramas de Clases
18/22
Relaciones entre las Clases Dependencia
Aplicacion
Ventana
8/14/2019 Cap4 8 TemaDiagramas de Clases
19/22
Herencia Herencia es la relacin entre una
superclase y sus subclases
Hay dos maneras de encontrar laherencia:
Generalizacin
Especializacin
Los atributos, mtodos, y/o relacionescomunes deben representarse al nivelaplicable ms alto de la jerarqua
8/14/2019 Cap4 8 TemaDiagramas de Clases
20/22
Herencia Definicin de Generalizacin de OMG
Una generalizacin es una relacin
taxonmica entre un clasificador msgeneral y un clasificador ms especfico.Cada instancia del clasificador especfico estambin es una instancia indirecta del
clasificador general. As, el clasificadorespecfico hereda las caractersticas delclasificador ms general."
8/14/2019 Cap4 8 TemaDiagramas de Clases
21/22
Herencia
-Nombre : char
-Password : char
UsuarioSistema
-Cargo : char
Profesor
-AoIngreso : int
Estudiante
-Nombre : char
-Password : char
UsuarioSistema
-Cargo : char
Profesor
-AoIngreso : int
Estudiante
8/14/2019 Cap4 8 TemaDiagramas de Clases
22/22
22
Diagrama de Clases: Punto de Venta