Está en la página 1de 8

Computación e Informática Taller de Modelamiento de Software

Diagramas de Clases ~1~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

DIAGRAMAS DE CLASES
RELACIONES ENTRE CLASES
Una vez que tengamos todas nuestras clases, será necesario que estas se asocien, con el
fin de mostrar la dependencia entre ellas.

Las clases se pueden asociar de la siguiente manera:

1. ASOCIACIÓN (Binaria)

Cuando una clase se vincula con


otra clase, para ello se trazará una
línea que la una, donde,
adicionalmente se indicará la
multiplicidad entre ellos.

Cuando una clase se asocia con


otra cada una de ellas juega un
papel dentro de tal asociación.
Puede representar estos papeles
en el diagrama escribiéndolos
cerca de la Línea que se
encuentra junio a la clase que
juega el papel correspondiente.

MULTIPLICIDAD DE LAS ASOCIACIONES:


La multiplicidad de una asociación determina cuantos objetos de cada tipo intervienen en
la relación:

El número de instancias de una clase que se relacionan con UNA instancia de la otra
clase.

 Cada asociación tiene dos multiplicidades (una para cada extreme de la relación).
 Para especificar la multiplicidad de una asociación hay que indicar la multiplicidad
mínima y la multiplicidad máxima.

 Cuando la multiplicidad mínima es 0, la relación es opcional.


 Una multiplicidad mínima mayor o igual que 1 establece una relación obligatoria.

Diagramas de Clases ~2~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

Clases de Asociación (Atributos de Enlace)

Una asociación al igual que una clase puede contener atributos y operaciones.
Cuando este sea el caso usted tendrá una clase de asociación.

Puede concebir a una clase de asociación de la misma forma en que lo haría con
una clase estándar y utilizará una línea discontinua para conectarla a la línea de
asociación. Una clase de asociación puede tener asociaciones con otras clases.

Tener en cuenta que, esta asociación solo se produce cuando existe una relación con
multiplicidad de muchos a muchos, y adicionalmente, existan atributos que describan
la relación.

Diagramas de Clases ~3~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

2. AGREGACION Y COMPOSICION

Para modelar objetos complejos, no bastan los tipos de datos básicos que proveen los
lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer
objetos que son instancias de clases definidas por el desarrollador de la aplicación,
tenemos dos posibilidades:

 Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del


objeto incluido es independiente del que lo incluye. Este tipo de relación es
comúnmente llamada Agregación (el objeto base utiliza al incluido para su
funcionamiento). La agregación (por Referencia) se destaca por un rombo
transparente.

 Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto
incluido está condicionado por el tiempo de vida del que lo incluye. Este tipo de
relación es comúnmente llamada Composición (el Objeto base se construye a
partir del objeto incluido, es decir, es "parte/todo"). La composición (por Valor) se
destaca por un rombo relleno.

Ejemplo1

Ejemplo2

Un automóvil está
compuesto por un motor y
carrocería, ya que si se
destruye el automóvil, se
destruyen las clases de
composición pero esto no
afecta a la clase conductor
ya que es una agregación.

Diagramas de Clases ~4~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

3. GENERALIZACION
Indica que una subclase
hereda los métodos y atributos
especificados por una Super
Clase, por ende la Subclase
además de poseer sus propios
métodos y atributos, poseerá
las características y atributos
visibles de la Super Clase
(public y protected), ejemplo:

En la figura se especifica que


Auto y Camión heredan de
Vehículo, es decir, Auto posee
las Características de Vehículo
(Precio, VelMax, etc) además
posee algo particular que es
Descapotable, en cambio
Camión también hereda las
características de Vehiculo
(Precio, VelMax, etc) pero
posee como particularidad
propia Acoplado, Tara y Carga.

Cabe destacar que fuera de este entorno, lo único "visible" es el método


Caracteristicas aplicable a instancias de Vehículo, Auto y Camión, pues tiene
definición pública, en cambio atributos como Descapotable no son visibles por ser
privados.

Ejemplo Generalización:

La orientación a objetos se refiere a esto como herencia. El UML también lo denomina


generalización. Una clase (la clase secundaria o subclase) puede heredar los atributos y
operaciones de otra (la clase principal o superclase). La clase principal (o madre) es más
genérica que la secundaria (o hija).

Diagramas de Clases ~5~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

CASOS PRACTICOS

CASO 1: RESTAURANT

Se desea construir una base de datos que almacene la carta de un restaurante.

 Para cada plato, se desea obtener su nombre, descripción, nivel de dificultad (de
elaboración), una foto y el precio final para el cliente. Cada plato pertenece a una
categoría.

 Las categorías se caracterizan por su nombre (Menú, Ejecutivo o Rápido) y una breve
descripción.

 Cada categoría tiene un encargado, necesitamos también la información de esta persona


que a veces es también responsable de más de una categoría.

 Además de los platos, se desea conocer la lista de ingredientes necesarios para su


elaboración y una breve descripción de estos. Por lo general diariamente se preparan 50
porciones x plato por lo que interesa la cantidad del ingrediente a utilizar.

