Está en la página 1de 16

Ejercicio # 1

 Una biblioteca tiene varias copias de diversos libros. Estos últimos se caracterizan por su título,
tipo (novela, teatro, poesía o ensayo), editorial, año y autor.
 Los autores de dichos libros se caracterizan por su nombre, nacionalidad y fecha de
nacimiento.
 Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en
reparación.
 Los lectores para asociarse a la biblioteca, deben inscribirse entregando su nombre, dirección
y teléfono.
 Una vez inscritos, se les asigna una credencial con su número de socio, y pueden comenzar a
sacar libros prestados. Solo pueden tener un máximo de 3 libros en préstamo
simultáneamente.
 Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una “multa” de
dos días sin posibilidad de solicitar un nuevo libro.

Copia Libro
+ id: int ejemplar + titulo: string
+ estado: estadoCopia libro + tipo: tipoLibro
1..*
1 + editorial: string
+ año: int
prestamo

estadoCopia 0..3
-biblioteca
Prestamo

obra
-prestada 1..*
+ init: date
-retraso
+ fin: date
-reparacion
+ setTotPrest(): int tipoLibro
-novela
-teatro
lector

-poesia
0..1 -ensayo
LectorSocio autor
+ numSocio: int
- nombre: string 1
- direccion: string Autor
1 multa
- telefono: int + nombre: string
- multa: int 0..* + nacionalidad: string
- totalPrestamos: int Multa + fechaNacimiento: date
+ prestar(id: int; fAct: date): boolean + mInit: date
+ devolver(id: int; fechaActual: date): void + mfin: date
+ setMulta(): int
Ejercicio # 2

 Especificar un diagrama de clases que describa una red LAN.


 Elementos típicos de red son: Servidor, PC e Impresora (eq. principales); Switch y Cable de
Red (eq. de servicio de red).
 Los Servidores y PCs generan mensajes, de longitud variable.
 Los Switch tienen un número fijo de puertos de conexión de equipos de red, y pueden
conectarse con otros equipos Switch en puertos específicos.
 Los equipos principales se conectan a un único Switch, a través de Cables de Red que poseen
categoría UTP. Normalmente los Switch se interconectan con Cables de Red especiales.
 Los Switch enrutan mensajes a destino según su dirección IP.
 Existe una probabilidad conocida de que los mensajes se destruyan al pasar por los puertos
del Switch.
 Las impresoras pueden averiarse, con cierta probabilidad conocida de falla o MTBF (mean time
between failures).

redLAN
1 1
1..*
Switch

1..* - enrutarMsjes(ip: string)

Equipo 1 flujo
1
n
Cable Puerto
Mensaje - utp: string - portEff: int

- long: int

1..* 1
1 Eq. Mensajero Impresora cableEquipo cableSwitch puertoSwitch puertoEquipo

genera - mtbf: int


1 1 1 1

flujo

Servidor PC
flujo
Ejercicio # 3

Se quiere desarrollar un Sistema de Información para la Universidad de Oriente según la


descripción siguiente. La Universidad se caracteriza mediante su nombre y la ciudad donde se
sitúa. En la Universidad están vinculados dos tipos de Persona: Trabajadores, que la Universidad
emplea, y Estudiantes, que estudian en la Universidad. Cada Persona tiene una RUT y un nombre.
Una Persona puede ser a la vez Trabajador y Estudiante. Cada Trabajador tiene asociada una
fecha de inicio de su contrato. Cada Estudiante tiene asociado un número de Rol Universitario. Los
Trabajadores pertenecen a dos grupos: PDI y PAS. Los únicos tipos de Trabajador que existen son
PDI y PAS. Un Trabajador no puede ser a la vez PDI y PAS. Cada miembro del PDI también tiene
una categoría, mientras que cada miembro del PAS tiene un puesto. Los miembros del PDI pueden
o no ser Doctores. Las actividades que desarrolla el PDI son investigar y enseñar, mientras que la
actividad que desarrolla el PAS es administrar. La Universidad se compone de un conjunto de
Departamentos, cada uno de los cuales tiene un nombre y un conjunto de Trabajadores adscrito.
Un Trabajador no puede estar adscrito a más de un Departamento. Un PDI está adscrito
obligatoriamente a un Departamento, mientras que un PAS, no. Cada Departamento está dirigido
por un Doctor. Un Estudiante puede ser bien Estudiante de grado, de una determinada Carrera, o
bien Estudiante de Doctorado, de un determinado programa de Doctorado. Un Estudiante no
puede ser a la vez Estudiante de grado y Estudiante de Doctorado. Un Estudiante de grado puede
también colaborar con un Departamento como becario realizando un PFC dirigido por un miembro
del PDI. Un Estudiante de Doctorado realiza una tesis dirigida por un Doctor. Puede suponer que
un Estudiante no puede estudiar en más de una Universidad y que un Trabajador no puede ser
empleado por más de una Universidad.

