Professional Documents
Culture Documents
A continuacin se presenta el anlisis del caso de estudio Sistemas de Notas. El alcance de esta solucin contempla el modelo de dominio del mundo del problema. Es importante aclarar que esta solucin no es nica.
Enunciado
El Colegio de Los Alpes es uno de los colegios ms reconocidos en el pas. Tiene desde primero hasta undcimo grado y en cada uno de cursos hay 1, 2 3 secciones llamadas A, B y C respectivamente. Todos los estudiantes de una misma seccin ven juntos todos los cursos de 7 a.m. a 1 p.m. Cada clase es de 1 hora y tienen un recreo de 9 a 10. Una seccin ve el mismo curso a la misma hora todos los das (por ejemplo, ve Matemticas II de 10 a 11, de lunes a viernes). Todos los profesores son de tiempo completo y tienen asociado, adems de la informacin personal, un cdigo 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 categora que determina el salario que le van a pagar. Las categoras son de 1 a 5 (5 es la mxima) 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..6) en el cual vive. All, despus de pagar, el sistema lo agrega a la seccin en la cual haya menos estudiantes en ese momento. La matrcula se calcula usando una tabla a partir del estrato al cual pertenece. Dicha tabla tambin se debe poder administrar desde la Oficina de Admisiones. Cada dos meses la Oficina de Registro pide al sistema la generacin de los boletines de notas de todos los estudiantes, a partir de la informacin 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 exmenes 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 1 a 5 (por ejemplo, 4.23). En un ao hay 4 bimestres. La Oficina de Registro debe poder, adems, pedir al sistema la generacin de un boletn especfico de un bimestre ya cerrado, dando el carn del estudiante y el bimestre. El sistema no maneja informacin de aos anteriores, sino slo la informacin del ao en curso. El colegio tiene un saln para cada seccin (hasta 33 salones). Cada saln se llama con el grado y la seccin correspondientes. Por ejemplo, 3A (tercero seccin A). El sistema genera, a peticin de la Oficina de Registro, una comunicacin impresa con
los cursos que debe dictar algn profesor del colegio (materia y hora), que incluye la lista de sus estudiantes (carn y nombre). Este carn se le asigna al estudiante el da de la matrcula y corresponde a un valor secuencial (5 dgitos: 0000099999). Una materia tiene un nombre (por ejemplo Matemticas II) y un cdigo. Este cdigo es nico y est constituido por 5 dgitos, as: los dos primeros dgitos dan el grado (01-11), y los tres siguientes corresponden a un consecutivo. La informacin de materias, cursos, profesores y secciones se debe cargar, al comienzo de la ejecucin, de una base de datos con la que cuenta el colegio y que es administrada con otro programa.
Solucin propuesta
Aspectos Estructurales
Atributos y asociaciones bimestreActual: bimestre actual del ao [5] tablaSalarios: contiene los posibles salarios de un profesor [*] matriculados: contiene los estudiantes matriculados del colegio
Colegio
Representa el colegio
[11] grados: contiene los grados escolares ofrecidos [*] profesores: contiene los profesores del colegio [6] tablaMatriculas: contiene el valor de la matrcula por estrato social [*] catalogo: contiene las materias ofrecidas por el colegio [1..3] secciones: contiene las secciones de estudiantes [1] encargado: es el profesor encargado nmero: es el nmero del grado letra: es la letra de la seccin [5] cursos: contiene los cursos vistos por esta seccin [*] estudiantes: contiene los estudiantes de esta seccin
Grado
Seccin
Curso
hora: es la hora en la que se dicta el curso Es un curso visto por una seccin [1] datosMateria: son los datos de la materia en un cierto horario dictada por este curso informacionPersonal: es la informacin personal de un profesor cdigo: es el cdigo nico de identificacin del profesor categora: es la categora salarial [0..1] gradoEncargado: grado del que puede estar encargado el profesor [*] dictando: contiene los cursos que est dictando actualmente [*] dictables: contiene las materias que puede dictar nombre: es el nombre de la materia cdigo: es el cdigo de identificacin programa: es el programa cubierto por la materia informacinPersonal: es la informacin personal de un estudiante carn: es el cdigo nico de identificacin estrato: es el estrato social al que pertenece el estudiante [5] cursosAbiertos: contiene los cursos vistos en el bimestre actual [0..4] bimestresCerrados: contiene los datos acadmicos del estudainte de los bimestres cerrados
Profesor
Materia
Estudiante
[1] datosCurso: son los datos del curso Representa el conjunto de notas [0..1] examen1: posible nota de un examen NotasParciales de un curso del bimestre en [0..1] examen2: posible nota de un examen curso [0..1] trabajo1: posible nota de un trabajo [0..1] trabajo2: posible nota de un trabajo Nota Es una nota de un examen o un trabajo valor: es el valor numrico de la nota id: es el identificador nico [5] cursosCerrados: contiene el conjunto de notas de cada uno de los cursos
NotaCurso
Representa el conjunto de notas nota: es el valor numrico de la nota de un curso de un bimestre [1] curso: son los datos del curso cerrado Es una categora salarial de un profesor Es el estrato social de un estudiante identificador: es el identificador nico salario: es el valor numrico del salario identificador: es el identificador nico valor: es el valor numrico de la matrcula
Categora
Estrato
Enunciado
Se quiere construir un sistema de informacin para manejar un parqueadero. En un parqueadero existe un nmero dado de puestos (configurados por el administrador), informa el cada uno de en los el cuales que tiene un debe identificador. parquear. Al llegar un carro a la puerta, el portero teclea la placa del carro y el sistema le puesto A la salida, el portero teclea la placa y el sistema informa el monto que debe pagar el dueo del carro, si ste no tiene un contrato mensual con el parqueadero. Para abrir un contrato por mes (todos comienzan el 1 del mes), el dueo de un carro debe ir donde el administrador, darle los datos bsicos del carro y pagar. Los carros que tienen contrato no tienen que pagar nada a la salida. Tanto la tarifa que paga cada vehculo por minuto como la tarifa que se paga por un contrato mensual son definidos por el administrador.
Por razones de auditora, el parqueadero debe guardar todos los servicios de parqueo del ltimo mes: 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 borran los archivos de auditora y se cancelan todos los contratos.
Solucin propuesta
Funcionales Estructurales
: verbo. actor.
- Escriba casos de uso en un estilo esencial; no considere la interfaz de usuario y cntrese - Las relaciones entre los casos de uso son secundarias en el trabajo con los diagramas de casos de uso.
Actor
Caso de uso
Entradas
Precondiciones
Resultados Se ha definido que el parqueadero tiene el nmero dado de puestos Se ha asignado un identificador a cada puesto
tarifa por minuto Las tarifas son C2: Definir tarifas tarifa vlidas por mes datos Los datos son C3: Abrir Contrato bsicos del vlidos carro C4: Generar el reporte de un contrato C5: Generar el reporte de todos los carros sin contrato placa del La placa del carro carro es vlida
Se ha definido el contrato para el carro con los datos dados Se ha generado un reporte con todos los servicios de parqueo del carro durante el mes Se ha generado un reporte con los servicios de parqueo de todos los carros que no tienen contrato y que han entrado durante el ltimo mes Se han borrado los archivos de auditoria y se han cancelado todos los contratos del mes
Actor
Caso de uso
Entradas
Precondiciones
Resultados Se ha indicado el puesto en el que el vehculo debe parquear El carro ha ingresado al parqueadero y ha ocupado el puesto sealado Se ha indicado el valor que debe pagar el conductor del carro (el valor es 0 si el carro tiene contrato) El carro ha salido del parqueadero
: software. defecto.
- Un modelo de dominio es una representacin de las cosas del mundo real del - Es mejor especificar por exceso en un modelo del dominio con muchas clases - Haga el modelo de dominio con el modo de trabajo de los cartgrafos: utilice los nombres existentes en el territorio, excluya caractersticas irrelevantes y no aada cosas que no estn ah. - Si tiene dudas en cuanto representar algo como un atributo o como un concepto, piense si lo que desea representar es un nmero o texto en el mundo real, si no lo es, probablemente sea una clase conceptual, no un atributo. En caso de mayor duda, considrelo como un concepto separado. - Un modelo de dominio no es absolutamente correcto o equivocado, sino ms o menos til, es una herramienta de comunicacin que proporciona una diccionario visual del vocabulario y conceptos del dominio de los cuales nos inspiramos para nombrar algunas cosas del diseo de software. Entidad Descripcin Atributos y asociaciones
tarifaMinuto: tarifa que se cobra por minuto estacionado tarifaMensual: tarifa que se cobra por un contrato mensual [*] movimientosSinContrato: conjunto de servicios de parqueo prestados a los carros que no cuentan con un contrato mensual [*] puestosOcupados: conjunto de puestos ocupados
en el parqueadero [*] puestosLibres: conjunto de puestos libres en el parqueadero [*] contratos: conjunto de contratos abiertos para el mes actual [*] parqueados: conjunto de carros estacionados actualmente en el parqueadero Es un puesto del parqueadero que puede tener un carro estacionado identificador: identificador nico del puesto [0..1] carro: carro que puede estar estacionado en este puesto
Puesto
Carro
horaLlegada: hora de llegada del carro al parqueadero placa: nmero de placa del carro Es un carro parqueado en algn [0..1] carrosConContrato: contrato mensual que puede puesto del parqueadero tener un carro con el parqueadero [0..1] puesto: puesto en el que est parqueado el carro Representa un contrato mensual de un carro placa: nmero de placa del carro [*] movimientosConContrato: conjunto de servicios utilizados por el carro durante el mes actual
Contrato
horaLlegada: hora de llegada del carro al parqueadero Representa el servicio prestado horaSalida: hora de salida del carro del parqueadero Movimiento a un carro al entrar y salir del montoPagado: suma de dinero pagada por el carro (si parqueadero pag algo) placa: nmero de placa del carro Enunciado del caso
Aspectos
de
Se ha generado un reporte con todos los La placa del carro servicios de parqueo del carro durante el es vlida mes
Guas
Clave
- Dibuje un Diagrama de secuencia del sistema para el principal escenario de xito de cada caso de uso, y los escenarios frecuentes o alternos complejos. - Los diagramas de secuencia pueden opcionalmente mostrar el retorno de un mensaje mediante una lnea punteada con la punta de la flecha abierta, al final de una caja de activacin. Pero lo normal es que se excluya por quienes utilizan UML. Caso de uso Entradas Precondiciones Resultados C8: Autorizar salida de un carro Hay un carro con la placa dada en el parqueadero Se ha indicado el valor que debe pagar el conductor del carro (el valor es 0 si el carro tiene contrato) El carro ha salido del parqueadero
Enunciado
Una universidad est interesada en construir un sistema para el manejo y aplicacin de exmenes en lnea 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 lo utilicen muy activamente. En dicho sistema cualquier profesor (despus de haber tecleado su usuario y su palabra clave desde un navegador) debe poder agregar un nuevo curso, para lo cual debe dar un cdigo y un nombre. Para cada curso, el sistema almacena un conjunto de preguntas que, por ahora, tienen que ser de seleccin mltiple. Dichas preguntas pueden ser agregadas por cualquier profesor (no tiene que ser el profesor que cre el curso). Una pregunta tiene asociado un nmero consecutivo (llamado su identificador y asignado automticamente 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 cdigo 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 nmero de preguntas que el examen debe contener. Un examen tiene un cdigo 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 finalizacin (en ese momento se cierra el examen). Los exmenes pueden abrirse o cerrarse en cualquier momento del da, de la semana, pero no se espera que se realicen uniformemente a lo largo del semestre: en algunas semanas particulares se realizarn la mayora de los exmenes. Cada estudiante (identificado por un nmero 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 cdigo. Despus, puede contestar sus
preguntas, dando el nmero de la pregunta que quiere contestar y la respuesta que considera correcta. Si el estudiante ya haba 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), teniendo en cuenta que todas las preguntas valen lo mismo En cualquier momento un estudiante puede consultar los resultados (nota) de todos los exmenes ya cerrados que fueron presentados por l. Adicionalmente, un profesor tambin puede consultar los resultados de cualquiera de los exmenes cerrados que l ha creado. La universidad est planeando una campaa 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 nmero de estudiantes participantes ser cercano a 15.000.
Solucin propuesta
Aspectos Aspectos Aspectos de Comportamiento Funcionales Estructurales
Actor
Entradas cdigo
Precondiciones Es un estudiante
examen abierto
cdigo estudiante cdigo C2: contestar examen una pregunta de nmero un examen de la iniciado pregunta nmero de la respuesta C3: consultar los cdigo resultados de sus estudiante exmenes
Es un estudiante vlido El estudiante ya haba iniciado este examen Los nmeros de la pregunta y la respuesta son vlidos
El estudiante ha contestado en el examen, la pregunta dada con la respuesta dada. Si la pregunta ya tena una respuesta, sta ha sido actualizada
Es un estudiante vlido
El estudiante obtiene las notas obtenidas en todos sus exmenes presentados que ya fueron cerrados
Actor
Caso de uso
Entradas
C4: agregar un cdigo curso curso nombre curso cdigo curso enunciado pregunta respuesta1, respuesta2, respuesta3, respuesta4, respuesta5 respuesta
La pregunta con sus respuestas posibles ha sido agregada al banco de preguntas del curso Se le ha asignado a la pregunta un identificador nico
correcta Se ha creado un nuevo examen vaco, para el curso cdula profesor Es un profesor vlido dado, con las fechas dadas C6: crear un cdigo curso Es un curso vlido El nuevo examen se ha examen vaco fecha-hora inicio Las fechas de inicio y asociado con el profesor de un curso fecha-hora final finalizacin son vlidas Al examen creado se le ha asignado un cdigo que es nico El cdigo del examen es vlido y no ha sido abierto Se ha agregado al examen la La pregunta es vlida pregunta con el identificador y corresponde al curso dado del cual hace parte el examen
Se ha creado un nuevo examen, para el curso dado, con el nmero de preguntas cdula profesor Es un profesor vlido pedidas, seleccionadas de cdigo curso Es un curso vlido manera aleatoria, con las fechas nmero de El nmero de dadas preguntas preguntas es vlido El nuevo examen se ha fecha-hora inicio Las fechas de inicio y asociado con el profesor fecha-hora final finalizacin son vlidas Al examen creado se le ha asignado un cdigo que es nico El profesor obtiene los resultados obtenidos por los estudiantes que contestaron el examen
Es un profesor vlido C9: consultar El examen fue cdula profesor los resultados creado por el profesor, cdigo examen de un examen y ya se encuentra cerrado Enunciado del caso
Para ver imagen ampliada click aqu Evale: Los elementos del mundo estn completos? Las relaciones entre elementos son suficientes? Tengo toda la informacin que necesito No tengo informacin que no necesito El modelo del mundo soporta los requerimientos que se plantearon? Podemos navegar el modelo adecuadamente? Descripcin Entidad Atributos y asociaciones
Examen
Es un examen construido por un profesor, en todos sus estados posibles (en creacin, abierto y cerrado)
cdigo: identificador nico del examen inicio: fecha-hora de inicio del examen finalizacin: fecha-hora de cierre del examen [*] preguntas: conjunto de preguntas que hacen parte del examen [1] curso: curso del cual hace parte este examen [*] terminados: conjunto de exmenes terminados de contestar por los estudiantes. Mientras el examen est abierto, este conjunto est vaco [*] contestadas: contiene las preguntas que hasta ahora ha contestado el estudiante, con su respectiva respuesta
ExamenEnProceso
[1] examen: examen que est siendo contestado carn: carn del estudiante nombre: nombre del estudiante [*] contestando: contiene los exmenes que en este momento el estudiante se encuentra contestando [*] contestados: contiene los resultados de los exmenes cerrados que fueron contestados por el estudiante cdula: documento de identidad del profesor [*] creados: contiene los exmenes creados por el profesor, que se encuentran en proceso de construccin o abiertos [*] cerrados: contiene los exmenes creados por el profesor, que se encuentran cerrados identificador: cdigo de la pregunta enunciado: texto que contiene el enunciado de la pregunta [5] posibles: contiene las 5 respuestas posibles a la pregunta [1] correcta: es la respuesta correcta a la pregunta. Corresponde a una de las 5 respuestas posibles cdigo: cdigo del curso nombre: nombre del curso [*] preguntas: banco de preguntas del curso texto: cadena de caracteres con la respuesta [1] preguntaRef: pregunta del examen que contest [1] contestada: respuesta marcada como correcta [*] cursos: contiene todos los bancos de preguntas asociados con los cursos de la universidad [*] profesores: contiene todos los profesores de la universidad [*] estudiantes: contiene todos los estudiantes de la universidad [*] exmenes: contiene todos los exmenes de la universidad, en cualquier
Estudiante
Profesor
Es un profesor de la universidad
Pregunta
Curso
Es un curso de la universidad
Respuesta
ManejadorExamenes
estado (en creacin, abierto y cerrado) nota: evaluacin final obtenida en el examen Representa un examen cerrado, ya ExamenTerminado [1] estudiante: persona que contest el terminado por un estudiante examen [1] examen: examen contestado Enunciado del caso
Aspectos
de
Cdigo estudiante C1: iniciar examen (codEst) abierto Cdigo examen (codEx)
Caso de uso
Entradas
Resultados
cdula profesor (ced) cdigo curso C6: crear un examen vaco (cod) de un curso fecha-hora inicio (inic) fecha-hora final (fin)
Se ha creado un nuevo examen vaco, para el curso dado, con las fechas dadas El nuevo examen se ha asociado con el profesor Al examen creado se le ha asignado un cdigo que es nico
Caso de uso
Entradas
Resultados
carn estudiante (car) cdigo examen C2: Contestar una El estudiante ha contestado en el examen la pregunta (cod) pregunta de un examen dada con la respuesta dada. Si la pregunta ya tena una nmero de la iniciado respuesta, sta ha sido actualizada pregunta (preg) nmero de la respuesta (resp)