CASO 2: CUARTEL MILITAR

El Ministerio de Defensa desea diseñar una Base de Datos para llevar un cierto control de los
soldados que realizan el servicio militar. Los datos significativos a tener en cuenta son:

 Un soldado se define por su código de soldado (único), su nombre y apellidos, y su grado


(raso, cabo, sargento).

 Existen varios cuarteles, cada uno se define por su código de cuartel, nombre y ubicación.

 Hay que tener en cuenta que existen diferentes Cuerpos del Ejército (Infantería, Artillería,
Armada, ....), y cada uno se define por un código de Cuerpo y denominación.

 Los soldados están agrupados en compañías, siendo significativa para cada una de éstas,
el número de compañía y la actividad principal que realiza.

 Se desea controlar los servicios que realizan los soldados (guardias, imaginarias,
cuarteleros, ...), y se definen por el código de servicio y descripción.

Consideraciones de diseño:

 Una compañía pertenece a un Cuerpo y en este cuerpo existe más de una compañía.

 Un soldado pertenece a una única compañía pero en el tiempo puede pertenecer a más de
una durante el servicio militar. A una compañía pueden pertenecer más de un soldado.
 Un cuerpo pertenece a un cuartel y en un cuartel pueden haber más de un cuerpo.

 Un soldado realiza varios servicios a lo largo de su vida en el cuartel. Un mismo servicio


puede ser realizado por más de un soldado, siendo significativa la fecha de realización

Diagramas de Clases ~6~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

CASO 3: INSTITUTO

La BD del instituto, almacena información sobre todas las personas que la conforman. De
cualquier persona se almacena su nombre, dirección, teléfono y email. Los profesores además
tienen el departamento al que pertenecen y su dedicación. Los alumnos que están matriculados
además se les considera: un número de expediente y el nombre de la carrera a la que
pertenecen. Del personal se almacena la unidad administrativa a la que pertenecen y su
categoría profesional.

CASO 4: AGENCIA DE VIAJES

Una cadena de agencias de viajes desea disponer de una Base de Datos que contemple
información relativa al hospedaje y vuelos de los turistas que la contratan.
Los datos a tener en cuenta son:

 La cadena de agencias está compuesta por un conjunto de sucursales. Cada sucursal viene
definida por el código de sucursal, dirección y teléfono.

 La cadena tiene contratados una serie de hoteles de forma exclusiva. Cada hotel estará
definido por el código de hotel, nombre, dirección, ciudad, teléfono y número de plazas
disponibles.

 De igual forma, la cadena tiene contratados una serie de vuelos regulares de forma
exclusiva. Cada vuelo viene definido por el número de vuelo, fecha y hora, origen y destino,
plazas totales y plazas de clase turista de las que dispone.

 La información que se desea almacenar por cada turista es el código de turista, nombre y
apellidos, dirección y teléfono.

Por otra parte, hay que tener en cuenta la siguiente información:

 A la cadena de agencias le interesa conocer que sucursal ha contratado el turista.

 A la hora de viajar el turista puede elegir cualquiera de los vuelos que ofrece la cadena, y en
que clase (turista o primera) desea viajar.

 De igual manera, el turista se puede hospedar en cualquiera de los hoteles que ofrece la
cadena, y elegir el régimen de hospedaje (media pensión o pensión completa). Siendo
significativa la fecha de llegada y de partida.

CASO 5: INFORMACION POLICIAL

La Policía quiere crear una base de datos sobre la seguridad en algunas entidades bancarias.
Para ello tiene en cuenta:

 Que cada entidad bancaria se caracteriza por un código y por el domicilio de su Central.
 Que cada entidad bancaria tiene más de una sucursal que también se caracteriza por un
código y por el domicilio, así como por el número de empleados de dicha sucursal.
 Que cada sucursal contrata, según el día, algunos vigilantes jurados, que se caracterizan por
un código y su edad. Un vigilante puede ser contratado por diferentes sucursales (incluso de

Diagramas de Clases ~7~ Ing. Fabián Silva Alvarado


Computación e Informática Taller de Modelamiento de Software

diferentes entidades), en distintas fechas y es un dato de interés dicha fecha, así como si se
ha contratado con arma o no.
 Por otra parte, se quiere controlar a las personas que han sido detenidas por atracar las
sucursales de dichas entidades. Estas personas se definen por una clave (código) y su
nombre completo.
 Alguna de estas personas están integradas en algunas bandas organizadas y por ello se
desea saber a qué banda pertenecen, sin ser de interés si la banda ha participado en el
delito o no.
 Dichas bandas se definen por un número de banda y por el número de miembros.
 Así mismo, es interesante saber en qué fecha ha atracado cada persona una sucursal.
 Evidentemente, una persona puede atracar varias sucursales en diferentes fechas, así como
que una sucursal puede ser atracada por varias personas.

Diagramas de Clases ~8~ Ing. Fabián Silva Alvarado

También podría gustarte