Persona
+ nombre
+ rut

Trabajador 1..* 1 Universidad 1 1..* Estudiante


+ fechaInicio + nombre + rol
+ ciudad
1..* 1..*
1..* 1

1
0..1 0..1 1..*
PAS PDI 1..* Departamento 1..* estGrado estDoctorado
+ puesto + categoria + nombre + carrera + programa
+ administrar() + investigar() 1 1 + colaborar() + hacerTesis()
+ enseñar()
1
0..1
Doctor
Ejercicio # 4

El holding italiano de bancos modulares “Della Plassa”, recientemente instalados en Chile,


solicitaron a un consultor de negocios hiciese un levantamiento de requerimientos para un sistema
de información para sus bancos. El consultor apuntó lo que sigue.

La aplicación necesita registrar información sobre el banco, sus empleados y sus clientes. Tanto de
los empleados como de los clientes se requiere registrar su RUT, nombre y fecha de nacimiento.
De los clientes se requiere registrar además un teléfono y un correo electrónico de contacto. De los
empleados, cuya función dentro de la organización es colaborar, se requiere registrar el sueldo
líquido y su cargo. Los empleados no pueden ser clientes del banco.

Respecto del banco, cuya función principal es realizar inversiones, se requiere registrar el RUT y
su representante legal. Se requiere además registrar los contratos de trabajo entre los empleados y
el banco, caracterizándolos con la fecha de contrato y el plazo del contrato. El banco segmenta a
sus clientes en tres categorías: la banca Joven, para estudiantes universitarios que están a punto
de egresar, de quienes se debe registrar la carrera que estudian y la universidad a la que asisten;
la banca Premium, especializada en microempresarios, de quienes se desea registrar el RUT de la
empresa de la cual son dueños, y que debe poseer una operación específica de obtención de
saldo de la respectiva cuenta; y la banca Normal, para el resto de los clientes, de quienes se deben
registrar sus ingresos mensuales, y que debe poseer una operación específica de obtención de
deuda de la respectiva cuenta.

Los empleados que se encuentran sindicalizados tienen beneficios específicos que se obtienen en
cada evento de negociación colectiva, los cuales deben registrarse. Sin embargo, existen
empleados no sindicalizados, quienes negocian directa y personalmente con el banco, y que por
ello poseen bonos de productividad mensual, los cuales se requiere queden registrados. El banco
posee diversas áreas de gestión, caracterizadas por un nombre y un tipo de área específica
(gerencia, subgerencia, departamento o unidad), las cuales son dirigidas por directivos que poseen
un nivel jerárquico específico (gerente, subgerente, jefe de departamento, o jefe de unidad), que no
pueden ser empleados sindicalizados dado que son cargos de confianza, y que tienen la función
específica de gestionar. Todos los empleados trabajan en un área del banco.
Persona
+ rut: string
+ nombre: string
+ fNac: date

Contrato
+ fContrato: date
+ plazo: int

Empleado Banco Cliente


+ sueldoLiq: int + rut: string + telefono: int
+ cargo: string + repLegal: string + eMail: string

+ colaborar() + inversiones()

tipoArea:
-Gerencia
-SubGerencia
-Departamento
-Unidad

Sindicalizado noSindicalizado Area


+ beneficios: string + bonoProd: int + nombre: string
+ tipo: tipoArea

bancaJoven bancaPremium bancaNormal


tipoNivel: + carrera: string + rutEmpresa: string + ingresos: int
-Gerente
-SubGerente
+ universidad: string
+ getSaldo(): int + getDeuda(): int
Directivo -Jefe de Departamento
-Jefe de Unidad
+ nivel: tipoNivel

