Curso:InformáticaIndustrial
MohamedAbderrahim
ÁlvaroCastroGonzález
JoséCarlosCastilloMontoya
Ejerciciosmodeladodesoftware
Ejercicio1Sequierehacereldiseñodeunrobotmodular.Elrobotestarácompuestoporvariosmódulos
entrelosqueseencuentran:rotación,extensión,helicoidal,cámara.Losmódulospodránser
dinámicos (capaces de moverse: rotación, extensión, helicoidal) o estáticos (no se pueden
mover:cámara).
Losmódulostendránunidentificador(1-255)yunasdimensiones(largo,anchoyalto,entre1
y 200mm). Los módulos estarán compuestos de un sistema de control y un sistema de
comunicación.Losmódulosdinámicostendrán:
•motores(1ó2).
•unparámetroqueeseltipodemovimientoquepuedenrealizar.
•unafunciónqueesmoverse(conparámetroeltipodemovimiento).
Losmódulosestáticospodrántenersensores(de0a5).
El sistemade control utiliza el sistemademensajes para comunicarse. Losmódulos pueden
enviar y recibirmensajes de/hacia el usuario y otrosmódulos, conunparámetroque es un
arraydedatos amandaro recibir. Tambiénutiliza losmotoresparamoverse y los sensores
paracaptarinformacióndelmedio.
Sepidequeutilizandoherenciasiemprequesepueda,serealiceundiseñoUMLdelasclases
necesariaspara representar todas las entidadesdel sistema, indicandoatributos ymétodos,
asícomolasrelacionesexistentesentrelasclases.
Ejercicio2Especificarundiagramadeclasesquedescriba redesdeordenadores. Loselementosquese
puedenincluirenlaredson:
• Servidor,PC,Impresora.
• Hub,Cabledered.
LosPCspuedenconectarseconunúnicoHub,losservidoresconunoovarios.
LosServidoresyPCspuedengenerarmensajes,conunaciertalongitud.
LosHubstienenunnúmerodepuertos,algunosdeloscualespuedeusarseparaconectarcon
otrosHubs.Tienenciertaprobabilidadde“perder”mensajes.
Lasimpresoraspuedenaveriarse,conciertaprobabilidad,duranteciertotiempo.
Ejercicio3
Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, tipo
(ingeniería,literatura,informática,historia...),editorial,añoyautor.
Losautoressecaracterizanporsunombre,nacionalidadyfechadenacimiento.
Cada copia tieneun identificador, ypuedeestaren labiblioteca,prestada, con retrasooen
reparación.
Loslectorespuedentenerunmáximode3librosenpréstamo.
Cadalibroseprestaunmáximode30días,yporcadadíaderetraso,seimponeuna“multa”
dedosdíassinposibilidaddecogerunnuevolibro.
Realiza un diagrama de clases y añade los métodos necesarios para realizar el préstamo y
devolucióndelibros.
Realizaundiagramadecasosdeusos.
Ejercicio4
Representamedianteundiagramadeclaseslasiguienteespecificación.
Unaaplicaciónnecesitaalmacenarinformaciónsobreempresas,susempleadosysusclientes.
Ambos(empleadosysusclientes)secaracterizanporsunombreyedad.Losempleadostienen
unsueldobruto,losempleadosquesondirectivostienenunacategoría,asícomounconjunto
deempleadossubordinados.
De los clientes, además se necesita conocer su teléfono de contacto. La aplicación necesita
mostrarlosdatosdeempleadosyclientes.
Ejercicio5
Se propone realizar un modelo simplificado de los distintos miembros de la comunidad
universitaria.Todoslosmiembrosdelacomunidaduniversitariasecaracterizanporunnombre
y unD.N.I. Losmiembros se dividen en estudiantes o personal de la universidad. Todos los
estudiantestienenunnúmerodeidentificaciónasociado:elnie.
Encuantoalpersonal,todostienenunsalarioasignadoyasuvezestospuedenserpersonal
docente investigador (pdi) ó personal de administración y servicios (pas). Los pdi tienen
asignadaunaasignaturaqueimpartir(seidentificaráporeltítulo)ylospasunedificiodonde
trabajan (se identificará por el nombre del edificio). Además de los anteriores, existen los
doctorandosquesonalavezpdiyestudiantes.Losdoctorandossecaracterizanporeltítulode
latesisdoctoralsobrelaqueinvestigan.
Sepideque,utilizandoherenciasiemprequesepueda,serealiceundiseñoUMLdelasclases
Miembro, Personal, Estudiante, Pdi, Pas y Doctorando y se implementen en código C++
ajustándosealadescripcióndadaanteriormente.
Ejercicio6
En un juego de ordenador existen 2 tipos de jugadores: los principiantes y los avanzados.
Todos ellos deben tener un nombre y un número de vidas. Los principiantes se desplazan
andandoaunascoordenadas(x,y).Losjugadoresavanzadosademásdeandartambiénpueden
conducirunvehículoparadesplazarsemásrápidoaunascoordenadas.Cadavehículotienen
asociadaunavelocidadquepuedeserleídayajustadaaunvalordadoperonopuedesuperar
unavelocidadmáximadada.Lavelocidadmáximasólosepodráasignarunavezynopodráser
modificada.
Todos los atributos de las clases serán privados y tendránmétodos públicos para acceder a
ellos (get/set) salvoque los requisitos indiquen lo contrario.Debeexistir unmétodoque se
llameandaryotroconducir.
Crear el diagrama UML de clases para el problema propuesto y que incluya todas las
funcionalidadesdescritas.
Ejercicio7
Sean∈Z+.Decimosquenesunenteroperfectosi2nesigualalasumadetodossusdivisores
positivosincluidoelmismo.Porejemplo,elnúmero6esunnúmeroperfectoyaque
2*6=1+2+3+6=12
Aligualque28y496.
Realiceeldiagramadeflujoy la implementaciónencódigoC,paradeterminarsiunnúmero
enteroesperfectoono.
Ejercicio8
Enunprogramadeordenador, las facturas tienennecesariamenteunconjuntodedatosdel
proveedor,unconjuntodedatosdelcliente,unimporte(valordecimal)yunafecha(vectorde
enteros). Losdatosdel cliente son la cadenade caracteresnombre y el entero fiabilidadde
pago,mientrasquelosdatosdelproveedorsonsólosunombre.Dentrodelacategoríacliente
estáelsubtipo“clientemoroso”,quellevatambiénasociadoelnúmerodecimaldeuda.Cada
clase tendrá losmétodos para leer y fijar (“set” y “get”) todos sus atributos (no hace falta
incluirenlaclaseFacturalosmétodosparafijardatosdelclienteodelproveedor).Tambiénse
debe incluir en la clase Factura unmétodode “Borrado”, que no devuelve ni recibe ningún
parámetro.Losatributosseránprivadosytendránmétodospúblicosparaaccederaellos.
Se pide dibujar el diagrama UML de las clases Factura, Datos_del_cliente y
Datos_del_proveedor.
Ejercicio9
Sehademodelarpartedelafuncionalidadrequeridaparaunsubsistemadegestióndetrenes
decompañíasferroviarias.Losrequisitosdealmacenamientodeinformaciónquesenecesitan
estándefinidos(conlenguajenatural)comosigue.
Enprimerlugar,todacompañía(consudenominación)aconsiderarposeealmenosuntren.
Cada tren está compuesto por una máquina tractora y al menos un vagón. Pueden existir
vagonesymáquinasnoasignadosatrenalguno.Cadatrentieneuncódigoidentificadorpropio
de su compañía, los vagones una capacidadmáxima, y lasmáquinas tractoras una potencia
máxima.
Unacompañíatienealmenosunempleado,delquesealmacenansusprincipalesdatos,como
sonelnombre,elnúmerodelaseguridadsocialyeldomicilio.Segúnsutrabajo,estospueden
ser jefesuoperarios. Si es jefe, se almacena sunúmerode teléfono.Cadaempleadopuede
tener designados un conjunto demáquinas tractoras y/o vagones. A su vez, cadamáquina
tractora o vagón podrá estar asignado a un conjunto de empleados. Eso sí, cada tren tiene
siempreasignadosujefe,ycadamáquinatieneunoperarioquelaconduce.
Realizar en UML el diagrama de clases que recoge la relación existente entre trenes,
empleados, teniendo en cuanta que todos los atributos son privados. Las clases deben
contemplarelacceso (get)yel cambio (set)para todos losatributosmenosenel casode la
potenciadelamáquina.Especificarrelacionesymultiplicidades.
Ejercicio10
Sedesearealizarelmodelodeunsistemadegestiónbibliográfica.Paraelloseconsideranlos
siguientesconceptos:
• Hay “Bases_de_datos” que tienen un atributo que es su “url”, y un método
“anadir_publicación” (quedevuelveunpunteroa“Publicación”y tieneunparámetroquees
unstring).
•Lasbasesdedatossecomponende“Publicaciones”.
• Una publicación tiene dos atributos: “nombre” (de tipo string) y “fecha” (de tipo Date –
suponerlayaimplementada).
•Hayvariostiposdepublicaciones:“Articulo_de_conferencia”,“Capitulo_de_libro”y“Libro”.
Asuvezhayuntipodelibroquesonlos“Proceedings”,quesonlibroscompuestosporvarios
artículos de una misma conferencia. Los artículos de conferencia tienen un atributo:
“num_paginas”(int).Loscapítulosdelibrotienenunatributo:“num_capitulo”(int).Loslibros
tienen un atributos: “ISBN” (array de 4 enteros). Los proceedings tienen un atributo:
“lugar_conferencia”(string).
•Loslibrospuedencontenercapítulosdelibro.
•Losproceedingsestáncompuestosporartículosdeconferencia.
•Tambiénhay “Autores”,que tienen tresatributos: “nombre” (string), “correo_electronico”
(string) y “entidad” (string), y un método: “añadir_entidad” (no devuelve nada, y tiene un
parámetrodetipostring).
•Losautorespuedenescribirartículosyconsultarbasesdedatos.
Utilizando herencia siempre que se pueda, realizar un diseño UML de clases del sistema
indicando:
Lasclasesqueseconsiderennecesariasconsusatributosymétodos.Eltipodeprivacidadmás
idóneo. Las relaciones entre clases: asociación, dependencia, herencia, agregación,
composición, etc. Lamultiplicidaden las relaciones entre clases.Almenosunade las clases
debeserabstracta(indicarloclaramente).