UNIVERSIDAD UNIVERSIDAD NACIONAL JOSÉ MARÍA RGUEDAS ESCUELA PROFESIONAL PROFESIONAL DE INGENIERÍA DE SISTEMAS EJERCICIOS DE INGENIERÍA DE REQUERIMIENTOS CASO DE ESTUDIO Nº 1 El Colegio Secundario de Menores “José “José Olaya Balandra” Balandra” es uno de los colegios más reconocidos en la ciudad de Arequipa. Presta servicios a los alumnos que cursan desde el primer al quinto grado en educación educación secundaria en cada uno de los cursos que se dictan hay 1, 2 ó 3 secciones llamadas lla madas A, B y C respectivamente. Todos los estudiantes e studiantes de una misma sección ven juntos todos los cursos de de 7 a.m. a 2 p.m. Cada clase es de 2 horas y tienen un recreo recreo de 9 a.m. a 10 am. Una sección desarrolla la menos 12 asignaturas (por ejemplo, 3RO A desarrolla Matemáticas II de 10 am a 12 pm el lunes y viernes). Todos los profesores son de tiempo completo y tienen asociado, además de la información personal, un código único, una lista de materias que puede dictar, una lista de cursos que está dictando, el grado del cual está encargado (si tiene alguno), y una categoría que determina el salario que le van a pagar. Las categorías cate gorías son de 1 a 5 (5 es la máxima) y el sistema debe permitir a la Oficina de Recursos Humanos administrar la tabla de salarios. Cuando un estudiante se matricula en el colegio, debe ir a la Oficina de Admisiones. Allí suministra todos sus datos personales, el grado al cual entra y el estrato (1 a 6) en el cual vive. Allí, después de pagar, el sistema lo agrega a la sección en la cual haya menos estudiantes en ese momento. La La matrícula se calcula usando una una tabla a partir del del estrato al cual pertenece. Dicha tabla también se debe poder administrar desde la Oficina de Admisiones. Cada dos meses la Oficina de Registro pide al sistema la generación de los boletines de notas de todos los estudiantes, a partir de la información ingresada en el sistema directamente por los profesores. Al hacer esto, el sistema debe calcular las notas definitivas de cada estudiante en cada curso y cerrar el bimestre, de manera que las notas parciales ya no se puedan modificar. Por reglamento del colegio, el profesor debe hacer cada bimestre dos exámenes y dos trabajos, e ingresar cada una de estas notas al sistema a medida que las va obteniendo. La nota del bimestre en cada curso corresponde al promedio de estos cuatro valores. Las notas van de 0 a 20 (por ejemplo, 14). En un año hay 4 bimestres. La Oficina de Registro debe poder, además, pedir al sistema la generación de un boletín específico de un bimestre ya cerrado, dando el número de carné del estudiante y el bimestre. El sistema no maneja información de años anteriores, sino sólo la información del año en curso hacia adelante. Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE SOFTWARE II
El colegio tiene un salón para cada sección (hasta 33 salones). Cada salón se llama con el grado y la sección correspondientes. Por ejemplo, 3A (tercero sección A). El sistema genera, a petición de la Oficina de Registro, una comunicación impresa con los cursos que debe dictar algún profesor del colegio (materia y hora), que incluye la lista de sus estudiantes (número de carné y nombre). Este carné se le asigna al estudiante el día de la matrícula y corresponde a un valor secuencial (5 dígitos: 00000 al 99999). Una materia tiene un nombre (por ejemplo “Matemátic as II”) y un código. Este código es único y está constituido por 5 dígitos, así: los dos primeros dígitos dan el grado (01-11), y los tres siguientes corresponden a un consecutivo. La información de materias, cursos, profesores y secciones se debe cargar, al comienzo de la ejecución, de una base de datos con la que cuenta el colegio.
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
CASO DE ESTUDIO Nº 2 El señor Juan Perez Perez desea adquirir un sistema de información para manejar su parqueadero que ha crecido bastante en los últimos años. En el parqueadero existe un número dado de puestos (configurados por el administrador), cada uno de los cuales tiene un identificador y codificados con tres caracteres desde A01 al A02. Al llegar un automóvil a la puerta, el portero pasa por un lector de barras una tarjeta que se les da a los clientes y el cual contiene información clave del cliente así como de su vehículo, esto es solo para aquellos clientes que se registran con un contrato previo en caso contrario de no poseer contrato y ser un cliente normal el encargado teclea la placa del automóvil y el sistema le informa el puesto en el que debe parquear. A la salida, el portero pasa la tarjeta o bien teclea la placa según sea el caso y el sistema informa el monto que debe pagar el dueño del automóvil. Para abrir un contrato por mes (todos comienzan el 1 del mes), el dueño de un carro debe ir donde el administrador, darle los datos básicos del carro y pagar y seguidamente se genera su tarjeta de cliente. Los carros que tienen contrato no tienen que pagar nada a la salida. Tanto la tarifa que paga cada vehículo por minuto como la tarifa que se paga por un contrato mensual son definidos por el administrador. Por razones de auditoría, el parqueadero debe guardar todos los servicios de parqueo: hora de llegada,
hora
de
salida,
placa
del
carro,
monto
pagado
(si
pagó
algo).
El administrador puede pedir un reporte en el que aparezcan dichos servicios de parqueo para un contrato dado (identificado por la placa) o para todos los carros que no tienen contrato. Al final de cada mes el administrador hace un cierre, se bloquean los archivos de auditoría y se vencen todos los contratos.
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
CASO DE ESTUDIO Nº 3 La universidad nacional Federico Villareal está interesado en adquirir un sistema para el manejo y aplicación de exámenes en línea para cualquiera de sus cursos. La universidad considera que dicho sistema es el primer paso para montar versiones totalmente virtuales de sus cursos y ha preparado varios incentivos para que los profesores l o utilicen muy activamente. En dicho sistema cualquier profesor (después de haber tecleado su usuario y su palabra clave desde un navegador) debe poder agregar un nuevo curso, para lo cual debe dar un código y un nombre. Para cada curso, el sistema almacena un conjunto de preguntas que, por ahora, tienen que ser de selección múltiple. Dichas preguntas pueden ser agregadas por cualquier profesor (no tiene que ser el profesor que creó el curso). Una pregunta tiene asociado un número consecutivo (llamado su identificador y asignado automáticamente por el sistema) y consta de un enunciado y de una secuencia de respuestas posibles, numeradas de 1 a 5, una sola de las cuales es correcta. Una vez los profesores han definido este banco de preguntas, cualquiera de ellos puede crear un examen (debe dar su nombre de usuario y el código del curso, para que el sistema asocie el examen con este profesor) de dos maneras distintas: seleccionando pregunta a pregunta dando su identificador, o pidiendo al sistema que genere el examen de manera aleatoria, para lo cual el profesor debe definir el número de preguntas que el examen debe contener. Un examen tiene un código que es único (generado por el sistema), el cual debe ser tecleado por el estudiante cuando le piden que conteste un examen de un curso. Al crear un examen el profesor define una fecha y una hora de inicio (en ese momento se abre el examen), y una fecha y una hora de finalización (en ese momento se cierra el examen). Los exámenes pueden abrirse o cerrarse en cualquier momento del día, de la semana, pero no se espera que se realicen uniformemente a lo largo del semestre: en algunas semanas particulares se r ealizarán la mayoría de los exámenes. Cada estudiante (identificado por un número de carnet y un nombre), luego de dar su usuario y su palabra clave desde un navegador, indica que va a comenzar a contestar un examen abierto, ingresando su código. Después, puede contestar sus preguntas, dando el número de la pregunta que quiere contestar y la respuesta que considera correcta. Si el estudiante ya había contestado dicha pregunta, el sistema remplaza la respuesta por la nueva. Al llegar la hora de cierre del examen, el sistema calcula la nota de cada uno de los estudiantes (un valor entre 0 y 5), tenie ndo
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
en cuenta que todas las preguntas valen lo mismo En cualquier momento un estudiante puede consultar los resultados (nota) de todos los exámenes ya cerrados que fueron presentados por él. Adicionalmente, un profesor también puede consultar los resultados de cualquiera de los exámenes cerrados que él ha creado. La universidad está planeando una campaña bastante ambiciosa para que los profesores construyan un banco de preguntas muy completo ( al menos 500 preguntas por curso). Se calcula que cuando el sistema sea adoptado por todos los cursos de la universidad (actualmente son 900) el número de estudiantes participantes será cercano a 15.000.
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
CASO DE ESTUDIO Nº 4 LCPeru es una aerolínea que actualmente está posicionada en el mercado nacional (18 destinos), pero que en el corto plazo quiere empezar a operar a nivel regional (25 destinos adicionales), continental (15 destinos adicionales) e intercontinental (12 destinos adicionales). Para poder realizar exitosamente esta transformación, LCPeru sabe que el sistema de información que maneja actualmente no es suficiente. Dicho sistema fue construido hace más de 20 años y su documentación está muy incompleta. Además está basado en tecnologías obsoletas y no ofrece una interfaz adecuada para que algunas de las múltiples aplicaciones clientes existentes hoy en día se conecten con él (clientes usados en agencias de viajes, sitios web). Finalmente, el viejo sistema no soporta los estándares para el intercambio de información reconocidos actualmente por la mayoría de aerolíneas a nivel mundial y no puede garantizar la confidencialidad de las comunicaciones puesto que no soporta protocolos de cifrado modernos (AES). En vista de los cambios que está sufriendo la compañía, LCPeru quiere adquirir un nuevo sistema de información que le permita manejar más adecuadamente las reservas de sus vuelos. Este sistema deberá resolver todas las limitaciones del sistema de información anterior y se debería acomodar mejor a las necesidades presentes y futuras de la compañía. Por el momento, este sistema será utilizado a nivel nacional y remplazará progresivamente al sistema que existe actualmente. Cuando la compañía comience a operar por fuera del país, el nuevo sistema tendrá también que soportar la operación internacional. Para ese momento, LCPeru está planeando una agresiva campaña de mercadeo que estará acompañada de tarifas especiale s y promociones para grupos y viajeros frecuentes. LCPeru ha establecido un equipo de trabajo interno a la compañía y este equipo ha decidido que el sistema a construir debe ofrecer las siguientes opciones: Incluir al sistema un nuevo vuelo. Para esto se da su identificación (AF578), ciudad de partida (Bogotá), aeropuerto del que sale (Eldorado), hora de salida del aeropuerto (17:00), hora de llegada a su destino (11:00), días de la semana que vuela (LMIJVS), ciudad a la que llega (Paris), aeropuerto en el que aterriza (Charles de Gaulle), tipo de avión que lo cubre (Airbus A330-400) y número de kilos que puede llevar un pasajero en ese vuelo (35). Esta opción solo debe estar disponible desde la consola de administración del sistema, a la cual se accede mediante un login y un password. La consola es una aplicación cliente/servidor, que debe usar la tecnología JMX. La autenticación de los login y los password se hace usando LDAP sobre la
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
base de datos de personal de la empresa de aviación, y sólo pueden tener acceso a las opciones de la consola aquellas personas de la empresa con nivel de seguridad igual a 6. A los tres intentos fallidos de entrar a la consola con un login dado, el sistema bloquea dicho usuario y envía un mensaje por correo electrónico a una dirección definida en una opción de la consola. Actualmente LCPeru realiza más de 500 vuelos semanales y tiene detallada información estadística sobre estos vuelos. Se espera que no sea necesario introducir manualmente la información de estos vuelos ya existentes en el nuevo sistema, y tampoco se espera que cambien los identificadores que tienen asignados (esto invalidaría las estadísticas ya existentes). Incluir al sistema un nuevo tipo de avión. Debe dar un identificador único (Airbus A330-400) y la estructura del avión (número y distribución de las sillas (ventana, centro1, centro2, centro3, corredor) en primera clase y en clase turista, zonas de fumadores y no fumadores y capacidad total de carga del avión). El sistema debe poder manejar desde aviones pequeños (dos hileras ventana-corredor, 120 pasajeros), hasta aviones grandes (tres hileras: ventana-centro-corredor, corredor-centro1-centro2-centro3-corredor, corredor-centro-ventana, 526 pasajeros). Esta opción solo está disponible en la consola del sistema. Reservar un puesto en un vuelo. Se debe informar el nombre y apellido del pasajero, su cédula, el vuelo que va a tomar, la fecha, la clase en que viaja, el número del tiquete que compró, la agencia que hace la reserva, y si tiene o no conexión con algún otro vuelo de esta misma aerolínea. Este último dato se usa para hacer que un vuelo espere a los pasajeros que llegan en un vuelo retrasado a hacer una conexión. Este servicio solo se usa para vuelos operados por AeroAlpes. También debe expresar sus preferencias con respecto al puesto asignado: ventana, corredor, centro, adelante o atrás, etc. El sistema responde con la silla que le fue asignada (si hay cupo), o la restricción que no puede cumplir (“no hay puestos libres en una ventana”). También le da una clave asociada con la reserva (“XLS -9082”), con la cual puede consultar toda la información asociada con la reserva hecha. Todas las opciones asociadas con reservas y anulaciones deben estar disponibles por Internet, desde cualquier browser, o también utilizando un API que será construido siguiendo un estándar definido por la industria. Por razones de seguridad, el sistema no puede utilizar la tecnología de applets. Agrupar un conjunto de reservas bajo una sola clave. El pasajero da un conjunto de claves de reservas y el sistema le asigna una nueva clave que las agrupa a todas. Esto permite manejar grupos familiares y excursiones completas bajo un solo código. En algunas temporadas, viajar en grupos permitirá acceder a descuentos especiales. Es indispensable que todas las claves
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
dadas correspondan al mismo vuelo y la misma fecha. Si alguien consulta una clave de grupo, el sistema despliega toda la información asociada con todas las reservas incluidas en el grupo. Anular una reserva. El pasajero debe dar la clave asociada con la reserva. El sistema le presenta toda la información asociada con la misma, y le pide que confirme la anulación. Si la clave corresponde a un grupo de reservas, el sistema las anula todas. Reservar un espacio de carga en un vuelo. Se debe informar el contenido de la carga, el peso en kilogramos, el vuelo, la fecha, y la empresa que contrata. El sistema reserva esta capacidad de carga en ese vuelo, asegurándose que no se sobrepase el límite permitido en el avión (suponiendo que va lleno, que cada pasajero pesa 80 kilogramos y que cada uno lleva el límite permitido de equipaje). Si lo excede no acepta la reserva. Si no lo excede le informa la aceptación y le da una clave asociada con la reserva. Estas claves de reserva no se pueden manejar como grupo. Para anular la reserva de carga se debe dar la clave asignada por el sistema. Como una ayuda, cuando alguien va a reservar un espacio de carga en un vuelo, el sistema le debe informar el espacio disponible para la fecha seleccionada por el cliente. Si no hay cupo en un vuelo, el sistema debe sugerir los 3 siguientes vuelos que cubran la mi sma ruta, y en los cuales si hay espacio para la carga. Registrar a un pasajero. Esta opción sólo está disponible desde la consola de acceso al avión. El login se hace de la misma manera que en la consola de administración, pero la verificación se hace con usuarios de nivel 3. En esta consola se registran (check-in) los pasajeros que van a abordar un vuelo. Para abordar, el cliente debe dar el número de su cédula. Con esta información, además del número del vuelo y el peso del equipaje registrado, el pasajero obtiene un pasabordo con el que se debe presentar a la sala de embarque. Si el peso del equipaje es superior al establecido en el vuelo, el pasajero debe pagar una cierta tarifa, dependiendo de si es un vuelo nacional o internacional. Esta tarifa se debe poder fijar y cambiar desde la consola de administración. Una vez el pasajero traiga el recibo de pago del sobrecupo, se le emite el pasabordo. Si el sobrecupo hace que se exceda el peso total admitido del avión, se rechaza al pasajero. Cuando todos los pasajeros se han registrado o cuando la persona encargada de recibirlos decide que ya es hora (30 minutos antes de la hora de despegue), el vuelo se cierra usando una opción del sistema. Al cerrarse, se genera automáticamente un informe que se envía por correo electrónico a las autoridades, con toda la información disponible de los pasajeros.
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II
Consultar toda la información de un vuelo, dado el número de vuelo y la fecha. Presenta por pantalla las sillas vacías y ocupadas, el número de puestos disponibles, la carga contratada, etc. Esta opción debe estar disponible por Internet y debe mostrarse de forma gráfica. Consultar todos los vuelos entre dos ciudades, dados sus nombres. Presenta por pantalla una tabla organizada por día y por hora con todos los vuelos que hay entre esas ciudades. Esta opción debe estar disponible por Internet.
Debido a lo crítico del sistema como eje central de las operaciones de la compañía, será puesto en funcionamiento por módulos, y cada módulo tendrá que ser probado extensamente utilizando pruebas automáticas. Antes de hacer el despliegue de cada módulo adicional, se espera también que el equipo del proyecto muestre que la interacción entre los módulos desplegados no presente inconvenientes.
Msc. CARLOS YINMEL CASTRO BULEJE
INGENIERÍA DE SOFTWARE II