+ gestionar()
Ejercicio # 5

Con el advenimiento de las sociedades anónimas deportivas en el fútbol, se hizo patente la


transformación de éstas desde organizaciones sin fines de lucro a empresas dedicadas al
espectáculo deportivo. Por ello, la dirigencia del Club de Deportes Everton de Viña del Mar solicitó
a un consultor de negocios hiciese un levantamiento de requerimientos para un sistema de
información para su institución. El consultor apuntó lo que sigue.

La aplicación necesita registrar información sobre el club, sus empleados y sus hinchas. Tanto de
los empleados como de los hinchas se requiere registrar su RUT, nombre y fecha de nacimiento.
De los hinchas se requiere registrar además un teléfono y un correo electrónico de contacto. De los
empleados, cuya función dentro de la organización es colaborar, se requiere registrar el sueldo
líquido y su cargo.

Respecto del club, cuya función principal es competir en los diversos campeonatos organizados
por la ANFP, se requiere registrar el RUT y nombre del representante legal. Se requiere además
registrar los contratos de trabajo entre los empleados y el club, caracterizándolos con la fecha de
contrato y el plazo en meses del contrato. El club segmenta a sus hinchas en tres categorías:
socios Galería, para hinchas que asisten a cualquiera de las dos galerías que tiene el estadio
Sausalito, de quienes se debe registrar a cual galería asisten (Cerro o Laguna) y si son barristas
activos (necesario por el empadronamiento de las barras bravas); socios Andes, que asisten a la
tribuna Andes del estadio, de quienes se desea registrar la última fecha que fueron al estadio
Sausalito, y que deben poseer una operación específica de obtención del saldo de la respectiva
membrecía al club (saldo del pago de cuotas); y socios Butaca, que asisten al sector de Butacas o
Marquesina del estadio, de quienes se debe registrar su profesión y la empresa para la cual
trabajan.

Los empleados pertenecen a dos grupos: administrativos y jugadores. Los administrativos tienen
un cargo en el club, y los jugadores se caracterizan por una posición de juego, que puede ser:
arquero, defensa, volante de quite, volante de creación, o delantero. El club posee diversas
divisiones de jugadores, caracterizadas por tipo de división (profesional, sub – 20, sub -18, sub –
16 y sub – 14), así como por sexo (fútbol masculino o femenino), cada una de las cuales tienen un
director técnico, que pertenece al grupo de administrativos, y que tienen la función específica de
dirigir a la división que corresponde. Todos los jugadores deben pertenecer a una división del
equipo.
Persona
+ rut: string
+ nombre: string
+ fNac: date

Contrato
+ fContrato: date
+ plazo: int

Empleado clubFutbol Hincha


+ sueldoLiq: int + rutReLegal: string apoya + telefono: int
+ cargo: string trabaja + nomLegal: string + eMail: string
1..* 1 1 1..*
+ colaborar() + competir()

1..* 1..* 1

tipoDiv:
categoría categoría -Profesional
-sub20
-sub18

tiene
-sub16
-sub14

1 1. 1..*
pertenece
Administrativo Jugadores Division
1..* 1
+ cargo:
beneficios:
stringstring + posicion: tipoPos + tipo: tipoDiv
+ sexo: tipoSex
tipoPos:
1 -Arquero
-Defensa 1
-volanteQuite
-volanteCreacion socioGaleria socioAndes socioButaca
-Delantero tipoSex:
-Masculino + galeria: string + ultAsist: date + profesion: string
-Femenino
+ barrista: boolean + empresa: string

categoría
+ getSaldo(): int
directorTecnico
1..* dirige
1
+ dirigir()
Ejercicio # 6

Un consultor de negocios levanto los siguientes requerimientos de una franquicia de automotoras


que venden autos nuevos y usados. La franquicia se destaca de las demás por la opción de
importar autos de lujo desde la propia fábrica que el cliente pida.

