Академический Документы
Профессиональный Документы
Культура Документы
En el sistema de gestin de una compaa ferroviaria se debe mantener la informacin relativa a trayectos y trenes que los realizan. Todos estos datos estn estructurados segn el siguiente diagrama de clases:
1 ofrece 1..* 1 posee 1..* 1 realiza * * *
Compaa Ferroviaria
Tren
Trayecto
*
Partida
Horario
Destino
Horario
Trnsito
Horario
Estacin
Una de las funciones que hay que disear para este sistema es la Establecimiento de un Nuevo Trayecto. La definicin de dicha funcin es: Compaa::NuevoTrayecto(ep,ed: Estacin; hp,hd: Hora; l-et: Lista[Estacin,Hora]) donde ep es una referencia a la estacin de partida, ed una referencia a la estacin de destino, hp y hd las horas de partida y destino, l-et es una lista de referencias a estaciones de trnsito y la hora de dicho trnsito. Esta funcin deber buscar un tren que est disponible e incluir el nuevo trayecto en el sistema, segn el diagrama de clases anterior. Otra de las funciones que hay que disear para este sistema es Suprimir un Trayecto. La definicin de dicha funcin es: Compaa::QuitarTrayecto( ep,ed: Estacin; hp,hd: Hora ) donde ep es una referencia a la estacin de partida, ed una referencia a la estacin de destino, y hp y hd las horas de partida y destino. Como parte de la supresin de un trayecto, esta funcin deber (1) buscar el trayecto en cuestin, (2) suprimir tanto su partida como su destino, (3) suprimir todos los trnsitos, y (4) liberar al tren que realizaba el trayecto.
Se pide: 1 El diagrama de colaboracin que corresponde a las funciones descritas anteriormente. 2 El reparto de las operaciones en el diagrama de clases de la figura.
En el sistema de gestin de una liga deportiva se debe mantener la informacin relativa a equipos y partidos. Todos estos datos estn estructurados segn el siguiente diagrama de clases:
Liga
1..*
Equipo
1 visitante
local 1
juega contra
1..*
Partido
Una de las funciones que hay que disear para este sistema es relativa a un Nuevo Partido. De esta manera, cuando un usuario vaya a incluir un nuevo partido para una liga concreta, se llamar al mtodo correspondiente indicando tanto el equipo local como el visitante.
Se pide: 1 El diagrama de colaboracin que corresponde a la funcin descrita anteriormente. 2 El reparto de las operaciones en el diagrama de clases de la figura.
INGENIERA DEL SOFTWARE DE GESTIN II PROBLEMAS DE DIAGRAMAS DE COLABORACIN "GESTIN DE VUELOS DE LAS COMPAAS AREAS"
PROBLEMA A En un Sistema de Gestin de Reservas Areas se debe guardar la informacin relativa a las compaas areas y sus vuelos, los aeropuertos, los pasajeros y sus billetes, etc. Todos estos datos estn estructurados segn el siguiente diagrama de clases:
Compaa Cdigo Denominacin Billete 1 Cdigo asignado a * 1 posee contiene * Salida Fecha y Hora Avin Cdigo Modelo Capacidad Negocios Capacidad Turista 1 sufre efecta * * Vuelo Cdigo Tarifa 1..* asignada a 1 1..* * solicita Pasajero 1 Apellidos Nombre N Pasaporte Puerta Seccin Nmero
1..*
1..* 1..*
0..1
La operacin asignacin de un nuevo slot de vuelo consiste en la inscripcin completa en el sistema de toda la informacin relativa a un nuevo vuelo asignado a una compaa. La especificacin de esta funcin es la siguiente: NuevoSlotVuelo(as,al:Aeropuerto; hs,hl: Fecha y Hora) Una vez que le llega al sistema esta peticin, se desencadena una interaccin que tiene los siguientes pasos: (1) se crea una nueva instancia para el vuelo que va a incluirse en el sistema, asignando a los aeropuertos correspondientes la salida y la llegada; (2) se busca un avin de la compaa que est disponible y, a continuacin, se asigna al vuelo y, correspondientemente, al avin se le asigna el vuelo; (3) se le adjudica una puerta de embarque en el aeropuerto de salida, buscando para ello una puerta libre en dicho aeropuerto y asignando a la puerta seleccionada el vuelo en cuestin. Otra operacin es quitar la asignacin de un slot de vuelo, con la siguiente especificacin: QuitarSlotVuelo(v:Vuelo) Se pide: 2) El diagrama de colaboracin correspondiente a las interacciones descritas anteriormente. 3) Asignar las operaciones necesarias a cada clase en el diagrama de clases.
En el sistema de gestin de un recinto industrial se debe mantener la informacin relativa a compaas, edificios y aparcamientos. Todos estos datos estn estructurados segn el siguiente diagrama de clases:
Autorizacin Departamento
1..*
Compaa
*
Horario PrecioAlquiler
Edificio
Aparcamiento
1..*
Plaza
Algunas de las funciones que hay que disear para este sistema son Nueva Autorizacin, Anular Autorizacin de Aparcamiento y Anular Todas Autorizaciones de una Compaa. Se pide: 1 El diagrama de colaboracin que corresponde a la funcin descrita anteriormente. 2 El reparto de las operaciones en el diagrama de clases de la figura.
"GESTIN DE UNIVERSIDADES" En el sistema de gestin de una universidad se debe mantener la informacin relativa a proyectos fin de carrera y tesis que se realizan. Todos estos datos estn estructurados segn el siguiente diagrama de clases:
Universidad
1..* se relaciona con 1..*
Persona
{ subset } 1..*
{incomplete,overlapping}
Departamento
1 0..1 se adscribe a 1..* { subset }
Profesor
Pfc
Alumno
{incomplete}
es director de 1
{complete,disjoint}
Doctor
1 *
Grado
Postgrado
*
Tesis
Una de las funciones que hay que disear para este sistema es Asignar Proyecto Fin de Carrera. La definicin de dicha funcin es Departamento::AsignarPfc ( g:Grado ) donde g es una referencia al alumno de grado que realiza el proyecto fin de carrera. Se debe buscar automticamente al profesor tutor, que ser aqul que tenga menos proyectos fin de carrera dirigidos. Otra funcin que hay que disear para este sistema es BorrarAlumnoPostgrado. La definicin de dicha funcin es Universidad::BorrarAlumnoPostgrado (pg:Postgrado ) donde pg es una referencia al alumno de postgrado cuyos datos hay que borrar. Ntese que al eliminar la informacin que corresponde al alumno, se debe borrar tambin la informacin relativa a su tesis doctoral. Finalmente, otra funcin que hay que disear para este sistema es AadirDpto. La definicin de dicha funcin es Universidad::AadirDpto (lp:Lista[Profesor], lpd:Lista[Profesor,Doctor],d:Doctor ) donde lp es la lista de referencias a objetos de la clase Profesor (no doctores) que se adscribirn al departamento, lpd es la lista de referencias a objetos de la clase Doctor que tambin se adscribirn al departamento, y d es una referencia al objeto de la clase Doctor que ser el director, de manera que deber encontrarse en la lista de profesores doctores.
Se pide: 1 El diagrama de colaboracin que corresponde a la funcin descrita anteriormente. 2 El reparto de las operaciones en el diagrama de clases de la figura.
2.9: AsignarTrayecto(tray)
<<self>>
c: Compaa
2: < <cre at
hd,l -et
2.3.1.3: IncluirTrnsito(t)
<<self>>
tray: Trayecto
2.3 :
)
<<parameter>>
t: Trnsito
> cal> <<lo
<<self>>
2.3.1
: Tren
Nue vaP ar
2.2: d
y,hp
(tra
!!!
:= Nu
tida
estino evoD
p :=
et: Estacin
<<self>>
d) (tray,h
<<parameter>>
2.1 :
<<parameter>>
<<self>>
p: Partida
<<local>>
ep: Estacin
ed: Estacin
<<lo 2.2. cal> d: Destino 1: < > <cre ate> > (tr ay,e d,hd ) 2.2.2: IncluirDestino(d)
2.3.2: IncluirTrnsito(t)
<<self>>
<<self>>
2.1.2: IncluirPartida(p)
ofrece 1..* 1 posee AsignarTrayecto() 1..* 1 realiza <<constructor>> () AsignarCompaa() AsignarTren() AsignarPartida() AsignarDestino() IncluirTrnsito() * * * *
Compaa Ferroviaria
NuevoTrayecto() BuscarTren() IncluirTrayecto()
Tren
Trayecto
Trnsito
Horario <<constructor>> () AsignarEstacin() AsignarTrayecto()
Partida
Horario <<constructor>> () AsignarEstacin() AsignarTrayecto() 1 1
Destino
Horario <<constructor>> () AsignarEstacin() AsignarTrayecto()
Estacin
NuevaPartida() NuevoDestino() NuevoTrnsito() IncluirPartida() IncluirDestino() IncluirTrnsito()
<<self>>
c: Compaa
>
tray: Trayecto
> tion> socia <<as
<<
iatio n>>
as so cia t
<<association>>
ion >>
t: Trnsito
narT Asig
s <<a
: Trayecto
str de < <
<<a s
>> oy
soc
tion> socia
it rns
1 2.
> n> tio a i oc ss <a
2. 2: <
o(t
<d e
>
st ro
y> >
et: Estacin
<
<<
as so c
p: Partida
<<asssociation>>
ep: Estacin
ed: Estacin
ia tio
<<a ssoc
n>
>
iatio n>>
d: Destino
(d)
Compaa Ferroviaria
SuprimirTrayecto() DesAsignarTrayecto()
Tren
Trayecto
Trnsito
Horario <<destructor>> ()
Partida
Horario <<destructor>> ()
Destino
Horario <<destructor>> ()
Estacin
DesAsignarPartida() DesAsignarDestino() DesAsignarTrnsito()
Liga::NuevoPartido(el,ev: Equipo)
2:IncluirPartido(p)
<<self>>
l:Liga
ev:Equipo
<<parameter>>
1.3:IncluirPartidoVis(p)
el:Equipo
<<parameter>>
1: <<create>> Partido(l,el,ev)
{ new } <<local>>
p:Partido
<<self>>
Liga
1..* NuevoPartido(el,ev) IncluirPartido(p)
Equipo
local 1 IncluirPartidoVis(p) IncluirPartidoLocal(p) 1 visitante juega contra
1..*
Partido
<<create>>(ev,el) AsignarEquipoLocal(el) AsignarEquipoVis(ev) AsignarLiga(l)
2.7: IncluirSlotVuelo(slot)
<<self>>
c: Compaa
2: s lot : =
(c,a v,as ,
hs,a l,h
>
<<lo cal>
l)
<<self>>
slot: Vuelo
:s: =N uev aS a lida (slo t,hs )
{ new }
:= N 2.2: l
: Avin
2.1
<<parameter>>
<<parameter>> <<self>>
<<self>>
s: Salida
{ new }
<<local>>
as: Aeropuerto
al: Aeropuerto
<<self>>
{ new }
2.2. 1: l :=
<<c reat
<<lo cal>
>
l: Llegada
<<self>>
2.2.2: IncluirLlegada(l)
.4:
Inc
<<parameter>>
: Puerta
p: Puerta
Compaa Cdigo Denominacin IncluirSlotVuelo() BuscarAvin() NuevoSlotVuelo() 1 posee 1..* Avin Cdigo Modelo Capacidad Negocios Capacidad Turista IncluirSlotVuelo() 1 sufre efecta * * 1..* 1..* Vuelo Cdigo Tarifa <<create>> AsignarAvin() AsignarCompaa() AsignarSalida() AsignarLlegada() 1..* Billete 1 Cdigo asignado a * contiene Salida Fecha y Hora * solicita
Pasajero 1 Apellidos Nombre N Pasaporte Puerta asignada a * 1 1..* Seccin Nmero IncluirSalida()
1..* 1 tiene Aeropuerto Cdigo Denominacin NuevaSalida() NuevaLlegada() BuscarPuerta() IncluirSalida() IncluirLlegada() 0..1
Llegada * Incidencia Descripcin Fecha y Hora * Fecha y Hora <<create>>() AsignarAeropuerto() AsignarSlotVuelo() ocurre en
Compaa::QuitarSlotVuelo(slot:Vuelo)
av: Avin 1.3: QuitarSlotVueloLista(slot) slot: Vuelo
{ destroyed }
2: QuitarSlotVueloLista(slot)
<<self>>
c: Compaa
1: < < des tr oy> >
<<p aram eter >>
:< 1 .2 es <d
as: Aeropuerto
De sA
1.1: <
1 .1 .1 :
sig
na rS ali da
1.2 .1:
l: Llegada
(s)
{ destroyed }
Compaa Cdigo Denominacin QuitarSlotVuelo() QuitarSlotVueloLista() 1 posee 1..* Avin Cdigo Modelo Capacidad Negocios Capacidad Turista QuitarSlotVueloLista() 1 sufre efecta * * 1..* 1..* Vuelo Cdigo Tarifa <<destructor>> 1..* Billete 1 asignado a * contiene Salida Fecha y Hora Cdigo * solicita
Pasajero 1 Apellidos Nombre N Pasaporte Puerta asignada a * 1 1..* Seccin Nmero QuitarSalidaLista()
<<destructor>>
0..1
2: a := <<create>>Autorizacin(c,p,h,pr)
<<self>>
c: Compaa
<<local>>
au: Autorizacin
<<self>>
<<association>>
<<parameter>>
<<parameter>>
e: Edificio
<<association>>
ap: Aparcamiento
<<association>>
p: Plaza
:Plaza
Autorizacin Departamento
1..*
Compaa
1..* 1..*
Edificio
Aparcamiento
BuscarPlaza()
1..*
Plaza
IncluirAutorizacin()
Compaa::AnularAutorizacinAparcamiento(au:Autorizacin)
1.1: EliminarEnlaceCompaa() 1.2: EliminarEnlacePlaza()
2: EliminarEnlaceAutorizacin(au)
1: <<destroy>>Autorizacin()
<<self>>
c: Compaa
<<parameter>>
au: Autorizacin
<<self>>
1.3: EliminarEnlaceAutorizacin()
<<association>>
<<parameter>>
<<association>>
e: Edificio
<<association>>
ap: Aparcamiento
<<association>>
p: Plaza
Autorizacin Departamento
1..*
Compaa
1..* 1..*
Edificio
Aparcamiento
1..*
Plaza
EliminarEnlaceAutorizacin()
Aparcamiento::AnularAutorizacionesCompaa(c:Compaa)
ap: Aparcamiento
c: Compaa
<<self>>
<<association>>
: Autorizacin
<<parameter>>
p: Plaza
Autorizacin Departamento
1..*
Compaa
ObtenerListaAutorizaciones() AnularAutorizacinPlaza() EliminarEnlaceAutorizacin() * se ubica en 1..*
1..* 1..*
Edificio
Aparcamiento
AnularAutorizacionesCompaa(c)
1..*
Plaza
EliminarEnlaceAutorizacin()
Departamento::AsignarPfc(g:Grado)
1: p := BuscarProfesor ( )
2.2: IncluirPfcLista(pfc)
2: AsignarPfc ( g )
<<self>>
d: Departamento
<<parameter>>
p: Profesor
<<self>>
2.1: <<create>> ( p, g )
<<local>>
{ new }
: Grado
<<self>>
pfc: Pfc
<<parameter>>
g: Grado
Universidad
1..*
Persona
{ subset } 1..*
{incomplete,overlapping}
Departamento
1 AsignarPfc () BuscarProfesor () 0..1 es director de { subset } se adscribe a 1..*
Profesor
AsignarPfc () IncluirPfcLista ()
Pfc
<<constructor>> () AsignarAlumnoGrado () AsignarProfesor ()
Alumno
{complete,disjoint}
{incomplete}
1
Doctor
1..2
Grado
AsignarPfc ()
Postgrado
*
Tesis
Universidad::BorrarAlumnoPostgrado(pg:Postgrado)
1: <<destroy>>
<<self>>
u: Universidad
<<parameter>>
1.1: <<destroy>>
1.1: <<destroy>>
Universidad
1..*
BorrarAlumnoPostgrado() QuitarPersonaLista()
Persona
{ subset } 1..*
{incomplete,overlapping}
Departamento
1 0..1 se adscribe a 1..*
Profesor
Pfc
Alumno
{ subset } es director de
{incomplete} Doctor
*
{complete,disjoint}
Grado
Postgrado
<<destructor>>()
Des-AsignarTesis()
1 *
Tesis
<<destructor>>()
2: IncluirDptoLista(dpto)
1.3: *[p en lp] IncluirProfesorLista (p) 1.4: *[pd en lpd] IncluirProfesorLista(pd) 1.6: AsignarDIrector(d) 1.7: AsignarUniversidad(u)
<<self>>
u: Universidad
<<local>> { new }
dpto: Departamento
<<parameter>>
d: Profesor,Doctor
1.5: AsignarDireccin(dpto)
<<parameter>>
p: Profesor
<<parameter>>
pd: Profesor,Doctor
Universidad
1..*
Persona
{ subset } 1..*
{incomplete,overlapping}
Departamento
1 se adscribe a 1..* <<create>> IncluirProfesorLista() AsignarDirector() AsignarUniversidad()
Profesor
Pfc
Alumno
{ subset }
AsignarDpto()
{complete,disjoint}
Grado Postgrado
*
0..1
{incomplete} Doctor
AsiignarDireccin() 1 es director de 1
Tesis