Cada automotora tiene su propio nombre y RUT. De los autos nuevos que vende, mantiene un
registro de su marca, modelo, precio de venta, porcentaje de descuento, y accesorios que el cliente
desea añadir al vehículo (llantas, aire acondicionado, radio MP3 y airbag). De los autos usados,
mantiene registro de marca, modelo, precio de venta, año de fabricación, color y kilometraje. De los
autos de lujo, registra marca, modelo, precio de venta, porcentaje de descuento, y el plazo de
importación, en donde además gestiona todas las actividades de importación del vehículo en
cuestión, incluyendo los temas de aduana y otros, siendo relevante para la automotora cuando
dura todo el proceso.

La empresa tiene un registro de todos sus empleados que tienen sus contratos registrados, y son
de dos tipos: vendedores y mecánicos. De todos ellos mantiene su RUT, nombre, fecha de
nacimiento, sueldo base y fecha de contrato. Los primeros tienen la función de vender los autos
que oferta la automotora, pero solo llevan comisión con una fórmula de cálculo especial en el caso
de los autos nuevos, no existiendo registro de quién vendió los autos usados. Los mecánicos
tienen la misión de reparar y dejar en el mejor estado posible los autos usados que están a la
venta, en donde deben registrar para cada auto reparado el costo de la mantención y debe además
gestionar la compra de repuestos de ser requerido.

La empresa tiene dos tipos de clientes, de quienes mantiene el RUT, nombre, fecha de nacimiento
y teléfono de contacto: los potenciales compradores, de quienes además busca datos en Google
para conocer sus preferencias; y quienes dejan autos usados a la venta, de quienes registra la
necesidad que tienen de vender el bien (urgidos por plata, apurados en tiempo, quienes prefieren
maximizar el plazo de venta, y quienes prefieren maximizar el precio de venta). Con éstos últimos
establece un acuerdo de venta en concesión del auto usado, en donde se registra el acuerdo y que
además se legaliza ante notario.

El dueño de la franquicia pidió especial cuidado con aquellos datos sensibles, tanto de clientes,
empleados o productos, que puedan transgredir alguna ley o que no sea prudente hacerlos
públicos en función de mejorar las ventas.
Persona
- rut: string
- nombre: string
- fechaNacimiento: date

Empleado Automotora
Cliente
- sueldoBase: int + rut: string
- telefonoContacto: int
- fechaContrato: date + nombre: string

Contrato

Auto
+ marca: string potencialComprador consecionaAuto
+ modelo: string - necVenta: tipoNec
Mecanico Vendedor + precio: int - datosGoogle(): text

+ mantencion(): int - vender(): void tipoNec


-urgido
-apurado
-maxTime
-maxVal
Comision

Nuevo Usado
- descuento: int + año: int
+ color: string
- kilometraje: int
tipoAcc
-llanta Acuerdo
-aire + doc: text
-radio + legalizar(): void
-airbag

Normal Lujo
+ accesorios: tipoAcc - plazoImportación: date
+ importación(): date
Mantencion
+ costo: int
- getRepuestos(): void
Ejercicio # 7

Carabineros de Chile, en acuerdo con la Asociación de Supermercados, quiere crear una base de
datos sobre la seguridad en supermercados para controlar el creciente robo hormiga. Para ello
tiene en cuenta que cada supermercado se caracteriza por un nombre, un teléfono de
emergencias, y el RUT de su Representante legal; que cada supermercado tiene varias sucursales;
que cada sucursal se caracteriza por un código, por una dirección, así como por el número de
empleados de dicha sucursal, y que posee una función que informa periódicamente sobre las
pérdidas por robo hormiga; que cada sucursal contrata, según el día, uno o más guardias
profesionales, que se caracterizan por un código y su edad (la que se calcula en base a su fecha
de nacimiento). Un guardia puede ser contratado por diferentes sucursales, 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 requiere controlar a los delincuentes que han sido detenidos por asaltar dichas
sucursales. Cada vez que se realiza una detención, se abre una causa, en la cual se registran la
fecha, el relato de los hechos, y una lista de testigos. Los delincuentes se definen por un código, un
alias, por el número de condenas previas, y su edad (la que se calcula en base a su fecha de
nacimiento). Algunos delincuentes integran bandas organizadas y, por ello, se desea saber a qué
banda pertenecen, sin ser de interés si la banda ha participado en los delitos o no. Dichas bandas
se definen por un nombre de banda, por el número de miembros y por su peligrosidad, siendo
calificadas como: principiantes; experimentados; violentos; o traficantes.

Evidentemente, un delincuente puede asaltar varias sucursales en diferentes fechas, así como una
sucursal puede ser asaltada por varios delincuentes. Igualmente, se requiere registrar los datos de
los juicios en donde se han juzgado dichas causas, importando la fecha de inicio del juicio, su
duración en días, y la sentencia final de éste. Un juicio tiene una o muchas causas (si son varios
los imputados), y una causa se ve en un solo juicio. Como resultado, se requiere calcular la nueva
condena del delincuente en función de sus condenas anteriores. En los juicios también intervienen
abogados, que alegan los hechos para defender o acusar a los imputados, habiendo al menos 2
abogados por juicio (uno para la defensa y uno querellante). De ellos es relevante registrar su
número de ROL de abogado, y a que parte representa (fiscal, defensa o querellante). Además de
los abogados, en los juicios se presentan los antecedentes de la causa (documentos, pruebas,
declaraciones, resoluciones, etc.), de los cuales se registra la fecha de cada antecedente, el
formato del documento (que puede ser audio, una foto, un video o un simple testimonio), y la
prueba digitalizada propiamente tal. Un juicio tiene muchos antecedentes, y un antecedente puede
ser presentado en varios juicios.

Interesa saber también qué Juez ha resuelto el juicio, sabiendo que un juicio es resuelto por un
juez, y un juez resuelve muchos juicios. Un Juez se caracteriza por la fecha de ingreso al sistema
judicial, un código de juez y un código del tribunal en donde se desempeña, siendo vital además
conocer cuántos años lleva en el servicio. Tanto del juez, de los abogados, de los guardias como
de los delincuentes, interesa saber al menos su nombre y RUN.
Ejercicio # 8

La Asociación de Isapres de Chile A.G. (AICh), ha decido montar un sistema de información que se
utilizará a través de todo el sistema de salud, público y privado, de manera de gestionar de mejor
forma la información de sus afiliados, trabajadores, activos, etc., de manera de mejorar la
rentabilidad de sus asociados. Para ello, han solicitado al mismo consultor de Sistemas de
Información que haga un levantamiento de requerimientos respecto del proceso general que
engloba el sistema de salud, para establecer la estructura estática del software que desean.

De partida, se requiere registrar la información relativa a cada una de las Isapre de la asociación,
las cuales tienen la función de generar utilidades, y de las cuales se requiere almacenar el
Nombre, RUT, y RUT del representante legal. Las Isapre tienen convenios con diferentes clínicas
privadas y hospitales públicos, de los cuales se desea registrar su nombre, RUT y dirección. A su
vez, mantienen convenios no exclusivos con diferentes profesionales de la salud, de quienes
registra su nombre, RUT, fecha de nacimiento, y nacionalidad, siendo requerido que la aplicación
muestre la edad de dicho profesional cuando es consultada. En los convenios se registran el costo
por atención que la Isapre pagará al profesional, el plazo de expiración del convenio, y se requiere
un cálculo de rentabilidad para la Isapre de dichos profesionales. Los profesionales de la salud
pueden ser médicos (doctores) u otro tipo de profesional, en donde en el primer caso se requiere
registrar el tipo de especialidad y número de registro en el Colegio Médico; y en el segundo que
tipo de atención prestan (enfermero, matrona, kinesiólogo o psicólogo).

Las Isapre tienen diversas sucursales a lo largo de todo el país, y en las ciudades más
importantes, de las cuales se registra un código de sucursal, una dirección, el número de
empleados por sucursal, y debe reportar el total de circulante (dinero) que mantienen. Cada
sucursal tiene diversos empleados, de los cuales se registra su sueldo bruto, un código de
empleado, nombre, RUT, y fecha de nacimiento, siendo requerido que la aplicación muestre la
edad de dicho empleado. Tiene además un Jefe de Sucursal, cuya labor es administrar, y que es
jefe de todos los empleados de la misma.

Las Isapre tienen afiliados (clientes) exclusivos, con quienes conviene un plan de salud a modo de
contrato de prestación de servicios. De ellos registra su nombre, RUT, profesión y fecha de
nacimiento, y del contrato registra el valor y el nombre del plan. Los afiliados deben asistir a las
sucursales de las Isapre para obtener las diferentes prestaciones que la Isapre le debe
proporcionar, y que se encuentran pactadas previamente en el plan de salud contratado por el
afiliado, la que pueden ser compra de bonos, reembolso de boletas, cambio del plan de salud, o
consultas generales, siendo importante para la Isapre que se registre que prestación se le dio al
afiliado cuando asistió a la sucursal.
Ejercicio # 9

 Un usuario desea pagar su compra con su tarjeta de débito. Para ello, solicita al vendedor el
pago con dicho medio, éste le recibe la tarjeta, la desliza por la ranura magnética del POS,
ingresa el monto de la venta y le entrega el dispositivo al usuario.
 El cliente debe confirmar el monto de la transacción e ingresar el PINPASS asociado a su
tarjeta.
 Luego, el POS establece una comunicación con TRANSBANK para verificar los datos de la
tarjeta y su PINPASS.
 Luego, TRANSBANK establece una conexión con el Banco asociado a la cuenta corriente de la
tarjeta de débito, para consultar si el cliente posee saldo suficiente para concretar la operación.
 El banco responde que existe saldo en la cuenta corriente respectiva, cerrando TRANSBANK
la comunicación con éste al recibir la respuesta.
 Este último responde al POS que la operación ha sido exitosa, en donde el POS contesta con
un mensaje de reconocimiento (conocido como ACK) de vuelta, y procede a la impresión del
comprobante respectivo.
 TRANSBANK vuelve a establecer una comunicación con el Banco asociado a la cuenta
corriente de la tarjeta de débito, informando el monto del valor de la transacción, en cuyo acto
el Banco descuenta del saldo de la cuenta corriente del cliente el monto facturado.
Paralelamente, informa al POS que cierre el canal de comunicación.
 Una vez impresos los comprobantes, el vendedor acepta presionando cualquier tecla en su
terminal y termina la operación.

Generar un Diagrama de Secuencia y un Diagrama de Colaboración que modelen el caso


expuesto.
: POS : TransBank : Banco : CtaCte
Cliente Vendedor

DeslizarTarjeta()
EntregarTarjeta
Monto?
[valorMonto]
ConfirmarMonto
[OK]
IngresarPINPASS

CrearCom()
[#PINPASS] : canal1
Verificar()
CrearCom()
: canal2
Validar()
GetSaldo()

[OK] [saldo]

Aprobación() KillCom() X
Comprobante
de Pago
ImprimirComprobante()
[ACK]
CrearCom()
PresionarTecla
KillCom() : canal3
Cargar()
[OK] KillCom() Descontar()
[entregarComprobante]
X [OK] [OK]

KillCom() X
Nota: Luego de creado un canal, los mensajes desde un extremo a otro deben ser ‘gestionados’ (trasmitidos) desde el punto de vista de UML por el canal.8 Acá
se abrevió dicho paso considerando que la comunicación ‘real’ es directa entre ambos extremos a través del canal. Pero es solo una abreviación.
1: EntregarTarjeta 
: Cliente : Vendedor
 2: [entregarComprobante]

1.1: DeslizarTarjeta() ↓
1.2: Monto? ↑
1.3: [valorMonto]↓
1: ImprimirComprobante() 2.1: PresionarTecla ↑
Comprobante 2.2: [OK]↓
de Pago

: POS
 1.1: ConfirmarMonto
1.2: [OK] 
1: CrearCom() ↓
 2.1: IngresarPINPASS
2: Verificar() ↓ : CtaCte
2.2: [#PINPASS] 
3.1: Aprobación() ↑
3.2: [ACK] ↓
4.1: KillCom() ↑
1.1: GetSaldo() ↑
4.2: KillCom↓
1.2: [saldo] ↓
2.1: Descontar() ↑
: canal1 1.2: [OK] ↓
1: Verificar() ↓
2.1: Aprobación() ↑
2.2: [ACK] ↓
3: KillCom() ↑
1: CrearCom()  2.1: Validar() 
2.1: Validar()   2.2: [OK]
: TransBank : canal2 : Banco
 2.2: [OK]
1: CrearCom() ↓ 3: KillCom 
2.1: Cargar() ↓
2.2: [OK] ↑ 2.1: Cargar() 
3: KillCom ↓  2.2: [OK]
: canal3

También podría gustarte