0% encontró este documento útil (0 votos)
236 vistas323 páginas

Tesis Huerto

Este documento presenta un proyecto de desarrollo de un sistema de gestión académica para un colegio privado en Paysandú, Uruguay. El sistema permitirá la gestión administrativa, académica y reglamentaria del colegio, incluyendo inscripción de alumnos, administración de docentes, ingreso de calificaciones, entre otras funciones. El proyecto se desarrollará usando C# y SQL Server, e incluirá análisis de requerimientos, diseño de la interfaz, base de datos y aplicación, e implement

Cargado por

slipox2
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
236 vistas323 páginas

Tesis Huerto

Este documento presenta un proyecto de desarrollo de un sistema de gestión académica para un colegio privado en Paysandú, Uruguay. El sistema permitirá la gestión administrativa, académica y reglamentaria del colegio, incluyendo inscripción de alumnos, administración de docentes, ingreso de calificaciones, entre otras funciones. El proyecto se desarrollará usando C# y SQL Server, e incluirá análisis de requerimientos, diseño de la interfaz, base de datos y aplicación, e implement

Cargado por

slipox2
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Universidad ORT Uruguay Facultad de Ingeniera

Sistema Informtico para Colegios

SIINCO
Entregado como requisito para la obtencin del ttulo de Analista Programador

Bruno Coppes - 125412 Mauricio Klivzov - 65398 Tutor: A/P Diego Martin

2009

ABSTRACT
Este proyecto est orientado al desarrollo de un sistema informtico para la gestin acadmica del ciclo bsico de secundaria en el colegio privado Nuestra Seora del Huerto radicado en la ciudad de Paysand. Dicho sistema permitir optimizar su trabajo diario acotando los tiempos de proceso y mejorando la solidez de la informacin en las reas de gestin administrativa, acadmica y reglamentaria. Gestin Administrativa: Inscripcin de alumnos, administracin del cuerpo docente, cursos dictados, planes, grupos, etc. Gestin Acadmica: Ingreso de calificaciones, exmenes, inasistencias, manejo de escolaridades. Gestin Reglamentaria: Validaciones de inscripciones de alumnos y aprobacin de cursos basndose en el reglamento del Consejo de Educacin Secundaria (CES) para el ciclo bsico segn el plan 2006.

En las distintas etapas de este proyecto se usaran diversas herramientas entre las que se destacan Microsoft Visual C# 2008 para el desarrollo y Microsoft SQL Server 2008 Express Edition como motor de Base de Datos.

NDICE
1. ANTEPROYECTO...............................................................................................................................7 1.1. INTRODUCCIN..........................................................................................................................7 1.2. PRESENTACIN DEL CLIENTE..................................................................................................8 Cantidad de alumnos aproximada:...............................................................................................8 Sobre las Inscripciones.................................................................................................................9 Entrega de Calificaciones.............................................................................................................9 Pruebas semestrales....................................................................................................................9 1.3. PRESENTACIN DEL PROBLEMA...........................................................................................10 1.4. LISTA DE NECESIDADES..........................................................................................................11 1.5. ANLISIS ESTRATGICO.........................................................................................................11 1.6. ACTORES INVOLUCRADOS ....................................................................................................11 1.7. OBJETIVOS................................................................................................................................12 1.8.1. Requerimientos funcionales..................................................................................................13 1.8.2. Requerimientos no funcionales / restricciones......................................................................13 1.9. DESCRIPCIN DEL ENTORNO.................................................................................................14 1.9.1 Diagrama de casos de uso General.......................................................................................14 1.9.2. Diagrama Conceptual...........................................................................................................15 1.10.1. Alcances.............................................................................................................................15 1.10.2. Limitaciones.......................................................................................................................16 1.11. ESTUDIO DE ALTERNATIVAS.................................................................................................17 1.11.1 Seleccin de la alternativa...................................................................................................17 1.11.2 Arquitectura.........................................................................................................................18 [Link]. Factibilidad operativa...................................................................................................19 [Link]. Factibilidad tcnica.......................................................................................................19 [Link]. Factibilidad legal..........................................................................................................19 [Link]. Factibilidad econmica.................................................................................................20 [Link].1. ............................................................................................................................21 1.12 ANLISIS DE RIESGOS............................................................................................................22 1.12.1 Sobre el Anlisis de Riesgos...............................................................................................22 1.12.2 Anlisis de Riesgos de nuestro proyecto..........................................................................22 1.13. PLAN DE PROYECTO..............................................................................................................30 1.13.1. Definicin del Proceso........................................................................................................30 [Link]. Metodologa.................................................................................................................30 [Link]. Ciclo de Vida................................................................................................................30 [Link]. Iteraciones Definidas....................................................................................................30 [Link]. Integrantes y Roles......................................................................................................31 [Link]. Descripcin y Seleccin de Herramientas....................................................................31 [Link]. Plan de SQA (Software Quality Assurance)..................................................................32 [Link].1. Estndares Definidos y Convenciones...................................................................33 [Link].2. Plan de Testeo......................................................................................................33 [Link]. Plan de SCM............................................................................................................34 [Link]. Plan de Capacitacin ..................................................................................................35 [Link]. Cronograma de Trabajo y Criticidad.............................................................................35 1.14. COMPROMISO DE TRABAJO..................................................................................................39 2. PROYECTO......................................................................................................................................40 2.1. ETAPA DE APRENDIZAJE DE HERRAMIENTAS......................................................................40 2.2. DISEAR GUI............................................................................................................................41 2.2.1. Definicin de Interfaces de Usuario......................................................................................41 2.3. APLICACIN BASE ...................................................................................................................43 2.4. DISEO DE ACCESO A DATOS................................................................................................52 2.4.1. Capa de persistencia............................................................................................................52 2.5. ITERACION I..............................................................................................................................53 2.5.1. Reunin con el Cliente.........................................................................................................53

2.5.2. Planificacin y Anlisis de riesgos........................................................................................55 2.5.3. Anlisis.................................................................................................................................60 [Link]. Requerimientos..............................................................................................................60 [Link]. Anlisis de los Casos de Uso.........................................................................................60 [Link]. Diagramas de Secuencia...............................................................................................65 [Link]. Anlisis de Clases..........................................................................................................69 2.5.4. Diseo..................................................................................................................................72 [Link]. Casos de Uso de Diseo...............................................................................................72 [Link]. Diagramas de secuencia................................................................................................88 [Link]. Diagramas de Clases...................................................................................................118 2.5.5. Implementacin..................................................................................................................124 [Link]. Diccionario de Clases..................................................................................................124 [Link]. Mapeo de Clases a Tablas...........................................................................................132 2.5.6. Testeo................................................................................................................................135 [Link]. Conclusiones del Testeo..............................................................................................157 2.5.7 Resumen de la Iteracin I....................................................................................................157 2.6 ITERACION II............................................................................................................................158 2.6.1. Reunin con el Cliente........................................................................................................158 2.6.2. Planificacin y Anlisis de riesgos......................................................................................160 2.6.3. Anlisis...............................................................................................................................165 [Link]. Requerimientos............................................................................................................165 [Link]. Anlisis de Requerimientos. ........................................................................................166 [Link]. Anlisis de los Casos de Uso.......................................................................................170 [Link]. Diagramas de Secuencia.............................................................................................172 2.6.4. Diseo................................................................................................................................175 [Link]. Casos de Uso de Diseo..............................................................................................175 [Link]. Diagramas de secuencia..............................................................................................183 [Link]. Diagramas de Clases......................................................................................................196 2.6.5. Implementacin..................................................................................................................202 [Link]. Diccionario de Clases..................................................................................................202 [Link]. Mapeo de Clases a Tablas...........................................................................................213 2.6.6. Testeo................................................................................................................................217 [Link]. Conclusiones del Testeo..............................................................................................228 2.6.7. Resumen de la Iteracin II..................................................................................................228 2.7. ITERACION III..........................................................................................................................229 2.7.1. Reunin con el Cliente........................................................................................................229 2.7.2. Planificacin y Anlisis de riesgos......................................................................................230 2.7.3. Anlisis...............................................................................................................................231 [Link]. Requerimientos............................................................................................................231 [Link]. Anlisis de los Casos de Uso.......................................................................................231 [Link]. Diagramas de Secuencia.............................................................................................232 2.7.4. Diseo................................................................................................................................234 [Link]. Casos de Uso de Diseo..............................................................................................234 .................................................................................................................................................236 .................................................................................................................................................237 .................................................................................................................................................238 [Link]. Diagramas de secuencia.............................................................................................239 ........................................................................................................................................................239 ....................................................................................................................................................241 ............................................................................................................................................................245 [Link]. Diagramas de Clases...................................................................................................245 ............................................................................................................................................................246 ............................................................................................................................................................247 ............................................................................................................................................................248 ............................................................................................................................................................248 ............................................................................................................................................................249 4

2.7.5. Implementacin..................................................................................................................250 [Link]. Diccionario de Clases..................................................................................................250 [Link]. Mapeo de Clases a Tablas...........................................................................................251 ............................................................................................................................................................251 2.7.6. Testeo................................................................................................................................252 [Link]. Conclusiones del Testeo..............................................................................................256 2.7.7 Resumen de la Iteracin III..................................................................................................257 2.8 DESPLIEGUE............................................................................................................................258 2.9 POLTICA DE SEGURIDAD Y RESPALDO...............................................................................260 2.10 PLAN DE CONTINGENCIA.....................................................................................................261 2.10 PLAN DE CAPACITACION......................................................................................................262 2.11 CONCLUSIONES FINALES.....................................................................................................263 2.11.1 Lecciones Aprendidas.......................................................................................................263 3. BIBLIOGRAFIA...............................................................................................................................265 4. ANEXOS.........................................................................................................................................266 4.1. ANEXO I. SELECCIN DE HERRAMIENTAS..........................................................................266 4.2. ANEXO II. CLCULO DE PUNTOS DE FUNCIN...................................................................267 4.2.1. Hoja de trabajo utilizada para el clculo del punto de funcin.............................................267 4.2.2. Calculo de funciones..........................................................................................................268 4.3. ANEXO III. CONVENCIONES DE NOMENCLATURA..............................................................271 4.3.1. Convenciones del uso de Maysculas y minsculas...........................................................271 4.3.2. Convencin de Nombres....................................................................................................271 4.4. ANEXO IV. PRUEBA DEL SOFTWARE (Testeo)......................................................................274 4.5. ANEXO V. POO........................................................................................................................276 4.6. ANEXO VI. MTODOS.............................................................................................................278 4.7 ANEXO VII. GANTT TIEMPOS REALES...................................................................................281 ........................................................................................................................................................281 4.8 ANEXO VIII. INFORMES DE AVANCE......................................................................................282 4.9 ANEXO IX. MANUAL DE USUARIO..........................................................................................293

Inicio de Sesin...................................................................................294 Pantalla principal del sistema..............................................................295 Ficheros...............................................................................................296 Men de Bsquedas............................................................................296 Men Mantenimiento...........................................................................297 Agregar un nuevo elemento................................................................297 Editar un Elemento..............................................................................297 Eliminar un Elemento..........................................................................298 Gestin Escolar....................................................................................299
.......................................................................................................................................................299

Manejo de grupos................................................................................300 Inscripciones.......................................................................................301 Registrar Notas Finales........................................................................301 Registrar Inasistencias.........................................................................303 Procesar Grupos..................................................................................303 Registrar Resultados de Exmenes......................................................304 Informes..............................................................................................306

Men Informes....................................................................................306 Emitir Informes....................................................................................306 Configuracin......................................................................................310 Base de Datos:....................................................................................310 Manejo Ao Lectivo.............................................................................312 Realizar Cambio de Estado..................................................................313 Sobre el correcto funcionamiento del sistema.....................................313
4.10 ANEXO X. EJEMPLO DE CODIGO:........................................................................................318 4.11 ANEXO XI. SOBRE EL DISEO IUI:.......................................................................................321

1. ANTEPROYECTO
1.1. INTRODUCCIN
El Colegio - Liceo Nuestra Seora del Huerto desea automatizar la gestin acadmica de los cursos dictados y sus integrantes, alumnos, profesores, materias, etc. Por tal motivo se recab una serie de informacin que permitieron identificar estos componentes con el fin de realizar la implementacin de una solucin informtica que contemple a todos y cada una de ellos. Las reas que el colegio desea automatizar en este proyecto son: Gestionar informacin de alumnos, profesores, cursos y materias Administracin de grupos de clases. Manejo de inscripciones de alumnos. Registro de calificaciones. Registro de insistencias de alumnos. Registro de resultados de exmenes. Gestin de aprobacin de cursos. Gestin de cronogramas. Gestin de Clases de Apoyo.

Estos puntos componen el ncleo principal de la gestin educativa del colegio por lo cual nuestro proyecto proveer una mejora sustancial en todas estas tareas para ganar tiempo, eficiencia y calidad.

1.2. PRESENTACIN DEL CLIENTE


La Congregacin de las Hijas de Mara Santsima del Huerto llega en 1843 al Uruguay instalndose en el Hospital de Caridad de Montevideo. En la ciudad de Paysand tienen una amplia participacin en la atencin de los heridos en la defensa de la ciudad sitiada. A partir de 1890 inician la labor educativa en esta ciudad, en un saln construido junto al Asilo Galn y Rocha; posteriormente, a partir del 1912, inician su actividad en el espacio que ocupa actualmente la institucin en la calle Florida 1137. En 1975 se inaugura el edificio oficial donde funciona hoy el Colegio Nuestra Seora del Huerto. En el mismo se imparten cursos de Educacin Inicial, Primaria y Secundaria Bsica y Superior, al amparo de lo establecido en la Ordenanza 14 de ANEP. Esta trayectoria histrica, ya centenaria, es para las nuevas generaciones un eslabn de gloria y una garanta de presencia y fuerza del Espritu a travs del tiempo. Exige una actualizacin permanente para hacer del colegio un centro de inters. Respeta la libertad y la creatividad del educando, con una presencia providente del educador para lograr as una formacin integral. Su estructura organizacional est compuesta por: Superiora: Hermana Domitila. Director: Henry Oddone. Secretaria: Virginia Marr. Adscriptos: Juan Melgar, Silvia Fagundez (1 y 2). Jos Roullier (3 y 4). lvaro Pena (5 y 6). Encargado Pastoral: Marcelo Correa. Profesores: aproximadamente 60 profesores son los que imparten clases hoy en el colegio, muchos de los cuales se repiten en diferentes grupos. Cada profesor dicta una asignatura, la cual tiene una carga horaria semanal definida por secundaria. Cursos dictados: 1, 2, 3 ao corresponde a Ciclo Bsico. 4, 5, 6 ao Bachillerato Diversificado Grupos existentes en la actualidad: 4 grupos de primero. 4 grupos de segundo 3 grupos de tercero 2 grupos de cuarto 1 grupo 5 Humanstico, 1 Biolgica, 1 Cientfica 1 grupo 6 Ingeniera y 1 de Medicina Cantidad de alumnos aproximada: 1 120 alumnos 2 120 alumnos 3 90 alumnos 4 60 alumnos 5 40 alumnos 6 20 alumnos

Como nota destacable, debemos expresar el inters y compromiso ante nuestra propuesta de desarrollo e implementacin de un sistema que agilite y organice la informacin del colegio ya que actualmente el mismo no cuenta con ninguna solucin informtica de estas caractersticas. Adems debemos destacar el apoyo inicial recibido por el seor Alberto Castaero, profesor de informtica del colegio que motiv nuestro proyecto y nos abri las puertas para poder proponer nuestra idea. 8

Operativa del colegio Sobre las Inscripciones Cuando se realiza la matrcula en la administracin a cada alumno que desea inscribirse se le solicita: Pase de primaria (original) Cdula de identidad (fotocopia) Dos fotos carn Carn de salud Una vez comenzadas las clases, a cada alumno se le entrega un formulario para obtener datos ms personales tales como la ocupacin de los padres, direccin, telfono, composicin de la familia. Una vez obtenidos estos datos, se ingresan en un Matriculador (programa generardor de nmeros de alumnos) donde se les adjudica un nmero para identificarlos, el cual se inscribe en el sobre de cada alumno donde se almacena toda la documentacin referente al mismo. Adems del matriculador se realiza una Frmula 69, la cual es nica por alumno y en ella se encuentran todos sus datos. Con esta informacin, se confeccionan las listas donde figura el nombre completo del alumno, su cdula de Identidad, fecha de nacimiento y de qu escuela proviene. Para formar los grupos; en lo que respecta a primer Ao, el colegio se basa en la procedencia del alumno. En los grupos posteriores (segundo, tercero, etc.) al pasar de ao; si estaban en el grupo 1 1, estos alumnos pasarn al futuro grupo 21. Entrega de Calificaciones Se entrega en los primero das de mayo, las calificaciones correspondientes a Marzo Abril, en este caso son dos valores, uno respecto a la conducta del alumno y otro referente al rendimiento. En los primeros das de junio se hace la primera Reunin de Profesores donde a los profesores se les pide la conducta y rendimiento de mayo, y adems un concepto acompaado de un nmero que resume el trabajo del alumno en Marzo Abril Mayo En julio se les entrega solo la conducta y rendimiento del mes de julio En setiembre se realiza la segunda Reunin de Profesores donde como en la primera se les pide conducta rendimiento de los alumnos en Julio Agosto y luego el concepto con el promedio de los tres meses Junio Julio Agosto En los primeros das de noviembre se les entrega la conducta y rendimiento de Setiembre Octubre. Por ltimo luego de finalizados los cursos se realiza la Reunin Final de profesores donde se da slo la nota de promocin de cada asignatura acompaada de la palabra promovido o A Examen En cada una de las reuniones (primera y segunda) adems del concepto por asignatura en la reunin se realiza un concepto general del alumno. Pruebas semestrales Cada grupo de 1 a 4 realiza dos pruebas en el ao, las cuales les hacemos llegar a los padres en una hoja que no se entrega junto con el carnet. Adems, antes de finalizar el ao se realiza una tercera prueba pero nicamente aquellos alumnos candidatos a ir a examen dado el promedio. Con el resultado de esta prueba, el alumno puede evitar esta situacin. En caso de 4, 5, 6 ao, luego de realizar las dos pruebas se hace un promedio y segn este es se decide si el alumno va o no a examen en la materia.

1.3. PRESENTACIN DEL PROBLEMA


El colegio; dentro de su manejo interno procesa muchos y distintos tipos de informacin relevante que son vitales para la toma de decisiones y conclusiones durante el desarrollo y final del ao lectivo. Hoy da, todo este manejo se realiza de manera manual en papeles y solo en algn caso puntual en alguna planilla o documento electrnico aislado. Por tal motivo el colegio Nuestra Seora del Huerto, desea implementar un sistema informtico que permita manejar de manera digitalizada y centralizada la informacin relevante de alumnos, profesores, materias, cursos que se brindan en el colegio, grupos, etc. Para cumplir con este objetivo, como primer paso es necesario hacer un relevamiento exhaustivo del manejo interno del colegio y de de cada tipo de informacin que este procesa. En base a este relevamiento, se podr realizar un producto acorde a sus necesidades sin dejar ningn cabo suelto; esto resultar en un sistema informtico que brinde mayor agilidad y eficiencia a los procesos. Otro punto destacable al lograr esta implantacin, ser un aumento de la cantidad de archivo histrico con el que podr contar el colegio ya que la perpetuidad de la informacin manejada en papeles es muy acotada por durabilidad y tambin por espacio de almacenamiento. Como nota resaltable se puede decir adems que el sistema, si bien implementar tareas innovadoras que en la actualidad no se realiza o se hacen de manera manual debern ser en su conjunto, sumamente fieles a las existentes hoy, ya que son regidas por la normativa del Consejo de Educacin Secundaria que no puede ser alterado.

10

1.4. LISTA DE NECESIDADES


De la entrevista llevada a cabo con los responsables del colegio surgen los siguientes puntos a tener en cuenta al implementar la solucin. Disponer de un sistema que sea capaz de realizar las siguientes funciones: Gestionar informacin de alumnos. Gestionar informacin de profesores. Gestionar planes de estudio. Gestionar los diferentes cursos brindados por el colegio. Gestionar materias dictadas en los diferentes cursos brindados. Armar grupos de clases que se dictan cada ao. Registrar calificaciones, peridicas, finales de curso, exmenes, parciales, especiales. Registrar inasistencias de los alumnos a clases Gestionar la aprobacin de los alumnos. Permitir la carga de informacin histrica al inscribir alumnos que provienen de otro instituto / colegio. Validar inscripciones de alumnos a cursos. Emitir informe de escolaridad Frmula 69. Gestionar el armado de clases de apoyo para alumnos con bajo desempeo en las clases. Armar el cronograma de cursos de manera interactiva. Realizar la emisin de carnets Realizar informe de calificaciones/inasistencias por grupos. Realizar informes de las entidades manejadas por el sistema, alumnos, profesores, materias, planes, cursos. Permitir que los profesores puedan realizar tareas tales como ingreso de calificaciones desconectados del sistema y posteriormente poder integrar la informacin al mismo. Controlar el acceso a la informacin permitiendo diferentes niveles de privilegios.

1.5. ANLISIS ESTRATGICO


Debido a las caractersticas del colegio y a las actividades que este desempea, no encontramos justificable realizar un estudio de mercado ni un anlisis estratgico.

1.6. ACTORES INVOLUCRADOS


Superiora: Es la mxima autoridad del colegio. Director: Responsable principal del alcance del sistema, difcilmente sus tareas requieran que alimente al sistema, pero si tendr acceso a cualquier informacin que este maneje. Secretaria: Realizar tareas de mantenimiento sobre los datos del sistema como ser inscripcin de alumnos, ingreso de profesores, armado de grupos, emisin de carnets, etc. Adscriptos: Tambin sern responsables de los datos del sistema pero desde con otro tipo de responsabilidades ya que tendrn a cargo tareas como armado de cronogramas, mantenimiento de calificaciones, control de asistencias, etc. Profesores: Recopilarn la informacin necesaria para proveer de datos a los adscriptos y/o administrativos; calificaciones de los alumnos, asistencia y otros datos pertinentes. Son el nexo principal entre el alumnado y el sistema. Alumnos: En principio no interactuarn directamente con el sistema, pero son de vital importancia ya que sern los principales generadores de informacin que este manejar. Consejo de Educacin Secundaria (CES): El consejo tendr un rol preponderante dentro del desarrollo del proyecto ya que el mismo nos proveer informacin sobre la reglamentacin a seguir para la inscripcin de un alumno o la aprobacin de un curso, como as tambin ser una gua constante sobre los documentos permitidos por el mismo con el fin de no emitir un listado ilegtimo.

11

1.7. OBJETIVOS
Eliminar la gestin manual que implica un gasto de tiempo innecesario en varias de las tareas diarias, permitiendo adems un rpido acceso a la informacin. Ejemplo: Un ejemplo concreto y tangible de la reduccin de tiempos es la concrecin de un sistema que realice la validacin automtica de la inscripcin de un alumno para un curso. Esta validacin, hoy se realiza comprobando manualmente el historial del alumno lo cual implica un tiempo considerable mientras que de realizarlo de manera automatizada, la misma no llevara ms que segundos. Ampliar el registro de informacin del colegio a travs de la digitalizacin de la misma. Reducir al mnimo errores humanos en los procesos. Evitar la redundancia de tareas e informacin. Distribuir de una manera ms eficaz los recursos del colegio, por ejemplo que los profesores ingresen las calificaciones de sus alumnos evitando que el trabajo recaiga en un nico sector, actualmente Secretara.

12

1.8. LISTA DE REQUERIMIENTOS


1.8.1. Requerimientos funcionales 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Gestionar informacin de alumnos. Gestionar informacin de profesores. Gestionar planes. Gestionar cursos (Ao de clase, primero, segundo, etc.). Gestionar materias dictadas en los cursos. Gestionar usuarios y niveles de acceso del sistema. Gestionar armado de grupos (Ej. 1 1 matutino 2009). Gestionar inscripciones de alumnos. Validar la inscripcin de alumnos segn las normativas de secundaria. Registrar calificaciones. Registrar inasistencias de alumnos a clases. Validar aprobacin de cursos. Permitir la carga de informacin histrica al inscribir alumnos que provienen de otro instituto / colegio. Manejo de perodos de exmenes Emitir informe de escolaridad. Frmula 69. Gestionar el armado de clases de apoyo. Armar cronograma de cursos de manera interactiva. Realizar la emisin de carnets. Realizar informe de calificaciones /inasistencias por grupos. Realizar informes de las entidades manejadas en el sistema, alumnos, profesores, materias, cursos. Realizar bsquedas para todas las entidades gestionadas. Permitir que los docentes ingresen calificaciones de manera offline. Sincronizar en el sistema principal el ingreso de calificaciones offline.

1.8.2. Requerimientos no funcionales / restricciones Interfaz grfica enfocndose en tareas concretas y de fcil compresin para el usuario, permitiendo as un rpido aprendizaje del sistema por parte del mismo. Uso limitado del ratn, uso de atajos de teclado buscando rapidez en los procesos efectuados por los usuarios. Los trminos utilizados deben ser los mismos que se usan actualmente en el colegio; por ejemplo no usar la palabra Docente cuando en el colegio el trmino utilizado es Profesor. Seguridad. El ingreso al sistema deber estar restringido bajo contraseas cifradas y usuarios definidos. Rendimiento. El sistema deber ser capaz de soportar toda la informacin manejada por el Colegio.

13

1.9. DESCRIPCIN DEL ENTORNO


Dentro del Colegio existen distintos actores como ser los Profesores, Adscriptos y Administrativos que mantienen la informacin necesaria para el mismo; cursos, materias, profesores, inscripciones de alumnos, calificaciones, asistencias, etc. Todos los das se recaba esta informacin desde los puntos de entradas correspondientes y se generan documentos mayoritariamente en papel y en algunos casos en algn documento o planilla electrnica. Esta informacin permite realizar resmenes y promedios regularmente tanto para el armado de carnets como para realizar un control puntual de cada rea. Tambin se genera informacin estadstica para la direccin del colegio.

1.9.1 Diagrama de casos de uso General


uc Casos de Uso General SIST EMA

Gestionar Alumnos

Gestionar Profesore s

Gestionar Materias

Gestionar Plane s

Secretari a Gestionar Curso s Gestionar Grupo s

Gestionar Usuarios y Niv eles

Armar Cronograma Interactiv o

Profeso r

Validar inscripcion de Alumnos

Registrar calificaciones de Alumos

Registrar calificaciones de Ex menes

Registrar inasistencias de Alumnos

Validar aprobacin de Curso s Adscripto

Realizar carga histrica de Alumnos

Emitir informe de Escolarida d

Gestionar Clases de Apoyo

Emitir Carnets

Emitir informe Calificaciones / Inasistencia s

Emitir informes de Entidades Principale s

Realizar busquedas en las Entidades Principale s

Directo r Permitir trabaj o Asincrnico de los Profesore s

14

1.9.2. Diagrama Conceptual


cmp Diagrama Conceptual -pertenece a Escolaridade s 1 Plane s -pertenece a 1.. * +pertenece a 1.. * 1.. * -registra 1.. * -tiene -forma Inscripcion -Genera 1.. * -registra 1.. * -Cursa 0..* -obtiene 0..*

Alumnos -genera 0..*

-Formado por -pertenece a 1.. * 1.. * Grupos -pertenece a -Pertenece a -forma 1.. * -tiene 1.. * 1 -de -asignado a Profesore s -tiene 0..* 0..* -tiene 0..* +perteneta a -pertenece a 0..* 0..*

Curso s

Inasistencia s

-pertenece a -pertenece a 0..* -es dada por -tiene 0..* -pertenece a 1 1

Materias

Calificacione s

1.10. ALCANCES Y LIMITACIONES


1.10.1. Alcances Luego de realizado el anlisis de factibilidad y habindonos puesto de acuerdo con los responsables del colegio en distintas reuniones, se tomo la decisin de implementar los siguientes requerimientos: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Gestionar informacin de alumnos. Gestionar informacin de profesores. Gestionar planes. Gestionar cursos (Ao de clase, primero, segundo, etc.) Gestionar materias dictadas en los cursos. Gestionar usuarios y niveles de acceso del sistema. Gestionar armado de grupos (Ej. 1 1 matutino 2009) Gestionar inscripciones de alumnos. Validar la inscripcin de alumnos segn las normativas de secundaria. Registrar calificaciones. Registrar inasistencias de alumnos a clases. Validar aprobacin de cursos. Generar Escolaridades. Permitir la carga de informacin histrica al inscribir alumnos que provienen de otro instituto / colegio. 15. Manejo de perodos de exmenes. 16. Emitir informe de escolaridad Frmula 69. 17. Realizar informes de calificaciones, inasistencias, candidatos y resultados de examen.

15

18. Realizar informes de las entidades manejadas en el sistema, alumnos, profesores, materias, cursos. 19. Realizar bsquedas. 1.10.2. Limitaciones En esta primera etapa no se implementarn los siguientes requerimientos: 1. 2. 3. 4. 5. Realizar la emisin de carnets. Gestionar el armado de clases de apoyo. Armar cronograma de cursos de manera interactiva. Permitir que los docentes ingresen calificaciones de manera offline. Sincronizar en el sistema principal el ingreso de calificaciones offline.

16

1.11. ESTUDIO DE ALTERNATIVAS


De las reuniones con el cliente y de las posibilidades con la que contamos se desprenden las siguientes opciones en bsqueda de la mejor solucin al problema 1.11.1 Seleccin de la alternativa Las alternativas son las siguientes: - Mejorar el manejo de la informacin actual a travs de documentos y planillas electrnicas que limiten el uso de papel. Esta posibilidad si bien no automatizar de manera eficiente la gestin del colegio, si agilitar los tiempos y evitar en gran medida la acumulacin fsica de documentos. - Proponer la compra de una solucin estndar diseada para la gestin colegial existente en el mercado. - Realizar un sistema a medida que pueda cubrir las necesidades del cliente sin el gasto innecesario de cubrir reas no fundamentales para el mismo y que estaran incluidas si se adquiriera un sistema estndar. Evaluadas las tres posibles alternativas y en mutuo acuerdo con los responsables del Colegio se decide optar por la tercera opcin. Realizar un sistema informtico a medida que cumpla con todos los requerimientos del cliente (detallados en el alcance de este documento) y que junto con este pueda ir evolucionando en el futuro a media que la situacin lo amerite. Nota: Cabe destacar que no se investigo ninguna solucin estndar a comprar ya que esta opcin fue descartada desde el inicio de este estudio por parte de nuestro cliente. El sistema ideado se basar en un modelo Cliente-Servidor, con un manejador de base de datos Transaccional y la implementacin de clientes en ambiente Win32 con interfaces grficas, amigables e intuitivas para el usuario. Un punto importante a tener en cuenta es que el sistema, en primera instancia deber ejecutar en la infraestructura de hardware con que cuenta el Colegio el da de hoy, realizando en el futuro una inversin mnima en caso de ser necesario. No se descarta que el da de maana, si el sistema y el volumen de informacin crecen, se deba realizar una inversin mayor para que el mismo contine operando de manera eficiente. Como es sabido, en una primera etapa no se podrn implementar todas las necesidades del cliente, pero los requerimientos ms importantes han sido detectados y sern implementados. Adems a medidas que avance el anlisis de la solucin podrn aparecer otros requerimientos que sern evaluados en su momento. La ventaja principal que encontramos nosotros junto con el cliente, es que una solucin a medida resultar en que el mismo podr adaptarse a los cambios con mayor facilidad y un menor costo econmico.

17

1.11.2 Arquitectura

EMBED [Link].11

Direccin Administracin Impresora

Servidor

Switch Sala de Profesores

Base de datos

Adscripcin

18

1.11.3 Anlisis de factibilidad [Link]. Factibilidad operativa A nivel de personal, no se encuentra un mayor obstculo en el futuro uso de la herramienta ya que el mismo y ms precisamente los actores que actuarn directamente con l, se encuentran capacitados en el manejo de computadoras. Esto implica que no se deba hacer una capacitacin adicional ms all del uso especfico del sistema; la cual se brindar en su momento y cuenta con la aceptacin total del mencionado personal. Por otra parte se analizan otros aspectos de la infraestructura como la instalacin del sistema. El colegio planifica esta instalacin y el comienzo del funcionamiento antes del prximo ao lectivo pero es deseable que la misma se realice con la mayor antelacin posible con el fin de adquirir agilidad y prctica en el manejo, adems de realizar tareas de evaluacin sobre el mismo para poder reducir al mnimo la aparicin de inconsistencias cuando su uso sea oficializado. El resultado de estos testeos ser el broche final del proyecto y marcar la diferencia entre el xito y el fracaso del mismo. Cabe aclarar que dado el poco margen entre la fecha de implantacin estimada y el comienzo del ao lectivo, si no se llegara a completar todas las tareas de evaluacin del cliente con un completo porcentaje de satisfaccin, el sistema deber coexistir en primera instancia con el manejo actual del colegio para evitar cualquier tipo de prdida de informacin u otro inconveniente. Se instalar el servidor con su correspondiente base de datos y el mnimo de clientes necesarios para realizar las tareas bsicas del sistema, pudiendo posteriormente extender el nmero de clientes segn las necesidades lo ameriten. En una primera aproximacin el equipo de trabajo determina que no es necesaria la modificacin de la infraestructura actual o los procesos de negocio de la empresa. [Link]. Factibilidad tcnica El sistema ser desarrollado para un ambiente multiusuario y por ende deber dar un correcto soporte a la conectividad entre las computadoras que compongan la red. Estas se conectarn a travs de una red de rea local basada en el protocolo TCP/IP. En principio, el volumen de informacin que manejar el sistema no ser de gran tamao y por lo tanto no presenta un problema para el mismo. Tampoco se prev que el flujo de datos en la red sea afectado de ninguna manera por la cantidad de informacin. El sistema ser utilizado todos los das hbiles del colegio y a lo largo de toda la jornada de trabajo. Eventualmente ser utilizado adems en das u horarios no hbiles para tareas extracurriculares o compensacin de trabajo atrasado pero esto tampoco representa un problema. Software Sistema operativo: Servidor: Clientes:

Windows 2003 Server 32 bits. Windows Xp.

Manejador de la base de datos: La herramienta seleccionada para disear y manejar la BD del Colegio es Microsoft SQL Server 2008 Express. Hardware necesario Equipo Servidor Pentium IV 2.0 Ghz. o superior con 2 Gb. de memoria. Equipos Clientes Pentium III 800 o superior con 512 Mb. de memoria. Impresoras para emisin de informes. Cableado y configuracin de red. [Link]. Factibilidad legal El sistema nicamente utilizar informacin del colegio de manera interna y slo para las personas relacionadas al mismo (Director, Adscriptos, Profesores), por lo tanto a nivel de usuario no existe la necesidad de un tratamiento especial de la informacin desde un punto de vista legal. Por el mismo motivo, tampoco se realizar una encriptacin de la misma.

19

Por otra parte y dada la sensibilidad de cierta informacin tales como las notas de los alumnos que evalan su desempeo, las inasistencias, escolaridades, etc.; se crearan tablas de Auditoria (logs de actividad) con el fin de detectar un posible mal manejo de esta informacin. El sistema no genera facturas ni recibos de cobranza por lo que consideramos que no existen aspectos que merezcan ser auditados. Legalidad del software: Desarrollo: Datos: Microsoft SQL Server 2008 Express Edition, base de datos gratuita. Este sistema de base de datos utilizado es limitado en ciertos aspectos con relacin a su versin de pago. Tamao de base de datos limitado a 4 GB. Performance. Microsoft Visual C# 2008.

Sistemas Operativos: Microsoft Windows XP para los clientes del sistema. Microsoft Windows 2003 Server para el servidor de datos.

El propio colegio se har cargo de regularizar la citada situacin legal de los sistemas operativos utilizados en el servidor de datos as como en los puestos cliente. En resumen, ms all de las tablas de auditora que se crearn para registrar la alteracin de informacin sensible, no se encuentran inconvenientes ni trabas legales para el desarrollo del software. [Link]. Factibilidad econmica El desarrollo de la aplicacin no proporcionar costo alguno para el Colegio Nuestra Seora del Huerto dado que el mismo corresponde al proyecto final de nuestro equipo para la obtencin del ttulo de la carrera Analista Programador. Para su implantacin, el Colegio deber realizar una inversin mnima en cuanto a tecnologa y dedicacin de tiempo para capacitacin de los usuarios. Por ende, la inversin inicial en tecnologa por parte del colegio es prcticamente nula y en cuanto al desarrollo e implantacin del sistema quedar a cargo totalmente por nuestra parte ya que como fue mencionado se corresponde al proyecto final de nuestra carrera. Con respecto a la estimacin de la obsolescencia del sistema se deber tener en cuenta los siguientes elementos: El cambio en el ambiente tecnolgico ocurrente en el tiempo de uso del sistema. El cambio de plataforma, derivado de los avances tecnolgicos en el uso del software, y que se vea afectada la compatibilidad con el actual software de base, aplicacin o desarrollo, y hagan no recomendable su utilizacin. El cambio en los requerimientos del cliente provocado por un cambio en las necesidades del mismo.

La estimacin y prevencin de estos aspectos es imposible de realizar en esta etapa por nuestro equipo. La mayor prevencin que podemos realizar es armar una completa y clara documentacin que 20

facilite la modificacin de la aplicacin si los futuros cambios tecnolgicos o los requerimientos lo justificaran. [Link].1. La estimacin del esfuerzo se ha realizado a partir del Clculo de puntos de funcin (PF). En el ANEXO II se desarrolla el clculo de los mismos, se obtuvieron un total de 407 PF, segn los clculos de Capers Jones el resultado es un total de 475 horas de proyecto y un tiempo total de desarrollo aproximado de 11 meses (el cual se divide por el total de recursos humanos disponibles [2]). Clculos:
GI Grado de Incidencia FCT Factor de Complejidad tecnolgica PFNA Puntos de Funcin No Ajustados PF Puntos de Funcin Ajustados Esfuerzo Por Punto de Funcin (Minutos) Costo de la hora de desarrollo (USS) Total de Horas del proyecto Costo del proyecto (USS) Reglas del Pulgar [Capers Jones 96] Nmero de personas Necesarias: PF/150 Esfuerzo: Tiempo x Nmero de Personas Tiempo de desarrollo en meses: PF0.4 Nmero de personas Necesarias: PF/150 Esfuerzo: Tiempo x Nmero de Personas 11.06 3 3.70 37 1.02 398 407 70 20 475 9500

5.53

21

1.12 ANLISIS DE RIESGOS


1.12.1 Sobre el Anlisis de Riesgos Referencia: PRESSMAN, Roger S. 1998. Ingeniera del Software Un Enfoque Prctico. 5ta. ed. Madrid: [Link] Hill. Analizar y gestionar los posibles riesgos que puedan ocurrir durante el ciclo de vida de un proyecto ayudan al equipo de desarrollo a identificar y evaluar los potenciales problemas que puedan surgir durante las etapas de este ciclo y de esta manera elaborar una estrategia de contingencia para el caso de que esto suceda. Dentro de este anlisis de riesgo existen tres grandes puntos que se deben tener en cuenta: El futuro qu riesgos podran hacer que nuestro proyecto fracasara? El cambio cmo afectarn los cambios en los requisitos del cliente, en las tecnologas de desarrollo, en los computadores a las que van dirigidas, el proyecto y todas las entidades relacionadas con l, al cumplimiento de la planificacin temporal y al xito en general? Elecciones qu mtodos y herramientas deberamos emplear, cunta gente debera estar implicada, qu importancia hay que darle a la calidad? Cuando se ha elaborado este anlisis de riesgos potenciales, se debe realizar un plan de reduccin, supervisin y gestin del riesgo (RGSR) el cual debe ser consultado durante todo el desarrollo del proyecto para tener un eficiente control sobre este. Dicho control comprende, la evaluacin de riesgos, la resolucin y el monitoreo del mismo.

Sobre las estrategias a desarrollar para el control de riesgos hay que resaltar que existen dos alternativas; la estrategia Reactiva y la Proactiva: Reactiva: Esta estrategia supervisa el proyecto en previsin de posibles riesgos. Los recursos se ponen aparte, en caso de que pudieran convertirse en problemas reales. Pero lo ms frecuente es que el equipo de software no haga nada respecto a los riesgos hasta que algo va mal. Despus el equipo debe apresurarse para corregir el problema rpidamente. Este mtodo es denominado a menudo "de bomberos". Cuando falla, "la gestin de crisis" entra en accin y el proyecto se encuentra en peligro real. Proactivas: Se trata de una estrategia considerablemente ms inteligente. Esta comienza mucho antes de que empiecen los trabajos tcnicos. Se identifican los riesgos potenciales, se valoran su probabilidad y su impacto y se establece una prioridad segn su importancia. Despus el equipo de software establece un plan para controlar el riesgo. El primer objetivo es evitar el riesgo lo cual no es frecuente pues no se pueden evitar todos los riesgos. Entonces el objetivo del equipo es desarrollar un plan de contingencia que le permita responder de una manera eficaz y controlada.

1.12.2 Anlisis de Riesgos de nuestro proyecto Realizando un anlisis primario de los riesgos relacionados con nuestro proyecto, es posible detectar los siguientes riesgos potenciales. 22

Hay que resaltar el hecho de que este anlisis es primario ya que en esta temprana etapa del proyecto, es difcil la evaluacin de todas las amenazas para el logro del objetivo y por ende puede quedar alguna fuera de la lista y deber ser tenida en cuenta y agregada posteriormente si fuera necesario. 1 - Tamao estimado del Producto Si bien se ha recurrido a material didctico y otras referencias, la falta de experiencia de nuestro equipo en la estimacin de tamao de un producto podra ser un inconveniente a tener en cuenta a futuro por lo que se deber tener especial atencin en este punto para realizar la planificacin adecuada en tiempo y forma. 2 - Interaccin con el cliente Se debe tener en cuenta la participacin del cliente en las reuniones como as tambin la claridad y precisin de la informacin brindada. Si cualquiera de estos dos factores no se cumpliera segn lo esperado podra derivar en inconvenientes en el resultado final de proyecto. Otro punto muy importante a tener en cuenta es la resistencia que puedan presentar los usuarios de la aplicacin en los inicios ya que dedicar un esfuerzo extra de los mismos en capacitacin. 3 - Nuevos requerimientos Si bien en este momento no se prev, no existe ningn impedimento en que el cliente pueda realizar nuevos requerimientos una vez comenzado el proyecto. De ocurrir esto, tendr un impacto directo en la estimacin de tiempos pudiendo generar retraso y la eventual replanificacin. 4 - Recursos econmicos En este momento no se encuentran inconvenientes ya que el cliente asegura realizar la inversin mnima necesaria en equipamiento y tecnologa para la implantacin de la solucin. 5 - Capacidad del equipo de desarrollo Nuestro equipo se compone por 2 integrantes que terminaron el curso en el ao 2000 por lo que adems del tiempo transcurrido en la prctica estudiantil hasta ahora, se debe mencionar que no se trabaj con esta metodologa durante la carrera. Por lo tanto, deberemos capacitarnos en el uso de la herramienta y sobre todo en la metodologa lo que puede incidir directamente en los tiempos estimados. 6 - Disponibilidad horaria del equipo de desarrollo El mayor riesgo que se detecta en este punto se corresponde a los compromisos laborales de cada uno de los integrantes que aunque se contemplan en la carga horaria del proyecto puede contener imprevistos a futuro. 7 Comunicacin a distancia Un gran inconveniente con que se encuentra nuestro equipo en este momento es la distancia fsica existente entre sus integrantes ya que uno se encuentra en la ciudad de Paysand y otro en Montevideo lo que puede derivar en problemas de comunicacin y por ende verse afectada la coordinacin de tareas, la toma de decisiones, etc.
Riesgo Probabilidad Impacto 1 65% 2 50% 3 40% 4 20% 5 50% 6 30% 7 60% ndices de Impacto: 1- Catastrfico / 2- Crtico / 3- Marginal / 4- Despreciable 1 1 2 3 2 3 2

23

1.12.3 Plan de RSGR

Formulario de Especificacin de Riesgo

Tamao del Producto

ID 1

Si bien se ha recurrido a material didctico y otras referencias, la falta de experiencia de nuestro equipo en la estimacin de tamao de un proyecto podra ser un inconveniente a tener en cuenta a futuro por lo que se deber tener especial atencin en este punto para realizar la planificacin adecuada en tiempo y forma. Cuando hablamos de tamao, nos referimos al tiempo de desarrollo del sistema; lo cual puede derivar en un clculo incorrecto en la fecha de finalizacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 2 1 1 Anteproyecto 65% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Utilizar todas las herramientas y material a disposicin (UML, conteo de puntos de funcin, etc.) para realizar la estimacin de tiempos ms acertada posible para nuestra solucin. Revisar peridicamente que el tamao del procuto se mantenga segn lo planificado. Elemento Disparador: Surgen desvos en las fechas estimadas para las distintas etapas del proyecto. Acciones Correctivas: Recalcular los tiempos reviendo el correcto uso de las herramientas y tomando como leccin aprendida la mala estimacin primaria realizada. Evaluacin de Seguimiento:

24

Formulario de Especificacin de Riesgo

Interaccin con el cliente

ID 2

Se debe tener en cuenta la participacin del cliente en las reuniones como as tambin la claridad y precisin de la informacin brindada. Si cualquiera de estos dos factores no se cumpliera segn lo esperado podra derivar en inconvenientes en el resultado final de proyecto. Otro punto muy importante a tener en cuenta es la resistencia que puedan presentar los usuarios de la aplicacin en los inicios ya que dedicar un esfuerzo extra de los mismos en capacitacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 1 1 1 Anteproyecto 50% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Planificar y llevar a cabo reuniones con el cliente para mostrarle el avance de la aplicacin y verificar su conformidad. Involucrar a los usuarios del sistema de manera temprana para que puedan ver la ventaja de su implantacin. Elemento Disparador: El cliente no se involucra y compromete de manera adecuada por lo que se genera incertidumbre en el resultado del producto final. Los usuarios demuestran rechazo o poco inters hacia el sistema. Acciones Correctivas: Exhortar al cliente en un mayor compromiso con el proyecto e involucrarlo desde el inicio y en cada etapa o toma de decisin correspondiente. De la misma manera, exhortar junto a los responsables del colegio, a los usuarios para que adquieran un mayor compromiso y apretura hacia el sistema. Evaluacin de Seguimiento:

25

Formulario de Especificacin de Riesgo

Nuevos requerimientos

ID 3

Si bien en este momento no se prev, no existe ningn impedimento en que el cliente pueda realizar nuevos requerimientos una vez comenzado el proyecto. De ocurrir esto, tendr un impacto directo en la estimacin de tiempos pudiendo generar retraso y la eventual replanificacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 2 2 2 Anteproyecto 40% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Recabar exhaustivamente todos los requerimientos y necesidades del cliente para no dejar ningn clavo suelto. Revisar peridicamente la lista de requerimientos junto con el cliente. Elemento Disparador: El cliente muestra inters en cambiar la solucin acordada previamente. Acciones Correctivas: De ser necesario, redefinir junto al cliente las nuevas necesidades del mismo y replanificar las tareas para el cumplimiento de ellas. Evaluacin de Seguimiento:

26

Formulario de Especificacin de Riesgo

Capacidad del equipo de desarrollo

ID 5

Nuestro equipo se compone por 2 integrantes que terminaron el curso en el ao 2000 por lo que adems del tiempo transcurrido en la prctica estudiantil hasta ahora, se debe mencionar que no se trabaj con esta metodologa durante la carrera. Por lo tanto, deberemos capacitarnos en el uso de la herramienta y sobre todo en la metodologa lo que puede incidir directamente en los tiempos estimados. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 2 2 2 2 2 Anteproyecto 50% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Dedicar un tiempo prudencial en la capacitacin y manejo de herramientas y metodologa a utilizar. Elemento Disparador: Inconvenientes en la realizacin de las distintas tareas del proyecto. Acciones Correctivas: Aumentar el tiempo asignado al proyecto, intensificar la capacitacin. Evaluacin de Seguimiento:

27

Formulario de Especificacin de Riesgo Disponibilidad del equipo de desarrollo

ID 6

El mayor riesgo que se detecta en este punto se corresponde a los compromisos laborales de cada uno de los integrantes que aunque se contemplan en la carga horaria del proyecto puede contener imprevistos a futuro. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 1 1 3 2 Anteproyecto 30% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Realizar una planificacin horaria adecuada que nos permita cumplir con todos las tareas del proyecto. Elemento Disparador: Retraso en los tiempos estimados para el cumplimiento de las distintas etapas. Acciones Correctivas: Replanificar, rever tiempos y priorizar las tareas del proyecto. De ser necesario, reducir el alcance del mismo. Evaluacin de Seguimiento:

28

Formulario de Especificacin de Riesgo

Comunicacin a distancia

ID 7

Un gran inconveniente con que se encuentra nuestro equipo en este momento es la distancia fsica existente entre sus integrantes ya que uno se encuentra en la ciudad de Paysand y otro en Montevideo lo que puede derivar en problemas de comunicacin y por ende verse afectada la coordinacin de tareas, la toma de decisiones, etc. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 2 2 2 2 Anteproyecto 60% Iteracin I Iteracin II Iteracin III

Acciones Preventivas: Asegurarnos la constante comunicacin mediante todos los medios disponibles. Correo electronico, comunicacion via Skype y MSN, comunicacion telefnica, viajes peridicos; en principio un fin de semana al mes, intensificndolos hacia el final del proyecto. Elemento Disparador: Retrasos en las tomas de decisiones y tiempos muertos ocurrentes por la falta de comunicacin. Acciones Correctivas: Ajustar las prioridades, intensificar la comunicacin y los viajes en caso de ser necesario. Evaluacin de Seguimiento:

29

1.13. PLAN DE PROYECTO


1.13.1. Definicin del Proceso [Link]. Metodologa La orientacin a objetos puede ser descrita como el conjunto de disciplinas para el modelado y desarrollo que hacen ms fcil construir sistemas complejos a partir de componentes individuales. En nuestro proyecto adoptamos esta metodologa ya que la misma nos proporciona distintas ventajas como la diagramacin en UML, reutilizacin de cdigo, etc. Si bien esta metodologa no fue vista de manera exhaustiva por el equipo de desarrollo durante el curso de la carrera debido al plan realizado, ambos integrantes la hemos aplicado la misma en el entorno laboral lo que ha generado una buena familiarizacin con la misma. Esta metodologa nos permite: Modelar la solucin ms ajustada a la perspectiva del usuario como sea posible. Interactuar fcilmente con un ambiente de computacin. Construir componentes de software reusable y libreras fcilmente extensibles de mdulos de software. Modificar y extender fcilmente implementaciones de componentes sin tener que recodificar todo desde el inicio. Sobre UML: Este lenguaje grfico nos permite: Visualizar en diagramas el sistema completo. Especificar procesos y actores Construir el sistema Documentar el sistema Sobre el paradigma de la POO ver ANEXO V. [Link]. Ciclo de Vida Para el desarrollo de nuestro proyecto el equipo ha optado por el modelo incremental e iterativo ya que es el que se adapta mejor a nuestra situacin. Este modelo nos permite crear prototipos funcionales al final de cada iteracin y tener un mayor control sobre el proyecto y una mejor interaccin con el cliente. Sobre los distintos mtodos de desarrollo ver ANEXO VI. [Link]. Iteraciones Definidas Hemos decidido separar la implementacin del proyecto llevando a cabo tres iteraciones, en cada una de estas se realizarn las fases de anlisis, diseo, implementacin y testeo correspondientes. Al finalizar cada iteracin se presentar un mdulo funcional al cliente el cual podr ver los avances del proyecto e informar al equipo de desarrollo el nivel de conformidad con el producto entregado. De esta manera se podrn detectar con ms facilidad posibles errores en el diseo de la aplicacin para ser corregidos en tiempo y forma. Primera iteracin: Diseo de aplicacin base y estructura de desarrollo. Desarrollo de los mdulos del mantenimiento de entidades bsicas del sistema: Alumnos. Profesores. Usuarios. Planes. Materias. Cursos. Grupos.

30

Complementariamente con estos mantenimientos se incluirn las funcionalidades de bsquedas y listados sobre estas entidades. Segunda iteracin: Eventuales ajustes sobre la primer interaccin. Desarrollo de los mdulos de: Inscripciones. Manejo de grupos. Validacin de inscripciones. Registro de calificaciones. Registro de inasistencias. Evaluaciones finales de alumnos. Manejo de escolaridades. Manejo de perodos de exmenes. Auditora de informacin sensible. Tercera iteracin: Eventuales ajustes sobre la segunda iteracin. Desarrollo de informes entre los que se incluyen: Informe de inscripciones. Informe de inasistencias. Informe de calificaciones. Emisin de Frmula 69. [Link]. Integrantes y Roles Integrantes: Bruno Coppes. Mauricio Klivzov. Tutor:

A/P Diego Martin.

Se adoptar como forma de trabajo del equipo la organizacin descentralizada y democrtica. Esta forma de distribucin de roles se basa en que no existe una jerarqua vertical entre los miembros del equipo, asumiendo las mismas obligaciones y derechos. La distribucin de tareas se determinara en conjunto por los miembros del equipo. Esta forma de distribucin llevara a que los integrantes del equipo se manejen dentro de diferentes roles a lo largo del proyecto lo cual nos brindar la posibilidad de un mayor aprendizaje ya que participaremos en todas las tcnicas empleadas. En cada fase de desarrollo del proyecto se identificarn y determinaran los roles correspondientes, debido a que el nmero de participantes es reducido es factible que durante una misma fase un integrante interprete varios roles. [Link]. Descripcin y Seleccin de Herramientas Herramientas seleccionadas: Programacin: Se decidi el uso de Microsoft Visual C# 2008 como herramienta de desarrollo, esta decisin fue tomada basndonos en el Anexo I (Seleccin de Herramientas), tambin fue tenido en cuenta el hecho de que al ser relativamente nueva la misma facilita el desarrollo de aplicaciones orientadas a objetos. Se complementar con el paquete de componentes Developer Express 2009. Base de datos: Utilizaremos el motor de Microsoft SQL Server 2008 Express, es una base de datos gratuita con un buen rendimiento en instalaciones medianamente pequeas, adems si en un futuro sucede que la base de datos aumenta en tamao (este motor est limitado a 4 GB. en el tamao de cada base de datos) o se necesite un mejor desempeo existe la posibilidad de comenzar a utilizar la base de datos Microsoft SQL Server 2008 sin ningn costo de migracin ya que en realidad son la

31

misma base de datos con la condicionante que al versin Express puede verse reducida en rendimiento y tiene un lmite de tamao. Diagramas y gestin de proyecto: Para la generacin de diagramas de anlisis y diseo que debamos desarrollar se utiliza la herramienta Enterprise Architect. Gestin de Proyecto: Para la esta tarea y se utilizar la herramienta Microsoft Project. [Link]. Plan de SQA (Software Quality Assurance) Concordancia con los requisitos funcionales y de rendimiento explcitamente establecidos, con los estndares de desarrollo explcitamente documentados y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente. (Ref. R. Pressman, Ing. De Software)

Este plan es utilizado para guiar las actividades de aseguramiento de la calidad que realiza el Responsable de SQA. En el mismo se reflejan las evaluaciones a realizar, los estndares a aplicar, los productos a revisar, los procedimientos a seguir y los procedimientos para informar los defectos detectados a sus responsables, realizando el seguimiento de los mismos hasta su correccin. Los responsables de asegurar la calidad participan en la revisin de los productos para determinar si son conformes o no a los procedimientos, normas o criterios definidos. Se determina qu actividades deben realizar a lo largo de todo el proceso de desarrollo de software, para asegurar que se estn teniendo en cuenta las propiedades de calidad especificadas para el sistema. Tarea del SQA Los responsables de asegurar la calidad exigen que se cumplan todas las normas y criterios definidos durante las fases de desarrollo del producto con el fin de asegurar el buen fin del proyecto y el resto de la vida til del sistema. Objetivo del SQA El objetivo del SQA es asegurar la calidad del proyecto y del producto a travs del proceso de desarrollo. Debe ser capaz de detectar cualquier defecto de manera temprana ya que esto posibilitar un menor costo en su correccin.

32

Dificultad Generar un compromiso y aceptacin de los errores detectados por el SQA en el resto del equipo ya que el mismo debe entender que dicha tarea permite obtener un producto final completo, eficiente y capaz de satisfacer las necesidades del cliente.

Importante: Un error detectado por el SQA puede ser fcilmente corregido en tiempo y forma por el equipo de desarrollo mientras que si este es pasado por alto y detectado por el cliente el mismo error puede tener una gran incidencia en el resultado del proyecto. Ms all de la cantidad de integrantes del equipo de desarrollo y la falta de capacidad de contratacin de terceros, un proyecto siempre deber contar con un responsable de SQA. Caractersticas del Responsable de SQA Independencia. Autoridad. Responsabilidad. Definicin de Procesos y Normas. Auditora. El Responsable de SQA debe ser tomado como un miembro ms del proyecto. [Link].1. Estndares Definidos y Convenciones Los estndares definidos, permiten que todos los procesos y tareas que componen un proyecto se efecten siempre de igual manera y son una referencia para la productividad y calidad. Estos estndares podrn ser modificados nicamente si se identifica una mejora en los mismos que tenga igual consecuencia en el resultado final del producto. Estos estndares deben mejorar los procesos de acuerdo a los objetivos estratgicos planteados, mejorar los productos resultantes, proteger al cliente o usuario y tambin a la organizacin. En cuanto a la documentacin de los mismos, se seguirn las pautas planteadas en los documentos 302 y 303 proporcionados por la universidad ORT para la presentacin del proyecto final de la carrera. Se realizarn diagramas de casos de uso, secuencia, y de clase utilizando la herramienta Enterprise Architect siguiendo las reglas de UML y la planificacin y seguimiento del proyecto se realizar mediante diagramas realizados con la herramienta Microsoft Project. El estndar de nomenclatura a utilizar ser el propuesto por Microsoft para el desarrollo .Net (Ver ANEXO III). [Link].2. Plan de Testeo El propsito del plan de testeo es asegurar el resultado de las actividades de testeo y proporcionar la base de informacin necesaria para las tareas a ejecutar, definiendo los niveles y tipos de pruebas que se van a ejecutar, cmo sern esas pruebas y cundo se dar por finalizado. El testeo ser en primera instancia ejecutado por los integrantes del equipo; sin embargo se manejar la posibilidad de involucrar otras personas con una visin de usuario a fin de detectar posibles errores omitidos por el equipo al estar demasiado involucrados en el desarrollo del sistema. La primera opcin ser sumar un integrante del personal del Colegio ya que de esta manera tendremos una visin de usuario real lo que permitira detectar defectos en la usabilidad de la aplicacin ms all de los errores de programacin. En caso de no poder concretarlo se recurrir a personas sin conocimiento de desarrollo de software para poder conseguir una mayor objetividad. Dentro de la ejecucin del testeo, se intentar aplicar varias de las diferentes metodologas existentes con el fin de reducir de manera considerable la posibilidad de omisin de defectos. Las opciones de metodologas de testeo que utilizaremos se detallan en el ANEXO IV pero se dejar abierta la posibilidad de incluir nuevas tcnicas a futuro si lo considerramos necesario.

33

[Link]. Plan de SCM Se denomina Software Configuration Management (SCM) en espaol Gestin de configuracin de software al conjunto de procesos destinados a asegurar la validez de todo producto obtenido durante cualquiera de las etapas del desarrollo de un Sistema de Informacin mediante el estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versin estable de cada elemento. Estos dos elementos facilitan tambin el mantenimiento de los sistemas al proporcionar una imagen detallada de los mismos en cada etapa del desarrollo. La gestin de la configuracin se realiza durante todas las fases del desarrollo incluyendo el mantenimiento y control de cambios, una vez realizada la puesta en produccin. Los elementos a gestionar son: Ejecutables. (puede omitirse si se asegura la obtencin del mismo a travs de una imagen de versin de cdigo fuente) Cdigo Fuente. Modelos de datos. Modelos de procesos. Especificaciones de requisitos. Pruebas. Para cada uno de estos elementos se almacena al menos: Nombre. Versin. Estado. Localizacin. Las versiones de software, pueden ser generadas por los siguientes motivos: Como resultado de un proyecto. Cambios requeridos por defectos detectados en el testeo. Cambios generados a nivel de requerimientos. Cambios generados a nivel de diseo. Las modificaciones pueden ser causadas por los siguientes motivos: Modificaciones en el diseo. Modificaciones en la funcionalidad. Modificaciones de defectos detectados en el testeo. La estrategia de gestin de configuracin de nuestro proyecto definir reas de trabajo y almacenamiento para contener las distintas versiones surgidas. Fuentes En esta de directorios estructura se almacenar todas las fuentes que involucran nuestro proyecto /Fuentes /Desarrollo /Fuentes /BD /Testeo /Fuentes /BD

34

Documentacin. Se define la estructura para la documentacin generada en todo nuestro proceso de desarrollo. Se tendr presente cada una de las etapas y la documentacin generada en cada una de las mismas. /Documentacin /Anlisis y Diseo /Casos de Uso /Testeo /BD /SQA /SCM /Arquitectura y Diseo Estos directorios sern respaldados diariamente para reducir al mximo el riesgo de prdida de versiones. [Link]. Plan de Capacitacin Grupo de desarrollo El grupo deber capacitarse en el uso de la herramienta de desarrollo, esto se realizar antes del comienzo de la primera iteracin, se recopil informacin en Internet sobre la herramienta de programacin. Tomaremos un perodo de once das para capacitarnos considerando que de esta manera los tiempos de desarrollo sern ms bajos una vez comenzadas las iteraciones. En cuanto al motor de base de datos el equipo considera tener la experiencia suficiente sobre la misma por lo cual no considera necesario una capacitacin sobre la misma. Las herramientas de modelado y gestin de proyecto tambin son de nuestro conocimiento por lo cual no consideramos realizar una capacitacin en el uso de las mismas. Usuarios del sistema Los usuarios del sistema tienen conocimiento en uso de herramientas como planillas electrnicas, procesadores de texto e Internet. Por lo que la capacitacin sobre el uso del sistema se basar exclusivamente en su utilizacin. En cada entrega parcial que se realizar una capacitacin mnima a los usuarios sobre el uso de la herramienta. Al concluir con el proyecto, se desarrollara una capacitacin detallada sobre el total comportamiento del sistema. [Link]. Cronograma de Trabajo y Criticidad
Proyecto SIINCO Carta de presentacin Reunin con cliente Armar carta de presentacin Presentacin de la propuesta Fin carta de presentacin Anteproyecto Reunin con el cliente Presentacin del problema Lista de necesidades Anlisis estratgico Actores involucrados 33 das 1 das 1 das 2 das 1 das 1 das 147 das 5 das 1 das 3 das 1 das 26/08/2009 26/08/2009 26/08/2009 27/08/2009 31/08/2009 01/09/2009 01/09/2009 01/09/2009 02/09/2009 03/09/2009 05/09/2009 07/09/2009 13/02/2010 01/09/2009 27/08/2009 29/08/2009 01/09/2009 01/09/2009 09/10/2009 02/09/2009 03/09/2009 05/09/2009 05/09/2009 08/09/2009

35

Objetivos Reunin con el cliente Lista de requerimientos Descripcin del entorno Alcances y limitaciones Estudio de alternativas Estudio de factibilidad Anlisis de riesgo Plan de proyecto Definicin de proceso Metodologa Ciclo de vida e iteraciones Plan de SQA Plan de SCM Cronograma de trabajo Compromiso de trabajo Entrega del anteproyecto Fin anteproyecto Aprendizaje de herramientas Pruebas con herramientas de diseo Pruebas con lenguaje de programacin Pruebas de acceso a datos Compartir aprendizaje Armar prototipos Disear GUI Disear aplicacin base Disear acceso a datos Implementacin Iteracin I Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Mantenimiento de Tipos de Usuario y Usuarios Listado de Tipos de Usuario y Usuarios Mantenimiento de Alumnos Listado de Alumnos Mantenimiento de Planes Listado de Planes Mantenimiento de Cursos Listado de Cursos Mantenimiento de Materias Listado de Materias Mantenimiento de Grupos Listado de Grupos Mantenimiento de Profesores Listado de Profesores

1 das 1 das 2 das 1 das 3 das 1 das 1 das 1 das 16 das 2 das 3 das 2 das 1 das 1 das 5 das 1 das 1 das 11 das 3 das 3 das 3 das 2 das 15 das 5 das 7 das 3 das 77.5 das 28.5 das 1 das 1 das 4 das 2 das 2 das 2 das 4 das 2 das 2 das 2 das 14 das 2 das 1 das 2 das 1 das 1 das 1 das 2 das 1 das 1 das 1 das 2 das 1 das 1 das 1 das

08/09/2009 09/09/2009 10/09/2009 12/09/2009 14/09/2009 17/09/2009 18/09/2009 19/09/2009 21/09/2009 21/09/2009 23/09/2009 26/09/2009 29/09/2009 30/09/2009 01/10/2009 07/10/2009 08/10/2009 09/10/2009 09/10/2009 09/10/2009 13/10/2009 16/10/2009 20/10/2009 22/10/2009 22/10/2009 28/10/2009 05/11/2009 07/11/2009 07/11/2009 09/11/2009 10/11/2009 11/11/2009 11/11/2009 13/11/2009 13/11/2009 16/11/2009 16/11/2009 16/11/2009 18/11/2009 20/11/2009 20/11/2009 23/11/2009 20/11/2009 23/11/2009 24/11/2009 25/11/2009 24/11/2009 26/11/2009 27/11/2009 28/11/2009 26/11/2009 28/11/2009 30/11/2009 01/12/2009

09/09/2009 10/09/2009 12/09/2009 12/09/2009 17/09/2009 18/09/2009 19/09/2009 19/09/2009 09/10/2009 23/09/2009 26/09/2009 29/09/2009 30/09/2009 01/10/2009 07/10/2009 08/10/2009 09/10/2009 09/10/2009 22/10/2009 13/10/2009 16/10/2009 20/10/2009 22/10/2009 07/11/2009 28/10/2009 05/11/2009 07/11/2009 06/02/2010 11/12/2009 10/11/2009 11/11/2009 14/11/2009 13/11/2009 14/11/2009 14/11/2009 20/11/2009 18/11/2009 18/11/2009 20/11/2009 05/12/2009 21/11/2009 24/11/2009 21/11/2009 24/11/2009 25/11/2009 26/11/2009 26/11/2009 27/11/2009 28/11/2009 28/11/2009 28/11/2009 28/11/2009 01/12/2009 02/12/2009

36

Relacionar Plan, Curso, Materias Listado de relaciones Plan, Curso, Materias Armado de Bsquedas de Entidades Genrico Testeo Manual de usuario y Ayuda en lnea Entrega primera iteracin Presentacin y pruebas con el cliente Conclusiones e Informe de avance Fin de Iteracin I Iteracin II Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Manejo de Ao Lectivo Gestin de Inscripciones Registro de Notas Finales Registro de Inasistencias Proceso de Grupos Validacin de aprobacin de Cursos Registro de Resultados de Exmenes Validacin de inscripciones Manejo de perodos de exmenes Generacin de informacin de Auditoria Actualizar privilegios Tipos de Usuarios Testeo Actualizar Manual de usuario y Ayuda en lnea Entrega segunda iteracin Presentacin y pruebas con el cliente Conclusiones e Informe de avance Fin de Iteracin II Iteracin III Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Emisin de Frmula 69 Informe de Inasistencias Informe de Notas Finales Informe de Exmenes

3 das 1 das 2 das 3 das 2 das 0.5 das 0.5 das 1 das das 34 das 1 das 1 das 7 das 2 das 2 das 3 das 12 das 3 das 3 das 6 das 19.5 das 2 das 2 das 2 das 2 das 3 das 2 das 1 das 2 das 2 das 1 das 0.5 das 3 das 0.5 das 1 das 1 das 1 das 15 das 1 das 1 das 3 das 1 das 1 das 1 das 4 das 1 das 1 das 2 das 9 das 2 das 0.5 das 0.5 das 0.5 das

30/11/2009 03/12/2009 04/12/2009 07/12/2009 07/12/2009 10/12/2009 10/12/2009 10/12/2009 07/11/2009 11/12/2009 11/12/2009 12/12/2009 14/12/2009 14/12/2009 16/12/2009 18/12/2009 22/12/2009 22/12/2009 25/12/2009 29/12/2009 22/12/2009 22/12/2009 24/12/2009 26/12/2009 29/12/2009 31/12/2009 04/01/2010 06/01/2010 07/01/2010 09/01/2010 12/01/2010 13/01/2010 14/01/2010 18/01/2010 18/01/2010 18/01/2010 19/01/2010 19/01/2010 20/01/2010 20/01/2010 21/01/2010 22/01/2010 22/01/2010 23/01/2010 25/01/2010 26/01/2010 26/01/2010 27/01/2010 28/01/2010 23/01/2010 23/01/2010 26/01/2010 27/01/2010 27/01/2010

03/12/2009 04/12/2009 05/12/2009 10/12/2009 09/12/2009 10/12/2009 10/12/2009 11/12/2009 07/11/2009 20/01/2010 12/12/2009 14/12/2009 22/12/2009 16/12/2009 18/12/2009 22/12/2009 05/01/2010 25/12/2009 29/12/2009 05/01/2010 14/01/2010 24/12/2009 26/12/2009 29/12/2009 31/12/2009 04/01/2010 06/01/2010 07/01/2010 09/01/2010 12/01/2010 13/01/2010 14/01/2010 16/01/2010 18/01/2010 19/01/2010 19/01/2010 20/01/2010 19/01/2010 06/02/2010 21/01/2010 22/01/2010 26/01/2010 23/01/2010 25/01/2010 26/01/2010 30/01/2010 27/01/2010 28/01/2010 30/01/2010 03/02/2010 26/01/2010 27/01/2010 27/01/2010 28/01/2010

37

Informe de Inscripciones Generador de Informes Dinmicos Generar Informes Base con Generador Testeo Actualizar Manual de usuario y Ayuda en lnea Entrega tercera iteracin Presentacin y pruebas con el cliente Informe de avance Fin de Iteracin III Etapa Final Desarrollar Instalador Despliegue Detalle del Despliegue Gua Instalacin Estrategia de Respaldo Plan de Contingencia Revisiones generales del Proyecto Instalacin Conclusiones finales del proyecto Fin de Proyecto

0.5 das 4 das 1 das 2 das 0.5 das 1 das 1 das 2 das 5.5 das 1 das 2.5 das 1 das 0.5 das 0.5 das 0.5 das 1 das 1 das 1 das

28/01/2010 28/01/2010 02/02/2010 03/02/2010 05/02/2010 03/02/2010 03/02/2010 04/02/2010 06/02/2010 06/02/2010 06/02/2010 06/02/2010 09/02/2010 06/02/2010 08/02/2010 08/02/2010 10/02/2010 11/02/2010 12/02/2010 13/02/2010

28/01/2010 02/02/2010 03/02/2010 05/02/2010 06/02/2010 04/02/2010 04/02/2010 06/02/2010 06/02/2010 13/02/2010 08/02/2010 10/02/2010 10/02/2010 06/02/2010 08/02/2010 09/02/2010 11/02/2010 12/02/2010 13/02/2010 13/02/2010

38

1.14. COMPROMISO DE TRABAJO


Paysand, 8 de octubre de 2009

Por la presente de deja constancia que las autoridades del Colegio Nuestra Seora del Huerto; sito en la ciudad de Paysand, en la calle Florida 1137 establece su conformidad con el sistema a implementar SIINCO (Sistema Informtico para Colegios), presentado por Bruno Coppes y Mauricio Klivzov los cuales integran el equipo de desarrollo de este proyecto utilizndolo adems como proyecto final para la obtencin del ttulo Analista Programador de la universidad ORT del Uruguay. Los integrantes del equipo de trabajo asumen un compromiso de trabajo con la institucin para desarrollar el sistema en un plazo mximo de 5 meses. El alcance del desarrollo comprender la gestin correspondiente al Ciclo Bsico y abarcar el subconjunto de requerimientos de usuario que fue definido como alcances en el apartado 1.10 del presente documento. El Bachillerato y los requerimientos no comprendidos en el alcance de este proyecto, sern postergados para futuros desarrollos previo acuerdo con el Colegio. Por otra parte, el Colegio se compromete con el equipo a suministrar la informacin necesaria para realizar el desarrollo, evaluar el producto y comunicar defectos detectados. El equipo de desarrollo se compromete con la empresa a desarrollar el producto, instalarlo, capacitar al personal en su uso y colaborar con la evaluacin del mismo. Transcurrido el plazo de evaluacin y no detectndose inconvenientes, entonces ambas partes quedan liberadas de este compromiso. El equipo de trabajo asumir el costo de la implementacin del proyecto y entregar copias de toda la documentacin generada. Queda como responsabilidad del Colegio la adquisicin de cualquier componente de hardware o software necesario para la correcta instalacin del sistema.

Por Colegio Nuestra Seora del Huerto

Por equipo de desarrollo

39

2. PROYECTO
2.1. ETAPA DE APRENDIZAJE DE HERRAMIENTAS
Como fue definido en la planificacin del proyecto, la primera etapa del mismo ha tomado como meta el aprendizaje y familiarizacin con las herramientas elegidas para el desarrollo del mismo. Cabe aclarar que la seleccin se llevo a cabo tomando en cuenta las distintas ventajas y desventajas de las herramientas disponibles en la industria del software buscando un equilibrio entre la funcionalidad que permiten y tambin el aspecto econmico ya que el cliente en primera instancia no tiene inters en realizar una gran inversin en este aspecto. Este estudio y la decisin tomada se realizaron en el anteproyecto y se puede ver en el ANEXO I del mismo. De todas maneras a continuacin se realiza una nueva investigacin ms profunda sobre las mismas con el fin de asegurarnos que la eleccin haya sido acertada Pruebas con herramientas de diseo Como explicamos en el anteproyecto, la herramienta seleccionada es Enterprise Architect para Windows. Hablando con colegas que ya han utilizado este tipo de herramientas y adems de la exhaustiva bsqueda de informacin en internet, podemos afirmar que esta es la mejor alternativa que podemos elegir dada su practicidad y eficiencia. Quiz su principal caracterstica sea el empleo de capas a la hora del diseo, del mismo modo que hacemos con algunos programas clsicos de edicin grfica. Esto simplifica el proceso de diseo y permite modularizar el trabajo: si tenemos que corregir o modificar algo, basta con ir a la capa correspondiente, y no tener que trabajar siempre con el grfico entero. Esta herramienta incluye todo tipo de elementos grficos para utilizar en nuestros diagramas, tales como flechas, elipses, polgonos de todo tipo, formas geomtricas, y un largo etctera. Muy interesante es tambin la opcin de fijar un elemento al diseo, de forma que si lo desplazamos automticamente se desplazan con l todas las flechas y lneas que lo unan con el resto. Pruebas con Lenguaje de Programacin Para corroborar la correcta seleccin en el lenguaje de programacin elegido (Microsoft Visual C# 2008), se realizaron distintas pruebas de programacin basndonos en ejemplos publicados en MSDN ([Link] en MSDN Magazine ([Link] y en la pgina de ejemplos de implementacin de distintos lenguajes [Link] A travs de de esta informacin comprendimos como realizar una implementacin eficiente y as comenzar nuestro aprendizaje de Microsoft Visual C# 2008 aprendiendo muchas de sus cualidades y las ventajas de utilizar un lenguaje OO. En resumen podemos aseverar que la eleccin de esta herramienta fue un acierto ya que nos encontramos con un leguaje amigable y muy completo lo cual nos permite implementar un mejor diseo basndonos en el uso de la herencia y el polimorfismo. Pruebas con Acceso a Datos Una vez ms nos encontramos en posicin de afirmar que la eleccin del motor de Base de Datos Microsoft SQL Server 2008 Express Edition fue acertada. Para esta confirmacin realizamos pruebas de acceso a datos, poniendo foco en distintos ejemplos para conectarnos y tratando los datos almacenados en esta base relacional. En principio realizamos pequeas implementaciones de cdigo tratando de proyectar lo que posteriormente ser la capa de persistencia de nuestro proyecto. Creamos una clase [Link] para probar como se desempea el sistema en conjunto con el motor de BD, encapsulando el comportamiento necesario para nuestra capa de persistencia y acceso a datos. En todas estas pruebas el resultado fue satisfactorio y a partir de este fue la confirmacin obtenida. El cdigo de ejemplo se detalla en el ANEXO X.

40

2.2. DISEAR GUI


2.2.1. Definicin de Interfaces de Usuario En esta actividad se especifican las interfaces entre el sistema y el usuario principalmente los: formatos de: Pantallas Dilogos Listados Informes El objetivo es realizar un anlisis de los procesos del sistema en los que se requiere una interaccin del usuario a fin de poder generar una interface que satisfaga todos los requisitos establecidos y adems tenga en cuenta los diferentes perfiles a quines va dirigido. Como primera medida se seleccionar el entorno en el que ser operativa la interface considerando los estndares internacionales y de instalacin; estableciendo adems las directrices que sern aplicables en los procesos de diseo y construccin. El objetivo es poder implementar una interface de usuario compatible con sus necesidades, amigable, coherente, eficiente y sencillo de utilizar teniendo en cuenta las caractersticas de los usuarios que la utilizarn. Se deben identificar los distintos grupos de usuarios de acuerdo a las distintas funciones que realizan, conocimientos y habilidades que poseen. La identificacin de estos perfiles permite conocer mejor las necesidades y particularidades de cada uno de ellos. Por otra parte, se debe determinar la naturaleza de los procesos que llevan a cabo ya sean procesos por lotes o interactivos, y en cada proceso interactivo se especifica qu tipo de informacin requiere el usuario para completar su ejecucin. Como punto final se definir el formato y el contenido de cada una de las interfaces de pantalla especificando su comportamiento dinmico. Nuestro equipo propone un flujo de trabajo muy similar para desarrollos estructurados u orientados a objetos, coincidiendo en la mayora de las tareas teniendo siempre en cuenta que en la programacin orientada a objetos, al identificar y describir cada escenario en la especificacin de los casos de uso, se hace un avance muy significativo en la toma de datos para la posterior definicin de la interface de usuario. Para nuestro proyecto, hemos decidido utilizar un nuevo modelo llamado inductive user interface (IUI); o en espaol, interfaz de usuario inductiva. Este modelo, tambin llamado navegacin inductiva sugiere como desarrollar aplicaciones de software simples dividiendo funcionalidades dentro de pantallas o pginas que son ms fciles de explicar y entender. ste modelo ha sido utilizado por varios proyectos de Software de Microsoft. IUI es en realidad una extensin de la interface corriente estilo Web. En los ambientes Web, las pginas deben ser simples y basadas en tareas porque cada pieza de informacin debe ser enviada sobre una conexin relativamente lenta. El servidor responde con el prximo paso y as sucesivamente. Un diseador Web que se precie, debe tratar de enfocarse en una tarea simple por pgina y proveer la navegacin hacia delante y hacia atrs a travs de las pginas. Similarmente, la navegacin inductiva comienza enfocndose en la actividad de cada pgina (formulario en nuestro caso) como primera tarea. La premisa fundamental puede ser explicada en una serie de cuatro pasos para el diseo de software que use IUI: 1. 2. 3. 4. Enfocar cada pantalla en una sola tarea Expresar la tarea Hacer que la pantalla contenga la tarea correcta. Posibilitar enlaces a tareas secundarias.

En conjunto con los cuatro pasos listado anteriormente, se puede fortalecer la interface siguiendo los siguientes consejos expuestos. A. Usar plantillas de pantallas consistentes. 41

B. C. D. E.

Proveer pantallas para las tareas iniciales. Hacer obvio como completar la tarea con los controles en la pantalla. Proveer una manera fcil de completar las tareas y comenzar una nueva. Hacer el prximo paso de navegacin obvio.

Estos cuatro pasos y cinco consejos son la clave para el diseo de IUI. El detalle de los mismos puede se encuentra en el ANEXO XI.

42

2.3. APLICACIN BASE


Pantallas y controles. Bosquejo del formulario principal de nuestra aplicacin, del cual se partir realizando las mejoras necesarias en el transcurso de las iteraciones definidas para que la imagen del software conformen las expectativas de los usuarios ya que sabido es que una aplicacin debe tener una interface amigable y agradable al usuario para tener xito independientemente de la calidad del diseo que contenga.

Este ser el formulario principal de nuestra aplicacin y a travs del mismo se podrn acceder a todas las funcionalidades del mismo. Es donde comienza y termina la aplicacin. Los formularios que dependen de este formulario principal pueden dividirse en dos categoras claramente diferentes. Formularios de ingreso de datos. Formulario de salida de datos. a) Formulario de salida de datos. Son utilizados para realizar bsquedas de algn tipo de dato en particular. b) Formulario de listado o informe de datos. Sern utilizados para la presentacin de los informes de datos.

Cabe resaltar adems, que existirn distintas barras de herramientas que permitirn las operaciones correspondientes tanto para las operaciones de ingreso de datos como para las de salida. Estas barras de herramientas estarn ubicadas a modo de pestaas en el formulario principal. Barra de Herramientas de Archivo Barra de Herramientas de Estadsticas Barra de Herramientas de Configuracin

43

Formularios Secundarios

La imagen anterior pertenece al bosquejo del formulario de ingreso de datos de nuestro sistema

Por otro lado; los formularios de salida de datos, estarn representados con un control del tipo grilla para poder mostrar los datos de panera clara y precisa. Estos tipos de formularios varan su funcionalidad dependiendo de la subcategoria a la que pertenecen. La premisa es poder proporcionar una interface familiar al usuario dada la similitud que estas grillas tienen con una planilla de Microsoft Excel. Para diferenciar estas funcionalidades y en caso de que el formulario lo amerite, se crearn barras de herramientas personalizadas. Cualquiera sea su tipo, contara con la barra de herramientas correspondiente. Las barras de herramientas personalizadas se encuentran detalladas a continuacin. Barra de herramientas para mantenimiento. Ser la encargada de brindar la funcionalidad de crear, modificar y / o eliminar registros. Contar adems con una opcin de bsqueda para poder encontrar registros y desplegarlos en un formulario de salida de datos de tipo 2 mencionado anteriormente. Barra de herramientas de Informes. Encargada de brindar la funcionalidad de ejecutar un informe de datos y desplegarlo en un formulario de tipo 2 b.

44

Barra de herramientas de Confirmacin Brindar la posibilidad de confirmacin de algn evento en particular como por ejemplo, el confirmar un determinado informe para que este sea desplegado por pantalla. Barra de herramientas de Salida Todos los formularios secundarios debern contar con esta barra de herramientas que cerrara la pantalla en ejecucin. Generalmente sern utilizadas con otras barras de herramientas como la barra de confirmacin. Barra de herramientas de Guardar Responsable de almacenar algn registro en particular. Solo a modo de ejemplo a continuacin, se muestran los bosquejos que reflejan como ser la combinacin de los formularios secundarios con las barras de herramientas personalizadas.

Formulario de entrada de datos compuesto por dos barras de herramientas personalizadas, Confirmacin y Salida.

Formulario genrico de bsqueda.

Formulario genrico de informes.

Tambin sern creados algunos controles para facilitar la implementacin del sistema, manejando sus eventos y validaciones, en el transcurso del proyecto. En cada uno de los formularios se mantendr el miso estilo visual que ser acordado previamente con el cliente. Se intentar ubicar los controles imaginando mrgenes en los formularios y un estilo de tamao de objetos y distribucin homogneo. Cabe agregar que nuestro equipo utilizar componentes externos del leguaje de programacin seleccionado para potenciar la amigabilidad de las interfaces de usuario, ms especficamente la suite de componentes Developer Express 2009. Configuracin de la aplicacin Nuestra aplicacin utilizar MS SQL Server 2008 para guardar los datos. Se utilizar un archivo externo en formato XML estndar de las aplicaciones .Net ([Link]), al cual tenemos acceso mediante

45

las clases que provee el framework, y donde se guardan los parmetros de conexin de nuestro sistema como ser: Servidor de Base de Datos. Base de Datos. Usuario. Contrasea. Ms abajo detallamos las responsabilidades de los objetos creados con tal fin. Responsabilidades y dependencias entre paquetes del sistema Con un entendimiento mejor de los mensajes entre los objetos se comienza a construir el diagrama de clases. Para una mejor organizacin nuestro proyecto propone encapsular las clases en diferentes capas: Dominio Presentacin Aplicacin Persistencia. Nuestra idea es encapsular en cada una de estas capas el comportamiento relativo a cada una de las funciones de nuestra aplicacin.
pd Responsabilidades de Paquetes EXE SIINCO-Presentacin DLL SIINCO-Aplicacion DLL SIINCO-Persistencia

ConexionSQL

Obj etoPersistente +ConexionSQL

+Instancia PersistenciaManej ador

DLL SIINCO-Dominio

Lista

+Lineas

+Contenedor

Obj eto

+CompuestoPor

Paquetes del sistema Descripcin Encapsula los datos y operaciones de los distintos objetos de la aplicacin. Dominio Responsabilidades: mantener la informacin de cada objeto. Realiza las operaciones de persistencia relacionadas a los objetos de dominio. Persistencia y Encapsular la conexin con la base de datos, en este caso SQL Server. Acceso a datos Responsabilidades: proveer persistencia de los datos para armar nuestros objetos de dominio. Realizar operaciones de validacin, gestionar persistencia de los objetos de Aplicacin dominio y dar servicios a las capas superiores (Presentacin). Interfaz con los distintos usuarios del sistema o sistemas que interacten con Presentacin l. Nombre Dominio: Clases Base:

46

Objeto: Define los mtodos y propiedades que son base de los objetos de dominio de la aplicacin, la funcionalidad bsica presente en cada uno de nuestros objetos de dominio. Por ejemplo, para tratar la concurrencia. Lista: ArrayList, que implementa las interfaces IBindingList e IListSource para interactuar como orgenes de datos de las grillas de seleccin y almacenar componentes de objetos compuestos (relaciones de uno a muchos). Presentacin: Clases Base: Formularios: en ellos se realizan las operaciones de entrada de datos y sus validaciones, permitiendo al usuario interactuar con el sistema. Aplicacin: Clases Base: Manejador: Define los mtodos para validar y persistir un objeto de dominio de cualquier tipo, las especializaciones de esta clase (subclases) se usan para agregar funcionalidad especfica relativa a estas (ej. AlumnoManejador facilita operaciones con los Alumnos). Persistencia: Clases Base: PersistenciaManejador: Fachada encapsula operaciones con persistencia y que da soporte a los manejadores de aplicacin, tiene la capacidad de manejar cualquier objeto de dominio y basndose en su tipo mediante polimorfismo definir su estrategia de persistencia. ObjetoPersistente: Decorador, Agrega funcionalidad a un objeto de dominio (clase Objeto), para tener acceso a operaciones de persistencia, contiene un mapeo (que es la definicin de las operaciones con la base de datos. Excepciones: Para el manejo de las excepciones lanzadas por la aplicacin creamos la clase de dominio SIINCOExcepcion que hereda de ApplicationException que se encarga de interpretar las excepciones y emitir el mensaje de error correspondiente en lenguaje comprensible para el usuario.

47

Una vez que hemos definido el sistema y ya habiendo creado los diagramas de interaccin, se detallan posteriormente los mensajes ms comunes que existirn entre los distintos tipos de objetos que se corresponden con las operaciones Guardar, Obtener y Eliminar. La representacin se realiza de forma genrica en los siguientes diagramas de interaccin de los mensajes entre los objetos y los cuales persistirn para todas las operaciones de similares caractersticas. Guardar

48

Obtener

Eliminar

49

Diseo de Asociaciones y Agregaciones Aqu se detallan las asociaciones entre las clases del modelo de clases del diseo Se estudia la secuencia de mensajes entre los objetos correspondientes en los diagrama de secuencia. Para determinar estas asociaciones que fueron identificadas en proceso de anlisis, se tiene en cuenta que: Se detallan las caractersticas de la asociacin (papeles que desempea, multiplicidad, etc.) segn el entorno de desarrollo utilizado. Se modelan rutas de acceso entre las asociaciones. Esta caracterstica es relevante al hablar de sistemas productivos pero no es tan as en nuestro caso ya que se trata de un tema estrictamente acadmico. Igualmente, las rutas se muestran en los diagramas (por el smbolo de navegabilidad en UML). Se analiza la posibilidad de disear como clases algunas de las asociaciones. No se presenta el caso de necesitar clases para modelar relaciones puesto que las clases a utilizar para la implementacin ya se encuentran desarrolladas y las asumiremos que forman parte de la librera de clases del sistema. En este punto tambin debemos tratar el cmo se implementarn estas asociaciones. En el caso de nuestro desarrollo se pueden definir dos tipos distintos de asociacin a implementarse: 1 - Cuando la asociacin de un objeto es contra uno de otra clase, la implementacin es por medio a una referencia simple. 2 - Cuando la asociacin es hacia uno o ms elementos, la misma se implementar utilizando el atributo Filas de la clase Objeto el cual es del tipo Lista (nuestra implementacin especializada de la clase [Link] del lenguaje Visual C# .NET), que permitir mantener una coleccin de referencias a los objetos relacionados. A modelo de ejemplo podemos extraer del modelo de clases de la aplicacin base el siguiente diagrama:
class Dominio T ArrayList IBindingList IListSource Lista _parent: Objeto _tipo: Objeto

property + Tipo() : Objeto

-_parent

-_tipo System .Com [Link] Objeto

SincronizarCom puestoFilas() : void

property + Compuesto() : bool + CompuestoPor() : Objeto + Filas() : Lista<Objeto>

PlanCurso + SincronizarCompuestoFilas() : void +

PlanCursoMateria SincronizarCompuestoFilas() : void

50

Ejemplo del diseo de la aplicacin aplicado a la Clase Alumnos. Para terminar de mostrar el diseo por el cual hemos optado para la aplicacin base, confeccionamos el diagrama de clases que se encuentra a continuacin, el cual muestra el diseo de la estructura bsica aplicada a una clase concreta, la clase Alumnos.
clas s Dom inio FormBa sicoMan ten imie nto GUI::Form Fiche roA lum nos # # + # # # # # # -_o bj Sin gle ton

A rm a rOb j etoDe sd eP antalla() : void A rm a rP an tall a Desde O bje to() : void Fo rm Fich ero A lum n os() Ini ci o() : vo id Insta nci a (Form ) : Form Fiche ro Al um nos M e nu B uscar_ Cli ck(o bje ct, Item ClickE ven tArgs) : vo id M e nu Can cel ar_ Click(o bje ct, Item ClickE ve ntA rgs) : void M e nu E lim ina r_Click(object, Item Cli ckEven tA rgs) : void M e nu Gu a rd ar_ Click(ob j ect, Item Cl ickE ve ntArg s) : vo id M e nu Nue vo_ Cli ck(o bject, Ite m Cl ickE ven tArg s) : vo id Nue vo () : vo id Sel e ccio n ar(Obje to ) : void V a lid ar() : bo ol

O bje t o Dominio::A lumno p rop erty + A lu m no ID() : int + A p ell ido1 () : stri ng + A p ell ido2 () : stri ng + Barri o() : stri ng + Di re ccio n () : stri n g + Docu m e nto() : stri n g + Eda dS tr() : strin g + Em a il () : stri ng + Enfe rm ed ad es() : stri ng + Fe cha A lta () : Da teT i me + Fe cha Nacim iento() : Date T ime + Lo cal ida d() : string + M ed i cam en to s() : string + Nom bres() : stri ng + Nom breT utor() : stri ng + Otros() : str in g + Rel a ci o nT u tor() : string + Sexo () : string + T el e fo no () : strin g + T i po Docu m e nto() : stri ng + T ratam ie nto s() : stri ng + T uto r() : b oo l

Aplic ac ion::M a nej a dorAlum no + Gu ard ar(Ob j eto ) : bo ol + In sta nci a() : Man eja do rAl um no - V a lida r(Al um n o) : bo ol -_o b jSing l eton+ + + + + # +

Aplic ac ion::SIINCO M a ne j a dor -_ ob jS ing leton E li m in ar(Obje to) : b o ol G ua rda r(O bje to) : b oo l Insta ncia () : SIINCO M a n ej ad o r O bte ne r(O bje to) : b oo l O bte ne rDataS et(O bj eto) : DataS et O bte ne rP ro ximo (Ob jeto) : int O bte ne rT od os(O bj eto) : L ista<Ob jeto >

O bje toP e rsiste nte Persis te nc ia::P ersis te nte A lumno Persiste nc ia::SIINCOPe rs istenc i a + + + + + + + + + + -_ ob jS in gleton B eg in T ran sa ctio n() : vo id Com m itT ran sa cti on() : vo id E li m ina r(O bjeto ) : bo ol G u ard ar(Ob jeto ) : bo ol G u ard arO bj eto (Ob je toPe rsiste nte) : bo ol G u ard arO bj eto Com pu esto (Ob j eto P ersiste nte ) : bo ol In stan cia() : SIINCO P ersiste nc ia O b te n er(Ob jeto ) : bo ol O b te n erDa ta S e t(O bje to ) : Da ta Se t O b te n erFi las(Ob jeto ) : vo id O b te n erP roxim oID(O bjeto ) : int O b te n erT o do s(Ob j eto ) : Li sta <O bj e to> Roll ba ckT ran sa ctio n () : vo id S IINCO Pe rsisten ci a() + Arm arO bj eto(S yste m .[Link] lCli en [Link] taRe ade r) : bo ol + Cre arP a ram etros(System .Data .S ql Cl ien [Link] lP a ram ete rColl ectio n) : vo id + P e rsisten teA lu m n o(O bj eto ) p ro pe rty + S Q L Delete () : strin g + S Q L In se rt( ) : stri n g + S Q L Ob ten erFi la s() : strin g + S Q L Pro xim o IDL ibre () : stri ng + S Q L SelectCla ve() : stri ng + S Q L Upd ate () : stri ng

En el diagrama apreciamos la estructura que da soporte a la persistencia y lgica de aplicacin para el objeto Alumno. Esto se cumplir para todos los objetos del dominio de la aplicacin que sean persistentes. Estas clases basarn su funcionamiento en las clases diseadas en esta etapa del proyecto Objeto, Lista y ObjetoPersistente. Las cuales proveen la funcionalidad bsica para el tratamiento de la persistencia.

51

2.4. DISEO DE ACCESO A DATOS


2.4.1. Capa de persistencia Para esta etapa, nuestro equipo evalu una serie de alternativas tales como implementar la persistencia a travs de clases especializadas para cada objeto de dominio en las cuales, mediante sentencias SQL se proveera el acceso a los datos persistentes o bien utilizar un framework de persistencia ya existente. Sin embargo, la opcin seleccionada por nuestro equipo fue el desarrollar una forma genrica de tratar a nuestros objetos de dominio persistente, factorizar mediante herencia y polimorfismo el comportamiento de estos objetos y proveer una interface comn para el acceso a datos y el tratamiento de la concurrencia. Para cumplir con esto, se desarroll la clase Objeto y, ObjetoPersistente que definen el comportamiento y la estructura para nuestros objetos de dominio persistentes y su interaccin con la base de datos relacional que utilizamos. Con esta opcin se solucionaron temas como la concurrencia, para este punto optamos por un tratamiento optimista de la concurrencia basndonos en una columna del tipo timestamp que provee SQL Server en cada una de las tablas a construir en nuestra aplicacin.

52

2.5. ITERACION I
2.5.1. Reunin con el Cliente Durante el transcurso del Anteproyecto, se obtuvieron los requerimientos principales del cliente y en base a ellos se estableci una serie de iteraciones en donde estos eran divididos para poder llevarlos a cavo en fases separadas. Ya dentro de la iteracin I, como primera instancia de la misma se realiz una nueva reunin con el cliente donde se le inform los requerimientos que seran contemplados en la misma y en una vez acordada esta realizacin se continuo con la reunin profundizando an ms los procesos de negocio de estos procesos a fin de poder realizar el anlisis pertinente. Como ya fue detallado en el cronograma, los procesos que sern implementados en esta etapa son los siguientes:
Identificacin IP1 IP2 IP3 IP4 IP5 IP6 IP7 IP8 IP9 IP10 Proceso Usuarios y Tipos de Usuarios Alumnos Profesores Planes Cursos Materias Grupos Listados Bsquedas Relacionar Plan /Curso/Materias Descripcin Gestin Usuarios y Tipos de usuarios, crear, modificar, eliminar, establecer privilegios. Gestin de Alumnos, crear, modificar, eliminar, obtener, buscar. Gestin de Profesores, crear, modificar, eliminar, obtener, buscar. Gestin de Planes, crear, modificar, eliminar, obtener, buscar. Gestin de Cursos, crear, modificar, eliminar, obtener, buscar. Gestin de Materias, crear, modificar, eliminar, obtener, buscar. Gestin de Grupos, crear, modificar, eliminar, obtener, buscar. Listar: Usuarios, Alumnos, Planes, Cursos, Materias, Grupos. Buscar: Usuarios, Alumnos, Planes, Cursos, Materias, Grupos. Gestionar la relacin entre los planes, los cursos y las materias pertenecientes a l.

IP1: La gestin de usuarios es vital para nuestro sistema ya que determinarn que operaciones podr realizar cada uno de ellos y a partir de sus privilegios se habilitarn o deshabilitarn las distintas funcionalidades del sistema. IP2: Los Profesores sern los responsables de ingresar informacin especfica de sus alumnos como ser calificaciones, asistencias de otros datos pertinentes. Cabe agregar que solo tendrn permitido ingresar esta informacin y no podrn modificarla quedando a cargo de los adscriptos, dicha tarea. IP3: Los Alumnos son los actores principales del sistema ya que ellos sern los generadores de la informacin que este manejar. De ellos se necesita guardar los datos necesarios para individualizarlos e identificarlos de manera sencilla. Adems se guardarn tambin su locacin e informacin de contacto para poder comunicarse con un familiar en caso de que corresponda. IP4: Los planes, deben contener una informacin descriptiva como adems los datos suficientes para en un futuro relacionarlos con la materia, curso, regla de aprobacin, etc. Por ejemplo; cuando se desee consultar una escolaridad de un alumno el sistema debe tener la capacidad para identificar a que plan de estudios corresponde dicha escolaridad. IP5: Los cursos son los aos de clase que se dictan en el colegio (primero, segundo, tercero, etc.). Adems de guardar informacin descriptiva de los mismos y al igual que los planes, los cursos deben ser individualizarse de manera tal que en el futuro puedan ser relacionados a los distintos datos del sistema. IP6: Las materias, adems de almacenar la informacin descriptiva que la identifique, deben tener la opcin de identificar si las mismas se encuentran Activas para el ao Lectivo. Esta informacin podr en un futuro extraerse de la relacin de la Materia a los Planes. Adems debe tener los datos suficientes como para poder relacionarlas a las reglas de aprobacin, cuando estas sean implementadas.

53

IP7: Los grupos son aquellas clases dictadas dentro del liceo (1 1, matutino). Debe almacenar la informacin necesaria para la individualizacin de los mismos as como tambin ser lo suficientemente coherente con el resto del sistema para el relacionamiento de los dems datos. IP8: Emitir, listados de Usuarios, Alumnos, Planes, Cursos, Materias, Grupos tanto por pantalla como por impresora para poder obtener informacin de todas estas entidades de manera inmediata en caso que un usuario necesitara realizar dicha consulta. IP9: Permitir identificar y obtener Usuarios, Alumnos, Planes, Cursos, Materias a travs de un criterio especfico de bsqueda. IP10: Realizar el relacionamiento de un Plan a los distintos cursos y materias que lo componen como as tambin definir algunos criterios que este contendr como ser el rango de notas y el mnimo para aprobar un curso.

54

2.5.2. Planificacin y Anlisis de riesgos Para el anlisis de riesgos de esta iteracin, seguiremos las plantilla definidas en el anteproyecto y en ellas detallaremos los riesgos actuales partiendo del avance obtenido hasta el momento.

Formulario de Especificacin de Riesgo

Tamao del Producto

ID 1

Si bien se ha recurrido a material didctico y otras referencias, la falta de experiencia de nuestro equipo en la estimacin de tamao de un proyecto podra ser un inconveniente a tener en cuenta a futuro por lo que se deber tener especial atencin en este punto para realizar la planificacin adecuada en tiempo y forma. Cuando hablamos de tamao, nos referimos al tiempo de desarrollo del sistema; lo cual puede derivar en un clculo incorrecto en la fecha de finalizacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 2 1 1 1 2 2 1 1 Anteproyecto 65% Iteracin I 60% Iteracin II Iteracin III

Acciones Preventivas: Utilizar todas las herramientas y material a disposicin (UML, conteo de puntos de funcin, etc.) para realizar la estimacin de tiempos ms acertada posible para nuestra solucin. Revisar peridicamente que el tamao del procuto se mantenga segn lo planificado. Elemento Disparador: Surgen desvos en las fechas estimadas para las distintas etapas del proyecto. Acciones Correctivas: Recalcular los tiempos reviendo el correcto uso de las herramientas y tomando como leccin aprendida la mala estimacin primaria realizada. Evaluacin de Seguimiento: Este riesgo ha sido reducido en su porcentaje de ocurrencia debido a que con el transcurso del tiempo ha sido posible obtener una mejor idea del alcance del proyecto.

55

Formulario de Especificacin de Riesgo

Interaccin con el cliente

ID 2

Se debe tener en cuenta la participacin del cliente en las reuniones como as tambin la claridad y precisin de la informacin brindada. Si cualquiera de estos dos factores no se cumpliera segn lo esperado podra derivar en inconvenientes en el resultado final de proyecto. Otro punto muy importante a tener en cuenta es la resistencia que puedan presentar los usuarios de la aplicacin en los inicios ya que dedicar un esfuerzo extra de los mismos en capacitacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 1 1 1 1 2 2 1 1 Anteproyecto 50% Iteracin I 40% Iteracin II Iteracin III

Acciones Preventivas: Planificar y llevar a cabo reuniones con el cliente para mostrarle el avance de la aplicacin y verificar su conformidad. Involucrar a los usuarios del sistema de manera temprana para que puedan ver la ventaja de su implantacin. Elemento Disparador: El cliente no se involucra y compromete de manera adecuada por lo que se genera incertidumbre en el resultado del producto final. Los usuarios demuestran rechazo o poco inters hacia el sistema. Acciones Correctivas: Exhortar al cliente en un mayor compromiso con el proyecto e involucrarlo desde el inicio y en cada etapa o toma de decisin correspondiente. De la misma manera, exhortar junto a los responsables del colegio, a los usuarios para que adquieran un mayor compromiso y apretura hacia el sistema. Evaluacin de Seguimiento: Este riesgo se redujo debido a que la predisposicin del cliente y la interaccin con el mismo han sido acorde a lo planificado.

56

Formulario de Especificacin de Riesgo

Capacidad del equipo de desarrollo

ID 5

Nuestro equipo se compone por 2 integrantes que terminaron el curso en el ao 2000 por lo que adems del tiempo transcurrido en la prctica estudiantil hasta ahora, se debe mencionar que no se trabaj con esta metodologa durante la carrera. Por lo tanto, deberemos capacitarnos en el uso de la herramienta y sobre todo en la metodologa lo que puede incidir directamente en los tiempos estimados. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 2 2 2 2 2 2 2 2 2 2 Anteproyecto 50% Iteracin I 60% Iteracin II Iteracin III

Acciones Preventivas: Dedicar un tiempo prudencial en la capacitacin y manejo de herramientas y metodologa a utilizar. Elemento Disparador: Inconvenientes en la realizacin de las distintas tareas del proyecto. Acciones Correctivas: Aumentar el tiempo asignado al proyecto, intensificar la capacitacin. Evaluacin de Seguimiento: Como se puede apreciar, este riesgo subi un diez por ciento con respecto a lo supuesto en el anteproyecto debido al desconocimiento en la metodologa y herramientas que fue de mayor grado a lo estimado.

57

Formulario de Especificacin de Riesgo Disponibilidad del equipo de desarrollo

ID 6

El mayor riesgo que se detecta en este punto se corresponde a los compromisos laborales de cada uno de los integrantes que aunque se contemplan en la carga horaria del proyecto puede contener imprevistos a futuro. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 1 1 3 2 3 1 1 3 2 Anteproyecto 30% Iteracin I 30% Iteracin II Iteracin III

Acciones Preventivas: Realizar una planificacin horaria adecuada que nos permita cumplir con todos las tareas del proyecto. Elemento Disparador: Retraso en los tiempos estimados para el cumplimiento de las distintas etapas. Acciones Correctivas: Replanificar, rever tiempos y priorizar las tareas del proyecto. De ser necesario, reducir el alcance del mismo. Evaluacin de Seguimiento: Este riesgo se mantiene constante ya que hasta el momento no hubo alteraciones en la disponibilidad horaria del equipo que puedan incidir directamente en el proyecto.

58

Formulario de Especificacin de Riesgo

Comunicacin a distancia

ID 7

Un gran inconveniente con que se encuentra nuestro equipo en este momento es la distancia fsica existente entre sus integrantes ya que uno se encuentra en la ciudad de Paysand y otro en Montevideo lo que puede derivar en problemas de comunicacin y por ende verse afectada la coordinacin de tareas, la toma de decisiones, etc. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 2 2 2 2 3 2 2 2 2 Anteproyecto 60% Iteracin I 60% Iteracin II Iteracin III

Acciones Preventivas: Asegurarnos la constante comunicacin mediante todos los medios disponibles. Correo electronico, comunicacion via Skype y MSN, comunicacion telefnica, viajes peridicos; en principio un fin de semana al mes, intensificndolos hacia el final del proyecto. Elemento Disparador: Retrasos en las tomas de decisiones y tiempos muertos ocurrentes por la falta de comunicacin. Acciones Correctivas: Ajustar las prioridades, intensificar la comunicacin y realizar viajes en caso de ser necesario. Evaluacin de Seguimiento: La comunicacin se mantuvo dentro de los parmetros estipulados por lo que el riesgo no sufre alteraciones pero tampoco se descarta ya que el mantener esta fluidez en la distancia podra alterarse en cualquier momento.

59

2.5.3. Anlisis [Link]. Requerimientos Como ya fue definido en el anteproyecto, los requerimientos principales surgieron de reuniones formales mantenidas con el cliente y adems en caso de este proyecto, los mismos fueron potenciados basndonos en la informacin publicada en la web correspondiente al Consejo de Educacin Secundaria CES para el Ciclo Basico. Reglamento sobre el Rgimen de Evaluacin y pasaje de grado del Ciclo Bsico de Educacin Secundaria. Reformulacin 2006.

Una vez comenzada esta iteracin y como ya fue mencionado anteriormente se realiz una nueva reunin con el cliente donde se pudieron profundizar las necesidades correspondientes a esta etapa, poniendo foco adems en la posibilidad de encontrar nuevos requerimientos. Esto nos permite realizar un trabajo ptimo y reducir de esta manera el riesgo de insatisfaccin del cliente. Es por esto que durante el transcurso del proyecto y en cada etapa que involucra, los requerimientos globales planteados se afinarn para asegurarnos el buen curso del mismo; siempre respetando el modelo Incremental e Iterativo que fue seleccionado por nuestro equipo. Si bien esta es la primera etapa del proyecto; es justo mencionar que en el futuro, en cada nueva etapa se debern rever los requerimientos ya implementados para poder adecuar los mismos a la nueva iteracin en caso de que correspondiera. Un hecho resaltable es que los requerimientos que componen esta primera iteracin, han sido seleccionados basndonos en la agrupacin de los mismos tomando en cuenta sus caractersticas para de esta manera reducir al mximo el costo de realizacin. Esta decisin si bien fue tomada por los miembros de nuestro equipo, fue planteada al cliente y se obtuvo su aprobacin que fue tomada como punto de partida para el comienzo del proyecto. Los restantes requerimientos son dejados para las futuras iteraciones y se deja abierta la posibilidad del surgimiento de nuevas necesidades como se planteo anteriormente. Nota: Ser responsabilidad del equipo de desarrollo realizar un anlisis de los requerimientos de mayor complejidad para cada iteracin ya que el equipo reconoce que estos implicarn un mayor esfuerzo y desglose. Esto no implica de ninguna manera que los requerimientos seleccionados para cada iteracin no se realicen como se plantearon en las reuniones con el cliente. [Link]. Anlisis de los Casos de Uso En el marco del desarrollo orientado a objetos, es necesario identificar las clases cuyos objetos sern necesarios para realizar un caso de uso y detallar su comportamiento mediante la interaccin de estos objetos (diagramas de interaccin) Esta tarea ser llevada a cabo para cada caso de uso contenido en el desarrollo definido en base a los requerimientos. Cabe destacar que estas actividades no son realizadas de manera secuencial sino que sern realizadas en paralelo, retroalimentndose continuamente entre ellas y con las ya realizadas anteriormente.

Identificacin
Identificacin CU01 CU02 CU03 CU04 CU05 CU06 Descripcin Gestionar Tipos de usuarios Gestionar Usuarios Gestionar Alumnos Gestionar Profesores Gestionar Planes Gestionar Cursos Requerimiento RF06 RF06 RF01 RF02 RF03 RF04

60

CU07 CU08 CU09 CU10 CU11 CU12 CU13 CU14 CU15 CU16 CU17 CU18 CU19 CU20 CU21 CU22 CU23 CU24

Gestionar Materias Gestionar Grupos Listar Usuarios Listar Alumnos Listar Profesores Listar Planes Listar Cursos Listar Materias Listar Grupos Buscar Alumnos Buscar Profesores Buscar Planes Buscar Cursos Buscar Materias Buscar Grupos Relacionar Plan / Cursos / Materias Listar Plan / Cursos / Materias Buscar Plan / Cursos / Materias

RF05 RF07 RF06 RF01 RF02 RF03 RF04 RF05 RF07 RF01 RF02 RF03 RF04 RF05 RF07 RF04 RF04 RF04

61

Identificacin de Clases Asociadas a un Caso de Uso En este punto se identifican los objetos necesarios para el desarrollo de un caso de uso basndonos en las especificaciones del mismo y estudindolos se puede extraer una lista de objetos candidatos a ser clases. En principio puede ocurrir que no se tenga a disposicin la informacin necesaria para identificar todos estos objetos, por lo que obtendremos inicialmente una aproximacin que se afinara durante esta actividad y tambin en el diseo. Se debe tener en cuenta adems, que algunos objetos representan mejor la informacin del sistema si se los identifica como atributos en lugar de clases. Para poder realizar esta diferenciacin se estudia el comportamiento los mismos en el diagrama de interaccin y adems se toman en cuenta una serie de reglas como el suprimir palabras no pertinentes, con significado vago o sinnimos. Una vez que se obtienen cada una de las clases, se incorporan al modelo de clases de la actividad Diseo, donde se definen sus atributos, responsabilidades y relaciones. Los tipos de clases que se identifican en esta tarea podrn tratarse de entidades, interfaces de usuario y control. Las clases entidad representan la informacin manipulada en el caso de uso. En el caso de las interfaces se utilizan para describir la interaccin del sistema con los actores, estas suelen representar abstracciones de ventanas, interfaces de comunicacin, formularios, etc. Por otro lado, las entidades de control se encargan de la coordinacin, secuencia de transacciones y control de los objetos relacionados con un caso de uso.

62

Diagrama de Casos de Uso de la Iteracin I


uc Casos de Uso - Iteracion I(Version II)

Lis Us tar uarios Gestionar Tipos de Usuarios Adminsitrador

Lis Alumnos tar

Gestionar Us uarios Buscar Alumnos

Lis Profes tar ores Gestionar Alumnos

Buscar Profes ores

Ges tionar Profes ores Lis Materias tar

Gestionar Materias

Buscar Materias

Lis Planes tar Ges tionar Planes Buscar Planes Secretaria

Gestionar Cursos

Lis Cursos tar

Buscar Cursos Ges tionar Grupos

Lis Grupos tar

Relacionar Planes -Cursos -Materias

Buscar Grupos

Listar Relaciones PCM

Bus car Relaciones PCM

63

CU01 Gestionar Tipos de Usuario Permitira al administrador ingresar, modificar y eliminar tipos de usuarios, estos establecen los diferentes privilegios de acceso al sistema. CU02 Gestionar Usuario Permitira al administrador ingresar, modificar y eliminar usuarios que interacten con el sistema, cada usuario deber tener un Tipo de Usuario asignado para de esta manera establecer privilegios de acceso. CU03 Gestionar Alumnos Permite a la secretaria ingresar, modificar o eliminar un alumno en el sistema. CU04 Gestionar Profesores Permite a la secretaria ingresar, modificar o eliminar un profesor en el sistema. CU05 Gestionar Planes Permite a la secretaria ingresar, modificar o eliminar un plan de estudios en el sistema. CU06 Gestionar Cursos Permite a la secretaria ingresar, modificar o eliminar cursos en el sistema. CU07 Gestionar Materias Permite a la secretaria ingresar, modificar o eliminar materias en el sistema. CU08 Gestionar Grupos Permite a la secretaria ingresar, modificar o eliminar Grupos en el sistema. CU09 Listar Usuarios Permite al administrador realizar listados de usuarios. CU10 Listar Alumnos Permite al usuario realizar listados de los alumnos ingresados al sistema. CU11 Listar Profesores Permite al usuario realizar listados de los profesores ingresados al sistema. CU12 Listar Planes Permite al usuario realizar listados de los planes ingresados al sistema. CU13 Listar Cursos Permite al usuario realizar listados de los cursos ingresados al sistema. CU14 Listar Materias Permite al usuario realizar listados de las materias ingresadas al sistema. CU15 Listar Grupos Permite al usuario realizar listados de los grupos ingresados al sistema. CU16 Buscar Alumnos Permite realizar una bsqueda de un alumno dado uno o ms datos totales o parciales del mismo. CU17 Buscar Profesores Permite realizar una bsqueda de un profesor dado uno o ms datos totales o parciales del mismo. CU18 Buscar Planes Permite realizar una bsqueda de un plan dado uno o ms datos totales o parciales del mismo. 64

CU19 Buscar Cursos Permite realizar una bsqueda de un curso dado uno o ms datos totales o parciales del mismo. CU20 Buscar Materias Permite realizar una bsqueda de una materia dado uno o ms datos totales o parciales del mismo. CU21 Buscar Grupos Permite realizar una bsqueda de un grupo dado uno o ms datos totales o parciales del mismo. CU22 Relacionar Plan/Cursos/Materias Permite realizar la asociacin de un plan con sus correspondientes cursos y materias. CU23 Listar Relaciones Plan/Cursos/Materias Permite al usuario realizar listados de las relaciones PCM ingresadas al sistema. CU24 Buscar Relaciones Plan/Cursos/Materias Permite realizar una bsqueda de una relacin PCM dado uno o ms datos totales o parciales del mismo. [Link]. Diagramas de Secuencia Descripcin de la Interaccin de Objetos En esta tarea se estudia y describe la cooperacin entre los objetos utilizados para la realizacin de los casos de uso detallados en el punto anterior. Dicha cooperacin se representa a travs de diagramas de interaccin que se componen por instancias de los actores involucrados, objetos y la secuencia de mensajes que intercambian entre ellos. Es recomendable establecer criterios que determinen qu tipo de objetos y mensajes incluirn estos diagramas, objetos y llamadas a bases de datos, objetos de interfaz de usuario, de control, etc. Los mencionados diagramas podrn ser tanto de secuencia como de colaboracin (en caso de que corresponda) y su uso depender de si se centra en la secuencia cronolgica o en cmo se realiza la comunicacin entre los objetos. En los casos en donde se especifique ms de un escenario posible para un caso de uso podra manejarse la posibilidad de representar cada uno de ellos en un diagrama de interaccin; siendo tambin recomendable en el caso anterior, completar algunos de los diagramas con una descripcin textual.
Identificacin Gestionar Tipos de Usuario Crear Tipos de Usuario Modificar Tipos de Usuario Eliminar Tipos de Usuario Gestionar Usuarios Crear Usuario Modificar Usuario Eliminar Usuario Gestionar Alumnos Crear Alumno Modificar Alumno Eliminar Alumno Gestionar Profesores Crear Profesor Modificar Profesor Eliminar Profesor Gestionar Planes Crear Planes Modificar Planes Eliminar Planes Gestionar Cursos CU05 CU05 CU05 CU04 CU04 CU04 CU03 CU03 CU03 CU02 CU02 CU02 CU01 CU01 CU01 Caso de uso asociado

65

Crear Cursos Modificar Cursos Eliminar Cursos Gestionar Materias Crear Materias Modificar Materias Eliminar Materias Gestionar Grupos Crear Grupos Modificar Grupos Eliminar Grupos Listar Usuarios Listar Usuarios Listar Alumnos Listar Alumnos Listar Profesores Listar Profesores Listar Planes Listar Planes Listar Cursos Listar Cursos Listar Materias Listar Materias Listar Grupos Listar Grupos Buscar Alumnos Buscar Alumnos Buscar Profesores Buscar Profesores Buscar Planes Buscar Planes Buscar Cursos Buscar Cursos Buscar Materias Buscar Materias Buscar Grupos Buscar Grupos Relacionar Plan / Cursos / Materias Relacionar Plan / Cursos / Materias Listar Relaciones Plan / Cursos / Materias Listar Relaciones Plan / Cursos / Materias Buscar Relaciones Plan / Cursos / Materias Buscar Relaciones Plan / Cursos / Materias

CU06 CU06 CU06 CU07 CU07 CU07 CU08 CU08 CU08 CU09 CU10 CU11 CU12 CU13 CU14 CU15 CU16 CU17 CU18 CU19 CU20 CU21 CU22 CU23 CU24

66

Los diagramas de secuencia se generalizan por tipo. Esto quiere decir que no se hace un diagrama particular para cada caso sino que se realiza uno por cada categora: Crear elemento. Modificar elemento. Eliminar elemento. Buscar Elemento. Listar Elementos. Relacionar Plan / Cursos / Materias.
sd Crear elemento Sistema 1. El usuario ingresa los datos el nuevo elemento. 2. El sistema registra los datos del nuevo elemento. Usuario Crear Elemento()

sd Modificar eleme... Sistema 1. El usuario selecciona el elemento a modificar 2. El usuario realiza las modificaciones 3. El sistema registra los cambios Usuario Modificar Elemento()

sd Eliminar Elemento Sistema 1. El usuario selecciona el elemento a eliminar. 2. El usuario confirma que desea eliminar el elemento. 3. El sistema elimina el elemento. Usuario

Eliminar Elemento()

sd Buscar elemento Sistema 1. El usuario selecciona el critero de busqueda del elemento. 2. El usuario solicita al sistema buscar el elemento. 3. El sistema retorna el o los elementos que coincidan con el criterio de busqueda. Usuario

Buscar Elemento()

67

sd Listar elementos Sistema 1. El usuario selecciona el critero del listado de elementos. 2. El usuario solicita al sistema emitir el listado. 3. El sistema realiza el listado correpondiente. Usuario Listar Elementos()

sd Relacionar Plan/Curso/Materi...

1. El usuario selecciona el plan, el curso y las materias a relacionar. 2. El usuario le indica al sistema realizar la relacin. 3. El sistema realiza la relacin soliciada.

Sistema Usuario RelacionarPCM()

68

[Link]. Anlisis de Clases Basndonos en las clases identificadas en el Anlisis de Casos de Uso, se elaborar un modelo de clases para cada subsistema. A medida que avancemos en el anlisis, el modelo se ir completando con las clases que aparezcan tanto para estudiar los casos de uso y diagramas de secuencia como tambin la interface de usuario necesaria para el Sistema de Informacin Esta tarea tendr como objetivo el detallar cada una de las clases surgidas, identificando las responsabilidades asociadas a las mismas, sus atributos y las relaciones existentes entre ellas. El proceso de anlisis cuenta con los siguientes pasos:
Paso Nombre de Clase Atributos lgicos Asociaciones Estticas de Instancias Herencia Asociaciones Dinmicas de Instancias Mtodos Descripcin Se identifican las clases participantes y se define un nombre que identifica a cada una. Se identifican los atributos que componen a cada clase en particular. No se presentan aquellos atributos que sern necesarios para implementar una asociacin. Se identifican las asociaciones estticas, es decir, aquellas que representan composicin. Se identifica la posibilidad de herencia entre clases basndose en su nivel de cohesin en cuanto al negocio y a los atributos de las clases identificadas. Se identifican asociaciones de objetos basadas en cmo estos se relacionan y actan para llevar a cabo responsabilidades. Se identifican las operaciones de los objetos.

Este proceso se somete a un refinamiento iterativo hasta alcanzar un cierto nivel de conformidad. En los siguientes apartados se presenta el producto final obtenido de dicho refinamiento.
Identificacin Responsabilidades y Atributos Asociaciones y Agregaciones Generalizacin Actividad en UML Nombre de Clase, atributos lgicos, operaciones Asociaciones estticas de instancia, asociaciones dinmicas de instancia. Herencia

Responsabilidades y Atributos En este punto se identifican las responsabilidades y atributos principales de una clase. Responsabilidades: Definen la funcionalidad de una clase y se basan en el estudio de los papeles desempeados por sus objetos en los distintos casos de uso. Partiendo de estas responsabilidades es posible comenzar a detectar las operaciones que pertenecern a esa clase en particular. Estas operaciones debern ser relevantes, simples y adems participar en la descripcin de la responsabilidad. Atributos: Se encargan de especificar las propiedades que tiene una clase y son identificados por estar implicados en sus responsabilidades. Estos atributos deberan ser conceptuales y conocidos por el dominio. Basndonos en lo explicado anteriormente se realiza una especificacin para cada clase. Esta especificacin debe incluir la lista de sus operaciones y las clases que colaboran para cubrir estas operaciones. Adems debe contar con una especificacin de las responsabilidades, los atributos y las operaciones que componen esa clase. En el caso de las clases las que su comportamiento depender del estado en que se encuentren, se puede realizar tambin un diagrama de transicin de estados.

69

Diagrama Conceptual del Dominio del Sistema para la Iteracin I


class Dominio

Plan 1..* 1..*

Curso

Usuari o

1..*

PlanCurso 1..* 1 1.. *

Materia

1 TipoUsuario

1..*

1.. * Grupo 1..* 1..*

1..* Profesor

1.. * Objeto Alumno

Para obtener este diagrama nos basamos en los casos de uso realizados en la etapa de anlisis y en los respectivos diagramas de secuencia. De los casos de uso obtuvimos una aproximacin de las interfaces de usuario y en base a los diagramas de secuencia pudimos identificar algunas de las clases del dominio que se representan en la figura anterior. De esta manera es como nuestro equipo ha entendido como es el funcionamiento de la operativa en el anlisis de la presente iteracin de los requerimientos planteados por el cliente.
Nombre de Clase Tipo de Usuario Usuario Posibles Atributos o Candidatos TipoUsuario, Descripcion, Privilegios. Usuario, TipoUsuario, Estado, Contrasea, Documento, Nombres, Apellidos, Direccin, Telfono, Celular , Email, FechaAlta Numero, Nombres, ApellidoPaterno, ApellidoMaterno, Documento, TipoDocumento, FechaNacimiento, Sexo, Direccin, Barrio, Localidad, Telfono, Email, Tutor, NombreTutor, RelacionTutor, EnfermedadesConocidas, MedicamentosUtilizados, TratamientosMedicos, OtrasObservaciones, FechaAlta Identificador, Nombres, Apellidos, Documento, TipoDocumento, Direccin, Localidad, Telfono, Celular, Email, FechaAlta Identificador, Nombre, HorasSemanales, SesionesSemanales , FechaAlta Identificador, Descripcin , CursoPrevio, FechaAlta Identificador, Descripcin, Plan, Curso, Aniolectivo, Turno, MimimoAlumnos, MaximoAlumnos, FechaAlta Identificador, Nombre, Descripcion, FechaDesde, FechaHasta, NotaMinima, NotaMaxima, NotaMinimaParaAprobar IdentificadorPlan, IdentificadorCurso, IdentificadoresMaterias, InasistenciasPermitidas,MaxMateriasInsuficientesPromocionParcial, MaxMateriasInsuficientesFalloSuspenso

Alumno

Profesores Materia Curso Grupo Plan Relacin Plan Cursos Materias

Tipo de Usuario: Especifica que funcionalidad tendr a disponibilidad un usuario. Usuario: Tendr los datos personales del usuario y un tipo que definir que tareas puede realizar el mismo.

70

Alumno: Se refiere a todos los estudiantes que se encuentran inscriptos en el colegio, tanto en la actualidad como en el archivo histrico. Profesor: Son los responsables de dictar los cursos en el colegio y al igual que en el caso de los alumnos se mantienen los datos de los profesores actuales como tambin de los pasados. Materia: Son todas las materias que se dictan en el colegio. Plan: Indica cmo se compone la infraestructura interna del colegio en un determinado punto en el tiempo. Curso. Se refiere a los aos que se dictan en el colegio, por Ej.: primero, segundo, tercero. Grupo: Son los grupos en que se dividen los Alumnos de un determinado Curso. Relacin Plan Cursos Materias: Se refiere a la composicin de un determinado plan con los cursos y materias que este contendr.

Una vez obtenido el concepto del domino del problema representado en UML en la figura anterior, se comienza a modelar el sistema a su forma final en esta etapa de anlisis.

71

2.5.4. Diseo Una vez concluido el anlisis de la presente iteracin, ya con un modelo conceptual del dominio del problema que fue resuelto a travs de los casos de uso, los diagramas de secuencia y el diagrama conceptual, se comienza el diseo de la iteracin descomponiendo estos diagramas de secuencia. De stos nuevos diagramas se obtendrn los mensajes posibles entre los objetos. Es en esta etapa donde se descubrirn nuevos mensajes entre objetos, nuevas clases nuevas atributos relacionados a ellas. [Link]. Casos de Uso de Diseo Brindan una descripcin ms detallada de lo que debe hacer el sistema, en este punto se desglosa lo ya hecho en la etapa de anlisis. CU01: Gestionar Tipos de Usuario Nombre: Gestionar Tipos de Usuario. Resumen: Permite ingresar, modificar y eliminar los tipos de usuario que podrn interactuar el sistema. Actor: Administrador (SuperUsuario). Precondiciones: El Administrador debe estar logueado en el sistema. Flujo principal: 1. El Administrador ingresa los datos del Tipo de Usuario. 2. El sistema verifica la existencia del Tipo de Usuario. 3. El Administrador ingresa los privilegios del Tipo de Usuario. 4. El sistema verifica los datos ingresados y guarda los datos del Tipo de Usuario. 5. El caso de uso finaliza. Flujo alternativo: 2. a. El Tipo de Usuario existe y el Administrador desea modificarlo. a. El sistema despliega los datos del Tipo de Usuario a Modificar. b. El Administrador realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Tipo de Usuario existe y el Administrador desea eliminarlo. a. El sistema despliega los datos del Tipo de Usuario a Eliminar b. El Administrador confirma que desea eliminar el Tipo de Usuario. c. El caso de uso finaliza. CU02: Interfaz de usuario asociada

72

CU02: Gestionar Usuarios Nombre: Gestionar Usuarios. Resumen: Permite ingresar, modificar y eliminar usuarios que podrn utilizar el sistema. Actor: Administrador (SuperUsuario). Precondiciones: El Administrador debe estar logueado en el sistema. Flujo principal: 1. El Administrador ingresa los datos del Usuario. 2. El sistema verifica la existencia del Usuario. 3. El sistema verifica los datos ingresados y guarda los datos del Usuario. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Usuario existe y el Administrador desea modificarlo. a. El sistema despliega los datos Usuario a Modificar. b. El Administrador realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Usuario existe y el Administrador desea eliminarlo. a. El sistema despliega los datos del a Eliminar b. El Administrador confirma que desea eliminar el Usuario. c. El caso de uso finaliza. CU02: Interfaz de usuario asociada

CU03: Gestionar Alumnos Nombre: Gestionar Alumnos. Resumen: Permite ingresar, modificar y eliminar un alumno en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos del Alumno. 2. El sistema verifica la existencia del Alumno. 3. El sistema verifica los datos ingresados y guarda los datos del Alumno. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Alumno existe y la Secretaria desea modificarlo. a. El sistema despliega los datos del Alumno a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Alumno existe y la Secretaria desea eliminarlo. a. El sistema despliega los datos del Alumno a Eliminar b. La Secretaria confirma que desea eliminar el Alumno. c. El caso de uso finaliza. CU03: Interfaz de usuario asociada 73

CU04: Gestionar Profesores Nombre: Gestionar Profesores. Resumen: Permite ingresar, modificar y eliminar un profesor en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos del Profesor. 2. El sistema verifica la existencia del Profesor. 3. El sistema verifica los datos ingresados y guarda los datos del Profesor. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Profesor existe y la Secretaria desea modificarlo. a. El sistema despliega los datos del Profesor a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Profesor existe y la Secretaria desea eliminarlo. a. El sistema despliega los datos del Profesor a Eliminar b. La Secretaria confirma que desea eliminar el Profesor. c. El caso de uso finaliza.

74

CU04: Interfaz de usuario asociada

CU05: Gestionar Planes. Nombre: Gestionar Planes. Resumen: Permite ingresar, modificar y eliminar un plan en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos del Plan. 2. El sistema verifica la existencia del Plan. 3. El sistema verifica los datos ingresados y guarda los datos del Plan. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Plan ya existe y la Secretaria desea modificarlo. a. El sistema despliega los datos del Plan a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Plan ya existe y la Secretaria desea eliminarlo. a. El sistema despliega los datos del Plan a Eliminar b. La Secretaria confirma que desea eliminar el Plan. c. El caso de uso finaliza. CU05: Interfaz de usuario asociada

75

CU06: Gestionar Cursos Nombre: Gestionar Cursos. Resumen: Permite ingresar, modificar y eliminar un curso en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos del Curso. 2. El sistema verifica la existencia del Curso. 3. El sistema verifica los datos ingresados y guarda los datos del Curso. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Curso ya existe y la Secretaria desea modificarlo. a. El sistema despliega los datos del Curso a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Curso ya existe y la Secretaria desea eliminarlo. a. El sistema despliega los datos del Curso a Eliminar b. La Secretaria confirma que desea eliminar el Curso. c. El caso de uso finaliza. CU06: Interfaz de usuario asociada

CU07: Gestionar Grupos Nombre: Gestionar Grupos. Resumen: Permite ingresar, modificar y eliminar un grupo en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos del Grupo. 2. El sistema verifica la existencia del Grupo. 3. El sistema verifica los datos ingresados y guarda los datos del Grupo. 4. El caso de uso finaliza. Flujo alternativo: 2. a. El Grupo ya existe y la Secretaria desea modificarlo. a. El sistema despliega los datos del Grupo a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. El Grupo ya existe y la Secretaria desea eliminarlo. a. El sistema despliega los datos del Grupo a Eliminar b. La Secretaria confirma que desea eliminar el Grupo. c. El caso de uso finaliza.

76

CU07: Interfaz de usuario asociada

CU08: Gestionar Materias Nombre: Gestionar Materias. Resumen: Permite ingresar, modificar y eliminar una materia en el sistema. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 1. La Secretaria ingresa los datos de la Materia. 2. El sistema verifica la existencia de la Materia. 3. El sistema verifica los datos ingresados y guarda los datos de la Materia. 4. El caso de uso finaliza. Flujo alternativo: 2. a. La Materia ya existe y la Secretaria desea modificarla. a. El sistema despliega los datos de la Materia a Modificar. b. La secretaria realiza las modificaciones. c. El caso de uso contina en el paso 3. 2. b. La Materia ya existe y la Secretaria desea eliminarla. a. El sistema despliega los datos de la Materia a Eliminar b. La Secretaria confirma que desea eliminar la Materia. c. El caso de uso finaliza. CU08: Interfaz de usuario asociada

77

CU09: Listar Usuarios Nombre: Listar Usuarios. Resumen: Permite realizar un listado general de usuarios pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Precondiciones: El SuperUsuario debe estar logueado en el sistema. Debe existir al menos un usuario a listar. Flujo principal: 1. El SuperUsuario selecciona el criterio del listado de usuarios. 2. El SuperUsuario solicita al sistema realizar el listado de usuarios. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. a. El caso de uso finaliza. CU09: Interfaz de usuario asociada

CU10: Listar Alumnos Nombre: Listar Alumnos. Resumen: Permite realizar un listado general de alumnos pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos un alumno a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de alumnos. 2. El SuperUsuario solicita al sistema realizar el listado de alumnos. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza.

78

CU10: Interfaz de usuario asociada

CU11: Listar Profesores Nombre: Listar Profesores. Resumen: Permite realizar un listado general de profesores pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos un profesor a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de profesores. 2. El usuario solicita al sistema realizar el listado de profesores. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza. CU10: Interfaz de usuario asociada

79

CU12: Listar Planes Nombre: Listar Planes. Resumen: Permite realizar un listado general de planes pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos un plan a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de planes. 2. El usuario solicita al sistema realizar el listado de plan. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza. CU12: Interfaz de usuario asociada

CU13: Listar Cursos Nombre: Listar Cursos. Resumen: Permite realizar un listado general de cursos pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos un curso a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de cursos. 2. El usuario solicita al sistema realizar el listado de cursos. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza.

80

CU13 Interfaz de usuario asociada

CU14: Listar Materias Nombre: Listar Materias. Resumen: Permite realizar un listado general de materias pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos una materia a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de materias. 2. El usuario solicita al sistema realizar el listado de materias. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza. CU14: Interfaz de usuario asociada

81

CU15: Listar Grupos Nombre: Listar Grupos. Resumen: Permite realizar un listado general de grupos pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos un grupo a listar. Flujo principal: 1. El usuario selecciona el criterio del listado de grupos. 2. El usuario solicita al sistema realizar el listado de grupos. 3. El sistema realiza el listado correspondiente. 4. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el listado. b. El caso de uso finaliza. CU15: Interfaz de usuario asociada

CU16: Buscar Alumnos. Nombre: Buscar Alumnos. Resumen: Permite realizar bsquedas de alumnos a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal:

1- El usuario ingresa los datos del alumno para realizar la bsqueda.


2- El usuario solicita al sistema realizar la bsqueda del mismo. 3- Si existe, el sistema devuelve l o los alumnos que correspondan al criterio. 4- El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza.

82

CU16: Interfaz de usuario asociada

CU17: Buscar Profesores. Nombre: Buscar Profesores. Resumen: Permite realizar bsquedas de profesores a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa los datos del profesor para realizar la bsqueda. 2. El usuario solicita al sistema realizar la bsqueda del mismo. 3. Si existe, el sistema devuelve l o los profesores que correspondan al criterio. 4. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza. CU17: Interfaz de usuario asociada

CU18: Buscar Planes. Nombre: Buscar Planes. Resumen: Permite realizar bsquedas de planes a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa los datos del plan a buscar. 2. El usuario solicita al sistema realizar la bsqueda del mismo. 3. Si existe, el sistema devuelve l o los planes que correspondan al criterio. 4. El caso de uso finaliza. Flujo alternativo: 83

1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza. CU18: Interfaz de usuario asociada

CU19: Buscar Cursos. Nombre: Buscar Cursos. Resumen: Permite realizar bsquedas de cursos a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa los datos del curso a buscar. 2. El usuario solicita al sistema realizar la bsqueda del mismo. 3. Si existe, el sistema devuelve l o los cursos que correspondan al criterio. 4. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza. CU19: Interfaz de usuario asociada

84

CU20: Buscar Materias. Nombre: Buscar Materias. Resumen: Permite realizar bsquedas de materias a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa los datos de la materia a buscar. 2. El usuario solicita al sistema realizar la bsqueda del mismo. 3. Si existe, el sistema devuelve la o las materias que correspondan al criterio. 4. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza. CU20: Interfaz de usuario asociada

CU21: Buscar Grupos. Nombre: Buscar Grupos. Resumen: Permite realizar bsquedas de grupos a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa los datos del grupo a buscar. 2. El usuario solicita al sistema realizar la bsqueda del mismo. 3. Si existe, el sistema devuelve l o los grupos que correspondan al criterio. 4. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. a. El sistema despliega el mensaje de que no es posible realizar la bsqueda. b. El caso de uso finaliza.

85

CU21: Interfaz de usuario asociada

CU22: Relacionar Plan, Grupos, Materias. Nombre: Relacionar Plan, Grupos, Materias. Resumen: Permite ingresar, modificar y eliminar una relacin entre un determinado Plan y sus respectivos Cursos y Materias. Actor: Secretaria. Precondiciones: La secretaria debe estar logueada en el sistema. Flujo principal: 5. La Secretaria ingresa los datos de la relacin. 6. El sistema verifica la existencia de la relacin. 7. El sistema verifica los datos ingresados y guarda los datos de la relacin. 8. El caso de uso finaliza. Flujo alternativo: 2. a. La Relacin ya existe y la Secretaria desea modificarla. d. El sistema despliega los datos de la relacin a Modificar. e. La secretaria realiza las modificaciones. f. El caso de uso contina en el paso 3. 2. b. La Relacin ya existe y la Secretaria desea eliminarla. d. El sistema despliega los datos de la relacin a Eliminar e. La Secretaria confirma que desea eliminar la relacin. f. El caso de uso finaliza. g. CU022: Interfaz de usuario asociada

86

CU23: Listar Relaciones Plan Grupo Materias Nombre: Listar Relaciones Plan Grupo Materias. Resumen: Permite realizar un listado general de relaciones de planes, grupos, materias pudiendo definir un criterio especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos una relacin a listar. Flujo principal: 5. El usuario selecciona el criterio del listado de las relaciones. 6. El usuario solicita al sistema realizar el listado de las relaciones. 7. El sistema realiza el listado correspondiente. 8. El caso de uso Finaliza Flujo alternativo: 1. a. Si las condiciones de listados no son correctas. c. El sistema despliega el mensaje de que no es posible realizar el listado. d. El caso de uso finaliza. CU23: Interfaz de usuario asociada

CU24: Buscar Relaciones Plan Grupo Materias. Nombre: Buscar Relaciones Plan Grupo Materias. Resumen: Permite realizar bsquedas de relaciones de planes grupos y materias a travs de un criterio de bsqueda. Actor: Usuario con privilegios para realizar esta operacin Precondiciones: El usuario debe estar logueado en el sistema. Flujo principal: 5. El usuario ingresa los datos de la relacin a buscar. 6. El usuario solicita al sistema realizar la bsqueda de la misma. 7. Si existe, el sistema devuelve la o las relaciones que correspondan al criterio. 8. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones de bsqueda no son correctas. c. El sistema despliega el mensaje de que no es posible realizar la bsqueda. d. El caso de uso finaliza.

87

CU24: Interfaz de usuario asociada

[Link]. Diagramas de secuencia Para recordar a que caso de uso y diagrama de secuencia del anlisis estn asociados se presenta la siguiente tabla:
Identificacin Anlisis Gestionar Tipos de Usuarios Caso de uso asociado CU01 CU01 CU01 CU02 CU02 CU02 CU03 CU03 CU03 CU04 CU04 CU04 CU05 CU05 CU05 CU06 CU06 CU06 CU07 CU07 CU07 CU08 CU08 CU08 CU09 Identificacin Diseo DID01 DID02 DID03 DID04 DID05 DID06 DID07 DID08 DID09 DID10 DID11 DID12 DID13 DID14 DID15 DID16 DID17 DID18 DID19 DID20 DID21 DID22 DID23 DID24 DID25

Eliminar Tipo de Usuario Gestionar Usuarios

Agregar Tipo de Usuario Modificar Tipo de Usuario

Agregar Usuario Modificar Usuario

Eliminar Usuario Gestionar Alumnos Agregar Alumno Modificar Alumno

Eliminar Alumno Gestionar Profesores Agregar Profesor Modificar Profesor

Eliminar Profesor Gestionar Planes Agregar Plan Modificar Plan

Eliminar Plan Gestionar Cursos Agregar Curso Modificar Curso

Eliminar Curso Gestionar Materias Agregar Materia Modificar Materia

Eliminar Materia Gestionar Grupos Agregar Grupo Modificar Grupo

Eliminar Grupo Listar Usuarios Listar Usuarios

88

Listar Alumnos

- Listar Alumnos Listar Profesores - Listar Profesores Listar Planes - Listar Planes Listar Cursos - Listar Cursos Listar Materias - Listar Materias Listar Grupos - Listar Grupos Buscar Alumnos - Buscar Alumno Buscar Profesores - Buscar Profesor Buscar Planes - Buscar Plan Buscar Cursos - Buscar Curso Buscar Materias - Buscar Materia Buscar Grupos - Buscar Grupo Relacionar Plan Cursos Materias Agregar Relacin PCM Modificar Relacin PCM

CU10 CU11 CU12 CU13 CU14 CU15 CU16 CU17 CU18 CU19 CU20 CU21 CU22 CU22 CU22 CU23 CU24

DID26 DID27 DID28 DID29 DID30 DID31 DID32 DID33 DID34 DID35 DID36 DID37 DID38 DID39 DID40 DID41 DID42

Eliminar Relacin PCM Listar Relacin Plan Cursos Materias

- Listar Relacin PCM Buscar Relacin Plan Cursos Materias Buscar Relacin PCM

CU01: Gestionar Tipos de Usuarios DID01: Agregar Tipo de Usuario

89

sd Agregar Tipo de Usuario Secretaria Presentacion FromConfigurarcionTipoUsuario Aplicacion ManejadorTipoUsuarios Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :TipoUsuario Validar(TipoUsuario) :bool Guardar(TipoUsuario) :bool

Validar(TipoUsuario) :bool Guardar(TipoUsuario) :bool Nuevo(TipoUsuario) : TipoUsuarioPersitente

Insertar(TipoUsuarioPersistente) :int

90

CU01: Gestionar Tipos de Usuarios DID02: Modificar Tipo de Usuario


s d M odific a r Tipo de us ua rio S e cre ta ri a P re se n ta ci o n Fro m Co n fig u ra ci o n T i p o Usu a rio A p l ica ci o n M a n e ja d o rT i p o Usu a rio P e rsiste n cia P e rsi ste n ci a S IINCO

Se le ccio n a rT i p o Usu a ri o() A rm a rO b je to () :T ipo Usu a rio

O b te n e r(T ip o Usu a ri o ) :b o ol O b te n e r(T ip o Usu a rio ) :b o ol

S e le cci o n arO b je to () :Ti p o Usu a rio Re to rn a rO b je to (T i p o Usu a ri o) Re to rn a r(T i p o Usu a rio ) Re to rn a r(T ip o Usu a ri o ) M o d i fi ca rDa to s() G u a rd a r( ) V a l id ar(T ip o Usu a rio) :b o ol G u a rd a r(T i p o Usu a ri o ) :b o ol V a l id ar(T ip o Usu a rio) :b o ol G u a rd a r(T i p o Usu a rio ) :b o ol Nu e vo (T i p o Usu a ri o ) : T i p o Usu a ri o P e rsiste n te

M o d ifica r(T ip o Usu ario P e rsi ste n te ) :Int

91

CU01: Gestionar Tipos de Usuarios DID03: Eliminar Tipo de Usuario


sd Eliminar Tipo de Usuario Secretaria Presentacion FromConfiguracionTipoUsuario Aplicacion ManejadorTipoUsuario Persistencia PersistenciaSIINCO

SeleccionarTipoUsuario() ArmarObjeto() :TipoUsuario

Obtener(T ipoUsuario) :bool Obtener(TipoUsuario) :bool

SeleccionarObjeto() :TipoUsuario RetornarObjeto(TipoUsuario) Retornar(TipoUsuario) Retornar(TipoUsuario) Eliminar() Eliminar() :bool Eliminar(TipoUsuario) :bool Nuevo(T ipoUsuario) : TipoUsuarioPersistente

Eliminar(TipoUsuarioPersistente) :Int

92

CU02: Gestionar Usuarios DID04: Agregar Usuario


sd Agregar Usuario Secretaria Presentaci on FromConfigurarcionUsuario Aplicacion ManejadorUsuario Persistencia Persi stenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Usuario Val idar(Usuari o) :bool Guardar(Usuario) :bool

Val idar(Usuario) :bool Guardar(Usuario) :bool Nuevo(Usuari o) : UsuarioPersitent e

Insertar(UsuarioPersi stente) :i nt

93

CU02: Gestionar Usuarios DID05: Modificar Usuario


sd M odificar Usua... Secretaria Presentacion From ConfiguracionUsuario Aplicacion M anejadorUsuario Persistencia PersistenciaSIINCO

SeleccionarUsuario() Arm arObjeto() :Usuario

Obtener(Usuario) :bool Obtener(Usuario) :bool

SeleccionarObjeto() :Usuario RetornarObjeto(Usuario) Retornar(Usuario) Retornar(Usuario) ModificarDatos() Guardar() Validar(Usuario) :bool Guardar(Usuario) :bool Validar(Usuario) :bool Guardar(Usuario) :bool Nuevo(Usuario) : UsuarioPersistent e

M odificar(UsuarioPersistente) :Int

94

CU02: Gestionar Usuarios DID06: Eliminar Usuario


sd Eliminar Usuario Secretaria Presentacion FromConfiguracionUsuario Aplicacion ManejadorUsuario Persistencia PersistenciaSIINCO

SeleccionarUsuario() ArmarObjeto() :Usuario

Obtener(Usuario) :bool Obtener(Usuario) :bool

SeleccionarObjeto() :Usuario RetornarObjeto(Usuario) Retornar(Usuario) Retornar(Usuario) Eliminar() Eliminar() :bool Eliminar(Usuario) :bool Nuevo(Usuario) : UsuarioPersistent e

Eliminar(UsuarioPersistente) :Int

CU03: Gestionar Alumnos DID07: Crear Alumno


sd Agregar Alumno Secretaria Presentacion FromGestionarAlumno Aplicacion ManejadorAlumnos Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Alumno Validar(Alumno) :bool Guardar(Alumno) :bool

Validar(Alumno) :bool

Guardar(Alumno) :bool

Nuevo(Alumno) :AlumnoPersitente Insertar(AlumnoPersistente) :int

95

CU03: Gestionar Alumnos DID08: Modificar Alumno


sd M odificar Alum... Secretaria Presentacion FromGestionarAlum no Aplicacion ManejadorAlum nos Persistencia PersistenciaSIINCO

SeleccionarAlum no() Arm arObjeto() :Alum no

ObtenerAlumno(Alumno) :bool ObtenerAlumno(Alumno) :bool

SeleccionarObjeto() :Alum no RetornarObjeto(Alumno) Retornar(Alum no) Retornar(Alum no) M odificarDatos() Guardar() Validar(Alum no) :bool Guardar(Alum no) :bool Validar(Alum no) :bool Guardar(Alum no) :bool Nuevo(Alum no) :Alum noPersistente M odificar(Alum noPersistente) :Int

96

CU03: Gestionar Alumnos DID09: Eliminar Alumno


sd Eliminar Alumno Secretaria Presentacion FromGestionarAlum no Aplicacion ManejadorAlumnos Persistencia PersistenciaSIINCO

SeleccionarAlum no() ArmarObjeto() :Alumno

ObtenerAlumno(Alumno) :bool ObtenerAlumno(Alumno) :bool

SeleccionarObjeto() :Alum no RetornarObjeto(Alumno) Retornar(Alumno) Retornar(Alumno) Eliminar() Eliminar() :bool Eliminar(Alumno) :bool

Nuevo(Alumno) :AlumnoPersistente Eliminar(Alum noPersistente) :Int

CU04: Gestionar Profesores DID10: Agregar Profesor


sd Agregar Profesor Secretaria Presentacion FromGestionarProfesor Aplicacion ManejadorProfesores Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Profesor Val idar(Profesor) :bool Guardar(Profesor) :bool

Validar(Profesor) :bool

Guardar(Profesor) :bool

Nuevo(Profesor) :ProfesorPersitent e Insertar(ProfesorPersistente) :int

CU04: Gestionar Profesores DID11: Modificar Profesor 97

sd M odificar Profes... Secretaria Presentaci on From Gesti onarProfesores Apli caci on M anejadorProfesores Persi stenci a Persi stenci aSIINCO

Selecci onarProfesor() Arm arObjeto() :Profesor

ObtenerProfesor(Profesor) :bool ObtenerProfesor(Profesor) :bool

SeleccionarObj eto() :Profesor RetornarObjeto(Profesor) Retornar(Profesor) Retornar(Profesor) M odificarDatos() Guardar() Val i dar(Profesor) :bool Guardar(Profesor) :bool Val idar(Profesor) :bool Guardar(Profesor) :bool Nuevo(Prof esor) :ProfesorPersistent e M odi ficar(ProfesorPersistente) :Int

98

CU04: Gestionar Profesores DID12: Eliminar Profesor


sd Eliminar Profesor Secretaria Presentacion FromGestionarProfesor Aplicaci on ManejadorProfesores Persistencia PersistenciaSIINCO

Sel eccionarProfesor()

ArmarObjeto() :Profesor

ObtenerProfesor(Profesor) :bool ObtenerProfesor(Profesor) :bool

Selecci onarObjeto() :Profesor RetornarObjeto(Profesor) Retornar(Profesor) Retornar(Profesor) Eli minar() Eli minar() :bool Eliminar(Profesor) :bool

Nuevo(Prof esor) :ProfesorPersistent e Eliminar(ProfesorPersistente) :Int

CU05: Gestionar Planes DID13: Agregar Plan


sd Agregar Plan Secretaria Presentacion FromGestionarPlanes Aplicacion ManejadorPlanes Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Plan Validar(Plan) :bool Guardar(Plan) :bool

Validar(Plan) :bool

Guardar(Plan) :bool

Nuevo(Plan) :PlanPersitente Insertar(PlanPersistente) :int

99

CU05: Gestionar Planes DID14: Modificar Plan


sd Modificar Pl... Secretari a Presentacion FromGestionarPlanes Aplicacion ManejadorPl anes Persistencia Persistenci aSIINCO

SeleccionarPlan() ArmarObjeto() :Plan

ObtenerPlan(Plan) :bool ObtenerPlan(Plan) :bool

SeleccionarObjeto() :Plan RetornarObjeto(Plan) Retornar(Plan) Retornar(Plan) ModificarDatos() Guardar() Validar(Plan) :bool Guardar(Plan) :bool Validar(Plan) :bool Guardar(Plan) :bool Nuevo(Plan) :PlanPersistente Modificar(PlanPersistente) :Int

100

CU05: Gestionar Planes DID15: Eliminar Plan


sd Eliminar Plan Secretaria Presentacion FromGestionarPlanes Aplicacion ManejadorPlanes Persistencia PersistenciaSIINCO

SeleccionarPlan() ArmarObjeto() :Plan

ObtenerPlan(Plan) :bool ObtenerPlan(Plan) :bool

SeleccionarObjeto() :Plan RetornarObjeto(Plan) Retornar(Plan) Retornar(Plan) Eliminar() Eliminar() :bool Eliminar(Plan) :bool

Nuevo(Plan) :PlanPersistente Eliminar(PlanPersistente) :Int

CU06: Gestionar Cursos DID16: Agregar Curso


sd Agregar Curso Secretaria Presentacion FromGestionarCursos Aplicacion ManejadorCursos Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Curso Validar(Curso) :bool Guardar(Curso) :bool

Validar(Curso) :bool

Guardar(Curso) :bool

Nuevo(Curso) :CursoPersitent e Insertar(CursoPersistente) :int

101

CU06: Gestionar Cursos DID17: Modificar Curso


sd Modificar Cur... Secretaria Presentacion FromGestionarCursos Aplicacion ManejadorCursos Persi stencia PersistenciaSIINCO

SeleccionarCurso()

ArmarObjeto() :Curso ObtenerCurso(Curso) :bool ObtenerCurso(Curso) :bool

SeleccionarObjeto() :Curso RetornarObjeto(Curso) Retornar(Curso) Retornar(Curso) ModificarDatos() Guardar() Validar(Curso) :bool

Guardar(Curso) :bool

Validar(Curso) :bool Guardar(Curso) :bool Nuevo(Curso) :CursoPersistent e Modificar(CursoPersistente) :Int

102

CU06: Gestionar Cursos DID18: Eliminar Curso


sd Eliminar Curso Secretaria Presentaci on FromGestionarCursos Apl icacion ManejadorCursos Persistencia PersistenciaSIINCO

SeleccionarCurso() ArmarObjeto() :Curso

ObtenerCurso(Curso) :bool ObtenerPlan(Curso) :bool

SeleccionarObjeto() :Curso RetornarObjeto(Curso) Retornar(Curso) Retornar(Curso) Eliminar() Eliminar(Curso) :bool Eliminar(Curso) :bool

Nuevo(Curso) :CursoPersistent e Eliminar(CursoPersi stente) :Int

CU07: Gestionar Materias DID19: Agregar Materia


sd Agregar Mate... Secretaria Presentacion FromGestionarMaterias Aplicacion ManejadorMaterias Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Materia Validar(Materia) :bool Guardar(Materia) :bool

Validar(Materia) :bool

Guardar(Materia) :bool

Nuevo(Materia) :MateriaPersitente Insertar(MateriaPersistente) :int

103

CU07: Gestionar Materias DID20: Modificar Materia


sd M odificar Mate... Secretaria Presentacion From GestionarM aterias Aplicacion ManejadorM aterias Persi stencia PersistenciaSIINCO

SeleccionarMateria() ArmarObjeto() :Materia

ObtenerMateria(Materia) :bool ObtenerM ateria(Materi a) :bool

SeleccionarObjeto() :M ateria RetornarObjeto(Materi a) Retornar(Materia) Retornar(Materi a) Modifi carDatos() Guardar( ) Validar(M ateri a) :bool

Guardar(M ateria) :bool Val idar(Materi a) :bool Guardar(Materia) :bool

Nuevo(Materia) :MateriaPersi stente Modificar(MateriaPersistente) :Int

104

CU07: Gestionar Materias DID21: Eliminar Materia


sd Eliminar Mate... Secretaria Presentacion FromGestionarM aterias Aplicacion ManejadorMaterias Persistencia PersistenciaSIINCO

SeleccionarMateria() ArmarObjeto() :Materia

ObtenerM ateria(M ateria) :bool ObtenerMateria(Materia) :bool

SeleccionarObjeto() :Materia RetornarObjeto(Materia) Retornar(Materia) Retornar(Materia) Eliminar() Eliminar(Materia) :bool Eliminar(Materia) :bool

Nuevo(M ateria) :MateriaPersistente Eliminar(MateriaPersistente) :Int

105

CU08: Gestionar Grupos DID22: Agregar Grupo


sd Agregar Grupo Secretaria Presentacion FromGestionarGrupos Aplicacion ManejadorGrupos Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :Grupo Validar(Grupo) :bool Guardar(Grupo) :bool

Val idar(Grupo) :bool

Guardar(Grupo) :bool

Nuevo(Grupo) :GrupoPersitent e Insertar(GrupoPersistente) :int

106

CU08: Gestionar Grupos DID23: Modificar Grupo


sd M odificar Gru... Secretaria Presentacion FromGestionarGrupos Aplicacion M anejadorGrupos Persistenci a PersistenciaSIINCO

SeleccionarGrupo() Arm arObj eto() :Grupo

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool

Sel eccionarObjeto() :Grupo RetornarObjeto(Grupo) Retornar(Grupo) Retornar(Grupo) M odificarDatos() Guardar() Val idar(Grupo) :bool

Guardar(Grupo) :bool Validar(Grupo) :bool Guardar(Grupo) :bool

Nuevo(Grupo) :GrupoPersistent e M odificar(GrupoPersistente) :Int

107

CU08: Gestionar Grupos DID24: Eliminar Grupo


sd Eliminar Grupo Secretaria Presentacion From GestionarGrupos Aplicacion ManejadorGrupos Persistencia PersistenciaSIINCO

SeleccionarGrupo() Arm arObjeto() :Grupo

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool

SeleccionarObjeto() :Grupo RetornarObjeto(Grupo) Retornar(Grupo) Retornar(Grupo) Eliminar() Eliminar(Grupo) :bool Eliminar(Grupo) :bool Nuevo(Grupo) :GrupoPersistent e

Eliminar(GrupoPersistente) :Int

CU09: Listar Usuarios DID25: Listar Usuarios


sd Listar Usuarios Secretaria Presentacion FromGestionarUsuario Aplicacion ManejadorUsuario Persistencia PersistenciaSIINCO

Listar Usuarios() ArmarObjeto() :ListaUsuarios

ObteneTodos(ListaUsuarios) :bool ObtenerTodos(ListaUsuarios) :bool

SeleccionarObjetos() :ListaUsuarios Retornar(L istaUsuarios) Retornar(L istaUsuarios) Retornar(L istaUsuarios)

108

CU10: Listar Alumnos DID26: Listar Alumnos


sd Listar Alumno Secretaria Presentacion FromGestionarAlumno Aplicacion ManejadorAlumnos Persistencia PersistenciaSIINCO

Listar Alumnos() ArmarObjeto() :ListaAlumnos

ObteneTodos(ListaAlumnos) :bool

ObtenerTodos(ListaAlumnos) :bool

SeleccionarObjetos() :ListaAlumnos Retornar(ListaAlumnos) Retornar(ListaAlumnos) Retornar(ListaAlumnos)

CU11: Listar Profesores DID27: Listar Profesores


sd Listar Profesores Secretaria Presentaci on From Gesti onarProfesores Aplicacion M anejadorProfesores Persistencia PersistenciaSIINCO

Listar Profesores()

Arm arObj eto() :Li staProfesores

ObteneT odos(List aProfesores) :bool

ObtenerT odos(List aProfesores) :bool

SeleccionarObj etos() :Li staProfesores Retornar(ListaProfesores) Retornar(ListaProfesores) Retornar(ListaProfesores)

109

CU12: Listar Planes DID28: Listar Planes


sd Listar Planes Secretari a Presentaci on FromGestionaPl anes Apl icacion ManejadorPlanes Persistencia Persi stenciaSIINCO

Listar Planes() ArmarObj eto() :ListaPlanes

ObteneT odos(ListaPlanes) :bool

ObtenerT odos(ListaPlanes) :bool

Sel ecci onarObjetos() :ListaPlanes Retornar(Li staPlanes) Retornar(Li staPlanes) Retornar(ListaPlanes)

CU13: Listar Cursos DID29: Listar Cursos


sd Listar Cursos Secretaria Presentaci on FromGestionarCursos Apli caci on M anej adorCursos Persistenci a Persi stenciaSIINCO

List ar Cursos() ArmarObjeto() :ListaCursos

ObteneT odos(ListaCursos) :bool ObtenerT odos(Li staCursos) :bool

SeleccionarObj etos() :ListaCursos Retornar(List aCursos) Retornar(List aCursos) Retornar(Li st aCursos)

110

CU14: Listar Materias DID30: Listar Materias


sd Listar Materi... Secretaria Presentacion FromGestionaM aterias Aplicacion ManejadorMaterias Persistencia PersistenciaSIINCO

Listar Materias() ArmarObjeto() :ListaMaterias

ObteneTodos(ListaMaterias) :bool ObtenerT odos(ListaMaterias) :bool

SeleccionarObjetos() :ListaMaterias Retornar(ListaMaterias) Retornar(ListaMaterias) Retornar(ListaMaterias)

CU15: Listar Grupos DID31: Listar Grupos


sd Listar Grupos Secretaria Presentacion FromGestionaGrupos Aplicacion M anejadorGrupos Persistencia PersistenciaSIINCO

Listar Grupos() Arm arObjeto() :ListaGrupos

ObteneT odos(ListaGrupos) :bool ObtenerTodos(ListaGrupos) :bool

SeleccionarObjetos() :ListaGrupos Retornar( ListaGrupos) Retornar(ListaGrupos) Retornar(ListaGrupos)

111

CU16: Buscar Alumnos DID32: Buscar Alumno


sd Buscar Alumno Secretaria Presentacion FromGestionarAlumno Aplicacion ManejadorAlumnos Persistencia PersistenciaSIINCO

BuscarAlumno() ArmarObjeto() :Alumno

ObtenerAlumno(Alumno) :bool ObtenerAlumno(Alumno) :bool

SeleccionarObjeto() :Alumno RetornarObjeto(Alumno) Retornar(Alumno) Retornar(Alumno)

CU17: Buscar Profesores DID33: Buscar Profesor


sd Buscar Profesor Secretaria Presentacion From GestionarProfesor Aplicacion ManejadorProfesores Persistencia PersistenciaSIINCO

BuscarProfesor() ArmarObjeto() :Profesor

ObtenerProfesor(Profesor) :bool ObtenerProfesor(Profesor) :bool

SeleccionarObjeto() :Profesor RetornarObjeto(Profesor) Retornar(Profesor) Retornar(Profesor)

112

CU18: Buscar Planes DID34: Buscar Plan


sd Buscar Plan Secretaria Presentacion FromGestionarPlanes Aplicacion ManejadorPlanes Persistencia PersistenciaSIINCO

Buscar Plan() ArmarObjeto() :Plan

ObtenerPlan(Plan) :bool ObtenerPlan(Plan) :bool

SeleccionarObjeto() :Plan RetornarObjeto(Plan) Retornar(Plan) Retornar(Plan)

CU19: Buscar Cursos DID35: Buscar Curso


sd Buscar Curso Secretaria Presentaci on FromGesti onarCursos Aplicacion ManejadorCursos Persistencia PersistenciaSIINCO

Busc ar Cursos() ArmarObjeto() :Curso

ObtenerCurso(Curso) :bool ObtenerPlan(Curso) :bool

SeleccionarObjeto() :Curso RetornarObjeto(Curso) Retornar(Curso) Retornar(Curso)

113

CU20: Buscar Materias DID36: Buscar Materia


sd Buscar Mate... Secretaria Presentacion FromGestionarMaterias Aplicacion ManejadorMaterias Persistencia PersistenciaSIINCO

Buscar Materia() ArmarObjeto() :Materia

ObtenerMateria(Materia) :bool ObtenerMateria(Materia) :bool

SeleccionarObjeto() :Materia RetornarObjeto(Materia) Retornar(Materia) Retornar(Materia)

CU21: Buscar Grupos DID37: Buscar Grupo


sd Buscar Grupo Secretaria Presentacion FromGestionarGrupos Aplicacion ManejadorGrupos Persistencia PersistenciaSIINCO

Buscar Grupo() ArmarObjeto() :Grupo

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool

SeleccionarObjeto() :Grupo RetornarObjeto(Grupo) Retornar(Grupo) Retornar(Grupo)

114

CU022: Relacionar Plan, Cursos, Materias DID38: Crear Relacin PCM


sd Agregar Relacion P... Secretaria Presentacion FromGestionarRelacionPCM Aplicacion ManejadorRelacionPCM Persistencia PersistenciaSIINCO

Nuevo() IngresarDat os()

Guardar() ArmarObjeto() :RelacionPCM Validar(RelacionPCM) :bool Guardar(RelacionPCM) :bool

Validar(RelacionPCM) :bool

Guardar(RelacionPCM) :bool

Nuevo(RelacionPCM) :RelacionPersitente Insertar(RelacionPersistente) :int

115

CU022: Relacionar Plan, Cursos, Materias DID39: Modificar Relacin PCM


sd M odificar RelacionP...

Secretaria

Presentacion FromGesti onarRel acionPCM

Aplicacion M anej adorRel acionPCM

Persi stencia PersistenciaSIINCO

SeleccionarRelacionPCM()

ArmarObjeto() :Rel acionPCM

ObtenerRelacion(RelacionPCM) :bool ObtenerRelacion(RelacionPCM) :bool

Selecci onarObjeto() :Relaci onPCM RetornarObj eto(Rel aci onPCM) Retornar(RelacionPCM) Retornar(RelacionPCM) Modi ficarDatos() Guardar() Val idar(Relaci onPCM ) :bool Guardar(Rel acionPCM) :bool Validar(RelacionPCM ) :bool Guardar(RelacionPCM) :bool Nuevo(Relaci onPCM) :Rel acionPersi stente

Modificar(RelacionPersistente) :Int

116

CU022: Relacionar Plan, Cursos, Materias DID40: Eliminar Relacin PCM


sd Eliminar RelacionP... Secretaria Presentacion FromGestionarRelacionPCM Aplicacion ManejadorRelacionPCM Persistencia PersistenciaSIINCO

SeleccionarRelacionPCM() ArmarObjeto() :RelacionPCM

ObtenerRelacionPCM(Relacion) :bool ObtenerRelacion(RelacionPCM) :bool SeleccionarObjeto() :RelacionPCM RetornarObjeto(RelacionPCM) Retornar(RelacionPCM) Retornar(RelacionPCM) Eliminar() Eliminar() :bool Eliminar(RelacionPCM) :bool

Nuevo(RelacionPCM) :RelacionPersistente Eliminar(RelacionPersistente) :Int

CU023: Listar Relacin Plan, Cursos, Materias DID41: Listar Relacin PCM
sd Listar RelacionP... Secretaria Presentacion From GestionarRelacionPCM Aplicacion M anejadorRelacionPCM Persistencia PersistenciaSIINCO

Listar RelacionPCM() Arm arObjeto() :ListaRelacionPCM

ObteneT odos(ListaRelacionPCM ) :bool ObtenerT odo s(ListaRelacionPCM ) :bool

SeleccionarObjetos() :ListaRelacionPCM Retornar(ListaRelacionPCM) Retornar(ListaRelacionPCM) Retornar(ListaRelacionPCM)

117

CU024: Buscar Relacin Plan, Cursos, Materias DID42: Buscar Relacin PCM
sd Buscar RelacionP... Secretaria Presentacion From Gesti onarRel acionPCM Aplicacion M anejadorRel aci onPCM Persistencia PersistenciaSIINCO

BuscarRelacionPCM() Arm arObjeto() :Rel aci onPCM

ObtenerRelacionPCM (Rel aci onPCM ) :bool ObtenerRelacionPCM (Relaci onPCM ) :bool

Sel eccionarObjeto() :Relaci onPCM RetornarObj eto(Rel acionPCM) Retornar(Rel aci onPCM) Retornar(Rel aci onPCM)

[Link]. Diagramas de Clases Diseo de Clases El propsito de esta actividad es transformar el modelo de clases lgico que proviene del anlisis en un modelo de clases de diseo. Este modelo recoge la especificacin detallada de cada una de las clases, sus atributos, operaciones, mtodos y el diseo preciso de las relaciones que se establecen entre ellas ya sea de agregacin, asociacin o jerarqua. Para realizar esta tarea se tendrn en cuenta las decisiones tomadas sobre el entorno tecnolgico y el entorno de desarrollo elegido para la implementacin. Se identifican las clases de diseo, denominadas clases adicionales en base al estudio de los escenarios de los casos de uso y diagramas de interaccin que se han realizado anteriormente en la etapa de anlisis y refinados en el diseo. Se disean las clases de interface de usuario que provienen del anlisis. Tambin hay que considerar que dado el diseo de las asociaciones y agregaciones, pueden generarse nuevas clases o bien desaparecer junto a sus atributos y mtodos. La jerarqua entre las clases se establece durante toda esta actividad a medida que se van identificando comportamientos comunes en las clases aunque haya una tarea propia de diseo de la jerarqua. Otro de los objetivos del diseo de las clases es identificar para cada clase sus atributos, las operaciones que cubren las responsabilidades que se identificaron en el anlisis y la especificacin de los mtodos que implementan esas operaciones analizando los diagramas de secuencia de la etapa de diseo. Se determina la visibilidad de los atributos y operaciones de cada clase con respecto a las otras clases del modelo. Una vez elaborado el modelo de clases, se define la estructura fsica de los datos correspondiente al mismo. Esta estructura estar dada por la capa de persistencia presente en el paquete correspondiente. Como resultado de todo lo anterior se actualiza el modelo de clases del anlisis, una vez recogidas las decisiones de diseo. Hay que destacar, que las actividades que se presentan a continuacin, no tienen porqu desarrollarse de forma secuencial. Al contrario, se trata propiamente de lineamientos a tener en cuenta en un sucesivo proceso de refinamiento iterativo sobre el modelo de objetos que componen la aplicacin. Desde este punto de vista, se analizan las clases de objetos necesarias para soportar la interfaz y el dominio del sistema.

118

Identificacin de Clases Adicionales y Diagrama de Clases completo El objetivo de esta tarea es identificar un conjunto de clases que completan el modelo de clases analizado en el proceso anterior. Se tiene en cuenta que: El conjunto de clases del anlisis puede modificarse en funcin de las tecnologas de desarrollo utilizadas y de los mecanismos genricos de diseo especificados. Las clases de control deben contemplar la coordinacin y secuencia entre objetos y en algunos casos contendrn lgica de negocio. En cualquiera de los casos se deben considerar cuestiones de rendimiento, de transaccin, etc. El diseo de las clases de entidad vara segn el sistema de gestin de datos utilizado. Las clases pueden ser construidas por el propio desarrollador, adquiridas en forma de bibliotecas, facilitadas por el entorno de trabajo o por el entorno tecnolgico. El diseo de las clases de interfaz de usuario depende de la tecnologa especfica que se est utilizando. As por ejemplo, la interfaz puede crearse a partir de los objetos grficos disponibles en el entorno de desarrollo sin necesidad de que estos se contemplen en el modelo de clases correspondiente. Diagrama de Paquetes
class Diagrama de Paquetes EXE Presentacio n + FormBasicoM antenimi ento + Form Busqueda + Form BusquedaAlum no + Form BusquedaCurso + Form BusquedaGrupo + Form BusquedaMateria + Form BusquedaPlan + Form BusquedaPlanCursos + Form BusquedaProfesor + Form BusquedaTipoUsuario + Form BusquedaUsuario + Form ConfiguracionBD + Form ConfiguracionTipoUsuarios + Form Confi guracionUsuarios + Form EscritorioApli cacion + Form FicheroAlumnos + Form FicheroCursos + Form FicheroM aterias + Form FicheroPlanCursos + Form FicheroPlanes + Form FicheroProfesores + Form GestionGrupos + Form Login + FormM DIPrincipal + Form Splash + Program DLL Persistenci a + Conexion + CreadorObejetoPersistente + ObjetoPersistente + PersistenciaSIINCO + PersistenteAlum no + Persist enteCurso + PersistenteGrupo + PersistenteM ateria + PersistentePlan + PersistentePlanCurso + PersistentePlanCursoMateria + Persist enteProfesor + PersistenteT ipoUsuario + PersistenteUsuario DLL Aplicacion + ManejadorAlumno + ManejadorCurso + ManejadorGrupo + ManejadorMateria + ManejadorPlan + ManejadorPlanCurso + ManejadorProfesor + ManejadorT ipoUsuario + ManejadorUsuario + SIINCOManejador DLL Domini o + Alumno + CreadorObjeto + Curso + Grupo + Lista + M ateria + Objet o + Param etrosSQL + Plan + PlanCurso + PlanCursoMateria + Profesor + SIINCOExcepcion + T ipoUsuario + Usuario

119

Diagrama de Clases del paquete Presentacin


c lass GUI FormFicheroPlanCursos Fo rmConfiguracionT ipoUsuari os -_ objSingleton -_obj Sin gleton FormFicheroM aterias -_objSingleton DevExp [Link] FormBasicoM antenimie nt o FormConfi gura cionUsuarios

-_obj Sin gleton FormFicheroA lumnos FormGestionGru pos -_objSingleton

-_objSingleton FormFicheroCursos -_objSingleton DevExp [Link] FormM DIPrinc ipal Form Fi cheroProfesor es -_paren t -_escritorio DevExp [Link] FormEscritorioAplica c ion -_formBusquedas Busqued as::FormBusquedaCurso -_objSingleton -_form Busquedas Busquedas::Form Busqueda Pla n FormFicheroPlanes

-_formBusqued as -_formBusquedas Busquedas::FormBusquedaGrupo Busquedas::Form BusquedaProfesor

-_form Bu squedas Busquedas::FormBusquedaA lum no

-_form Bu squedas Busqued as::FormBusquedaM ateria

-_form Bu squedas Busquedas::Fo rm BusquedaUsuario

-_formBusq uedas Busqued as:: Form Busqueda TipoUsuar io DevExp [Link] Busquedas::Form Busqueda

#_form Busqued as Busquedas:: FormBusquedaPl anCursos

XtraF orm FormL ogin

FormSplash

De [Link] FormConfigurac ionBD

SIINCOPresentacion::Program

120

Diagrama de Clases del paquete Dominio


c lass Dominio SIINCODominio::PlanCurs o _mCurso: Curso = new Curso() _mIn tInasisten ciasPermi tidas: int _mIn tMaximoM ateriasInsuficientesFalloSusp endo: int _mIn tMaximoMateriasInsuficientesPromocion Parcial: int _mPlan: Plan = new Pla n() -_mCurso -

SIINCODominio:: CreadorObj eto + Nuevo(Ob jeto) : Obj eto

SIINCODominio::Curs o -_mCursoPrevio _mCursoPrevio: Curso SIINCODominio::Pla n _mDateFechaAlta : DateTim e = DateT ime.T oday _mIntCu rso: int - _mDateFechaAlta: Date Time = DateTime.T oday _mStrDescripcion: string -_mPlan - _mDateFecha Desde: DateTime = DateTime .Today - _mDateFecha Hasta: Da teTime = DateTime .Today - Curso (bool) - _mIntNotaMaxima: int + Curso () - _mIntNotaMinima: int + SincronizarCom puestoFil as() : void - _mIntNotaMin imiaAprob able: int property - _mIntPlan: int + Curso ID() : int - _mStrDescripcion: string + Curso Prev io() : Curso - _mStrNombre : string + Descripcion() : string + Fecha Alta() : Da teTime + Sincroniza rCompuestoFilas() : void -_mCurso p roperty + Descripcion() : string + FechaAlta() : DateTime -_mPlan + FechaDesd e() : DateT ime + FechaHasta () : DateT ime + Nombre() : string + NotaMaxim a() : int + NotaMinima() : int + NotaMinimiaAprobab le() : int + PlanID() : i nt +

SIINCODominio::Profesor _mDateFechaAlta: DateTime = DateTim [Link](... _mIntProfesor: int _mStrApe llidos: string _mStrCelu lar: string _mStrDire ccion: string _mStrDocumento: string _mStrEma il: string _mStrLocalidad: string _mStrNom bres: strin g _mStrTele fono: stri ng _mStrTipoDocumen to: string Sincron izarCompuestoFilas() : void

+ PlanCurso( ) + Sincroniza rCompuestoFilas() : void p roperty + Curso() : Curso + Inasistenci asPermitid as() : int + M aximoMateriasInsuficientesFalloSuspe ndo() : int + M aximoMa teriasInsu ficientesPromocionParcial() : i nt + Plan() : Pl an

SIINCODominio::Alumno _mBoo lTutor: bool _mDateFechaAlta : DateTim e = DateT [Link] _mIntAl umno: int _mStrApellido1: string _mStrApellido2: string _mStrBarrio: string _mStrDireccion: string _mStrDocumento : string _mStrEmail: string _mStrEnfermedad es: string _mStrFe chaNacimiento: Da teTime = [Link].... _mStrL ocalidad: string _mStrMedicamen tos: string _mStrNombres: string _mStrNombreTuto r: string _mStrOtros: string _mStrRelacionTutor: string _mStrSexo: string _mStrT elefono: string _mStrT ipoDocumento: string _mStrT ratamientos: string + + +

Syste [Link] tionExcep tion SIINCODominio::SIINCOEx c epcion -_mPlanCurso SIINCOExcepcion() SIINCOExcepcion(string) SIINCOExcepcion(string, Syste [Link] on)

SIINCODominio::Mate ria + _ mDateFechaAlta: DateTime = [Link] _ mIntHorasSemanale s: int _ mIntMateria: int _ mIntSesionesSemanales: int _ mStrNombre: string Sincroni zarCompu estoFilas() : void

SIINCO Dominio::Grupo + _mDa teFechaAlta: DateT ime = [Link] ay _mIn tAnio: int _mIn tGrupoID: int _mIn tMaximoAl umnos: int _mIntMinimoAlu mnos: int _mPl anCurso: PlanCurso = new Pl anCurso() _mStrDescripcio n: string _mStrGrupoIde ntificador: string _mStrTurno: string SincronizarCompuestoFilas() : vo id

SIINCODominio::PlanCursoMateria -_mM ateria + + _mCurso: Curso = new Curso() _mMateria: Materia = new Materia() _mPlan : Plan = n ew Plan() PlanCursoMateria() SincronizarCo mpuestoFi las() : void

property + FechaAl ta() : Date Time + HorasSe manales() : int + MateriaID() : int + Nombre() : string + Sesione sSemanal es() : int

property + Apellidos() : string + Celular() : string + Direccio n() : string + Docum ento() : stri ng + Email() : string + FechaAlta() : Date Time + Localidad() : strin g + Nombre s() : str ing + ProfesorID() : int + Telefon o() : string + TipoDocumento() : string

+ Sin cronizarCo mpuestoFilas() : void prop erty + AlumnoID() : int + Apellid o1() : string + Apellid o2() : string + Barrio() : string + Dire ccion() : string + Documento() : string + Eda dStr() : str ing + Em ail() : string + Enfermedade s() : string + FechaAlta() : DateTime + FechaNacimi ento() : Da teTime + Localidad() : string + Me dicamentos() : string + Nom bres() : string + Nom breTutor() : string + Otro s( ) : string + Rel acionTuto r() : string + Sexo() : string + Tel efono() : string + Tip oDocume nto() : string + Tra tamientos() : string + Tutor() : bool

-_mAlu mno

property + Anio() : int + Descripcion() : string + Fe chaAlta() : DateTime + GrupoID() : in t + GrupoIdentificador() : string + Ma ximoAlum nos() : int + Mi nimoAlum nos() : int + PlanCurso() : PlanCurso + Turno() : strin g -_mG rupo GrupoAlumno

property + Curso() : Curso + Mate ria() : Materia + Plan() : Plan

SIINCODominio::Usua ri o _mBo olInactivo: bool _mDa teFechaAlta: DateT ime = [Link] _mStrApellidos: string _mStrCelular: string _mStrClave: string _mStrDireccion : string _mStrDocumen to: string _mStrEmail: string _mStrNombres: string _mStrTelefono : string _mStrUsuario: string _mTi poUsuario: TipoUsu ario = new TipoUsuario() -_mTipoUsuario + +

SIINCODominio::TipoUs uario _mBoolConfiguraci onBd: bool _mBoolConfiguraci onTipoUsu arios: bo ol _mBoolConfiguracionUsuario s: bool _mBoolFicheroAlum nos: bool _mBoolFicheroCursos: bool _mBoolFicheroMaterias: bool _mBoolFicheroPlanCursos: bool _mBoolFicheroPlanes: bool _mBoolFicheroPro fesores: b ool _mBoolGestionGrupos: bool _mIntTipoUsuario: int _mStrDescripcion: string Sincro nizarCompuestoFila s() : void TipoUsuario()

[Link] [Link] SIINCODominio::Objeto + + + + _ mBoolCompuesto: b ool = false _ mBoolEliminado: bo ol = false _ mBoolNue vo: bool = true _ mListafilas: Lista<Objeto> = new Lista<Objeto>() _ mTimeSta mp: byte ([]) BeginEd it() : void CancelEdit() : void EndEdit() : void SincronizarCompue stoFilas() : void -_tipo T ArrayList IBindingL ist IListSource SIINCODominio::Lista _parent: Obje to _tipo : Objeto

_mAlumno: Alum no _mDateFechaIncripcion: DateTime = [Link] _mGru po: Grup o

+ Sincroniza rCompuestoFilas() : void + AddIndex(Prop ertyDescriptor) : voi d + AddNew() : ob ject + ApplySort(Pro pertyDescriptor, ListSortDirection) : void + Find(Prop ertyDescrip tor, object) : int + GetList() : IList + RemoveIndex(PropertyDescriptor) : void + RemoveSort() : void p roperty + Allo wEdit() : bo ol + Allo wNew() : b ool + Allo wRemove() : bool + ContainsL istCollecti on() : bool + FilasNoEli minadas() : int + IsSorted() : bool + Parent() : Objeto + SortDirection() : ListSortDirecti on + SortPrope rty() : Prop ertyDescri pt or + SupportsChangeNotification() : bool + SupportsSearching() : bool + SupportsSorting() : bool + Tipo() : Ob jeto e vent + ListChang ed() : ListChangedEventHandler indexer + this(int) : object property + Apell idos() : string + Celular() : string + Clave() : string + Direccion() : string + Documento () : string + Email() : string + FechaAlta() : DateTime + Inactivo() : bool + Nombres() : string + T elefono() : string + T ipoUsuari o() : TipoUsuario + UsuarioID() : string

+ SincronizarCompuestoFilas() : void prop erty + Alumno() : Alumno + FechaIncripcio n() : DateTime + Gru po() : Grup o

property + Compue sto() : boo l + Compue stoPor() : O bjeto + Eliminad o() : bool + Filas() : Lista<Objeto> + Nuevo() : bool + TimeSta mp() : byte[]

-_pare nt

SIINCO Dominio::ParametrosSQ L [Link] nSettingsBase Settings - _baseDatos: strin g = "" {rea dOnly } -defaultInstance _password: string = "" {read Only } {le af} - _servid or: string = "" {readOnly} - _usuari o: string = "" {readOnly} + + Guardar(string , string, string, string ) : void Para metrosSQL() + +

TipoUsuarioLinea _mIntLin: int _mIntTipoUsuario: int _mStrDato1: string Sin cronizarCompuestoFilas() : vo id Tip oUsuarioL inea()

property + Config uracionBd () : bool + Config uracionTip oUsuario s() : bool + Config uracionUsuarios() : b ool + Descrip cion() : string + Fichero Alumnos() : bool + Fichero Cursos() : bool + Fichero Materias() : bool + Fichero PlanCursos() : bool + Fichero Planes() : bool + Fichero Profesore s() : bool + Gestio nGrupos() : bool + TipoUsuarioID() : int

defaultInstance: Setting s = ((Settings)(glo...

prope rty + BaseDeDatos() : string + Defa ult() : Settings + Passw ord() : string + Servidor() : string + Usu ario() : stri ng

prop erty + BaseDatos() : string + Password() : string + Servidor() : stri ng + Usuario() : strin g

property + Dato1() : strin g + Lin () : int + Tip oUsuarioID() : int

121

Diagrama de Clases del paquete Aplicacin


class Aplicacion -_objSingleton SIINCOAplicacion::M anejadorPlan SIINCOAplicacion::ManejadorM ateria _objSingleton: M anejadorPlan SIINCOAplicacion::M anejadorProfesor -_objSingleton _objSingleton: M anejadorProfesor

+ Guardar(Objeto) : bool + Instancia() : M anejadorPlan _objSingleton: M anejadorM ateria-_objSingleton - Validar(Plan) : bool

+ Guardar(Objeto) : bool + Instancia() : M anejadorMateria - Val idar(M ateri a) : bool

+ Guardar(Objeto) : bool + Instancia() : ManejadorProfesor - Validar(Profesor) : bool

-_objSingleton SIINCOApl icacion::ManejadorGrupo + + + + _objSingleton: M anejadorGrupo Guardar(Objeto) : bool Instancia() : ManejadorGrupo Obtener(Objeto) : bool ObtenerT odos(Objeto) : Lista<Objet o> Validar(Grupo) : bool + + + + + # + -_objSingleton SIINCOAplicac ion::SIINCOM anej ador _objSi ngleton: SIINCOM anejador Elim inar(Objeto) : bool Guardar(Objeto) : bool Instancia() : SIINCOManejador Obtener(Objeto) : bool ObtenerDataSet(Objeto) : Dat aSet ObtenerProxim o(Objeto) : int ObtenerTodos(Objeto) : Lista<Objet o>

SIINCOAplicacion::ManejadorPlanCurso + + + + _objSingleton: M anejadorPlanCurso -_objSingleton Guardar(Objeto) : bool Instancia() : ManejadorPlanCurso Obtener(Objeto) : bool ObtenerT odos(Objeto) : Lista<Objet o> Validar(PlanCurso) : bool

SIINCOAplicacion::ManejadorT ipoUsuario _objSingleton: M anejadorT ipoUsuario -_objSingleton + Guardar(Obj eto) : bool + Instancia() : ManejadorT ipoUsuario - Validar(T ipoUsuario) : bool

SIINCOAplicacion::ManejadorA lumno _objSingleton: M anejadorAlum no -_objSingleton

+ Guardar(Objeto) : bool + Instancia() : M anejadorA lumno - Val idar(Alum no) : bool #_objSingleton SIINCOAplicacion::M anejadorCurso SIINCOAplicacion::M anej adorClav e {leaf} hashAlgorithm : string = "SHA 1" initVector: string = "@2A3c3D4 e5F6g7H8" keySize: int = 128 passPhrase: string = "Pas5@se" passwordIterations: int = 2 saltValue: string = "s@Bolso13" # _objSingleton: ManejadorCurso + + + + -

SIINCOAplicacion::ManejadorUsuari o _objSingleton: M anejadorUsuario -_objSingleton _usuarioActual: Usuario Guardar(Obj eto) : bool Instancia() : ManejadorUsuario Obtener(Obj eto) : bool ObtenerT odos(Objeto) : Lista<Obj et o> Validar(Usuario) : bool

+ Guardar(Objeto) : bool + Instancia() : M anejadorCurso - Validar(Curso) : bool

property + UsuarioActual() : Usuario

~ Decrypt(string) : string ~ Encrypt(string) : string

122

Diagrama de Clases del paquete Persistencia


class Persistencia SIINCOPersistencia::Persi stentePlanCurso SIINCOPersistencia::PersistenteCurso + ArmarObjeto(System .[Link]) : bool + CrearParametros([Link] [Link]) : v oi d + PersistenteCurso(Objet o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFi las() : str ing + SQLProxim oIDLi bre() : str ing + SQLSelectClave() : string + SQLUpdate() : string SIINCOPersistencia::Persi stentePlanCurso::PersistenteA l umno + ArmarObjeto(System .[Link] [Link]) : bool + CrearParametros([Link]) : v oi d + PersistenteAlumno(Objet o) property + SQLDel ete() : string + SQLInsert() : string + SQLObtenerFilas() : string + SQLProxi moIDLi bre() : string + SQLSel ectClave() : string + SQLUpdate() : string + Arm arObjeto([Link]) : bool + CrearParametros([Link] lecti on) : v oid + PersistentePlanCurso(Objet o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFilas() : string + SQLProxi moIDLibre() : string + SQLSelectClave() : stri ng + SQLUpdate() : string

SIINCOPersistencia::PersistentePl anCursoM ater ia + Arm arObjeto([Link]) : bool + CrearParametros([Link] lecti on) : v oid + PersistentePlanCursoMateria(Obj et o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFilas() : string + SQLProxi moIDLibre() : string + SQLSelectClave() : stri ng + SQLUpdate() : string

SIINCOPersi stenci a::PersistenteGrupo + ArmarObjeto(System .[Link]) : bool + CrearParametros([Link] [Link]) : v oi d + PersistenteGrupo(Obj et o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFi las() : str ing + SQLProxim oIDLi bre() : str ing + SQLSelectClave() : string + SQLUpdate() : string -

SIINCOPersistencia::PersistentePlanCursoMateria::ObjetoPersistent e _objetoDominio: Objeto {readOnly}

+ ArmarObjeto(System .[Link] [Link]) : bool + CrearParametros([Link] Cli [Link] ParameterCol lecti on) : v oid # ObjetoPersistente(Obj et o) property + ObjetoDominio() : Objet o + SQLDelete() : st ri ng + SQLInsert() : st ri ng + SQLObtenerFi las() : st ring + SQLObtenerTodos() : stri ng + SQLProximoIDLi bre() : st ring + SQLSelectClave() : st ring + SQLUpdate() : st ring + T abl a() : string

SIINCOPersi stenci a::PersistenteProfesor + Arm arObjeto([Link]) : bool + CrearParametros([Link] lecti on) : v oid + PersistenteProfesor(Objet o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFilas() : string + SQLProxi moIDLibre() : string + SQLSelectClave() : stri ng + SQLUpdate() : string + T abla() : string

SIINCOPersistencia::PersistenteM ateria + ArmarObjeto(System .[Link]) : bool + CrearParametros([Link] [Link]) : v oi d + PersistenteM ateria(Obj et o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFi las() : str ing + SQLProxim oIDLi bre() : str ing + SQLSelectClave() : string + SQLUpdate() : string

SIINCOPersistenc ia:: CreadorObejetoPersi stent e SIINCOPersistencia::Persi stent ePlan + ArmarObjeto(System .[Link]) : bool + CrearParametros([Link] [Link]) : v oi d + PersistentePlan(Obj et o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFi las() : str ing + SQLProxim oIDLi bre() : str ing + SQLSelectClave() : string + SQLUpdate() : string + T abla() : string + Nuevo(Objeto) : ObjetoPersistent e

SIINCOPersistencia::PersistenteT i poUsuar io + Arm arObjeto([Link]) : bool + CrearParametros([Link] lecti on) : v oid + PersistenteT ipoUsuario(Obj et o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFilas() : string + SQLProxi moIDLibre() : string + SQLSelectClave() : stri ng + SQLUpdate() : string -_obj Singleton SIINCOPersi stenci a::Persi stenteUsuar io + ArmarObjeto(System .[Link] [Link]) : bool + CrearParametros(System .[Link] [Link] eterCol lecti on) : v oid + PersistenteUsuario(Objet o) property + SQLDelete() : str ing + SQLInsert() : stri ng + SQLObtenerFilas() : string + SQLProxim oIDLibre() : string + SQLSelectClave() : string + SQLUpdate() : string

SIINCOPersi stenci a::SIINCOPersistenc ia + + + + + + + + + + _conexi on: [Link] on _objSingleton: SIINCOPersistencia

PersistenteT ipoUsuarioL i nea + ArmarObjeto(System .[Link]) : bool + CrearParametros([Link] [Link]) : v oi d + PersistenteT ipoUsuari oLinea(Objet o) property + SQLDelete() : string + SQLInsert() : stri ng + SQLObtenerFi las() : str ing + SQLProxim oIDLi bre() : str ing + SQLSelectClave() : string + SQLUpdate() : string

BeginT ransaction() : v oid CommitT ransacti on() : voi d Eli minar(Obj eto) : bool Guardar(Objeto) : bool GuardarObj eto(ObjetoPersistente) : bool GuardarObj etoCompuesto(Obj etoPersi stente) : bool Instancia() : SIINCOPersi stenc ia Obtener(Objeto) : bool ObtenerDataSet(Objeto) : Dat aSet ObtenerFilas(Obj eto) : voi d ObtenerProxi moID(Obj eto) : int ObtenerTodos(Obj eto) : Lista<Objet o> Roll backTransaction() : v oid SIINCOPersistencia()

123

2.5.5. Implementacin [Link]. Diccionario de Clases


Paquete Clases Alumno Curso Grupo Lista Materia Objeto Plan PlanCurso PlanCursoMateria Profesor TipoUsuario Usuario SIINCOExcepcion CreadorObjeto ParametrosSQL ManejadorAlumno ManejadorCurso ManejadorGrupo ManejadorMateria ManejadorPlan ManejadorPlanCurso ManejadorProfesor ManejadorTipoUsuario ManejadorUsuario SIINCOManejador

Dominio

Aplicacin

Paquete Dominio
Paquete Sper Clase Clase Descripcin Atributos _mBoolNuevo: Tipo bool _mBoolEliminado: Tipo bool _mBoolCompuesto: Tipo bool _mListafilas: Tipo Lista _mTimeStamp: Tipo byte. Dominio n/a Objeto Clase que ser heredada por los objetos utilizados en el sistema. Descripcin Indica si se trata de un objeto a crear. Indica si se trata de un objeto a eliminar. Es un objeto compuesto por otros objetos. Si el objeto es compuesto almacena la lista de los objetos que lo componen. Mantiene una referencia de un objeto editado para evitar que el mismo pueda ser modificado desde otra terminal al mismo tiempo. Descripcin Realiza una copia de un objeto dado Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Alumno Se registran todos los alumnos que se inscriben en el colegio. Descripcin Identificacin del objeto Alumno. Nombre del Alumno, Apellido paterno del Alumno Apellido materno del Alumno

Mtodos Pblicos object Clone() override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntAlumno: tipo int _mStrNombres: tipo string _mStrApellido1: tipo string _mStrApellido2: tipo string

124

Paquete _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrFechaNacimiento: tipo DateTime _mStrSexo: tipo string _mStrDireccion: tipo string _mStrBarrio: tipo string _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrEmail: tipo string _mBoolTutor: tipo bool _mStrNombreTutor: tipo string _mStrRelacionTutor: tipo string _mStrEnfermedades: tipo string _mStrMedicamentos: tipo string _mStrTratamientos: tipo string _mStrOtros: tipo string _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntCurso: tipo int _mStrDescripcion: tipo string _mCursoPrevio: tipo Curso _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor new Curso() Paquete Sper Clase Clase Descripcin Atributos _mIntGrupoID: tipo int _mStrGrupoIdentificador: tipo string _mPlanCurso: tipo PlanCurso _mStrDescripcion: tipo string _mIntAnio: tipo int _mStrTurno: tipo string _mIntMinimoAlumnos: tipo int _mIntMaximoAlumnos: tipo int _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a

Dominio Indica el tipo de documento con el que se registra el Alumno. Documento de Identidad del Alumno. Fecha de nacimiento del Alumno. Sexo del Alumno (Masculino, Femenino). Direccin actual del Alumno. Barrio donde reside el alumno. Localidad del Alumno. Telfono de contacto del Alumno. Email del Alumno. Indica si el Alumno se encuentra a cargo de un Tutor. Nombre del tutor del Alumno. Especifica la relacin entre el tutor y el Alumno. Permite detallar si el Alumno tiene alguna enfermedad conocida. Permite detallar si el Alumno usa algn tipo de medicamento o similar. Permite detallar si el alumno se encuentra bajo algn tratamiento mdico. Permite ingresar otras observaciones del alumno. Indica la fecha en que se dio de alta al Alumno en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Curso Almacena todos los cursos que son dictados en el colegio. Descripcin Identificacin del objeto Curso. Descripcin del Curso. Detalla el curso previo que tiene el objeto Curso. Indica la fecha en que se dio de alta al Curso en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin

Dominio Objeto Grupo Se registran todos los grupos que componen los distintos cursos del colegio. Descripcin Cdigo del objeto Grupo. Identificador del Alumno. Detalla la referencia a la composicin PlanCurso. Descripcin del Curso. Indica el ao lectivo de Curso. Indica el turno del Curso (matutino, vespertino). Indica el mnimo de alumnos con que puede comenzar un Curso. Indica el mximo de alumnos que puede tener Curso. Indica la fecha en que se dio de alta al Grupo en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a

125

Paquete Sper Clase Clase Descripcin Atributos _mIntMateria: tipo int _mStrNombre: tipo string _mIntHorasSemanales: tipo int _mIntSesionesSemanales: tipo int _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntPlan: tipo int _mStrNombre: tipo string _mStrDescripcion: tipo string _mDateFechaDesde: tipo DateTime _mDateFechaHasta: tipo DateTime _mIntNotaMinima: tipo int _mIntNotaMaxima: tipo int _mIntNotaMinimiaAprobable: tipo int _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mPlan: tipo Plan _mCurso: tipo Curso _mIntInasistenciasPermitidas: tipo int _mIntMaximoMateriasInsuficientesPromocionParcial: tipo int _mIntMaximoMateriasInsuficientesFalloSuspenso: tipo int _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a

Dominio Objeto Materia Se registran todas las materias que son dictadas en los distintos cursos del colegio. Descripcin Cdigo identificador de la Materia. Nombre de la Materia. Horas semanales que debe tener la materia. Cantidad de sesiones en las que se debe dictar la materia en la semana. Indica la fecha en que se dio de alta a la Materia en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Plan Se registran todos los planes de Planes de estudio diseados y emitidos por el CES. Descripcin Cdigo identificador del Plan. Nombre del Plan. Descripcin del Plan. Fecha desde la cual entra en vigencia un Plan. Fecha en que expira la vigencia de un Plan. Indica la nota mnima con la que se puede calificar un Alumno en el correspondiente Plan. Indica la nota mxima con la que se puede calificar un Alumno en el correspondiente Plan. Indica la nota mnima para aprobar una materia en el correspondiente Plan. Indica la fecha en que se dio de alta al Plan en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto PlanCurso Se registran las relaciones entre un Plan con sus respectivos Cursos. Descripcin Cdigo identificador del Plan. Cdigo identificador del Curso. Mximo de inasistencias permitidas para ese Plan / Curso. Mximo de materias insuficientes que un alumno puede tener para promover parcialmente. Mximo de materias insuficientes que un alumno puede tener para quedar en estado Fallo en Suspenso. Indica la fecha en que se dio de alta la relacin plan, curso en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a

126

Paquete Sper Clase Clase Descripcin Atributos _mPlan: tipo Plan _mCurso: tipo Curso _mMateria: tipo Materia _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntProfesor: tipo int _mStrNombres: tipo string _mStrApellidos: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrDireccion: tipo string _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrCelular: tipo string _mStrEmail: tipo string _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntTipoUsuario: tipo int _mStrDescripcion: tipo string _mBoolConfiguracionBd: tipo bool _mBoolConfiguracionUsuarios: tipo bool _mBoolConfiguracionTipoUsuarios: tipo bool _mBoolFicheroAlumnos: tipo bool _mBoolFicheroProfesores: tipo bool _mBoolFicheroMaterias: tipo bool _mBoolFicheroPlanes: tipo bool _mBoolFicheroCursos: tipo bool _mBoolFicheroPlanCursos: tipo bool

Dominio Objeto PlanCursoMateria Relaciona un determinado PlanCurso con las materias que lo componen. Descripcin Cdigo identificador del Plan. Cdigo identificador del Curso. Cdigo identificador de la Materia. Indica la fecha en que se dio de alta a la relacin plan, curso, materias en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Profesor Se registran todos los profesores que se dictan clases en el colegio. Descripcin Identificacin del objeto Profesor. Nombres del Profesor, Apellidos del Profesor. Indica el tipo de documento con el que se registra el Profesor. Documento de Identidad del Alumno. Direccin actual del Profesor. Localidad donde reside el Profesor. Telfono de contacto del Profesor. Telfono celular del Profesor. Email del Profesor. Indica la fecha en que se dio de alta al Profesor en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto TipoUsuario Contiene los tipos de usuarios existentes en el sistema y los permisos de acceso de los mismos. Descripcin Identificacin del objeto TipoUsuario. Descripcin del tipo de usuario. Indica si el Tipo de Usuario puede acceder al formulario de configuracin de la Base de Datos. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Usuarios. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento Tipos de Usuario. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Alumnos. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Profesores. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Materias. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Planes. Indica si el Tipo de Usuario puede acceder al formulario de mantenimiento de Cursos. Indica si el Tipo de Usuario puede acceder al formulario de

127

_mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mStrUsuario: tipo string _mStrClave: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrNombres: tipo string _mStrApellidos: tipo string _mStrDireccion: tipo string _mStrTelefono: tipo string _mStrCelular: tipo string _mStrEmail: tipo string _mBoolInactivo: tipo bool _mTipoUsuario: tipo TipoUsuario _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Interface Clase Descripcin Atributos _parent : tipo Objeto _tipo As Objeto Mtodos Pblicos Object AddNew() Int FilasNoEliminadas () Paquete Sper Clase Clase Descripcin Constructor SIINCOExcepcion (msg : tipo String) SIINCOExcepcion (msg : tipo String, causante : tipo [Link] )

mantenimiento de Plan / Curso. Indica la fecha en que se dio de alta al Tipo de Usuario materias en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Usuario Contiene los datos de los usuarios que pueden acceder al sistema. Descripcin Identificacin Usuario. Contrasea de acceso del Usuario. Tipo de documento con que se registra el Usuario. Documento de Identidad del Usuario. Nombres del Usuario. Apellidos del Usuario. Direccin del Usuario. Telfono de contacto del Usuario. Telfono celular del Usuario. Email del Usuario. Indica el estado del usuario (Activo, Inactivo) Indica el tipo de acceso del usuario y por ende sus permisos. Indica la fecha en que se dio de alta al Usuario en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio [Link] IBindingList, IListSource Lista Clase que se encarga de contener distintos tipos de objetos, cuyo tamao aumenta dinmicamente segn se requiera. Descripcin Especifica el objeto que contiene el objeto Lista. Especifica el tipo de objeto almacenado en la lista. Descripcin Sobrecarga el mtodo add de la clase padre, adiciona un nuevo tem. Recibe como parmetro un objeto del tipo Object y retorna un Integer cuando los adiciona. Recorre la lista y suma la cantidad de filas con la propiedad eliminada igual a falso Dominio [Link] SIINCOExcepcion Define una excepcin genrica para el dominio de la aplicacin. Descripcin El constructor crea una nueva excepcin utilizando un mensaje de texto. El constructor crea una nueva excepcin partiendo de un mensaje y una excepcin.

128

Paquete Clase Descripcin Mtodos Pblicos static Objeto Nuevo (unObjeto : tipo Objeto) : tipo Objeto Paquete Clase Descripcin Atributos _servidor: tipo string SoloLectura _baseDatos: tipo string SoloLectura _usuario: tipo string SoloLectura _password: tipo string SoloLectura Constructor ParametrosSQL() Mtodos Pblicos Guardar(servidorNuevo: tipo string, baseDatosNuevo: tipo string, usuarioNuevo:tipo string, passwordNuevo:tipo string)

Dominio CreadorObjeto Se encarga de crear los diferentes tipos de objetos relacionados con las clases de dominio. Descripcin Recibe como parmetro un objeto y dependiendo del tipo de ste, retorna una nueva instancia del tipo de objeto. Dominio ParametrosSQL Recupera y almacena la configuracin de acceso a la base de datos Descripcin Especifica el objeto que contiene el objeto Lista. Especifica el tipo de objeto almacenado en la lista. Especifica el objeto que contiene el objeto Lista. Especifica el tipo de objeto almacenado en la lista. Descripcin Recupera los parmetros desde el archivo Settings Descripcin Guarda los parmetros ingresados en el archivo settings.

Paquete Aplicacin
Paquete Paquetes dependencia Clase Descripcin Atributos private static _objSingleton: tipo SIINCOManejador Mtodos Pblicos virtual Eliminar(unObjeto: tipo Objeto) tipo Boolean Aplicacin SIINCODominio, SIINCOPersistencia SIINCOManejador Manejador genrico de objetos que contiene mtodos que pueden ser heredados por los dems Manejadores de Objetos. Descripcin Representa a un nuevo manejador en caso de ser nuevo, sino contina con el ya creado. Descripcin Mtodo que se encarga de eliminar cualquier tipo de objeto que herede de esta clase. Devuelve verdadero si la puede eliminar correctamente. Mtodo que se encarga de guardar cualquier tipo de objeto que herede de esta clase. Devuelve verdadero si lo puede guardar correctamente. Mtodo que devuelve verdadero si existe el objeto a obtener. Este mtodo es usado por las clases que heredan este manejador. Singleton Mtodo que devuelve una Lista de objetos, dependiendo de la clase que lo hereda se obtienen los objetos correspondientes. Mtodo que devuelve un Dataset de objetos, dependiendo de la clase que lo hereda se obtienen los objetos correspondientes. Descripcin n/a Aplicacin SIINCODominio SIINCOManejador ManejadorAlumno Es la clase que se encarga de gestionar los objetos Alumno. Descripcin Representa a un nuevo manejador de Alumnos en caso de ser nuevo, sino contina utilizando el ya creado.

virtual Guardar(unObjeto: tipo Objeto) tipo Boolean

virtual Obtener(unObjeto: tipo Objeto) tipo Boolean static Instancia() : tipo SIINCOManejador virtual ObtenerTodos(unObjeto: tipo Objeto) tipo Lista virtual ObtenerDataSet(unObjeto: tipo Objeto) tipo DataSet Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorAlumno

129

static new Instancia() : tipo ManejadorAlumno Mtodos Pblicos override Guardar(unAlumno: tipo Objeto) tipo Boolean Mtodos Privados static Validar(unAlumno : tipo Alumno)

Singleton Descripcin Sobrecarga el mtodo padre, guarda un Alumno, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Descripcin Valida los datos de un Alumno verificando los datos identificadores, nombres, apellidos, documento y tipo de documento. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorCurso Es la clase que se encarga de gestionar los objetos Alumno. Descripcin Representa a un nuevo manejador de Cursos en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Curso, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Singleton Descripcin Valida los datos de un Alumno verificando los datos identificador y curso previo. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorGrupo Es la clase que se encarga de gestionar los objetos Grupo. Descripcin Representa a un nuevo manejador de Grupos en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Grupo, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Dado un Grupo, obtiene los datos de ese Grupo y los datos del PlanCurso al que pertenece. Obtiene falso si no lo encuentra Obtiene todos los Grupos existentes con los respectivos PlanesCursos a los que pertenece. Singleton Descripcin Valida los datos de un Grupo verificando los datos identificador, ao lectivo, turno y que pertenezca a un PlanCurso. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorMateria Es la clase que se encarga de gestionar los objetos Materia. Descripcin Representa a un nuevo manejador de Materia en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda una Materia, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente.

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorCurso Mtodos Pblicos override Guardar(unCurso: tipo Objeto) tipo Boolean static new Instancia() : tipo ManejadorCurso Mtodos Privados static Validar(unCurso : tipo Curso)

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorGrupo Mtodos Pblicos override Guardar(unGrupo: tipo Objeto) tipo Boolean

override Obtener(unGrupo: tipo Objeto) tipo Boolean override ObtenerTodos(unGrupo: tipo Objeto) tipo Lista static new Instancia() : tipo ManejadorGrupo Mtodos Privados static Validar(unGrupo : tipo Grupo)

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorMateria Mtodos Pblicos override Guardar(unaMateria: tipo Materia) tipo Boolean

130

static new Instancia() : tipo ManejadorMateria Mtodos Privados static Validar(unaMateria : tipo Materia)

Singleton Descripcin Valida los datos de una Materia verificando los datos identificador y nombre. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorPlan Es la clase que se encarga de gestionar los objetos Plan. Descripcin Representa a un nuevo manejador de Plan en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Plan, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Singleton Descripcin Valida los datos de un Plan verificando los datos identificador, nombre, fecha desde y fecha hasta, nota mnima y nota mxima y la nota mnima de probacin. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorPlanCurso Es la clase que se encarga de gestionar los objetos PlanCurso. Descripcin Representa a un nuevo manejador de PlanCursoen caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un PlanCurso, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Dado un PlanCurso, obtiene los datos del mismo adems del los del curso y el plan que lo componen. Obtiene todos los PlanesCuros existentes con los respectivos datos de Planes y Cursos que lo componen Singleton Descripcin Valida los datos de un PlanCurso verificando los datos curso, plan, mximo de materias insuficientes para promocin parcial, mximo de materias insuficientes para fallo en suspenso y que adems contenga al menos una materia. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorProfesor Es la clase que se encarga de gestionar los objetos Profesor. Descripcin Representa a un nuevo manejador de Profesor en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Profesor, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Singleton Descripcin Valida los datos de un Profesorverificando los datos identificador, nombres, apellidos, documento y tipo de

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorPlan Mtodos Pblicos override Guardar(unPlan: tipo Plan) tipo Boolean static new Instancia() : tipo ManejadorPlan Mtodos Privados static Validar(unPlan : tipo Plan)

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorPlanCurso Mtodos Pblicos override Guardar(unPlanCurso: tipo PlanCurso) tipo Boolean override Obtener(unPlanCurso: tipo Objeto) tipo Boolean override ObtenerTodos(unPlanCurso: tipo Objeto) tipo Lista static new Instancia() : tipo ManejadorPlanCurso Mtodos Privados

static Validar(unPlanCurso : tipo PlanCurso)

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorProfesor Mtodos Pblicos override Guardar(unProfesor: tipo Profesor) tipo Boolean static new Instancia() : tipo ManejadorProfesor Mtodos Privados static Validar(unProfesor : tipo Profesor)

131

documento. En caso de encontrar un error, dispara una excepcin. Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorTipoUsuario Mtodos Pblicos override Guardar(unTipoUsuario: tipo TipoUsuario) tipo Boolean static new Instancia() : tipo ManejadorTipoUsuarior Mtodos Privados static Validar(unTipoUsuario: tipo TipoUsuario) Aplicacin SIINCODominio SIINCOManejador ManejadorTipoUsuario Es la clase que se encarga de gestionar los objetos TipoUsuario. Descripcin Representa a un nuevo manejador de TipoUsuario en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un TipoUsuario, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Singleton Descripcin Valida los datos de un TipoUsuario verificando el dato identificador. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorUsuario Es la clase que se encarga de gestionar los objetos Usuario. Descripcin Representa a un nuevo manejador de Usuario en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Usuario, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Dado un Usuario, obtiene los datos del mismo adems de desencriptar la contrasea. Obtiene todos los Usuarios existentes con sus respectivas contraseas desencriptadas. Singleton Descripcin Valida los datos de un Usuario verificando los datos identificador, nombres, apellidos, documento, contraseas y tipo de usuario. En caso de encontrar un error, dispara una excepcin.

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorUsuario Mtodos Pblicos override Guardar(unUsuario: tipo Usuario) tipo Boolean override Obtener(unUsuario: tipo Objeto) tipo Boolean override ObtenerTodos(u Usuario: tipo Objeto) tipo Lista static new Instancia() : tipo ManejadorUsuarior Mtodos Privados static Validar(unUsuario: tipo Usuario)

[Link]. Mapeo de Clases a Tablas Por cada clase de Dominio persistente existir un mapeo a tabla en la base de datos respetando tanto las claves forneas como las primarias. En la siguiente tabla se detallan los mapeos de dichas clases con las tablas en la base de datos del sistema.
Paquete Clases Alumno Curso Grupo Materia Dominio Plan PlanCurso PlanCursoMateria Profesor TipoUsuario Usuario Tablas Alumnos Cursos Grupos Materias Planes PlanCursos PlanCursoMaterias Profesores TipoUsuarios Usuarios

Tablas 132

Clase Alumno _mIntAlumno: tipo int _mStrNombres: tipo string _mStrApellido1: tipo string _mStrApellido2: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrFechaNacimiento: tipo DateTime _mStrSexo: tipo string _mStrDireccion: tipo string _mStrBarrio string: tipo _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrEmail: tipo string _mBoolTutor: tipo bool _mStrNombreTutor: tipo string _mStrRelacionTutor: tipo string _mStrEnfermedades: tipo string _mStrMedicamentos: tipo string _mStrTratamientos: tipo string _mStrOtros: tipo string _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase Curso _mIntCurso: tipo int _mStrDescripcion: tipo int _mCursoPrevio: tipo Curso _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase Grupo _mIntGrupoID: tipo int _mStrGrupoIdentificador: tipo string _mPlanCurso: tipo PlanCurso _mStrDescripcion: tipo string _mIntAnio: tipo int _mStrTurno: tipo string _mIntMinimoAlumnos: tipo int _mIntMaximoAlumnos: tipo int _mDateFechaAlta {Objeto}.Version Clase Materia _mIntMateria: tipo int _mStrNombre: tipo string _mIntHorasSemanales: tipo int _mIntSesionesSemanales: tipo int _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase Plan _mIntPlan: tipo int _mStrNombre: tipo string _mStrDescripcion: tipo string _mDateFechaDesde: tipo DateTime _mDateFechaHasta: tipo DateTime _mDateFechaAlta: tipo DateTime _mIntNotaMinima: tipo int _mIntNotaMaxima: tipo int _mIntNotaMinimiaAprobable: tipo int {Objeto}.Version

Tabla Alumnos Alumno int Nombres varchar(50) Apellido1 varchar(30) Apellido2 varchar(30) TipoDocumento varchar(20) Documento varchar(20) FechaNacimiento DateTime Sexo varchar(1) Direccion varchar(50) Barrio varchar(50) Localidad varchar(50) Telefono varchar(20) Email varchar(50) Tutor DboBoolT:char(1) NombreTutor varchar(50) RelacionTutor varchar(50) Enfermedades text Medicamentos text Tratamientos text Otros text FechaAlta DateTime timeStamp timestamp Tabla Cursos Curso int Descripcion varchar(100) CursoPrevio int FechaAlta DateTime Timestamp timestamp Tabla Grupos Grupo int GrupoIdentificador varchar(2) Plan int, Curso int Descripcion varchar(100) Anio int Turno varchar(20) MinimoAlumnos int MaximoAlumnos int FechaAlta DateTime Timestamp timestamp Tabla Materias Materia int Nombre varchar(30) HorasSemanales int SesionesSemanales int FechaAlta DateTime Timestamp timestamp Tabla Planes Plan int Nombre varchar(30) Descripcion varchar(100) FechaDesde DateTime FechaHasta DateTime FechaAlta DateTime NotaMinima int NotaMaxima int NotaMinimiaAprobable int Timestamp timestamp

133

Clase PlanCurso _mPlan: tipo Plan _mCurso: tipo Curso _mIntInasistenciasPermitidas: tipo int _mIntMaximoMateriasInsuficientesPromocionParcial: tipo int _mIntMaximoMateriasInsuficientesFalloSuspenso: tipo int {Objeto}.Version Clase PlanCursoMaterias _mPlan: tipo Plan _mCurso: tipo Curso _mMateria: tipo Materia {Objeto}.Version Clase Profesor _mIntProfesor: tipo int _mStrNombres: tipo string _mStrApellidos: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrDireccion: tipo string _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrCelular: tipo string _mStrEmail: tipo string _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase TipoUsuario _mIntTipoUsuario: tipo int _mStrDescripcion: tipo string _mBoolConfiguracionBd: tipo bool _mBoolConfiguracionUsuarios: tipo bool _mBoolConfiguracionTipoUsuarios: tipo bool _mBoolFicheroAlumnos: tipo bool _mBoolFicheroProfesores: tipo bool _mBoolFicheroMaterias: tipo bool _mBoolFicheroPlanes: tipo bool _mBoolFicheroCursos: tipo bool _mBoolFicheroPlanCursos: tipo bool _mBoolGestionGrupos: tipo bool {Objeto}.Version Clase Usuario _mStrUsuario:tipo string _mStrClave:tipo string _mStrDocumento:tipo string _mStrNombres:tipo string _mStrApellidos:tipo string _mStrDireccion:tipo string _mStrTelefono:tipo string _mStrCelular:tipo string _mStrEmail:tipo string _mTipoUsuario:tipo TipoUsuario _mBoolInactivo:tipo bool _mDateFechaAlta:tipo DateTime {Objeto}.Version

Tabla PlanCursos Plan int Curso int InasistenciasPermitidas int MaximoMateriasInsuficientesPromocionParcial int MaximoMateriasInsuficientesFalloSuspenso int Timestamp timestamp Tabla PlanCursoMateria Plan int Curso int Materia int Timestamp timestamp Tabla Profesores Profesor int Nombres varchar(50) Apellidos varchar(50) TipoDocumento varchar(20) Documento varchar(20) Direccion varchar(50) Localidad varchar(30) Telefono varchar(20) Celular varchar(20) Email varchar(30) FechaAlta DateTime Timestamp timestamp Tabla TipoUsuarios TipoUsuario int Descripcion varchar(50) ConfiguracionBD DboBoolF:char(1) ConfiguracionUsuarios DboBoolF:char(1) ConfiguracionTipoUsuarios DboBoolF:char(1) FicheroAlumnos DboBoolF:char(1) FicheroProfesores DboBoolF:char(1) FicheroMaterias DboBoolF:char(1) FicheroPlanes DboBoolF:char(1) FicheroCursos DboBoolF:char(1) FicheroPlanCursos DboBoolF:char(1) GestionGrupos DboBoolF:char(1) TimeStamp timestamp Tabla Usuarios Usuario varchar(20) Clave varchar(80) Documento varchar(20) Nombres varchar(50) Apellidos varchar(50) Direccion varchar(50) Telefono varchar(20) Celular varchar(20) Email varchar(50) TipoUsuario int Inactivo DboBoolF:char(1) FechaAlta DateTime TimeStamp timestamp

134

Modelo de Datos Con las tablas obtenidas anteriormente en la pgina a continuacin se presenta el diagrama de las mismas.

2.5.6. Testeo Plan de Testeo Las pruebas de defectos tienen como objetivo revelar la presencia de defectos en el software y corroborar si este se ajusta a las especificaciones. Si los casos de testeo ejecutados no encuentran defectos, esto no significa que no existan. La tcnica que vamos a utilizar para realizar las pruebas, ser la denominada Funcional caja negra, que tiene las siguientes caractersticas: Es apropiado para hacer las pruebas del sistema. Los casos de prueba se derivan de las especificaciones del sistema. El Sistema se considera una caja negra cuyo comportamiento slo puede conocerse estudiando entradas y salidas.

135

El problema es encontrar el conjunto de entradas que causarn comportamiento defectuoso. Adems se complementara este testeo funcional mediante la tcnica de monkey test a fin de ampliar el alcance del testeo y poder detectar algn error que pudiera estarse pasando por alto. Comenzamos entonces a realizar el plan de testeo de acuerdo a los casos de uso relacionados con los requerimientos del sistema acordados a la primera iteracin.

ESPECIFICACIN DE CASOS DE TESTEO Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se puede dar de alta un Usuario inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de El nuevo usuario se da de Testeado con un usuario con mantenimiento de Usuarios (Men-> alta correctamente en el OK privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). sistema. Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al usuario de manera correcta: Usuario-> jlopez Inactivo-> No marcar Tipo de Usuario-> 1 - Supervisor Contrasea-> 1234 Repetir Contrasea-> 1234 Documento-> 2.625.890-8 Tipo de Documento-> CI Cdula de Identidad Nombres-> Jorge Apellidos-> Lpez Telfono-> 072-24541 Celular-> 099-123456 Email-> jlopez@[Link] Direccin-> Dr. Luis Alberto de Herrera 459 Localidad-> Paysand Fecha de Alta-> Sysdate (Automtico) Presionar la opcin Guardar.

TESTEO de Gestin de Usuarios SIINCO Configuracin 1 Mklivzov, Bcoppes

136

Propsito: Verificar que NO se puede dar de alta un Usuario que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de Usuarios (Men-> Error al guardar el privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). Usuario, ya existe el sistema con el mismo identificador Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al usuario de manera correcta: Usuario-> jlopez Inactivo-> No marcar Tipo de Usuario-> 1 - Supervisor Contrasea-> 1234 Repetir Contrasea-> 1234 Documento-> 2.625.890-8 Tipo de Documento-> CI Cdula de Identidad Nombres-> Jorge Apellidos-> Lpez Telfono-> 072-24541 Celular-> 099-123456 Email-> jlopez@[Link] Direccin-> Dr. Luis Alberto de Herrera 459 Localidad-> Paysand Fecha de Alta-> Sysdate (Automtico) Presionar la opcin Guardar.

Testeado OK

Propsito: Verificar que NO se puede dar de alta un Usuario inexistente en el sistema si se ingresan datos incoherentes. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 - Se debe reportar un Testeado con un usuario con mantenimiento de Usuarios (Men-> error especificando que OK privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). no se ingres alguno/s de los campos obligatorios Seleccionar la opcin Nuevo 2 Se debe reportar el error Verifique las Ingresar todos los tipos de inconsistencias de contraseas, las datos posibles. contraseas ingresadas son distintas 1 - Falta de campos obligatorios (documento, nombres, apellidos, Tipo de usuario) 2 - Ingresar contraseas distintas. Ante cada ingreso de inconsistencia ingresada presionar el botn Guardar

Propsito: Verificar que se puede modificar correctamente un usuario registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin del con un usuario con mantenimiento de Usuarios (Men-> usuario debe ser privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). registrada correctamente en el sistema. Seleccionar un usuario de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes al usuario de manera correcta: Presionar la opcin Guardar.

Testeado OK

137

Propsito: Verificar que NO se puede modificar un usuario registrado en el sistema si se ingresan datos inconsistentes. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 - Se debe reportar un Testeado con un usuario con mantenimiento de Usuarios (Men-> error especificando que OK privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). no se ingres alguno/s de los campos obligatorios Seleccionar un usuario de la lista que aparece en la pantalla principal y seleccionar Editar. 2 Se debe reportar el error Verifique las Ingresar todos los tipos de inconsistencias de contraseas, las contraseas ingresadas datos posibles. son distintas 1 - Falta de campos obligatorios (documento, nombres, apellidos, Tipo de usuario) 2 - Ingresar contraseas distintas. Ante cada ingreso de inconsistencia ingresada presionar el botn Modificar Propsito: Verificar que se puede eliminar correctamente un Usuario registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe realizar la baja con un usuario con mantenimiento de Usuarios (Men-> del usuario en el sistema. privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). Seleccionar un usuario de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar al usuario [Usuario] presionar el botn Confirmar

Error, No aparece la adverten cia de eliminaci n. Se corrige y se vuelve a ejecutar el caso. Testeado OK.

138

Propsito: Verificar que se puede emitir correctamente un informe de Usuarios existentes en el sistema, por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se debe emitir el con un usuario con mantenimiento de Usuarios (Men-> listado correspondiente privilegios de Administrador. Configuracin->Mantenimiento de Usuarios). por pantalla siguiendo el criterio de usuarios especificado por el En la lista principal de usuarios que aparece en Administrador. la pantalla principal (lista total de usuarios) especificar el criterio del informe. 2 Se debe emitir el listado correspondiente 1 Presionar el botn Listar. por impresora siguiendo el criterio de usuarios 2 Presionar el botn Imprimir. especificado por el Administrador. 3 Presionar el botn Exportar a Excel. Ingresar el nombre de la planilla a generar, seleccionar el directorio de guardado y confirmar 3 Se debe generar la planilla correspondiente la operacin. siguiendo el criterio de usuarios especificado por el Administrador, el nombre de la planilla ingresado y el directorio de guardado. Propsito: Verificar concurrencia. No se puede modificar el mismo usuario a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), Ingresar al sistema e ir Se debe reportar el error con dos usuarios con al formulario de mantenimiento de Usuarios Este registro de Usuario privilegios de Administrador. (Men-> Configuracin->Mantenimiento de puede haber sido Usuarios). modificado o eliminado por otro usuario. Seleccionar un usuario de la lista que aparece en la pantalla principal y seleccionar Editar. Desde otra terminal (2), Ingresar al sistema e ir al formulario de mantenimiento de Usuarios (Men-> Configuracin->Mantenimiento de Usuarios). Seleccionar el mismo usuario de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones del usuario y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones del usuario y seleccionar Guardar.

pantalla, por Testeado OK

Testeado O K

139

Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Caso 01

Testeo de Gestin de Alumnos SIINCO Ficheros 1 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede dar de alta un Alumno inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de El nuevo alumno se da de con un usuario con mantenimiento de Alumnos (Men-> Ficherosalta correctamente en el privilegios para realizar la >Alumnos). sistema. operacin (secretaria). Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al alumno de manera correcta: Numero -> Autogenerado si no se ingresa cdigo de alumno. Nombres-> "Sofa" Primer Apellido-> "Muela" Segundo Apellido-> "Charln" Documento-> "3.441.123-1" Tipo de Documento-> "CI" Fecha de Nacimiento-> "09/01/1996 Sexo-> Seleccionar "Femenino" Direccin-> "Florida 1392" Barrio-> "Centro" Localidad-> "Paysand" Telfono-> "072-23456" Email-> "sofialema@[Link]" Tutor-> seleccionar la opcin "Tutor" Nombre Tutor-> "Daro Charln" Relacin Tutor-> "To por parte de padre" Enfermedades-> "Alergia al polen" Tratamientos-> "ninguno conocido" Medicamentos-> "Alergin 200 mg" Otros-> No ingresar nada Fecha de Alta-> Sysdate (autogenerado) Presionar la opcin Guardar.

Resultado No carga el dato autogener ado correspon diente al nuevo alumno.

Se corrige y se vuelve a ejecutar el caso.

Testeado OK

140

02

Propsito: Verificar que NO se puede dar de alta un Alumno que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de Alumnos (Men-> FicherosError al guardar el privilegios para realizar la >Alumnos). Alumno, ya existe en el operacin (secretaria). sistema con el mismo identificador Seleccionar la opcin Nuevo Numero -> Nmero Existente en el Sistema. Nombres-> "Sofa" Primer Apellido-> "Muela" Segundo Apellido-> "Charln" Documento-> "3.441.123-1" Tipo de Documento-> "CI" Fecha de Nacimiento-> "09/01/1996 Sexo-> Seleccionar "Femenino" Direccin-> "Florida 1392" Barrio-> "Centro" Localidad-> "Paysand" Telfono-> "072-23456" Email-> "sofialema@[Link]" Tutor-> seleccionar la opcin "Tutor" Nombre Tutor-> "Daro Charln" Relacin Tutor-> "To por parte de padre" Enfermedades-> "Alergia al polen" Tratamientos-> "ninguno conocido" Medicamentos-> "Alergin 200 mg" Otros-> No ingresar nada Fecha de Alta-> Sysdate (autogenerado) Presionar la opcin Guardar.

Testeado OK

03

Propsito: Verificar que NO se puede dar de alta un Alumno inexistente en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento de Alumnos (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Alumnos). ingres alguno/s de los operacin (secretaria). campos obligatorios Seleccionar la opcin Nuevo Ingresar los datos del alumno omitiendo alguno de los campos obligatorios (Nombres, Primer Apellido, Segundo Apellido, Documento, Tipo Documento.) Seleccionar la opcin Guardar.

04

Propsito: Verificar que se puede modificar correctamente un Alumno registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin del con un usuario con mantenimiento de Alumnos (Men-> Ficherosalumno debe ser privilegios para realizar la >Alumnos). registrada correctamente operacin (secretaria). en el sistema. Seleccionar un Alumno de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes al alumno de manera correcta: Presionar la opcin Guardar.

Testeado OK

141

05

Propsito: Verificar que NO se puede modificar un Alumno registrado en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento de Usuarios (Men-> especificando que no se OK privilegios para realizar la Configuracin->Mantenimiento de Usuarios). ingres alguno/s de los operacin (secretaria). campos obligatorios Seleccionar un Alumno de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar los datos del alumno omitiendo alguno de los campos obligatorios (Nombres, Primer Apellido, Segundo Apellido, Documento, Tipo Documento.). Seleccionar la opcin Modificar.

06

Propsito: Verificar que se puede eliminar correctamente un Alumno registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe realizar la baja con un usuario con mantenimiento de Alumnos (Men-> Ficherosdel alumno en el sistema. privilegios para realizar la >Alumnos). operacin (secretaria). Seleccionar un alumno de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar al alumno nmero [NumeroAlumno] presionar el botn Confirmar

Error, No aparece la advertenci a de eliminaci n. Se corrige y se vuelve a ejecutar el caso. Testeado OK

07

Propsito: Verificar que se puede emitir correctamente un informe de Alumnos existentes en el sistema, por pantalla, por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se debe emitir el Testeado con un usuario con mantenimiento de Alumnos (Men-> Ficheroslistado correspondiente OK privilegios para realizar la >Alumnos). por pantalla siguiendo el operacin (secretaria). criterio de alumnos especificado por el En la lista principal de alumnos que aparece en usuario. la pantalla principal (lista total de alumnos) especificar el criterio del informe. 2 Se debe emitir el listado correspondiente 1 Presionar el botn Listar. por impresora siguiendo el criterio de alumnos 2 Presionar el botn Imprimir. especificado por el usuario. 3 Presionar el botn Exportar a Excel. Ingresar el nombre de la planilla a generar, seleccionar el directorio de guardado y confirmar 3 Se debe generar la planilla correspondiente la operacin. siguiendo el criterio de alumnos especificado por el usuario, el nombre de la planilla ingresado y el directorio de guardado.

142

08

Propsito: Verificar que se puede buscar e individualizar un alumno o un grupo a travs de un criterio especificado. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se deben mostrar Testeado con un usuario con mantenimiento de Alumnos (Men-> Ficherostodos los alumnos que OK privilegios para realizar la >Alumnos). comiencen con la letra operacin (secretaria). a en el nombre. En la lista principal de alumnos que aparece en la pantalla principal (lista total de alumnos); O 2 Se deben mostrar los bien accediendo desde el formulario de alumnos que contengan la mantenimiento de alumnos a travs del botn letra a en el nombre. buscar, especificar el criterio de bsqueda. 1 Ingresar a en el filtro del campo Nombres 2 ingresar Nombres

*a en el filtro del campo

09

Propsito: Verificar concurrencia. No se puede modificar el mismo alumno a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), Ingresar al sistema e ir Se debe reportar el error con dos usuarios con al formulario de mantenimiento de Alumnos Este registro de Alumno privilegios de Administrador. (Men-> Ficheros->Alumnos). puede haber sido modificado o eliminado por otro usuario. Seleccionar un alumno de la lista que aparece en la pantalla principal y seleccionar Editar. Desde otra terminal (2), Ingresar al sistema e ir al formulario de mantenimiento de Alumnos (Men-> Ficheros->Alumnos). Seleccionar el mismo alumno de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones del alumno y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones del alumno y seleccionar Guardar.

Testeado OK

143

Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Caso 01

Testeo de Gestin de Profesores SIINCO Ficheros 1 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede dar de alta un Profesor inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de El nuevo profesor se da con un usuario con mantenimiento de Profesores (Men-> Ficheros- de alta correctamente en privilegios para realizar la >Profesores). el sistema. operacin (secretaria). Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al profesor de manera correcta: Cdigo-> Autogenerado si no se Ingresa. Nombres-> "Diego" Apellidos-> "Souza Prez" Documento-> "3.415.234-1" Tipo de Documento-> "CI" - Cdula Direccin-> "Queguay 3245" Localidad-> "Paysand" Telfono-> "072-24545" Celular-> "094-444222" Email-> "dsouza@[Link]" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Resultado Testeado OK

02

Propsito: Verificar que NO se puede dar de alta un Profesor que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de profesores (Men-> Ficheros- Error al guardar el privilegios para realizar la >Profesores). Profesor, ya existe en el operacin (secretaria). sistema con el mismo identificador Seleccionar la opcin Nuevo Cdigo-> Ingresar un cdigo ya existente en el sistema. Nombres-> "Diego" Apellidos-> "Souza Prez" Documento-> "3.415.234-1" Tipo de Documento-> "CI" - Cdula Direccin-> "Queguay 3245" Localidad-> "Paysand" Telfono-> "072-24545" Celular-> "094-444222" Email-> "dsouza@[Link]" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Testeado OK

144

03

Propsito: Verificar que NO se puede dar de alta un Profesor inexistente en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento de Profesor (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Profesores). ingres alguno/s de los operacin (secretaria). campos obligatorios. Seleccionar la opcin Nuevo Ingresar los datos del profesor omitiendo alguno de los campos obligatorios (Nombres, Apellidos, Documento, Tipo Documento.) Seleccionar la opcin Guardar

04

Propsito: Verificar que se puede modificar correctamente un Profesor registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin del con un usuario con mantenimiento de Profesores (Men-> Ficheros- profesor debe ser privilegios para realizar la >Profesores). registrada correctamente operacin (secretaria). en el sistema. Seleccionar un Profesor de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes al profesor de manera correcta: Presionar la opcin Guardar.

Testeado OK

05

Propsito: Verificar que NO se puede modificar un Profesor registrado en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento Profesores (Men-> Ficherosespecificando que no se OK. privilegios para realizar la >Profesores). ingres alguno/s de los operacin (secretaria). campos obligatorios. Seleccionar un Profesor de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar los datos del profesor omitiendo alguno de los campos obligatorios (Nombres, Apellidos, Documento, Tipo Documento.) Seleccionar la opcin Modificar

06

Propsito: Verificar que se puede eliminar correctamente un Profesor registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe realizar la baja con un usuario con mantenimiento de Profesores (Men-> Ficheros- del profesor en el sistema. privilegios para realizar la >Profesores). operacin (secretaria). Seleccionar un profesor de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar al profesor[NumeroProfesor]?. presionar el botn Confirmar

Error, No aparece la advertenci a de eliminaci n. Se corrige y se vuelve a ejecutar el caso. Testeado OK

145

07

08

Propsito: Verificar que se puede emitir correctamente un informe de Profesores existentes en el sistema, por pantalla, por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se debe emitir el Testeado con un usuario con mantenimiento de Profesores (Men-> Ficheros- listado correspondiente OK privilegios para realizar la >Profesores). por pantalla siguiendo el operacin (secretaria). criterio de profesores especificado por el En la lista principal de profesores que aparece en la pantalla principal (lista total de profesores) usuario. especificar el criterio del informe. 2 Se debe emitir el listado correspondiente 1 Presionar el botn Listar. por impresora siguiendo el criterio de profesores 2 Presionar el botn Imprimir. especificado por el usuario. 3 Presionar el botn Exportar a Excel. Ingresar el nombre de la planilla a generar, seleccionar el directorio de guardado y confirmar 3 Se debe generar la planilla correspondiente la operacin. siguiendo el criterio de profesores especificado por el usuario, el nombre de la planilla ingresado y el directorio de guardado. Propsito: Verificar que se puede buscar e individualizar un profesor o un grupo a travs de un criterio especificado. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se deben mostrar Testeado con un usuario con mantenimiento de Profesores (Men-> Ficheros- todos los profesores que OK privilegios para realizar la >Profesores). comiencen con la letra operacin (secretaria). a en el nombre. En la lista principal de profesores que aparece en la pantalla principal (lista total de profesores); 2 Se deben mostrar los O bien accediendo desde el formulario de profesores que contengan mantenimiento de profesores a travs del botn la letra a en el nombre. buscar, especificar el criterio de bsqueda. 1 Ingresar a en el filtro del campo Nombres 2 ingresar Nombres

*a en el filtro del campo

146

09

Propsito: Verificar concurrencia. No se puede modificar el mismo profesor a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), Ingresar al sistema e ir Se debe reportar el error con dos usuarios con al formulario de mantenimiento de Profesores Este registro de Profesor privilegios de Administrador. (Men-> Ficheros-> Profesores). puede haber sido modificado o eliminado por otro usuario. Seleccionar un profesor de la lista que aparece en la pantalla principal y seleccionar Editar. Desde otra terminal (2), Ingresar al sistema e ir al formulario de mantenimiento de Profesores (Men-> Ficheros-> Profesores). Seleccionar el mismo profesor de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones del profesor y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones del profesor y seleccionar Guardar.

Testeado OK

147

Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Caso 01

Testeo de Gestin de Materias SIINCO Ficheros 1 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede dar de alta una Materia inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de La nueva Materia se da con un usuario con mantenimiento de Materias (Men-> Ficherosde alta correctamente en privilegios para realizar la >Materias). el sistema. operacin (secretaria). Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al Materia de manera correcta: Cdigo-> Autogenerado si no se ingresa. Nombre-> "Matemticas" Horas Semanales-> "3" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Resultado Testeado OK

02

Propsito: Verificar que NO se puede dar de alta una Materia que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de Materias (Men-> FicherosError al guardar el privilegios para realizar la >Materias). Materia, ya existe en el operacin (secretaria). sistema con el mismo identificador Seleccionar la opcin Nuevo Cdigo-> Ingresar nmero existente en el sistema. Nombre-> "Matemticas" Horas Semanales-> "3" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Testeado OK

03

Propsito: Verificar que NO se puede dar de alta una Materia inexistente en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento Materias (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Materias). ingres el campo nombre operacin (secretaria). y es obligatorio. Seleccionar una materia de la lista que aparece en la pantalla principal y seleccionar Editar. Ingresar los datos de la materia omitiendo el campo obligatorio nombre. Seleccionar la opcin Modificar

148

04

Propsito: Verificar que se puede modificar correctamente una Materia registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin de la con un usuario con mantenimiento de Materias (Men-> FicherosMateria debe ser privilegios para realizar la >Materias). registrada correctamente operacin (secretaria). en el sistema. Seleccionar una Materia de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes a la Materia de manera correcta: Presionar la opcin Guardar.

Testeado OK

05

Propsito: Verificar que NO se puede modificar una Materia registrado en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento Materias (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Materias). ingres el campo nombre operacin (secretaria). y es obligatorio. Seleccionar la opcin Nuevo Ingresar los datos de la materia omitiendo el campo obligatorio nombre. Seleccionar la opcin Guardar

06

Propsito: Verificar que se puede eliminar correctamente una Materia registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe realizar la baja con un usuario con mantenimiento de Materias (Men-> Ficherosdel Materia en el sistema. privilegios para realizar la >Materias). operacin (secretaria). Seleccionar un Materia de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar la materia nmero [NumeroMateria]? presionar el botn Confirmar

Error, No aparece la advertenci a de eliminaci n. Se corrige y se vuelve a ejecutar el caso.

07

Testeado OK Propsito: Verificar que se puede emitir correctamente un informe de Materias existentes en el sistema, por pantalla, por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se debe emitir el Testeado con un usuario con mantenimiento de Materias (Men-> Ficheroslistado correspondiente OK privilegios para realizar la >Materias). por pantalla siguiendo el operacin (secretaria). criterio de Materias En la lista principal de Materias que aparece en especificado por el usuario. la pantalla principal (lista total de Materias) especificar el criterio del informe. 2 Se debe emitir el listado correspondiente 1 Presionar el botn Listar. por impresora siguiendo el criterio de Materias 2 Presionar el botn Imprimir. especificado por el usuario. 3 Presionar el botn Exportar a Excel. Ingresar el nombre de la planilla a generar, seleccionar el directorio de guardado y confirmar 3 Se debe generar la planilla correspondiente la operacin. siguiendo el criterio de Materias especificado por el usuario, el nombre de la planilla ingresado y el directorio de guardado.

149

08

Propsito: Verificar que se puede buscar e individualizar una Materia o un grupo a travs de un criterio especificado. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se deben mostrar Testeado con un usuario con mantenimiento de Materias (Men-> Ficherostodas las Materias que OK privilegios para realizar la >Materias). comiencen con la letra operacin (secretaria). a en el nombre. En la lista principal de Materias que aparece en la pantalla principal (lista total de Materias); O 2 Se deben mostrar las bien accediendo desde el formulario de Materias que contengan la mantenimiento de Materias a travs del botn letra a en el nombre. buscar, especificar el criterio de bsqueda. 1 Ingresar a en el filtro del campo Nombre 2 ingresar Nombres

*a en el filtro del campo

09

Propsito: Verificar concurrencia. No se puede modificar la misma Materia a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), Ingresar al sistema e ir Se debe reportar el error con dos usuarios con al formulario de mantenimiento de Materias Este registro de Materia privilegios de Administrador. (Men-> Ficheros-> Materias). puede haber sido modificado o eliminado Seleccionar una materia de la lista que aparece por otro usuario. en la pantalla principal y seleccionar Editar. Desde otra terminal (2), Ingresar al sistema e ir al formulario de mantenimiento de Materias (Men-> Ficheros-> Materias). Seleccionar la misma materia de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones de la materia y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones de la materia y seleccionar Guardar.

Testeado OK

150

Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Caso 01

Testeo de Gestin de Planes SIINCO Ficheros 1 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Propsito: Verificar que se puede dar de alta un Plan inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de con un usuario con mantenimiento de Planes (Men-> Ficherosprivilegios para realizar la >Planes). operacin (secretaria). Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes al profesor de manera correcta: Cdigo-> Autogenerado si no se ingresa Nombre-> "Plan Piloto de Ciclo Bsico" Descripcin-> "Ingresar una descripcin" Fecha Desde-> "01/01/2008" Fecha Hasta-> "31/12/2009" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Resultado Esperado El nuevo plan se da de alta correctamente en el sistema.

Resultado Error: la comparaci n de fechas se encuentra invertida.

Se corrige y se vuelve a ejecutar el caso.

Testeado OK

02

Propsito: Verificar que NO se puede dar de alta un Planes que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de planes (Men-> FicherosError al guardar el Plan, privilegios para realizar la >Planes). ya existe en el sistema operacin (secretaria). con el mismo identificador Seleccionar la opcin Nuevo Cdigo-> Ingresar un cdigo existente en el sistema. Nombre-> "Plan Piloto de Ciclo Bsico" Descripcin-> "Ingresar una descripcin" Fecha Desde-> "01/01/2008" Fecha Hasta-> "31/12/2009" Fecha de Alta-> Sysdate (automtico) Presionar la opcin Guardar.

Testeado OK

03

Propsito: Verificar que NO se puede dar de alta un Plan inexistente en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento Planes (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Planes). ingres alguno/s de los operacin (secretaria). campos obligatorio. Seleccionar la opcin Nuevo Ingresar los datos del plan omitiendo alguno de sus campos obligatorios (Nombre, Fecha desde, Nota mxima, Nota mnima, Mnimo aprobable) Seleccionar la opcin Guardar

151

04

Propsito: Verificar que se puede modificar correctamente un Plan registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin del plan con un usuario con mantenimiento de Planes (Men-> Ficherosdebe ser registrada privilegios para realizar la >Planes). correctamente en el operacin (secretaria). sistema. Seleccionar un plan de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes al plan de manera correcta:

Testeado OK

05

Presionar la opcin Guardar. Propsito: Verificar que NO se puede modificar un plan registrado en el sistema si no se ingresan todos los campos obligatorios. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento Planes (Men-> Ficherosespecificando que no se OK privilegios para realizar la >Planes). ingres alguno/s de los operacin (secretaria). campos obligatorio. Seleccionar un plan de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar los datos del plan omitiendo alguno de sus campos obligatorios (Nombre, Fecha desde, Nota mxima, Nota mnima, Mnimo aprobable) Seleccionar la opcin Modificar Propsito: Verificar que se puede eliminar correctamente un Plan registrado en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe realizar la baja con un usuario con mantenimiento de Planes (Men-> Ficherosdel plan en el sistema. privilegios para realizar la >Planes). operacin (secretaria). Seleccionar un plan de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar el plan nmero [Numero Plan]?. presionar el botn Confirmar

06

Error, No aparece la advertenci a de eliminaci n. Se corrige y se vuelve a ejecutar el caso.

07

Testeado OK Propsito: Verificar que se puede emitir correctamente un informe de Planes existentes en el sistema, por pantalla, por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se debe emitir el Testeado con un usuario con mantenimiento de Planes (Men-> Ficheroslistado correspondiente OK privilegios para realizar la >Planes). por pantalla siguiendo el operacin (secretaria). criterio de planes En la lista principal de planes que aparece en la especificado por el usuario. pantalla principal (lista total de planes) 2 Se debe emitir el especificar el criterio del informe. listado correspondiente por impresora siguiendo el 1 Presionar el botn Listar. criterio de planes especificado por el 2 Presionar el botn Imprimir. usuario. 3 Se debe generar la 3 Presionar el botn Exportar a Excel. planilla correspondiente Ingresar el nombre de la planilla a generar, siguiendo el criterio de seleccionar el directorio de guardado y confirmar planes especificado por el la operacin. usuario, el nombre de la planilla ingresado y el directorio de guardado.

152

08

Propsito: Verificar que se puede buscar e individualizar un plan o un grupo a travs de un criterio especificado. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se deben mostrar Testeado con un usuario con mantenimiento de Planes (Men-> Ficherostodos los planes que OK privilegios para realizar la >Planes). comiencen con la letra operacin (secretaria). a en el nombre. En la lista principal de planes que aparece en la pantalla principal (lista total de planes); O bien 2 Se deben mostrar los accediendo desde el formulario de planes que contengan la mantenimiento de planes a travs del botn letra a en el nombre. buscar, especificar el criterio de bsqueda. 1 Ingresar a en el filtro del campo Nombre 2 ingresar Nombre

*a en el filtro del campo

09

Propsito: Verificar concurrencia. No se puede modificar el mismo plan a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), Ingresar al sistema e ir Se debe reportar el error con dos usuarios con al formulario de mantenimiento de Planes Este registro de Plan privilegios de Administrador. (Men-> Ficheros-> Planes). puede haber sido modificado o eliminado Seleccionar un plan de la lista que aparece en la por otro usuario. pantalla principal y seleccionar Editar. Desde otra terminal (2), Ingresar al sistema e ir al formulario de mantenimiento de Planes (Men-> Ficheros-> Planes). Seleccionar el mismo plan de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones del plan y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones del plan y seleccionar Guardar.

Testeado OK

153

Ttulo Sistema Mdulo Iteracin Responsable Especificacin


Caso 01

Testeo de Relacionamiento del Plan, Cursos, Materias SIINCO Ficheros 1 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede dar de alta una Relacin inexistente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de La nueva relacin se da con un usuario con mantenimiento de Planes (Men-> Ficherosde alta correctamente en privilegios para realizar la >Composicin de Planes). el sistema. operacin (secretaria). Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes a la relacin de manera correcta: Plan-> Seleccionar un plan existente en el Sistema Curso-> Seleccionar un curso existente en el Sistema Inasistencias Permitidas-> 25 Max Mat Ins. Promo, Parcial-> 3 Max Mat Ins. Fallo Suspenso-> -> 6 Materias-> Agregar 10 materias existentes en el Sistema. Presionar la opcin Guardar.

Resultado Testeado OK

02

Propsito: Verificar que NO se puede dar de alta una Relacin que ya existe en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar el error con un usuario con mantenimiento de Planes (Men-> Ficheros-> Error al guardar el privilegios para realizar la Composicin de Planes). Plan/Curso, ya existe en operacin (secretaria). el sistema con el mismo identificador Seleccionar la opcin Nuevo Ingresar todos los campos correspondientes a la relacin de manera correcta: Plan-> Seleccionar un plan existente en el Sistema Curso-> Seleccionar un curso existente en el Sistema Inasistencias Permitidas-> 25 Max Mat Ins. Promo, Parcial-> 3 Max Mat Ins. Fallo Suspenso-> -> 6 Materias-> Agregar 10 materias existentes en el Sistema. Presionar la opcin Guardar.

Testeado OK

154

03

Propsito: Verificar que NO se puede dar de alta una Relacin inexistente no se ingresan todos los campos obligatorios Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento de Planes (Men-> Ficheros-> especificando que no se OK privilegios para realizar la Composicin de Planes). ingres alguno/s de los operacin (secretaria). campos obligatorio. Seleccionar la opcin Nuevo. Ingresar los datos de la relacin omitiendo alguno de sus campos obligatorios (Plan, Curso, Inasistencias Permitidas, Mximo materias insuficientes Promocin Parcial, Mximo materias insuficientes Fallo en Suspenso, Alguna materia) Seleccionar la opcin Guardar

04

Propsito: Verificar que se puede modificar correctamente una Relacin registrada en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de La modificacin de la con un usuario con mantenimiento de Planes (Men-> Ficheros-> relacin debe ser privilegios para realizar la Composicin de Planes). registrada correctamente operacin (secretaria). en el sistema. Seleccionar una relacin de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar todos los campos correspondientes a la relacin de manera correcta: Presionar la opcin Guardar.

Testeado OK

05

Propsito: Verificar que NO se puede modificar una relacin registrada en el sistema si se ingresan datos inconsistentes. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe reportar un error Testeado con un usuario con mantenimiento de Planes (Men-> Ficheros-> especificando que no se OK privilegios para realizar la Composicin de Planes). ingres alguno/s de los operacin (secretaria). campos obligatorio. Seleccionar una relacin de la lista que aparece en la pantalla principal y seleccionar Editar. Modificar los datos de la relacin omitiendo alguno de sus campos obligatorios (Plan, Curso, Inasistencias Permitidas, Mximo materias insuficientes Promocin Parcial, Mximo materias insuficientes Fallo en Suspenso, Alguna materia) Apretar el botn Guardar

06

Propsito: Verificar que se puede eliminar correctamente una Relacin registrada en el sistema. Estar logueado al sistema con un usuario con privilegios para realizar la operacin (secretaria). Ingresar al sistema e ir al formulario de mantenimiento de Planes (Men Composicin de Planes. Seleccionar una relacin de la lista que aparece en la pantalla principal y seleccionar Eliminar. Ante el pedido de confirmacin de Desea eliminar el plan / curso nmero [Numero Plan]?. presionar el botn Confirmar Se debe realizar la baja de la relacin en el sistema. Testeado OK

155

07

Propsito: Verificar que se puede emitir correctamente un informe de Relaciones por impresora e importar a planilla Excel. Estar logueado al sistema Ingresar al sistema e ir al formulario de con un usuario con mantenimiento de Planes (Men-> Ficheros-> privilegios para realizar la Composicin de Planes). operacin (secretaria). En la lista principal de planes que aparece en la pantalla principal (lista total de relaciones) especificar el criterio del informe. 1 Presionar el botn Listar. 2 Presionar el botn Imprimir.

existentes en el sistema, por pantalla, 1 Se debe emitir el listado correspondiente por pantalla siguiendo el criterio de relaciones especificado por el usuario. 2 Se debe emitir el listado correspondiente por impresora siguiendo el criterio de relaciones especificado por el usuario. Testeado OK

08

3 Presionar el botn Exportar a Excel. Ingresar el nombre de la planilla a generar, seleccionar el directorio de guardado y confirmar 3 Se debe generar la planilla correspondiente la operacin. siguiendo el criterio de relaciones especificado por el usuario, el nombre de la planilla ingresado y el directorio de guardado. Propsito: Verificar que se puede buscar e individualizar una relacin o un grupo a travs de un criterio especificado. Estar logueado al sistema Ingresar al sistema e ir al formulario de 1 Se deben mostrar Testeado con un usuario con mantenimiento de Planes (Men-> Ficheros-> todos los planes que OK privilegios para realizar la Composicin de Planes). comiencen con la letra operacin (secretaria). a en el nombre. En la lista principal de relaciones que aparece en la pantalla principal (lista total de relaciones); 2 Se deben mostrar los O bien accediendo desde el formulario de planes que contengan la mantenimiento de relaciones a travs del botn letra a en el nombre. buscar, especificar el criterio de bsqueda. 1 Ingresar a en el filtro del campo Descripcin. 2 ingresar *a en el filtro del campo Descripcin. Propsito: Verificar concurrencia. No se puede modificar la misma relacin PCM a la vez desde 2 terminales. Estar logueado al sistema Desde una terminal (1), ingresar al sistema e ir Se debe reportar el error Testeado con dos usuarios con al formulario de mantenimiento de Planes Este registro de Relacin OK privilegios de Administrador. (Men-> Ficheros->Composicin de Planes). PCM puede haber sido modificado o eliminado Seleccionar una relacin de la lista que aparece por otro usuario. en la pantalla principal y seleccionar Editar. Desde otra terminal (2), ingresar al sistema e ir al formulario de mantenimiento de Planes (Men-> Ficheros-> Composicin de Planes). Seleccionar la misma relacin de la lista que aparece en la pantalla principal y seleccionar Editar. Desde la terminal 1, realizar las modificaciones de la relacin y seleccionar Guardar registrando los cambios. Desde la terminal 2 realizar las modificaciones de la relacin y seleccionar Guardar.

09

156

[Link]. Conclusiones del Testeo El hecho de haber realizado el testeo en forma exhaustiva, nos ha permitido detectar pequeas fallas en el diseo y la generacin del sistema asegurando que el producto final satisfaga las necesidades del cliente y adems se encuentre conforme a las especificaciones. Resumen del testeo: Cantidad de casos ejecutados: 53 Cantidad de errores detectados: 7 Cantidad de defectos corregidos: 7 Cantidad de defectos pendientes: 0

2.5.7 Resumen de la Iteracin I. Como resumen de esta iteracin podemos afirmar que se completaron todos los puntos planificados para la misma pero tambin debemos resaltar algunos imponderables que surgieron durante su curso y que no haban considerados en la planificacin y estimacin de tiempos. De estos imponderables resaltamos: 1. Se agrego un nuevo mdulo a la iteracin correspondiente, la gestin de Planes de Estudio. Como ya es sabido, en esta parte del desarrollo del sistema, el equipo se focaliz en la creacin y gestin de los ficheros bsicos que manejar el mismo ya que esta es la informacin vital que necesitan todas las iteraciones posteriores. Cumpliendo con esto, se crearon los ficheros de alumnos, profesores, materias, cursos, grupos y planes; pero adems, durante este proceso se detect que era necesario el crear un fichero adicional que manejar el concepto de Plan de Estudio. Si bien en los ficheros que creamos ya se menciona al Plan, este no es ms que un simple mantenimiento donde se ingresan datos bsicos como su identificador, la descripcin, detalle de notas, etc. Ms all de este fichero, el concepto de plan de estudios que debimos agregar se trata especficamente del relacionamiento de un plan con sus respectivos cursos y materias para crear un ambiente del cual se desprender todo el manejo de notas, inscripciones y dems actividades del colegio. Para lograr esto, creamos una nueva interface (detallada en el anlisis y diseo de la iteracin) que permite a un usuario con ciertos privilegios la creacin de estas relaciones pudiendo seleccionar uno de los planes existentes en la base y asignarle los correspondientes cursos que lo compondrn y a sus vez las materias que tendrn cada uno de estos cursos. Tanto en el caso de los cursos como las materias, el usuario tambin deber seleccionarlos de la coleccin de datos existentes en la base de datos. Si bien este nuevo mdulo es muy importante para el desarrollo del proyecto y mejora lo planificado anteriormente, su inclusin tambin afecta los tiempos estimados y deriva en un ajuste de la planificacin que puede verse en el estudio de avance de la iteracin en el ANEXO VIII. 2. Dificultades en la capacitacin y manejo de las herramientas. Mencionamos esta situacin ya que a pesar de que nuestro equipo asign tiempo de capacitacin para el manejo de las herramientas de anlisis y diseo, debemos decir que este tiempo no fue suficiente ya que la complejidad de las mismas; sumada a nuestra inexperiencia en su manejo, result en un desvo en el cronograma diseado para la iteracin. Es as que una vez comenzada con las tareas propiamente dichas, se debi realizar un sobreesfuerzo poniendo foco en la continuacin de aprendizaje. Se tomo esta decisin ya que de otra manera el buen fin del proyecto podra verse afectado y el retraso de fechas de la iteracin podra ser an mayor. Este retraso puede verse en el estudio de avance de la iteracin en el ANEXO VIII. Conclusin: La iteracin I, no se vio afectada en lo que a alcance se refiere ya que no se acot lo planificado sino que por el contrario, se extendi. Por otra parte la iteracin si produjo un desvo considerable en los tiempos del proyecto total lo que resultar en una modificacin de la estrategia con la que encararemos las futuras iteraciones intensificando el tiempo asignado al proyecto por cada uno de los integrantes de nuestro equipo y adems poniendo especial foco en las problemticas surgidas hasta el momento para que estas situaciones no vuelvan a repetirse. 157

2.6 ITERACION II
2.6.1. Reunin con el Cliente Evaluacin del Cliente Lo implementado hasta el momento se ajusta a lo planificado y al funcionamiento del Colegio. Si bien existieron algunas modificaciones durante la primera iteracin, hay que destacar que el producto obtenido hasta el momento satisface las expectativas del cliente. Debemos agregar s, que durante la reunin mantenida ste nos marc ciertos detalles a tener en cuenta. El nombre del campo Nmero de alumno debe cambiarse por el de Matrcula. Agregar el lugar y la fecha de jura de la bandera. Agregar colegio donde curs y / o egres de educacin Primaria. Agregar lugar de nacimiento. Agregar nombre y apellido del Padre y la Madre. Agregar el concepto de materia computable. Atendiendo al pedido del cliente y dado que se tratan de impactos muy reducidos, nuestro equipo decidi agregarlos durante el curso de la iteracin II ya que estas modificaciones no tomarn ningn tiempo importante y en consecuencia no afectarn la planificacin. Adems, conjuntamente con el cliente se llego a la conclusin de que era inminente brindarle al sistema la posibilidad de manejar el concepto de Ao Lectivo con el fin de permitir realizar diferentes tareas, controles y validaciones dependiendo de la etapa del ao en que se encuentre. Dentro de la presente iteracin, se realizarn las siguientes modificaciones a la versin del producto resultante de la Iteracin I. Manejo de Ao Lectivo - Comprender y manejar el concepto de ao lectivo permitiendo que el sistema adquiera una inteligencia que le permita ser capaz de discernir entre las distintas tareas que debe permitir realizar en cada etapa del ao y adems efectuar controles y validaciones correspondientes a cada una de estas etapas. Inscripciones de Alumnos - Gestionar las inscripciones de los alumnos a los cursos que se dictaran durante el Ao. Estas inscripciones estarn sujetas a distintos controles y validaciones que sern tratadas a lo largo de la iteracin. Ingreso de Notas - Crear el mdulo de ingreso de notas de los alumnos. Este ingreso estar sujeto a ciertas reglas como el mximo y mnimo del valor de la calificacin y adems y sern el input que necesitar la verificacin de aprobacin. - Cabe agregar adems que en principio estaremos manejando tres tipos de calificaciones: Notas finales Exmenes Carga Histrica (ingreso de escolaridad) Ingreso de Inasistencias. - Mdulo para el ingreso de las inasistencias de los alumnos a fin de poder validar posteriormente la aprobacin de un curso segn las reglas de asistencias. Proceso de Grupos - Permitir que el sistema realice el proceso de cada uno de los grupos que componen cada curso de un ao lectivo. De este proceso deber resultar una evaluacin final que constar de una nota y un concepto para cada alumno dada la cantidad de materias que el mismo apruebe o deje pendientes. 158

Manejo de perodos de Exmenes. - Realizar una gestin y el manejo de los distintos perodos de exmenes marcados por el Plan de estudios dictado por el CES.

Procesos a tratar, correspondientes a lo definido para esta iteracin:


Identificacin IP10 IP11 IP12 IP13 IP14 IP15 IP16 IP17 Proceso Manejo de Ao Lectivo Inscripciones de Alumnos Ingreso de notas finales Ingreso de resultado de exmenes. Ingreso de escolaridades Ingreso de Inasistencias Proceso de Grupos Manejo de Perodos de examen. Descripcin Manejar el concepto de Ao Lectivo y realizar todos los controles y validaciones que el mismo implica en cada etapa Gestin de las inscripciones de los Alumnos. Permite el ingreso de las notas finales de cada alumno con el fin de evaluar la aprobacin del mismo. Ingreso de los resultados de los exmenes de aquellos alumnos que lo realizaron ya sea por bajo rendimiento o por curso libre. Permite la carga histrica de actuaciones de un alumno. Permite ingresar el total de inasistencias de un alumno durante un ao lectivo. Procesar la informacin recabada para cada grupo del colegio tomando las resoluciones pertinentes segn el plan para cada uno de sus alumnos. Gestionar y manejar los distintos perodos de exmenes rigentes para un plan.

De estos Procesos tomamos las siguientes conclusiones en conjunto con el cliente para que nos ayuden en la prxima etapa de anlisis. IP10: Se refiere a un proceso interno donde dependiendo de la etapa del ao en la que se encuentre y la cual ser marcada por un usuario con suficientes privilegios, realizar distintos controles y validaciones que se ajustarn a la mecnica y tiempos de la gestin colegial. IP11: Proceso mediante el cual, un usuario calificado realiza las inscripciones de los alumnos a los cursos que se dictarn durante el ao. En este proceso al alumno se le asigna un grupo de los ya existentes y ser responsabilidad del usuario la decisin del grupo y el turno que le corresponder. Este punto fue resaltado en la reunin con el cliente ya que las condiciones que un alumno puede llegar a tener para formar parte de un grupo o un turno son particulares a cada caso y deben ser tratadas por separado y siguiendo un criterio humano. IP12: Se trata de un proceso donde el usuario podr elegir a un alumno o grupo y registrar las notas finales del desempeo del mismo. IP13: Al igual que en el punto anterior se trata de un proceso de ingreso de notas que en este caso se trata de resultados de exmenes. Se deber tener en cuenta que solo se podrn ingresar resultados de exmenes a aquellos alumnos que les corresponda. IP14: El sistema debe manejar la posibilidad de albergar a un alumno proveniente de otra institucin donde ya tiene un desempeo y por ende evaluaciones. Para ello el sistema debe permitir la carga histrica de esta informacin para que sea tenida en cuenta en el futuro del alumno en el colegio. IP15: Mdulo mediante el cual el usuario podr ingresar el total de inasistencias de un alumno para un ao lectivo con el fin de realizar validaciones en torno a la aprobacin del mismo. IP16: Funcionalidad que dispondr el sistema para procesar toda la informacin generada por los alumnos durante el transcurso del ao lectivo y que determinar la evaluacin final de los cursos de cada uno de ellos IP17: Permitir la apertura, el cierre y el respectivo manejo de cada uno de los distintos perodos de exmenes que deben existir en el colegio segn el plan desarrollado por el CES. 159

2.6.2. Planificacin y Anlisis de riesgos En esta nueva instancia, el anlisis de los riesgos estar basado en la informacin de los riesgos planteados en la primera iteracin, actualizando las planillas definidas y detectando los factores de riesgos surgidos.

Formulario de Especificacin de Riesgo

Tamao del Producto

ID 1

Si bien se ha recurrido a material didctico y otras referencias, la falta de experiencia de nuestro equipo en la estimacin de tamao de un proyecto podra ser un inconveniente a tener en cuenta a futuro por lo que se deber tener especial atencin en este punto para realizar la planificacin adecuada en tiempo y forma. Cuando hablamos de tamao, nos referimos al tiempo de desarrollo del sistema; lo cual puede derivar en un clculo incorrecto en la fecha de finalizacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 2 1 1 1 2 2 1 1 1 2 2 1 1 Anteproyecto 65% Iteracin I 60% Iteracin II 50% Iteracin III

Acciones Preventivas: Utilizar todas las herramientas y material a disposicin (UML, conteo de puntos de funcin, etc.) para realizar la estimacin de tiempos ms acertada posible para nuestra solucin. Revisar peridicamente que el tamao del procuto se mantenga segn lo planificado. Elemento Disparador: Surgen desvos en las fechas estimadas para las distintas etapas del proyecto. Acciones Correctivas: Recalcular los tiempos reviendo el correcto uso de las herramientas y tomando como leccin aprendida la mala estimacin primaria realizada. Evaluacin de Seguimiento: El riesgo se reduce debido al sobreesfuerzo en el aprendizaje de uso de herramientas y en la replanificacin realizada en la iteracin I lo cual nos permiti obtener una mayor certeza del tamao del producto.

160

Formulario de Especificacin de Riesgo

Interaccin con el cliente

ID 2

Se debe tener en cuenta la participacin del cliente en las reuniones como as tambin la claridad y precisin de la informacin brindada. Si cualquiera de estos dos factores no se cumpliera segn lo esperado podra derivar en inconvenientes en el resultado final de proyecto. Otro punto muy importante a tener en cuenta es la resistencia que puedan presentar los usuarios de la aplicacin en los inicios ya que dedicar un esfuerzo extra de los mismos en capacitacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 1 1 1 1 2 2 1 1 1 2 2 1 1 Anteproyecto 50% Iteracin I 40% Iteracin II 40% Iteracin III

Acciones Preventivas: Planificar y llevar a cabo reuniones con el cliente para mostrarle el avance de la aplicacin y verificar su conformidad. Involucrar a los usuarios del sistema de manera temprana para que puedan ver la ventaja de su implantacin. Elemento Disparador: El cliente no se involucra y compromete de manera adecuada por lo que se genera incertidumbre en el resultado del producto final. Los usuarios demuestran rechazo o poco inters hacia el sistema. Acciones Correctivas: Exhortar al cliente en un mayor compromiso con el proyecto e involucrarlo desde el inicio y en cada etapa o toma de decisin correspondiente. De la misma manera, exhortar junto a los responsables del colegio, a los usuarios para que adquieran un mayor compromiso y apretura hacia el sistema. Evaluacin de Seguimiento: No sufri alteraciones.

161

Formulario de Especificacin de Riesgo

Nuevos requerimientos

ID 3

Si bien en este momento no se prev, no existe ningn impedimento en que el cliente pueda realizar nuevos requerimientos una vez comenzado el proyecto. De ocurrir esto, tendr un impacto directo en la estimacin de tiempos pudiendo generar retraso y la eventual replanificacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 2 2 2 1 1 2 2 1 Anteproyecto 40% Iteracin I Iteracin II 65% Iteracin III

Acciones Preventivas: Recabar exhaustivamente todos los requerimientos y necesidades del cliente para no dejar ningn clavo suelto. Revisar peridicamente la lista de requerimientos junto con el cliente. Elemento Disparador: El cliente muestra inters en cambar la solucin acordada previamente. Acciones Correctivas: De ser necesario, redefinir junto al cliente las nuevas necesidades del mismo y replanificar las tareas para el cumplimiento de ellas. Evaluacin de Seguimiento: En esta iteracin renace este riesgo y con un mayor porcentaje de probabilidad debido a la aparicin de un requerimiento no contemplado y que se menciona en el resumen de la iteracin I.

162

Formulario de Especificacin de Riesgo

Capacidad del equipo de desarrollo

ID 5

Nuestro equipo se compone por 2 integrantes que terminaron el curso en el ao 2000 por lo que adems del tiempo transcurrido en la prctica estudiantil hasta ahora, se debe mencionar que no se trabaj con esta metodologa durante la carrera. Por lo tanto, deberemos capacitarnos en el uso de la herramienta y sobre todo en la metodologa lo que puede incidir directamente en los tiempos estimados. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Anteproyecto 50% Iteracin I 60% Iteracin II 35% Iteracin III

Acciones Preventivas: Dedicar un tiempo prudencial en la capacitacin y manejo de herramientas y metodologa a utilizar. Elemento Disparador: Inconvenientes en la realizacin de las distintas tareas del proyecto. Acciones Correctivas: Aumentar el tiempo asignado al proyecto, intensificar la capacitacin. Evaluacin de Seguimiento: Se reduce considerablemente debido a la experiencia desarrollada por el equipo durante la primera iteracin.

163

Formulario de Especificacin de Riesgo Disponibilidad del equipo de desarrollo

ID 6

El mayor riesgo que se detecta en este punto se corresponde a los compromisos laborales de cada uno de los integrantes que aunque se contemplan en la carga horaria del proyecto puede contener imprevistos a futuro. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 1 1 3 2 3 1 1 3 2 3 1 1 3 2 Anteproyecto 30% Iteracin I 30% Iteracin II 30% Iteracin III

Acciones Preventivas: Realizar una planificacin horaria adecuada que nos permita cumplir con todos las tareas del proyecto. Elemento Disparador: Retraso en los tiempos estimados para el cumplimiento de las distintas etapas. Acciones Correctivas: Replanificar, rever tiempos y priorizar las tareas del proyecto. De ser necesario, reducir el alcance del mismo. Evaluacin de Seguimiento: No sufre alteraciones.

164

Formulario de Especificacin de Riesgo

Comunicacin a distancia

ID 7

Un gran inconveniente con que se encuentra nuestro equipo en este momento es la distancia fsica existente entre sus integrantes ya que uno se encuentra en la ciudad de Paysand y otro en Montevideo lo que puede derivar en problemas de comunicacin y por ende verse afectada la coordinacin de tareas, la toma de decisiones, etc. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 Anteproyecto 60% Iteracin I 60% Iteracin II 60% Iteracin III

Acciones Preventivas: Asegurarnos la constante comunicacin mediante todos los medios disponibles. Correo electronico, comunicacion via Skype y MSN, comunicacion telefnica, viajes peridicos; en principio un fin de semana al mes, intensificndolos hacia el final del proyecto. Elemento Disparador: Retrasos en las tomas de decisiones y tiempos muertos ocurrentes por la falta de comunicacin. Acciones Correctivas: Ajustar las prioridades, intensificar la comunicacin y realizar viajes en caso de ser necesario. Evaluacin de Seguimiento: No sufre alteraciones

2.6.3. Anlisis [Link]. Requerimientos Los requerimientos a implementar en esta iteracin son: Manejo de Ao Lectivo. Gestin de inscripciones de Alumnos. Registro de Notas Finales. Registro de resultados de Exmenes. Registro de Inasistencias. Ingreso de Escolaridades (carga histrica de notas). Proceso de Grupos Manejo de perodos de Exmenes.

165

[Link]. Anlisis de Requerimientos. Manejo de Ao Lectivo. Ya ms familiarizados con la gestin colegial; nuestro equipo, junto con el cliente, detect que era inminente el manejo del concepto del Ao Lectivo. Este concepto le permitir a la aplicacin ordenarse de una manera tal que impida que los usuarios realicen tareas que no se encuentren acordes al momento del ao y adems realizar controles y evaluaciones correspondientes a cada una de las etapas. Por tal razn, se realiz una investigacin y se detect que existen cuatro estados perfectamente separados durante el transcurso de un ao: ESTADO INICIAL. Esta tarea se realizar una nica vez al comienzo del uso de la aplicacin y no podr ser modificada posteriormente. Dentro de esta etapa se realizar: - Configuracin del Sistema - Se ingresarn los detalles del plan. - Se darn de alta los cursos dictados en el colegio. - Se agregarn las materias que componen dichos cursos. - Se generarn todas las relaciones entre materias cursos y planes. Nota: Esta tarea de gestin de estructura solo se repetir si se crea un nuevo plan por el CES que replantee la estructura colegial. PERODO de INSCRIPCIONES. Durante este perodo, los usuarios del sistema solo tendrn disponibles las opciones de mantenimiento de alumnos y profesores como as tambin realizar inscripciones de alumnos y armado de grupos. En este perodo se podrn inscribir todos los alumnos que se encuentren aprobados total y parcialmente adems de aquellos que se encuentren en fallo en suspenso antes del fin del perodo de inscripciones que ser pautado por el comienzo del prximo estado. EN CURSO. Una vez que hayan sido armados todos los grupos y se realicen todas las inscripciones, un responsable del colegio con privilegios para tal tarea deber marcar el comienzo de clases en el sistema. Una vez realizada esta marca, los usuarios solo podrn registrar en el sistema calificaciones, inasistencias e inscripciones de alumnos que nicamente se encuentren con Aprobacin total o parcial del curso anterior. Existen dos tareas adicionales que disparar este proceso: Se verificar que para darse un comienzo de clases, todas las inscripciones y los grupos estn conformados de manera correcta verificando entre otras cosas que no exista un grupo con menos inscripciones que el mnimo designado para el mismo. Se eliminarn todas las inscripciones de los alumnos que se encuentren en fallo en suspenso del ao anterior y no hayan exonerado las materias suficientes para salir de esta situacin en el perodo de exmenes de febrero. CIERRE DEL AO LECTIVO. Si bien este no es un estado, hay que mencionar que una vez que todos los grupos y perodos de examen de todos los cursos del ao hayan sido procesados (ver detalle en los puntos Proceso de Grupos y Manejo de Perodos de Examen) el ao lectivo actual deber ser cerrado impidiendo cualquier alteracin de sus datos y se dar paso a un nuevo ao que comenzar con el PERODO de INSCRIPCIONES mientras no exista un cambio de plan por parte del CES. Las tareas, de Mantenimiento de Alumnos y Profesores, el registro de Resultados de Exmenes (dependiendo de la apertura y cierre de los perodos como se menciona ms adelante en este documento) y tambin la gestin y emisin de informes estarn disponibles en todos los estados del sistema. Adems debemos mencionar que estos estados sern consecutivos y no podr ser alterado su orden bajo ningn concepto.

166

Gestin de inscripciones de Alumnos. Se realizar un mdulo que permitir la gestin de inscripciones de los alumnos a los distintos grupos del colegio. Dentro de este mdulo que se presentar de manera de formulario, el usuario deber seleccionar un grupo de los grupos registrados previamente en el sistema para poder realizar en l la inscripcin correspondiente. Una vez seleccionado el grupo, el usuario podr ver por pantalla todas las inscripciones ya existentes en caso que las hubiera, y a travs de dos botones que este formulario proveer podr eliminar una de estas inscripciones o bien agregar a un nuevo alumno. Esta ltima tarea se har a travs de un formulario de bsqueda donde se mostrarn todos los alumnos aptos para inscripcin en el grupo registrados en el sistema pudiendo o no especificar un criterio para reducir este nmero de alumnos. Del resultado de esta bsqueda, el usuario podr seleccionar el alumno al cual desea inscribir y de esta forma la misma quedar registrada automticamente. Cabe agregar que en este momento se validar tanto que el alumno seleccionado rena las condiciones necesarias para inscribirse en curso, como as tambin que con esta nueva inscripcin no se supere el mximo de alumnos designado para el grupo (ver captulo de Controles y Validaciones) Registro de Notas Finales Constar de un formulario donde un usuario calificado podr seleccionar un curso y grupo de los existentes en el ao lectivo y una vez seleccionado se mostrarn por pantalla todos los alumnos inscriptos en l. Con esta informacin desplegada, el usuario podr seleccionar la materia deseada y realizar la carga de las notas finales y los conceptos de cada uno de los alumnos. Esta carga podr ser para un alumno particular, para varios o para todos los alumnos. La nota se podr digitar o bien seleccionarse de un abanico que ensear todas las posibles notas segn el plan. Debemos mencionar adems, que al seleccionar la materia se listara por pantalla todas las notas ya ingresadas para los alumnos previamente, la cuales podrn ser modificadas si la situacin lo ameritara. En caso de que an no exista una nota registrada para el alumno, el valor por defecto devuelto por el sistema ser cero. Registro de resultados de Exmenes El proceso ser muy similar al del punto anterior (Ingreso de Notas finales), con la salvedad de que no se seleccionar un grupo ya que los exmenes no cuentan con este dato sino que estn asociados a un curso en particular y la lista de alumnos donde se registrar el resultado del examen (nota) que corresponder a todos aquellos alumnos obligados a dar el examen. Esta obligacin se genera por una insuficiencia en la nota de la materia del examen siempre y cuando el alumno se encuentre en Aprobacin Parcial o Fallo en Suspenso. Registro de Inasistencias El usuario seleccionar el grupo en que desea gestionar mostrndose a continuacin todos los alumnos inscriptos en el mismo y a los cuales se les ingresarn las inasistencias justificadas e injustificadas que se generaron durante el transcurso del ao lectivo. Al igual que en los puntos anteriores, si ya existieran alumnos con inasistencias registradas para el grupo seleccionado, el usuario podr modificar este dato si as lo deseara, en caso de no existir an inasistencias ingresadas, el valor devuelto ser cero. Ingreso de Escolaridades (carga histrica de notas). Como es sabido, un alumno que se inscribe en el colegio no necesariamente tiene que haber cursado todos los aos anteriores en la institucin. Para permitir esto y asegurarnos que el mismo tenga igual tratamiento que los dems estudiantes en lo que a validaciones de inscripcin y aprobacin se refiere, es necesario desarrollar un mdulo de ingreso de escolaridades o carga histrica del desempeo de los estudiantes provenientes de otro colegio. Este mdulo permitir ingresar las evaluaciones obtenidas anteriormente a partir de la frmula 69 obligatoria que el mismo deber presentar en el momento de la inscripcin. Esta frmula especifica las calificaciones finales que un alumno obtuvo en los cursos anteriores, adems del fallo de cada curso y un detalle de las materias pendientes por las que deber rendir examen. En el caso de que ya haya rendido uno o ms de estos exmenes pendientes en el otro colegio, tambin se detalla el resultado obtenido.

167

Para contemplar esta situacin se implementar un nuevo formulario en donde un usuario podr registrar toda la informacin contenida en la frmula 69. Previo a ello, el alumno a inscribir deber ser registrado en el sistema a travs de la Gestin de Alumnos detallando sus datos principales como as tambin el colegio desde el cual proviene. Con este ingreso realizado, se estar en condiciones de registrar la carga histrica en el mdulo de ingreso de escolaridades. Como primer paso, el usuario deber seleccionar al alumno y el curso a ingresar (lgicamente deber ingresar por primer ao). Acto seguido, se pedir que ingrese la nota final con la que promovi este curso y el fallo final obtenido. Adicionalmente, el mismo formulario contar con otra grilla donde se podr registrar todas las materias pendientes y en caso de que ya haya rendido exmenes por estas materias, el resultado obtenido en cada uno de ellos. Esta operacin se repetir para cada uno de los cursos que componen el historial del alumno y siempre siguiendo el orden definido para que el sistema pueda realizar las validaciones pertinentes a las escolaridades de los alumno. Con esta carga, nuestro sistema ser capaz de integrar al alumno a la realidad colegial permitiendo que el mismo sea evaluado en el futuro de la misma manera que el resto de los estudiantes que alberga el colegio. Proceso de Grupos. Se crear un mdulo mediante el cual sern procesados cada uno de los grupos de los cursos dictados con el fin de generar las evaluaciones finales de los alumnos adems de otros aspectos pertinentes al ao lectivo. En este proceso, el usuario podr seleccionar el grupo a procesar y ver en pantalla evaluacin final de todos sus alumnos adems de las notas finales obtenida en cada materia y tambin las inasistencias generadas durante el ao. Una ver corroborada la esta informacin de manera visual por el responsable del colegio, el mismo podr indicar que se guarde la escolaridad y adems si lo deseara, que el grupo sea cerrado para que esta informacin no pueda alterarse posteriormente. Previo al proceso que vuelca en la pantalla estos datos, el proceso verificar que no existan huecos en la informacin que puedan generar inconsistencias (ver Controles y Validaciones). Para la obtencin de las evaluaciones finales, se estudiarn las calificaciones e inasistencias de cada alumno y se generar un promedio final para el ao lectivo adems de un resultado que podr ser: APROBADO. Un alumno promueve totalmente un ao cuando tiene todas las materias suficientes y una cantidad de inasistencias fictas inferior al mximo permitido para aprobar. APROBADO PARCIAL. Se promover parcialmente un alumno cuando el total de inasistencias fictas no superen mximo permitido para aprobar y adems el mismo no supere mximo de materias insuficientes permitidas para este estado entre el curso actual y el anterior. FALLO EN SUSPENSO. Indica que el alumno supera tambin la condicin de inasistencias pero la cantidad de materias insuficientes es mayor a las permitidas para aprobacin parcial y menor o igual al mximo permitido para fallo en suspenso y que se corresponde a la mitad del total de materias computables dictadas en el colegio. El concepto computable se debe a que existen materias que no tienen nota y por ende no deben ser tenidas en cuenta para este clculo. REPROBADO. Existen dos situaciones por la que un alumno podr reprobar un curso. La primera es porque la cantidad de materias insuficientes supera al mximo de materias que pueden estar en esta condicin para ingresar en fallo en suspenso; es decir que tiene la mitad ms uno de materias insuficientes. La segunda condicin por la que un alumno reprobar el curso, son las inasistencias. En este caso, si la cantidad supera el mximo permitido el estudiante automticamente reprobar el curso independientemente de las calificaciones obtenidas. NOTA: Todos los valores de comparacin mencionados durante en estas condiciones, sern totalmente parametrizables a travs de la gestin de la estructura; ingreso de plan, de cursos, de materias, etc. Manejo de perodos de Exmenes.

168

Manejar perodos de exmenes, le permitir a nuestro sistema realizar controles y validaciones del desempeo de nuestros alumnos una vez finalizado un perodo y que de esta manera determinar o no un cambio en sus escolaridades. Antes que nada, debemos aclarar que los perodos de exmenes son cuatro, fijos y sujetos al plan de estudio para Ciclo Bsico (plan 2006); pudiendo surgir condiciones extraordinarias donde se pueda abrir otro eventual perodo pero esto no ser considerado en esta primera instancia de nuestro sistema. Los cuatro perodos son: Febrero (nica oportunidad de los alumnos para revertir un fallo en suspenso). Abril. Julio. Setiembre. Estos perodos manejaran el concepto de abierto y cerrado lo que permitir realizar las siguientes tareas: Cuando se abre un perodo. Se procesarn las materias pendientes de los alumnos que se encuentren en aprobacin parcial y en el caso del perodo de febrero tambin los que se encuentren en fallo en suspenso. Estos alumnos sern registrados automticamente en el examen del perodo que deban rendir segn la materia. Cuando se cierra un perodo: Se verificar que toda la informacin pertinente a todos los exmenes del perodo al cual corresponde al resultado obtenido en cada examen por todos los alumnos obligados a rendirlo. En caso de no existir ningn registro para un alumno obligado a un examen, este ser tenido en cuenta tomado como no presentado y en consecuencia el examen se considera no aprobado. Se evaluarn todos los resultados obtenidos por los alumnos lo que podr o no afectar el concepto de su escolaridad realizando las siguientes acciones: o Salir del estado de aprobacin parcial e ingresar a estado aprobado. o Salir del estado fallo en suspenso e ingresar a estado aprobacin parcial. o Salir del estado fallo en suspenso e ingresar a estado aprobado. o Salir del estado fallo en suspenso e ingresar a estado reprobado. Nota: Como ya fue mencionado, los alumnos que se encuentren en fallo en suspenso solo sern tenidos en cuenta en el perodo de febrero ya que disponen por reglamento de este nico perodo para obtener el estado de aprobacin total o parcial y de lo contrario reprobarn automticamente. Una vez procesados todos los exmenes que correspondan al perodo y realizadas todas las tareas mencionadas, el perodo ser cerrado y no se permitir la posterior alteracin de su informacin. Controles y Validaciones. A continuacin se detalla la lista de controles y validaciones que se incluirn en los distintos procesos de nuestro sistema y que incluyen funcionalidades tanto de esta iteracin (II) como de la anterior (I): 1. No se puede eliminar un alumno si este tiene una inscripcin activa o un dato histrico ingresado. 2. No se puede eliminar un curso si este tiene materias asignadas. 3. No se puede eliminar un grupo si este tiene inscripciones. 4. No se puede eliminar un plan si este est asignado a un plan-curso. 5. No se puede eliminar un curso si este es previo de otro curso, si est asignado a un plancurso o est siendo referenciado por una materia. 6. No se puede registrar una nueva inscripcin en un grupo si este ya alcanzo la cantidad mxima de alumnos permitidos. 7. No se puede realizar la inscripcin de un alumno a un curso si este no rene las condiciones necesarias de aprobacin en los aos anteriores con la salvedad de primer ao. 8. No se puede realizar un comienzo de clases si existe algn grupo donde la cantidad de alumnos no supera el mnimo permitido para el grupo.

169

9. No puede existir un alumno con dos inscripciones activas en distintos grupos (en un mismo grupo ya se encuentra restringido). 10. No puede existir una materia que pertenezca a dos cursos distintos. 11. No se puede procesar un grupo si este no tiene todos los datos correspondientes a notas finales e inasistencias registrados para todos los alumnos en todas las materias. 12. No se puede registrar una inscripcin o armar un grupo si el Ao lectivo se encuentra en estado INICIAL. Nota: el mantenimiento de planes, cursos, materias y la relacin de la misma solo ser posible una nica vez en esta etapa del proceso y restringida en las dems por lo que no se mencionar en las dems validaciones sino que se har referencia a las tareas de cada ao lectivo. 13. No se puede ingresar notas o inasistencias si el ao lectivo se encuentra en estado INSCRIPCIONES. 14. No se puede ingresar inscripciones de alumnos que se encuentren en fallo en suspenso. 15. Solo se podrn procesar grupos si en ao lectivo se encuentra en estado EN CURSO y adems han sido procesados todos los perodos de exmenes del ao. 16. No se podr alterar ningn dato de un grupo si el mismo se encuentra en estado CERRADO. 17. No se podr alterar ningn dato del ao lectivo si el mismo ya fue procesado. 18. El orden de los estados de los aos lectivos no podr ser alterado solo podr tener esta secuencia: ESTADO INICIAL (una nica vez cuando se procese un plan), luego, para cada ao lectivo: INSCRIPCIONES -> COMIENZO DE CURSOS -> CERRADO (este ltimo estado dar
inicio a un nuevo ao lectivo con estado INSCRIPCIONES)

19. Solo podr realizarse la inscripcin de un alumno que se encuentra dado de alta en el sistema. 20. Un alumno solo podr ser inscripto al curso que se encuentra habilitado. 21. Si un alumno inscripto con fallo en suspenso no aprueba las suficientes materias en para pasar a aprobacin parcial o total en el perodo de exmenes de febrero quedar automticamente repetidor del cuso anterior y su inscripcin al curso actual ser borrada. La aprobacin e inscripcin de los alumnos estarn regidas a travs del reglamento del Consejo de Educacin Secundaria para el Ciclo Bsico (plan 2006). Reglamento sobre el Rgimen de Evaluacin y pasaje de grado del Ciclo Bsico de Educacin Secundaria. Reformulacin 2006. [Link]. Anlisis de los Casos de Uso Al cierre de Iteracin I se realiz una nueva entrevista con el cliente con los nuevos requerimientos, en base a los procesos que se hallaron se muestra a continuacin los casos de uso pertenecientes a esta iteracin. Identificacin:
Identificacin Descripcin Requerimiento

CU25 CU26 CU27 CU28 CU29 CU30 CU31 CU32

Manejo de Ao Lectivo. Gestin de inscripciones de Alumnos. Gestin de Notas Finales. Gestin de resultados de Exmenes. Ingreso de Escolaridades (carga histrica de notas). Gestin de Inasistencias. Proceso de Grupos. Proceso de Perodos de Exmenes.

Nuevo RF08, RF09 RF10 RF10 RF14 RF11 RF13 RF15

Diagrama de casos de uso de la iteracin.

170

uc CU General Iteracion 2

M anej o de Ao Lectiv o Secretari a

Gestin de Inscripcione s

Gestion de Escolaridades Procesar Periodos de Examen Proceso de Grupo s

Registro de Notas Finale s

Adscripta Registro de Resultados de Ex amenes

Registro de Inasistencias .

CU25: Manejo de Ao Lectivo. Permitir manejar distintos estados del sistema para que el mismo se adece a las distintas etapas que componen el comportamiento del colegio. CU26: Gestin de inscripciones de Alumnos. Permitira a la Secretaria gestionar las inscripciones de cada alumno del colegio. CU27: Registro de Notas Finales. Permitira a la Adscripta el ingreso o modificacin de las notas finales de los alumnos CU28: Registro de resultados de Exmenes. Permitira a la Adscripta el ingreso o modificacin de los resultados de los exmenes realizados por los alumnos. CU29: Gestin de Escolaridades (carga histrica de notas). Permitira a la Adscripta o Secretaria el ingreso o modificacin de una escolaridad de alumnos provenientes de otra institucin. CU30: Registro de Inasistencias. Permitira a la Adscripta el ingreso o modificacin de las inasistencias de los alumnos. CU31: Proceso de Grupos. Permitir procesar y cerrar la informacin de todos los alumnos un grupo dado, realizando controles y evaluaciones. 171

CU32: Manejo de perodos de exmenes. Permitir abrir y cerrar perodos de exmenes adems de procesar la informacin de todos los alumnos que rindieron examen en dicho perodo realizando los controles y evaluaciones pertinentes. [Link]. Diagramas de Secuencia Descripcin de la interaccin de Objetos.
Identificacin Manejo de Ao Lectivo Manejo de Ao Lectivo Gestin de inscripciones Ingresar inscripcin. Eliminar inscripcin Registro de notas finales. Registrar notas finales Registro de resultados de Exmenes Registrar resultado de examen Gestin de Escolaridades Ingresar escolaridad Modificar escolaridad Eliminar escolaridad Registro inasistencias Registrar Inasistencias Proceso de Grupos Proceso de Grupos Manejo de Perodos de Exmenes Procesar Perodo Abrir perodo Cerrar Perodo CU32 CU32 CU32 CU31 CU30 CU29 CU29 CU29 CU28 CU27 CU26 CU26 CU25 Caso de uso asociado

En esta etapa los diagramas de secuencia se generalizan por tipo. Es decir no se hace un diagrama particular para cada caso sino que se realiza uno por cada categora: Manejo de Ao Lectivo. Ingresar / Registrar elemento. Modificar elemento. Eliminar elemento. Proceso de Grupos. Proceso de Perodos de Exmenes.
sd Manej o de Ao Lecti...

1. El usuario modifica el estado que corresponde a una etapa del Ao lectivo. 2. El sistema registra registra el nuevo estado y realiza las tareas pertinentes.

Sistema Usuario Registrar nuevo Estado()

172

sd Ingresar elemento Sistema 1. El usuario ingresa los datos el nuevo elemento. 2. El sistema registra los datos. Usuario Registrar Elemento()

sd Modificar eleme... Sistema 1. El usuario selecciona el elemento a modificar 2. El usuario realiza las modificaciones 3. El sistema registra los cambios Usuario Modificar Elemento()

sd Eliminar Elemento Sistema 1. El usuario selecciona el elemento a eliminar. 2. El usuario confirma que desea eliminar el elemento. 3. El sistema elimina el elemento. Usuario

Eliminar Elemento()

sd Proceso de Grupos

1. El usuario selecciona un Grupo. 2. El usuario indica el proceso de los datos del Grupo. 3. El sistema procesa la informacin del Grupo y lo marca como procesado. Usuario Procesar Grupo()

Sistema

173

sd Procsar Perodo de Examen Sistema 1. El usuario indica procesar un determinado perodo de examen. 2. El sistema procesa dicho perodo. Usuario Procesar Periodo()

sd Abrir Perodo de Examen Sistema 1. El usuario indica abrir un determinado perodo de examen. 2. El sistema realiza la apertura del mismo. Usuario Abrir Periodo()

sd Cerrar Perodo de Examen Sistema 1. El usuario indica cerrar un determinado perodo de examen. 2. El sistema realiza el cierre del mismo. Usuario Cerrar Periodo()

174

Diagrama Conceptual del Dominio del Sistema para la Iteracin II


class Diagrama Conceptual

Grupo s 1 1.. * 1.. *

Inscripcione s

Ex amenes

1 PlanCursos 1.. * 1.. *

1 Alumnos 1.. * 1.. * PlanCursoMaterias

Inasistencia s

Calificacione s 1.. * 1 1.. * TipoCalificacion 1 0..* 1

Orige n

SubipoCallificacio n

2.6.4. Diseo Finalizado el anlisis de la presente iteracin, se obtiene un modelo conceptual del dominio del problema el cual fue resuelto a travs de los casos de uso, los diagramas de secuencia de anlisis y el diagrama de clases genrico. [Link]. Casos de Uso de Diseo Brindan una descripcin ms detallada de lo que debe hacer el sistema, de aqu refinaremos los ya hecho en la etapa de anlisis.

175

CU25: Manejo de Ao Lectivo. Nombre: Manejo de Ao Lectivo. Resumen: Permite Realizar los respectivos cambios de estados segn el momento del ao lectivo. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - Se debe haber implementado toda la infraestructura del colegio, planes, materias, cursos, etc. Flujo principal: 1. La secretaria selecciona iniciar el perodo de inscripciones. 2. El sistema habilita la inscripcin de alumnos y la creacin de alumnos. Tambin permite la configuracin, emisin de informes, mantenimiento de alumnos y profesores. (Una vez realizadas las inscripciones). 3. La secretaria selecciona la opcin de inicio de cursos. 4. El sistema verifica las inscripciones realizadas y los grupos creados desplegando un mensaje con cualquier inconsistencia que encontrase. 5. Si todo esta correcto, el sistema queda en estado EnCurso permitiendo nicamente el ingreso de notas, inasistencias, escolaridades histricas y resultado de exmenes. Adems sigue permitiendo las opciones de configuracin, emisin de informes, mantenimiento de alumnos y profesores. (Cuando todos los datos de los alumnos estn cargados) 6. La secretaria comienza a procesar grupos. (Al finalizar el procesamiento de todos los grupos) 7. La secretaria indica cerrar el ao lectivo. 8. El sistema pide confirmacin para el cierre. 9. La secretaria confirma la operacin. 10. El sistema marca el ao lectivo como cerrado y da paso una vez ms al estado perodo de inscripciones cerrando de esta manera el ciclo. 11. El caso de uso finaliza. CU25: Diagrama de transicin de estados asociado.
stm Diagrama de transicin de Estados

Inicio Se pasa a estado "Inscripciones" cuando toda la infrastructura del colegio ha sido registrada correctamente.

Se pasa a estado "EnCurso" si todos los grupos han sido formado de manera correcta y ademas el perodo de examen de febreo est cerrado.

Estado Incia l

Estado Inscripcione s Estado EnCurs o

Se pasa a estado "Inscripciones" si todos los grupos han sido procesados y todos los periodos de examen han sido cerrados.

176

CU26: Gestionar inscripciones. Nombre: Gestionar inscripciones. Resumen: Permite registrar y borrar inscripciones de alumnos a los distintos cursos-grupos del colegio. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - El alumno a inscribir debe estar dado de alta en el sistema. - El grupo donde se registrara la inscripcin debe existir en el sistema. Flujo principal: 1. La secretaria selecciona el grupo donde se realizar la o las inscripciones. 2. El sistema despliega los datos del grupo para que sean verificados. 3. La secretaria ingresa la fecha de inscripcin. 4. La secretaria presiona el botn de agregar alumno. 5. El sistema despliega la lista completa de alumnos dados de alta y aptos para inscribirse en el curso respectivo segn las siguientes condiciones: a. No se puede registrar una nueva inscripcin en un grupo si este ya alcanz la cantidad mxima de alumnos permitidos. b. No se puede realizar la inscripcin de un alumno a un curso si este no rene las condiciones necesarias de aprobacin en los aos anteriores con la salvedad de primer ao. c. No puede existir un alumno con dos inscripciones activas en distintos grupos. d. No se puede registrar una inscripcin o armar un grupo si el Ao lectivo se encuentra en estado INICIAL. e. Solo podr realizarse la inscripcin de un alumno que se encuentra dado de alta en el sistema. f. Un alumno solo podr ser inscripto a un curso que se encuentra habilitado. 6. La secretaria busca y escoge el alumno a inscribir. 7. El alumno queda inscripto en el grupo. 8. El caso de uso finaliza. Flujo alternativo: 2. a. La inscripcin ya existe y la secretaria desea eliminarla. a. La secretaria seleccione el grupo con la inscripcin a eliminar. b. El sistema despliega los datos del grupo y sus inscripciones. c. La secretaria selecciona la inscripcin del alumno a eliminar. d. La secretaria presiona el botn quitar al alumno. e. El sistema registra la eliminacin. f. El caso de uso finaliza. CU26: Interfaz de usuario asociada

CU27: Registrar notas finales.

177

Nombre: Registrar notas finales. Resumen: Permite registrar, modificar y borrar notas finales de alumnos en las distintas materias del curso. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - El alumno inscripto en un grupo del colegio. Flujo principal: 1. La secretaria selecciona el grupo de alumnos a los que se ingresar la nota. 2. El sistema despliega los datos del grupo para que sean verificados. 3. La secretaria selecciona la materia. 4. La secretaria pulsa el botn Cargar notas 5. El sistema despliega todos los alumnos del grupo. 6. La secretaria completa los campos nota y concepto de los alumnos. 7. La secretaria presiona el botn guardar. 8. El sistema registra las notas de los alumnos. 9. El caso de uso finaliza. CU27: Interfaz de usuario asociada

CU28: Registrar resultado de exmenes. Nombre: Registrar resultado de exmenes. Resumen: Permite registrar, modificar y borrar resultados de examen de alumnos en las distintas materias del curso. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - Debe existir al menos un alumno en condiciones de dar examen. Flujo principal: 1. La secretaria selecciona el curso y la materia del examen. 2. El sistema despliega los datos generales para que sean verificados. 3. La secretaria pulsa el botn listar. 4. El sistema despliega todos los alumnos aptos para rendir examen en dicha materia. 5. La secretaria ingresa el resultado de examen para cada alumno. 6. La secretaria presiona el botn guardar. 178

7. El sistema registra los resultados de los exmenes. 8. El caso de uso finaliza. Flujo alternativo: 2. a. Los resultados ya existen y la secretaria desea modificarlos. a. La secretaria selecciona el curso y la materia del examen. b. El sistema despliega los datos generales para que sean verificados. c. La secretaria pulsa el botn listar d. El sistema despliega todos los alumnos aptos para rendir examen en el perodo con sus respectivos resultados. e. La secretaria realiza las modificaciones pertinentes. f. La secretaria presiona el botn guardar. g. El sistema registra las modificaciones. h. El caso de uso finaliza. CU28: Interfaz de usuario asociada

CU29: Ingreso de Escolaridades. Nombre: Ingreso de Escolaridades. Resumen: Permite realizar la carga histrica de la actuacin de los alumnos provenientes de otro colegio. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - El alumno debe estar registrado en el sistema a travs del mantenimiento de alumnos. - El alumno no debe tener una inscripcin vigente para ningn curso del colegio. Flujo principal: 1. La secretaria selecciona el alumno al cual desea realizarle la carga. 2. El sistema despliega los datos del alumno para que sean verificados. 3. La secretaria ingresa el curso a ingresar. 4. El sistema solicita que se carguen los datos del curso. 5. La secretaria completa los datos de nota de pasaje de grado, fecha de fin de curso y fallo. 6. En caso de ser necesario, en la grilla de pendientes, la secretaria selecciona agregar materia. 7. El sistema listar las materias correspondientes al curso que est cargando. 8. La secretaria seleccionar las materias que desea agregar como pendientes de examen. 9. En caso de haberlos rendido anteriormente, la secretaria ingresar el resultado del examen y la fecha en que lo rindi. 10. La secretaria selecciona guardar. 11. El sistema evala la validez de la escolaridad contemplando los cursos previos en caso de que corresponda. 179

12. El sistema registra la escolaridad, las materias pendientes y los exmenes rendidos en caso de que corresponda. 13. El caso de uso finaliza. Flujo alternativo: CU29: Interfaz de usuario asociada

CU30: Registrar inasistencias. Nombre: Registrar inasistencias. Resumen: Permite registrar, modificar y borrar inasistencias de alumnos en las distintas materias del curso. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - Debe existir al menos un alumno en condiciones de marcarle inasistencias. Flujo principal: 1. La secretaria selecciona el grupo de l o los alumnos a ingresarle inasistencias. 2. El sistema despliega todos del grupo y los alumnos que lo componen 3. La secretaria verifica estos datos. 4. La secretaria completa los campos inasistencias justificadas e inasistencias injustificadas 5. La secretaria presiona el botn guardar. 6. El sistema registra las inasistencias. 7. El caso de uso finaliza.

180

CU30: Interfaz de usuario asociada

CU31: Proceso de Grupos. Nombre: Proceso de Grupos. Resumen: Permite procesar la informacin obtenida durante el ao lectivo por todos los alumnos de cada grupo del colegio. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. - Debe existir al menos un grupo con su toda la informacin completa. Flujo principal: 1. La secretaria selecciona el grupo que desea procesar. 2. El sistema despliega los datos del grupo y todos los datos de los alumnos que lo componen (notas e inasistencias) con su correspondiente promedio final del curso y el fallo final, categorizndolos en aprobados, reprobados, promocin parcial o fallo en suspenso. Las condiciones de aprobacin sern las siguientes: APROBADO. Un alumno promueve totalmente un ao cuando tiene todas las materias suficientes y una cantidad de inasistencias fictas inferior al mximo permitido para aprobar. APROBADO PARCIAL. Se promover parcialmente un alumno cuando el total de inasistencias fictas no superen mximo permitido para aprobar y adems el mismo no supere mximo de materias insuficientes permitidas para este estado entre el curso actual y el anterior. FALLO EN SUSPENSO. Indica que el alumno supera tambin la condicin de inasistencias pero la cantidad de materias insuficientes es mayor a las permitidas para aprobacin parcial y menor o igual al mximo permitido para fallo en suspenso y que se corresponde a la mitad del total de materias computables dictadas en el colegio. Las materias no computables no deben ser tenidas en cuenta para este clculo. REPROBADO. Existen dos situaciones por la que un alumno reprobar un curso. a. La primera es porque la cantidad de materias insuficientes supera al mximo de materias que pueden estar en esta condicin para ingresar en fallo en suspenso; es decir que tiene la mitad ms uno de materias insuficientes. b. La segunda condicin por la que un alumno reprobar el curso, son las inasistencias. En este caso, si la cantidad supera el mximo permitido el estudiante automticamente reprobar el curso independientemente de las calificaciones obtenidas. 3. La secretaria verifica la informacin. 4. La secretaria indica Guardar.

181

5. El sistema registra las evaluaciones de los alumnos en la escolaridad y sus tambin sus materias pendientes en caso de que corresponda. 6. La secretaria pulsa el botn Cerrar 7. El sistema marca el grupo como procesado no permitiendo su posterior modificacin. 8. El caso de uso finaliza. CU31: Interfaz de usuario asociada

CU32: Proceso de Perodos de Examen. Nombre: Proceso de Perodos de Examen. Resumen: Permite procesar, abrir y cerrar un perodo de examen conjuntamente con las actividades que ello conlleva. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - La secretaria debe estar logueada en el sistema. Flujo principal: 1. La secretaria indica abrir el prximo perodo de examen. 2. El Sistema realiza la apertura del mismo permitiendo de esta manera el registro de resultados de exmenes sobre l. 3. El caso de uso finaliza. Flujo alternativo: 2. a. El perodo se encuentra abierto y la secretaria desea procesarlo. a. La secretaria indica procesar el perodo que se encuentra abierto. b. El sistema despliega todos los resultados obtenidos por los alumnos en el perodo como as tambin aquellos candidatos a examen que no hayan rendido. c. La secretaria verifica que la informacin se encuentre cargada correctamente. d. La secretaria confirma el proceso del perodo. e. El sistema recalcula las escolaridades de los alumnos segn los resultados obtenidos en los exmenes del perodo. f. El sistema registra los cambios en las escolaridades. g. El caso de uso finaliza. 2. b. El perodo se encuentra abierto y procesado y la secretaria desea cerrarlo. a. La secretaria indica cerrar el perodo de examen activo. b. El sistema pide la confirmacin del cierre. c. La secretaria confirma la operacin. d. El sistema realiza el cierre del perodo. e. El caso de uso finaliza. 182

CU32: Interfaz de usuario asociada

[Link]. Diagramas de secuencia Para recordar a que caso de uso y diagrama de secuencia del anlisis estn asociados se presenta la siguiente tabla:
Identificacin Anlisis Manejo de Ao Lectivo Caso de uso asociado CU25 CU26 CU26 CU26 CU27 CU28 CU29 CU30 CU31 CU32 CU32 CU32 Identificacin Diseo DID43 DID44 DID45 DID46 DID47 DID48 DID49 DID52 DID53 DID54 DID55 DID56

- Manejo de Ao Lectivo Gestin de Inscripciones de Alumnos Agregar Inscripcin Modificar Inscripcin

Eliminar Inscripcin Registro de Notas Finales

- Registrar Notas Registro de resultados de Exmenes - Registrar Resultados Gestin de Escolaridades - Agregar Escolaridad Registro de Inasistencias - Registrar Inasistencias Proceso de Grupos - Proceso de Grupos Proceso perodo de examen Abrir perodo Procesar Perodo Cerrar Perodo

183

CU25: Manejo de Ao Lectivo DID43: Manejo de Ao Lectivo


sd CU25 - [Link] o de Ao Lecti... Presentacion FormPrincipal Secretaria Aplicacion SIINCOManejador Persistencia PersistenciaSIINCO

CambiarEstado() ArmarObjeto(Estado)

ObtenerEstadoActual(Estado) :bool

ObtenerEstadoActual(Estado) :bool SeleccionarEstadoActual(Estado)

Retornar(EstadoAct ual) ValidarCondicionesCierre(EstadoActual) :bool

DeshabilitarFuncionalidad(EstadoActual) CerrarEstadoActual(EstadoActual) :bool NuevoEstadoPersistente(EstadoAct ual)

CerrarEstado(Nuev oEstadoPersistent e) :int

ObtenerProximoEstado(EstadoActual) SeleccionarProximoEstado(EstadoActual)

Retornar(NuevoEst ado)

HabilitarFuncionalidades(NuevoEstado)

VerificarFuncionalidesDisponibles(NuevoEstado) AbrirNuevoEstado(Nuevostado) :bool

NuevoEst adoPersistente(NuevoEst ado)

AbrirEstado(NuevoEstado) :int

184

Los DID44, 45 y 46 agregar inscripcin, modificar y eliminar respectivamente, contienen una parte en comn que se corresponde a la obtencin del grupo y sus inscripciones. El diagrama de secuencia de esta fraccin se realiza una sola vez permitiendo la mejor lectura y comprensin de todos los diagramas. En consecuencia, los DID44, 45 y 46 continuaran la secuencia del siguiente diagrama:
sd CU26 - [Link] Inscripciones Grupo Presentacion Form GestionarInscripciones Secretaria Sel ecci onarGrupo() Sel ecci onarGrupo() Arm arObj eto(Grupo) Presentacion Form BuscarGrupos Aplicaci on ManejadorInscripciones Aplicacion M anejadorGrupos Persi stencia PersistenciaSIINCO Persistencia Persistenci aSIINCOInformes

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool SeleccionarObj eto() :Grupo

RetornarObjeto(Grupo)

RetornarObjeto(Grupo) RetornarObjeto(Grupo)

ObtenerInscripciones(Grupo) ObtenerInscripciones(Grupo) Sel ecci onarInscri pciones(Grupo) :ListaInscripc iones

RetornarObj eto(ListaInscri pciones) ObtenerDatosInscripciones(Li staInscri pciones)

RetornarIncripcionesCompletas(Li staInscri pciones)

Retornar(ListaInscripciones) ArnarObjeto(Inscripcioens) Retornar(Inscripciones)

185

CU26: Gestin de Inscripciones de Alumnos DID44: Agregar Inscripcin


sd CU26 - [Link] inscripcion Presentacion FormGestionarInscripciones Secretaria Presentacion FrormBuscarAlumnos Aplicacion Aplicacion Persistencia PersistenciaSIINCO

ManejadorAlumnos ManejadorInscripciones

AgregarAlumno() BuscarAlumno() ArmarObjeto() :Alumno

ObtenerAlumno(Alumno) :bool ObtenerAlumno(Alumno) :bool SeleccionarOjeto() : Alumno

RetornarObjeto(Alumno) RetornarObjeto(Alumno) NuevaInscripcion= ArmarInscripcion(Alumno, Grupo) GuardarInscripcion(NuevaInscripcion) GuardarInscripcion (NuevaInscripcion) NuevaInscripcionPersistent e (NuevaInscripcion)

GuardarObjeto (NuevaInscripcionPersistente) : int Retornar(ListaInscripciones) Retornar(ListaInscripciones) Retornar(ListaInscripciones)

186

CU26: Gestin de Inscripciones de Alumnos DID45: Modificar Inscripcin


sd Modificar Inscripci... Presentacion FormGestionarInscripciones Secretaria Aplicacion ManejadorInscripciones Persistencia PersistenciaSIINCO

ModificarInscripcion()

ArmarObjeto() :NuevaInscripcion NuevaInscripcion(NuevaInscripcion) GuardarInscripcion(NuevaInscripcion) InscripcionPersistente (NuevaInscripcion)

GuardarObjeto(InscripcionPersistente) :int Retornar(ListaInscripciones) Retornar(ListaInscripciones) Retornar(ListaInscripciones)

CU26: Gestin de Inscripciones de Alumnos DID46: Eliminar Inscripcin


sd Eliminar Inscripcion Presentaci on FormGestionarInscripciones Secretaria Aplicacion ManejadorInscripciones Persistencia PersistenciaSIINCO

EliminarAlumno()

Alumno= ArmarObjeto() EliminarInscripcion(Alumno)

EliminarInscripcion(Alumno) InscripcionPersistent e (Al umno)

Eli mi nar(InscripcionPers stente) :int i Retornar(ListaInscripciones) Retornar(ListaInscripciones) Retornar(ListaInscri pciones)

187

CU27: Registro de Notas Finales DID47: Registrar Notas


sd CU27 - [Link] Notas Finales Presentacion Form GestionarCalifi cacionesNotasFinales Secretaria Presentacion Form BuscarGrupos Aplicacion M anejadorGrupos Apli cacion M anejadorCalificaciones Persistencia PersistenciaSIINCO

SeleccionarGrupo()

SeleccionarGrupo() Arm arObjeto(Grupo)

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool

SeleccionarObjeto() :Grupo RetornarObjeto(Grupo) RetornarObjeto(Grupo) RetornarObjeto(Grupo) Retornar(Grupo) Seleccionar M ateria()

CargarNot as( ) ObtenerNotas(Grupo, M aterias) ListaInscriptos= ObtenerInscriptos(Grupo)

loop ObtenerNota [Para cada Alumno] ObtenerNota(Griupo, M ateria, Alumno) :bool Arm aObjetoNota(Grupo, Mat, Alu) :Nota

ObtenerNota(Nota) :bool SeleccionarObj eto(Nota) :NotaObtenida RetornarObjeto(NotaObtenida)

ListaNotas= AgregarNota(NotaObt enida)

RetornarObjeto(ListaNotas) Retornar(ListaNotas)

RegistrarNotas(L istaNotas) GuardarNotas(ListaNotas) GuardarNotas(ListaNotas) GuardarNotas(ListaNotas) NuevaLi staNot asPersistente(L istaNotas)

GuardarObjeto(NuevaListaNotasPersistente) :int RetornarObjeto(ListaNotas) RetornarObjeto(ListaNotas) Retornar(ListaNotas)

188

CU28: Registrar resultados de exmenes DID48: Registrar Resultados


sd CU28 - [Link] Resultado de Examen Presentacion FormGestionarExamenes Secretari a Presentacion FormBuscaPlanCursos Apl icaci on ManejadorPl anCursos Apl icacion ManejadorExamenes Persi stencia PersistenciaSIINCO

Selecci onarPlanCurso()

Selecci onarPlanCurso() ArmarObjeto(PlanCurso)

ObtenerPl anCurso(PlanCurso) :bool ObtenerPl anCurso(PlanCurso) :bool

SeleccionarObjeto() : PlanCurso RetornarObj eto(PlanCurso) RetornarObjeto(PlanCurso) RetornarObj eto(PlanCurso)

Retornar(PlanCurso) SeleccionarMateri a() CargarAlumnosObligados() ObtenerAl umnos(PlanCurso, Materia) ListaResul tadosExamen= ObtenerAl umnos(PlanCurso, Materia)

loop Obtener Resultados [Para cada al umno] ObtenerResultado(PlanCurso, Materia) :bool ArmaObjetoResultado(Pl anCruso, Materia) :Resultado

ObtenerResultado(Resultado) :bool

SeleccionarObjeto(Resultado) : ResultadoExamen

RetornarObjeto(Resul tadoExamen) ListaResultadosEx amen= AgregarResul tado(ResultadoExamen)

RetornarObjeto(ListaResultadosExamen) Retornar(Li staResul tadosExamen) RegistrarResultados(ListaResultadosExamen)

Guardar(ListaResultadosExamen) GuardarResultados(L istaResul tadosExamen) GuardarResultados(L i staResultadosEx amen) NuevaListaResul tadosExamenPersistente(ListaResultadosExamen)

GuardarObjeto(NuevaLi staResul tadosExamenPersistente) :int

RetornarObjeto(ListaResul tadosExamen) RetornarObjeto(ListaResultadosExamen) Retornar(Li staResul tadosExamen)

189

CU29: Gestin de Escolaridades DID49: Agregar Escolaridad


sd CU29 - [Link] Escolaridad Curso Presentacion Form GestionarEscolaridades Secretaria IngresarAlum no(Alum no) IngresarDat osCurso() BuscarM at eri asCurso(Curso) ObtenerM aterias(Curso) Arm arObjeto(M ateriasCurso) Presentaci on Form BuscarM aterias Apli caci on M anejadorMaterias Apli cacion Manej adorEscolari dades Persi stenci a PersistenciaSIINCO

Obtener(M ateriasCurso)

Obtener(M ateri asCurso) :bool ListaM ateriasCurso= Sel eccionar(M ateri asCurso) Retornar(ListaM ateriasCurso) Retornar(ListaM ateriasCurso) Retornar(ListaM ateriasCurso) Retornar(ListaM ateriasCurso) AgregarM atPendientes(Li staM ateriasPendi entes)

AgregarExam enesRendi dos(ListaExam enes) Escol aridadCurso= Arm arObjeto(Alum no, Curso)

Li staM ateriasPendi entes= Arm arObjeto(ListaMateriasNoAprobadas)

Li staExamenesRendidos= Armar(Li staExam enes) Guardar(Escol aridadCurso, ListaM ateriasNoAprobadas, ListaExam enesRendidos) Validar(Escolaridad) :bool

loop Guardar M aterias No Aprobadas [Para cada m ateria en ListaM ateriasNoAprobadas] GuardarObj eto(M ateria) :bool NuevaMateriaPersistente(Materia)

Insertar(NuevaM ateriaPersistente) :int

loop Guardar Examenes Rendidos [Para cada exam en en ListaExam enesRendidos] GuardarObjeto(Exam en) :bool NuevoExam enPersi stente(Exam en)

Insertar(NuevoExam enPersi tent e)

Guardar(Escol aridadCurso) :bool NuevaEscolari dadCursoPersi stente(Escol aridadCurso)

Insrtar(Nuev aEscol aridadCursoPersistent e)

ReprocesarEscol aridad(unAlum no)

190

CU30: Registro de Inasistencias DID52: Registrar Inasistencias


sd CU30 - [Link] Inasistencias Presentacion FormGestionarInasistencias Secretaria Presentacion FormBuscarGrupos Aplicacion ManejadorGrupos Aplicacion ManejadorInasistencias Persistencia PersistenciaSIINCO

Selecci onarGrupo()

SeleccionarGrupo() ArmarObjeto(Grupo)

ObtenerGrupo(Grupo) :bool ObtenerGrupo(Grupo) :bool

SeleccionarObj eto() :Grupo RetornarObjeto(Grupo) RetornarObjeto(Grupo) RetornarObjeto(Grupo) ObtenerInasist encias(Grupo) ListaInscriptos= ObtenerInscriptos(Grupo)

loop ObtenerInasistencias [para cada alumno] ObtenerInasistencias(Griupo, Alumno) :bool ArmaObjetoInasistencia(Grupo, Alumno) : Inasi stenc ias

ObtenerInasistencias(Inasistencias) :bool

SeleccionarObj eto(Inasistencia) : InasistenciasAlumno

RetornarObjeto(InasistenciasAl um no) ListaInasistencias= AgregarInasistencias(Inasi stenciasAlumno)

RetornarObjeto(ListaInasistencias) Retornar(ListaInasistencias) RegistrarInasistencias(ListaInasi stencias)

Guardar(List aInasistencias) GuardarInasistenc ias(List aInasistencias) GuardarInasistenc ias(List aInasistencias) NuevaListaInasistenciasPersistente(List aInasistencias)

GuardarObjeto(NuevaListaInasistenciasPersistent e) :int

RetornarObjeto(ListaInasistencias) RetornarObjeto(ListaInasistencias) Retornar(ListaInasistencias)

191

CU31: Proceso de Grupos DID53: Proceso de Grupos


sd CU31 - DI53 .Proc esar Grupos Presenta cion Form Gestio narCierreCurso s S ecretaria Presentacion Form Bu scarGrupos Aplicaci on M anej adorGrupos Apli cacion Ma nejado rCal ificaciones Persistencia Persisten ciaSIINCO

Se leccionarGrupo()

Sel ecci onarG rupo() ArmarOb jeto(Gru po)

O btenerGrupo(Grupo) :bo ol ObtenerG rupo(Grupo) :bool

Sele ccio narObje to() :Gru po RetornarObjeto(Grupo) RetornarObj eto (Grupo ) Reto rnarOb jeto(G ru po) O btenerProm edios(Grupo)

L istaInscr iptos= O btenerIn sc riptos(Gr upo)

L istaM aterias= ObtenerM aterias(G rupo)

ObtenerProm edi o(G riupo, M ateria, Alumno) :bool

loop O btener Promedios M ate ria [Para cada Alum no y cada M ateria]

Arm aObjetoPromedio(Grupo , Materi a, Alu m no) :P romedio

ObtenerProm edi o(Prome dio) :bool Se leccionarOb jeto(Prom edio ) : Prom edioObte nido Reto rnarOb jeto(Prom edioObtenido) ListaP rom edios= AgregarProm edio(Prom e dioO btenido)

loop O bte nerPendiente s_e_Inasistencias [Para cada Alum no de l Grupo] O btene r Inasistenci as y Pendien tes(Alu m no, Curso) Arm arObje toInasisteasyPen dientes(A lum no, Curso) : Inasistenc i asyP endient es

ObtenerInasitencia s y Pendi entes(InasistenciasyP endientes) :bool S eleccionarIO bje to(InasistenciasyPendie ntes) :Ina sisten c iasyPendi ent esCurso

RetornarObj eto(InasistenciasyPendien tesCu rso) Retorn arO bje to(Inasistenci asyPe ndientesCurso) :ListaInasistenciasyPend ient es

Li sta Promedio sFi nales= V alidarProm edioFinal(Li staPro m edios, Li sta Ina sist enciasyPe ndientes)

RetornarObjeto(L istaP ro m ediosFinal es) Reto rnar(ListaProm ediosFi nale s) G uarda rPro medi os(ListaProm ediosFina les)

Gua rdarProm ed ios(ListaPromedi osFinales) G uardarProm edios(ListaProm ediosFinal es) Nu evaLista Prom ediosFin alesPe rsi stente (Li staProm edi osFi nales)

G uardarObj eto(NuevaListaP rom ediosFinalesPersistente) :int

Reto rnarOb jeto(Li staProm edi osFinales) RetornarObj eto(ListaP rom ediosFinales) Retornar(Lista Prom ediosFin ales)

192

CU32: Proceso de perodos de examen DID54: Abrir Perodo


sd CU32 - [Link] Perodo de Examen Presentacion FormProcesarPeri odosExamen Secretaria AbrirPeriodo() ArmarObjeto(Periodo) Aplicacion SIINCOManejador Persistencia Persistenci aSIINCO Dominio AnioLectivo

ObtenerUltimoPeriodoCerrado(Periodo) :bool ObtenerUltimoPeriodoCerrado(Periodo) :bool

SeleccionarUltimoPeriodoCerrado(Periodo)

Retornar(UltimoPeriodoCerrado)

ObtenerProxi moPeri odo(Ul timoPeriodoCerrado)

ProximoPeriodo= Retornar(ProximoPeriodo)

AbrirPeriodo(ProximoPeriodo) :bool

NuevoPeriodoPersistente(ProximoPeriodo)

AbrirPeri odo(NuevoPeriodoPersistente)

193

CU32: Proceso de perodos de examen DID55: Procesar Perodo


sd CU32 - [Link] Perodos de Examen Presentacion FormProcesarPeriodosExamen Secretaria ProcesarPeriodo() ArmarObjeto(Periodo) Aplicacion ManejadorEscolaridad Aplicacion ManejadorCalificaciones Persistencia PersistenciaSIINCO

ObtenerCandidatos(Periodo) :bool ObtenerCandidatos(Periodo) :bool

SeleccionarObjeto() : CandidatosPeriodo ListaCandidatos= RetornarObjeto(CandidatosPeri odo)

loop ProcesarResultados [Para cada alumno] Obtener Resultados Examenes(Alumno, Peri odo) ArmarObjeto(AlumnoPeriodo)

ObtenerResultadosExamenes(AlumnoPeriodo) :bool SeleccionarIObjeto(AlumnoPeriodo) : ResultadoExamen

RetornarObjeto(ResultadoExamen) RetornarObjeto(ResultadoExamen) : ListaResultadosEx amen

NuevaEscolaridad= RecalcularEscolaridad(ListaResultadoExamenes)

ModificarEscolaridad(NuevaEscolaridad) NuevaEscolaridadPersistente(NuevaEscolaridad)

GuardarObjeto(NuevaEscolaridad) :int

194

CU32: Proceso de perodos de examen DID56: Cerrar Perodo


sd Cerrar Perodo de Examen Presentacion FormProcesarPeriodosExamen Secretaria Aplicacion SIINCOManejador Persistencia PersistenciaSIINCO

CerrarPeriodo() ArmarObjeto(Periodo)

ObtenerPeriodoActual(Periodo) :bool

ObtenerPeriodoActual(Periodo) :bool SeleccionarPeriodoActual(Periodo)

Retornar(PeriodoActual)

CerrarPeriodo(PeriodoActual) :bool

NuevoPeriodoPersistente(PeriodoActual)

CerrarPeriodo(NuevoPeriodoPersistente)

195

[Link]. Diagramas de Clases Se debe tener en cuenta que en el diseo de las asociaciones y agregaciones, pueden surgir nuevas clases o desaparecer tal como se detalla en este apartado en Iteracin I. El principal objetivo de esta etapa de diseo de clases es por lo tanto, identificar para cada clase los atributos correspondientes a las mismas, sus operaciones y las responsabilidades identificadas en el anlisis adems de especificar los mtodos que implementan esas operaciones. Identificacin de Clases Adicionales En base al diagrama de Base de Diseo, se comienza a realizar un diseo especificando exactamente cada atributo, mtodo y responsabilidad de cada clase como se muestra en los diagramas a continuacin, dando un panorama exacto y ms detallado del diseo mostrado en el diagrama anterior. Nota: En los siguientes diagramas solo se mostrarn las clases nuevas con respecto a la iteracin I y aquellas que ya existen pero sern modificadas por la iteracin actual.

196

Diagrama de Paquetes
class Diagrama de Paquetes EXE Presentacio n + BuscarIDDescripcion + FormBasicoM antenim iento + Form Busqueda + Form BusquedaAlum no + Form BusquedaCurso + Form BusquedaGrupo + Form BusquedaM ateria + Form BusquedaPlan + Form BusquedaPlanCursos + Form BusquedaProfesor + Form BusquedaT ipoUsuario + Form BusquedaUsuario + Form Cam bioEstadoAnio + Form ConfiguracionBD + Form ConfiguracionInstituto + Form ConfiguracionTipoUsuarios + Form ConfiguracionUsuarios + Form EscritorioAplicacion + Form FicheroAlum nos + Form FicheroCursos + Form FicheroM aterias + Form FicheroPlanCursos + Form FicheroPlanes + Form FicheroProfesores + Form GestionCalificacionesNotasFinales + Form GestionCierreGrupos + Form GestionExam enes + Form GestionGrupos + Form GestionInasistenciasFinCurso + Form GestionInscripciones + Form GestionProcesarPeridosExam en + Form Login + Form M DIPrincipal + Form Splash + Program + VisorGrupo + VisorPlanCurso DLL Persistenci a + Conexion + CreadorObejetoPersistente + ObjetoPersistente + PersistenciaSIINCO + PersistenteAlum no + PersistenteAnioLectivo + PersistenteCalificacion + Persist enteCurso + PersistenteEscolaridad + PersistenteGrupo + PersistenteInasistenc ia + PersistenteInstitut o + PersistenteM ateria + PersistentePlan + PersistentePlanCurso + PersistentePlanCursoM ateria + Persist enteProfesor + PersistenteSesion + PersistenteT ipoUsuario + PersistenteUsuario DLL Aplicacion + EnCursoHaciaInscripciones + InicialHaciaInscripciones + InscripcionesHaciaEnCurso + M anejadorAlum no + M anejadorCalificaciones + M anejadorClave + M anejadorCurso + M anejadorEscolaridad + M anejadorGrupo + M anejadorInasistencias + M anejadorInscripciones + M anejadorMateria + M anejadorPlan + M anejadorPlanCurso + M anejadorProfesor + M anejadorT ipoUsuario + M anejadorUsuario + SeleccionValidadorCalificacion + SeleccionValidadorCambioEstado + SeleccionValidadorInscripcion + SIINCOM anejador + ValidadorCalificacionExam enes + ValidadorCalificacionNotasFinales + ValidadorInscripcionesGenerico + ICambioEstadoAnioLectivo + IValidarCalificacion + IValidarInscripcion DLL Domini o + Alum no + AnioLectivo + Calificacion + CalificacionFinCurso + CalificacionFinCursoInterna + Copiadora + CreadorObjeto + Curso + Escolaridad + EscolaridadExterna + EscolaridadInterna + Exam en + Exam enInterno + Grupo + Inasistencia + InasistenciaFinCurso + Inscripcion + Instituto + Lista + M ateria + Objet o + Param etrosSQL + PeriodoExam en + Plan + PlanCurso + PlanCursoM ateria + Profesor + Sesion + SIINCOExcepcion + T ipoUsuario + Usuario + IObserv able + IO bserv ador

197

Diagrama de Clases del paquete Presentacin


c la s s GUI De vExpre [Link] Ed ito [Link] rm Fo rm M DIPri n ci pa l + + + + _ escrito ri o: FormE scri to ri oAp li cacio n suj eto: IOb se rvabl e = SIINCOM a neja d or... Actua li zar(stri ng) : vo id Actua li zarEti qu eta Cam bi oEstad o() : vo id Estab le cerPerm iso s() : v oi d Fo rm M DIP ri ncip a l() Fo rm M DIP ri ncip a l_Fo rm Clo sin g(ob je ct, Form Cl osi ngEve ntArgs) : v o id Fo rm M DIP ri ncip a l_Lo ad(ob je ct, Syste m .Eve ntArg s) : vo id in foAni oLectivo _Ite m Cli ck(ob je ct, Item Cl i ckEve ntArgs) : v o id Lo gi n() : b ool m en uPri ncip a lAb rirCerrarPerio do Exa m e n_Ite m Cl i ck(o bje ct, Item Cl ickEven tArgs) : v o id M en uPri ncip a lAyu da Item Cl ick(obj ect, Ite m Cli ckEventArg s) : v oi d m en uPri ncip a lCo nfig uraci on BD_ Item Cli ck(ob je ct, Item Cl ickEventArg s) : v oi d m en uPri ncip a lCo nfig uraci on In sti tu to _ Ite m Cli ck(obj ect, Item Cl i ckEve ntArg s) : vo id M en uPri ncip a lCo nfig uraci on Ti po sUsu ario Ite m Cli ck(obj ect, Item Cl i ckEve ntArg s) : vo id M en uPri ncip a lCo nfig uraci on Usuari osItem Cl ick(o bj ect, Ite m ClickEven tArgs) : v oi d M en uPri ncip a lFicherosAl um n osItem Cl ick(obj ect, Ite m ClickEventArgs) : v oi d M en uPri ncip a lFicherosCu rsosItem Cl ick(o b je ct, Ite m Cl ickEven tArgs) : v oi d M en uPri ncip a lFicherosM ateria sIte m Cl ick(ob je ct, Item Cl ickEventArgs) : v oi d M en uPri ncip a lFicherosPl an Curso sItem Cli ck(obj ect, Ite mCli ckEve ntArg s) : v oid M en uPri ncip a lFicherosPl an esItem Cl ick(o b ject, Ite m ClickEven tArgs) : v oi d M en uPri ncip a lFicherosProfesoresItem Cl ick(o b ject, Ite m ClickEven tArgs) : v oi d M en uPri ncip a lGe sti o nGru p osItem Cl ick(o b je ct, Ite m Cl ickEven tArgs) : v oi d m en uPri ncip a lGe sti o nInasi ste n ci a s_Ite mCli ck(o bj ect, Item Cli ckE ven tArgs) : v o id M en uPri ncip a lGe sti o nIncrip ci onIte m Cli ck(obj ect, Item Cl i ckEve ntArg s) : v o id m en uPri ncip a lGe sti o nPro cesarGru po s_Ite m Cl ick(ob je ct, Ite m Cli ckEventArgs) : v o id m en uPri ncip a lGe sti o nRegi strarExa me nes_Ite m Cl i ck(o bj ect, Ite mClickEven tArgs) : v oid M en uPri ncip a lIn fo rm esCrea rIte m Click(ob j ect, Ite m Cli ckEventA rgs) : v o id M en uPri ncip a lIn fo rm esVerIte m Click(ob je ct, Ite m Cli ckEve ntA rg s) : v o id m en uPri ncip a lRe gi stroCal i ficaci on e sFin Curso _Item Cl ick(ob je ct, Ite m Cli ckEventArgs) : v oi d -_p aren t # # # + # # # # # # # DevExp [Link] [Link] rm Fo rm Ba si co M a nte n im i en to _ fo rm Bu squ eda s: Fo rm Busqued a _ o bj Obj etoMa n te ni m ie nto: Obje to _ p rim e rPa in t: b ool = true Arm arOb je to Desd ePa n ta lla () : void Arm arP an ta lla DesdeOb je to () : void Fo rm Ba si co M a nten im i en to () Fo rm Ba si co M a nten im i en to _Lo ad (o bj ect, System .Eve ntArg s) : v oi d Fo rm Ba si co M a nten im i en to _Pai nt(obj ect, Pai n tEve ntArg s) : vo id M en u Busca r_ Cli ck(obje ct, De vExp re [Link] [Link] Cl ickEve ntArg s) : vo id M en u Can ce la r_ Cli ck(obj ect, DevExp re [Link] Ba [Link] Cl ickEventArg s) : v oi d M en u El im i na r_ Cli ck(ob je ct, DevExp re [Link] [Link] Cl ickEve ntArg s) : vo id M en u Fi ch ero sSa lir_Cli ck(o bj ect, De [Link] mClickEven tArgs) : v oi d M en u Gu a rda r_ Cl i ck(o bj ect, De vExp re [Link] Ba [Link] Cl i ckEve ntArg s) : v o id M en u Nue vo _ Click(ob je ct, De vExp re [Link] m Cli ckEven tArgs) : v o id Nu evo () : v o id # + Form Gestio n Ina siste n cia sFi nCu rso _ ob j Grupo Regi stro: Gru p o _ ob j Si ng le to n: Form Ge stio n In asiste ncia sFin Cu rso Arm a rPa n tal la Gru p o() : voi d Carg arAl um nos() : v oi d Crea rCab ecera(ob je ct, Crea teA rea Eve ntArgs) : v oi d Form a to Aprob acio nes() : v o id Form Gesti on In asisten ci asFi nCu rso( ) Insta ncia (Fo rm ) : Form Ge stio nIna si stenciasFin Curso m Gu arda r_ Ite m Cl i ck(o bje ct, De vExp re [Link] Ba [Link] Cl i ckEve ntArg s) : v o id m Im prim ir_Item Cl ick(obj ect, [Link] [Link] m Cli ckEve n tArg s) : v oi d m Ing re soIna si ste nci asSel ecci on a rGrup o _Ite mCl ick(o b je ct, [Link] [Link] m Cli ckEventArgs) : v o id m Sa li r_Ite m Cli ck(ob je ct, De vExp re [Link] [Link] Cl i ckEve ntArg s) : vo id Repo rteInasisten cia s() : v oi d S ele ccionGrupo (Obj eto) : v o id DevExp [Link] [Link] -_ob jSin gl eton

p rop e rty + Ob je to M an te ni m ie nto() : Ob je t o

prop erty - An io Le cti voA ctu al () : An i oLe ctivo - Gru p oRe g istro () : Gr upo [Link] [Link] rm

FormGe sti onGru p os # # + # # # # # # # # _ fo rm Busq ued as: Form Bu squ eda Gru p o = ne w Fo rm Bu sq ued ... {rea d Onl y} _ ob jSi ng le to n : Fo rm Ge stio nGrup o s -_o bj Singl eton + -

Form Cam b io Estad o A ni o _o b jSin g le to n: Form Cam bi o Esta do An io

-_ob jSingl eton

-_e scritori o De vExp re [Link] Edi [Link] Fo rm Fo rm Escri tori oApl ica c i on + _p arent: Fo rm M DIPrin cip a l {rea dOn ly} Fo rm Escri to rio Apl icacio n (For m ) L in kCa mb io Usu ari o_Cl i ck(o bj ect, Even tArgs) : v oi d L in kCe rrar_Cli ck(ob je ct, EventArg s) : v oi d L in kInfo rm e s_ Cli ck(obj ect, Eve ntArg s) : v oi d m Procesa rEsta do s_Click(ob je ct, Eve ntArg s) : v o id

Arm a rObj etoDesdePa ntal la () : vo id Arm a rPa ntal la De sde Ob je to () : vo id comb o M ateria s_ Se le ctedInd exChan g ed (o bj ect, E ven tArgs) : v oi d Fo rm Gesti on Grup os() gri dVie wFi la sM a te ria s_ Click(ob je ct, Eve ntArg s) : v o id gri dVie wFi la sM a te ria s_ Fo cused RowCha nge d(ob je ct, DevExp re [Link] .Vie [Link] [Link] cu sed RowChan ged Even tArgs) : v oi d Ini cio () : v oi d Instancia (Fo rm ) : Form Ge stio nGr up o s M en uBusca r_ Cl i ck(ob je ct, Item Cl ickEventArgs) : v oi d M en uCance la r_ Click(ob je ct, Item Cli ckEve ntArg s) : v o id M en uEli m i na r_ Cl ick(ob je ct, Item Cl ickEventArgs) : v o id M en uGu ardar_Cli ck(ob je ct, Item Cl ickEventArg s) : v oi d M en uNuevo _Cl ick(o b je ct, Ite m Cli ckE ven tArgs) : v oi d Nuevo () : v o id Sel eccio nar(Ob je to ) : v oi d Sel eccio narDa to Gri ll a() : vo i d Sel eccio nPl an Cu rso(Ob je to ) : v oi d to o lBuscarPl anCu rso _Cl ick(ob je ct, EventArgs) : voi d

Fo rm Ca mb io Esta d oAn io () Ini cio () : v oi d Instan cia (Form ) : Form Cam b io Estad o A ni o m Proce sar_Ite m Cl ick(ob je ct, De vExp re [Link] [Link] m Cli ckEventArgs) : v o id m Refrescar_Ite m Cli ck(ob je ct, DevExp re [Link] [Link] Cl ickEve ntArg s) : vo id m Sal i r_Item Cl ick(ob je ct, De vExpre ss.X tra [Link] m Cli ckEventArgs) : v o id

p ro p erty - Ani oL e ctivoActu al () : An io Lecti vo De vExp re [Link] ito [Link] Form Form Confi guracio n In stitu t o + _i nsti tuto: Insti tu to = n ew In sti tu to () Fo rm Co nfig uraci on In stituto () Ini ci o() : v oi d m Co n fig u ra ci onGuarda r_ Click(obj ect, DevExp re [Link] Cl i ckEven tArgs) : v oi d m Co n fig u ra ci onSal i r_ Cli ck(o bj ect, DevExp [Link] [Link] m Cl i ckEven tArgs) : v oi d

prop erty - Ani oLe ctivoActu al () : An io L ecti vo DevExp [Link] [Link] Form Ge stio nInscri pc i o nes -_ob jSing le ton + _ob jGru poInscri pci on : Grup o _ob jSi ngl e to n: Fo rm Ge sti on In scrip cio n es Ag re garAl um no _Cl ick() : voi d Al um n oSel ecci on a do(Obj eto) : voi d Carga rInscri pci on e sGrup o() : v o id Cre arCab e cera(ob je ct, Cre a te Are aEven tArgs) : v oi d Form Gesti on In scrip ci one s() In stan cia (Form ) : Form Gesti onInscri pc io n es m Fiche ro sBusca rGru po_ Item Cli ck(ob je ct, De [Link] [Link] Cl ickEventArgs) : v oi d m Fiche ro sSal i r_ Item Cli ck(o bj ect, DevExp re [Link] [Link] ickEve n tArg s) : v oid m Im pri m ir_Item Cl ick(o b je ct, [Link] [Link] m ClickEventArgs) : v oi d Qui ta rAl um n o_Cl i ck() : v o id Rep o rte In scri p cio n es() : vo id Sel eccio nGru po (Obj eto) : v oi d -_ob jSin gl eton

prop erty + Eti que ta In stituto() : stri ng + Eti que ta Sesi on () : stri ng + Eti que ta Usuari o() : str in g + Ve rCa m bi oAn io Lecti vo () : b oo l + Ve rIn fo rm es() : b ool

[Link] Edi to [Link] Fo rm Gesti on Exa m e nes + -_ob jSin gl eton # + _o bj M ateria Regi stro: M a te ri a _o bj Pla nCurso: Pla n Curso _o bj Sin gl eton: Form Gesti on Exam e nes Actu al izar(stri ng ) : vo id Ca rg a rDatosP lanCu rso() : v oi d Ca rg a rM a te ria sPl anCurso (Pla n Curso ) : v o id com bo Ma te ri as_Sel ectedVa lu eChan ge d_ 1 (o bj ect, Even tArgs) : v oi d Fo rm a to Aprob a ci one s() : v oi d Fo rm Ge sti o nExam en es() Ha b ili ta rIn g reso Nota() : v oi d Ha b ili ta rSel eccio nMa te ri as() : vo id Insta n cia (Form ) : Form Ge stio nEx a m en e s m e n uRe g istra rNo ta s_Ite m Cli cked(ob je ct, T o ol Stri pIte m Clicke dE ven tArgs) : v o id m Sa li r_ Ite m Click(obj ect, DevExp re [Link] [Link] Cl ickEve ntArg s) : vo id m Se le cci on arPla nCurso_ Item Cl i ck(ob je ct, De [Link] [Link] Cl ickEventArgs) : v o id Se le cci on Pla nCurso(Ob j eto) : vo id tool Carga rCan di da to sM ateria_ Cli ck(obj ect, EventArgs) : vo id

DevExp [Link] [Link] rm Fo rm Ge sti on Cie rreGr upo s + _o bj Grupo Reg istro: Grupo _o bj Si ngl eton : FormGestio nCi erreGru p os

Arm a rDa tosGrupo () : voi d Ca rg arDetal le Al um no () : v o id Ca rg arEscol arid ad Alu m n os() : v o id Crea rCa be ce ra (ob ject, Create Are a Eve ntArg s) : v o id Form atoDe ta ll eAp ro b aci on es() : v oid Form atoEsco la rid ade s() : v o i d Form atoLa bel s() : v oi d Form Ge sti onCierreGrup os() g ri dVie wEscol arid ade s_Focuse d RowCha nge d(obj ect, De [Link] Grid .Vie [Link] cuse dRowCh a ng e dEven tArgs) : v oi d In sta ncia (Form ) : Fo rm Gesti onCie rreGru pos m Guard ar_Ite m Cl ick(ob je ct, De vExp re [Link] [Link] m Cli ckEventArgs) : v o id m Guard arCerrar_Ite m Cli ck(ob je ct, DevExp re [Link] [Link] Cl ickEventArg s) : vo id m Im pri m ir_Ite m Cli ck(obje ct, De vExp re [Link] [Link] Cl i ckEve ntArgs) : vo id m Sa lir_Ite m Click(ob je ct, DevExp [Link] Cli ckE ven tArgs) : v o id m Se le ccio n arGru po_ Item Cl i ck_1 (o b je ct, [Link] [Link] m Cli ckE ven tArgs) : v o id Re porteFin Cu rso() : v oi d Se le ccio n Grup o(Ob je to ) : v oi d

prope rty - An io Lecti vo Actual () : An io Lectivo - Gru poInscripci on() : Gru po

prop erty + M a te ri aRe g istro () : M ater ia - Pl an Curso Reg istro() : Pla nCu rso

DevExp [Link] [Link] Form Ge stio nCa li fica ci on e sNotasFin al es DevExp re [Link] Ed [Link] Form -_ob jSin gl eton

Fo rm Gesti onPro cesa rPeri dosEx am e n + _o bj Sin gl eton: Form Gesti on Pro cesa rPe ri do sE xam en

-_o bj Sin gl eton

# + -

_ ob jGrupo Re gi stro : Gru p o _ ob jM a te ri aRe gi stro : M ateria _ ob jSi ng le to n : Fo rm Ge stio n Cal i fi caci one sNotasFin al es Arm a rPa ntal la Grupo () : vo id CargarM a te ria sGrup o (Pla nCurso ) : v oi d com bo M aterias_ Se le ctedVa lu eChan ged (obj ect, EventArgs) : v oi d Fo rm a to Aprob a ci on es() : v o i d Fo rm Gesti on Ca lificacio nesNotasFi na le s() Habi l ita rIn g re so Nota() : v oi d Habi l ita rSel ecci o nGru p oM ateri as() : v oi d Instancia (Fo rm ) : Form Ge stio nCa li fica ci on e sNota sFin al es m en uReg istrarNota s_ Ite m Cli cked (o bj ect, T o o lStri pIte m Clicke d Eve ntA rgs) : v o id m Sal ir_ Ite m Cli ck(obje ct, DevExp re [Link] [Link] Cl ickEve ntArg s) : vo id m Sel eccio narGru po _ Ite m Cli ck(obj ect, De vExp re ss.X tra [Link] m Cl i ckEventA rgs) : v oi d Sel eccio nGru po (Obj eto) : v o id to o lCa rg arNotas_Cli ck(obj e ct, Eve ntArg s) : vo id

p ro pe rty - Ani oLe ctivo Actua l() : Ani oL e ctivo - Gru poRe gi stro () : Gr u po

Fo rm Ge sti o nPro cesarPeri dosExa m en( ) Fo rm Ge sti o nPro cesarPeri dosExa m en_ Load (o bj ect, Eve ntArg s) : v oi d Ini ci o() : v oi d Insta n cia (Form ) : Form Ge stio nProce sarPerid osEx ame n m Acci onPe ri od o_ItemCl ick(o b je ct, [Link] [Link] m ClickE ven tArgs) : v o id m Sa li r_ Ite m Click(obj ect, DevExp re [Link] [Link] Cl ickEve ntArg s) : vo id

prop erty - An ioL ecti vo() : An io Lecti vo

prop erty - Ani oLe ctivoActu al () : An io L ecti vo - Gru p oRe g istro () : Grupo + M ate ri aRe g istro () : Ma te r ia

198

Diagrama de Clases del paquete Dominio


class Dominio Peri odosExam en interface InterfaceObserver::IObservable + + + DesRegistrar(IObservador) : void Noti ficar() : voi d Registrar(IObservador) : void + interface InterfaceObserver:: IObservador Actualizar(string) : voi d + + + + + [Link] ICloneable Objet o _mBoolAuditable: bool = false _mBoolCompuesto: bool = false _mBoolEli minado: bool = fal se _mBoolNuevo: bool = true _mListafil as: Lista<Objeto> = new Lista<Obj eto>() _mT imeStamp: byte ([]) Begi nEdit() : v oid Cancel Edit() : v oid Clone() : objec t EndEdi t() : voi d SincronizarCompuestoFilas() : v oi d AnioLectivo _mAnio: int _mEstado: EstadoLectivo _mPeriodoExamenActivo: bool _mPeriodoExamenActual: PeriodoExamen = new PeriodoExamen() -_anioLectivo + _mPeriodo: Periodos

Sesi on _anioLectivo: AnioLectivo = new AnioLectivo() _mDateFinSesi on: DateT ime _mDateInicioSesion: DateTi me {readOnl y} _mIntSesion: decimal = 0 _mStrHost: string {readOnly} _mStrIP: string {readOnl y} _mUsuari o: Usuario {readOnly}

+ AnioLectivo() + Si ncroni zarCompuestoFilas() : v oid + ToString() : string property + AnioLectivoVigente() : int + Estado() : EstadoLectivo + PeriodoExamenAbierto() : bool + PeriodoExamenActivoStr() : stri ng + PeriodoExamenActual() : PeriodoExamen + Proxi moEstadoStr() : string + ToStringID() : stri ng + Ul timoPeriodoCerrado() : int

Insti tut o _mStrDireccion: string = "" _mStrNombre: stri ng = "" _mStrTelefono1: string = "" _mStrTelefono2: string = ""

+ Sesion(Usuario, Ani oLecti vo) property + AnioLecti vo() : AnioLecti vo + FinSesion() : Dat eT ime + Host() : stri ng + InicioSesi on() : Dat eTi me + IP() : string + SesionID() : dec imal + Usuari o() : Usuario Escolari dad _mAlumno: Alumno = new Alumno() _mDateFechaPromocion: DateT i me = [Link] _mEstadoEscolari dad: EstadosEscol aridad _mEstadoFinCurso: EstadosEscol aridad _mIntAnioLectivo: int _mIntNota: int _mPlanCurso: PlanCurso = new PlanCurso() _mStrConcepto: string _mStrInstituto: stri ng _mStrMotivoEstado: string

+ Si ncroni zarCompuestoFilas() : v oid property + Di reccion() : stri ng + Nombre() : string + Telefono1() : string + Telefono2() : string + ToStringID() : stri ng

property + Auditable() : bool + Compuesto() : bool + CompuestoPor() : Objet o + Eliminado() : bool + Filas() : Lista<Objet o> + Nuevo() : bool + T imeStamp() : byte[ ] + ToStringID() : st ring

Cali ficacion _dateFecha: DateTi me = DateTi [Link] _mAlumno: Alumno = new Al umno() _mBool Aprobada: bool _mIntAnioLectivo: int _mIntNota: int _mIntPeriodo: int _mPlanCursoMateria: PlanCursoMateria = new PlanCursoMa... _mStrConcepto: string

# Escol aridad() + Si ncronizarCompuestoFi las() : v oid property + Al umno() : Alumno + AnioLectivo() : int + Concepto() : string + EstadoEscolari dad() : EstadosEscolari dad + EstadoFinCurso() : EstadosEscolaridad + FechaPromocion() : Dat eTime + Instituto() : string + MotivoEstado() : string + NoReprobada() : bool + Nota() : i nt + Origen() : st ring + Pl anCurso() : Pl anCurso + ToStringID() : string

# Califi cacion() + Sincroni zarCompuestoFilas() : v oid property + Alumno() : Alumno + AnioLectivo() : int + Aprobada() : bool + Concepto() : string + Fecha() : Dat eTime + Nota() : i nt + Origen() : st ring + Periodo() : int + PlanCursoMateria() : PlanCursoMateria + Ti poCal ificacion() : st ring + T oStringID() : string -

Inasi stencia _mAl umno: Al umno = new Alumno() _mGrupo: Grupo = new Grupo() _mIntJustificadas: int _mIntNoJustificadas: int _mIntPeriodo: int -_mGrupo -

Grupo _mCerrado: bool = false _mDateFechaAlta: DateTi me = [Link] _mIntAnioLectivo: int _mIntGrupoID: int _mIntMaxi moAlumnos: int _mIntMinimoAlumnos: int _mPlanCurso: Pl anCurso = new PlanCurso() _mStrDescripcion: string _mStrGrupoIdentificador: string _mStrT urno: string

# Inasistencia() + SincronizarCompuestoFil as() : v oid property + Al umno() : Alumno + Grupo() : Grupo + Inasistencias() : int + Justifi cadas() : int + NoJustificadas() : int + Periodo() : int + TipoInasistencia() : st ring + ToStri ngID() : string

+ Grupo() + SincronizarCompuestoFilas() : voi d property + AnioLectivo() : int + Cerrado() : bool + CerradoStr() : string + Descripcion() : string + FechaAlta() : Dat eT ime + GrupoID() : int + GrupoIdentificador() : string + Maxi moAlumnos() : i nt + MinimoAlumnos() : int + PlanCurso() : PlanCurso + T oStringID() : string + T urno() : string

EscolaridadExterna property + Origen() : string

Escolari dadInterna property + Origen() : string

-_mGrupo

Califi cacionFinCurso property + Origen() : string + Periodo() : i nt + Ti poCal ificacion() : string

Ex amen property + Ori gen() : stri ng + TipoCalificacion() : stri ng

Inscripcion _mAlumno: Alumno = new Alumno() _mDateFechaInscripcion: DateT ime = DateTi [Link] _mGrupo: Grupo = new Grupo()

InasistenciaFinCurso property + Periodo() : int + TipoInasi stencia() : stri ng Califi cacionFinCursoExterna property + Origen() : string ExamenInterno property + Origen() : string

+ Inscripcion() + SincronizarCompuestoFilas() : void property + Alumno() : Alumno + FechaInscripcion() : Dat eT ime + Grupo() : Grupo + T oStringID() : string

Califi cacionFinCursoInterna property + Origen() : string

199

Diagrama de Clases del paquete Aplicacin


class Aplicacion Manej adorGrupo + + + + + + + + + + + + + + + + + + _objSingleton: ManejadorGrupo -_objSingleton -_objSingleton SIINCOManej ador + + + + + + + + + + # + + + _listaObservers: List<IObserv ador> = new List<IObser... _objSingleton: SIINCOManej ador _sesion: Sesion AbrirProximoPeri odoExamen() : bool CambiarEstadoAnioLectivo() : bool CambioEstadoAnioLectivoValido(string*) : bool DesRegistrar(IObservador) : void Eliminar(Objeto) : bool Guardar(Objeto) : bool GuardarLista(Lista<Objeto>) : bool InicioSesion(Usuario, string) : ResultadoLogin Instancia() : SIINCOManejador Notificar() : void Obtener(Objeto) : bool ObtenerProximo(Obj eto) : int ObtenerTodos(Objeto) : Li sta<Objeto> ProcesarPeriodoExamen() : bool ProcesarPeriodoExamenActual() : bool Registrar(IObservador) : v oid + + + + + -_objSingleton Manej adorInscripciones _objSingleton: ManejadorIns cripciones Eliminar(Objeto) : bool Guardar(Objeto) : bool Instancia() : ManejadorInscripciones Obtener(Objeto) : bool ObtenerInscripcionesNoValidas(AnioLectivo) : Lista<Obj eto> Validar(Inscripcion) : bool

ArmarEscolaridadGrupo(Grupo) : Lista<Objeto> CerrarGrupo(Grupo) : bool Elimi nable(Grupo) : bool Eliminar(Objeto) : bool GruposAnioLectivo(AnioLectivo) : Lista<Objeto> Guardar(Objeto) : bool GuardarCal ificaci onesGrupo(Grupo, Lista<Objeto>) : bool GuardarEscolaridadGrupo(Grupo) : bool GuardarInasistenciasGrupo(Grupo, Lista<Objeto>) : bool Habil itadoParaCierre(Grupo) : bool Instancia() : ManejadorGrupo Obtener(Objeto) : bool ObtenerCalificacion(Inscripcion, Materia, CalificacionFinCursoInterna) : Cali ficacion ObtenerCal ificaciones Grupo(Grupo, Materia, CalificacionFinCursoInterna) : Lista<Objeto> ObtenerCal ificacionesGrupo(Grupo, CalificacionFinCursoInterna) : Li sta<Objeto> ObtenerCalificacionesGrupoAl umno(Inscripcion, CalificacionFi nCursoInterna) : Lista<Objeto> ObtenerCalificacionesGrupoMateria(Lista<Objeto>, Materia, CalificacionFinCursoInterna) : Lista<Obj eto> ObtenerEscolaridadesAnio(Ani oLectivo) : Lista<Objeto> ObtenerInasistenciasGrupo(Grupo, Inasistencia) : Lista<Objet o> ObtenerInasistenciasGrupoAlumno(Inscripcion, Inasistencia) : Inasistencia ObtenerInscriptos(Grupo) : Lista<Obj et o> ObtenerTodos(Objeto) : Lista<Objeto> Validar(Grupo) : bool

Manej adorInasistencias + + + + _objSingleton: ManejadorInasistencias Guardar(Objeto) : bool GuardarLista(Lista<Objeto>) : bool Instancia() : Manej adorInasistencias Obtener(Objeto) : bool Validar(Inasistencia) : bool

-_objSingl eton

enumeration SIINCOManej ador:: ResultadoLogi n LoginCorrecto ClaveIncorrecta UsuarioInactivo UsuarioInexistent e

property - AnioLectivoActual() : AnioLectivo

property + Instituto() : Institut o + SesionActual() : Sesion

SeleccionV alidadorCambioEstado Manej adorCalificaciones + + + ~ + + _obj Singleton: ManejadorCalificaciones Guardar(Objeto) : bool GuardarLista(Lista<Objeto>) : bool Instancia() : ManejadorCalificaciones NuevaCalificacionFinal(string) : Calificaci on Obtener(Objeto) : bool ObtenerExamenes(int, Peri [Link]) : Lista<Objeto> Validar(Calificacion) : bool -_objSingleton + + + + + + + + ~ SeleccionarVal idador(AnioLectivo) : ICambioEstadoAnioLectivo Manej adorEscolaridad _objSingleton: ManejadorEscolaridad -_objSingleton

CandidatosExamen(int, int) : Lista<Objeto> CandidatosExamen(Pl anCursoMateria, int, int) : Lista<Objeto> Instancia() : ManejadorEscolaridad Obtener(Objeto) : bool ObtenerEscolaridadAlumno(Alumno) : IList ObtenerEscolaridadCursoAlumnoUltima(Alumno, Curso) : Escolaridad ProcesarEs colaridadAlumno(Alumno, AnioLectivo) : bool ProcesarEscolari dadCursada(Inscripcion) : Escol aridadInterna

Manej adorCurso + + + + _objSingleton: ManejadorCurso -_obj Singleton CursosOrdenados() : L ista<Objet o> Guardar(Objeto) : bool Instancia() : ManejadorCurso UltimoCurso() : Curso Validar(Curso) : bool

SeleccionValidadorInscripcion ~ SeleccionarValidador(Inscripcion) : IValidarInscripcion SeleccionV alidadorCalificacion ~ SeleccionarValidador(Calificacion) : IValidarCalificacion interface IValidarInscripcion + Eliminable(Inscripcion) : bool + Val idarInscripcion(Inscripcion, string*) : bool

interface ICambioEstadoAnioLectivo + RealizarCambioEstado(AnioLectivo, string*) : bool + ValidarCambioEstado(AnioLectivo, string*) : bool

interface IValidarCalificacion + ValidarCalifi cacion(Calificacion) : bool InicialHaciaInscripcione s + RealizarCambioEstado(AnioLectivo, string*) : bool + ValidarCambioEstado(Ani oLectivo, string*) : bool InscripcionesHaciaEnCurs o + Reali zarCambioEstado(AnioLectivo, string*) : bool + ValidarCambi oEstado(AnioLectivo, string*) : bool

ValidadorInscripcionesGenerico + Eliminable(Inscripcion) : bool + ValidarInscripcion(Inscripcion, string*) : bool +

ValidadorCalificacionNotasFinales ValidarCalificacion(Calificacion) : bool + ValidadorCalificacionExamenes ValidarCalifi cacion(Calificacion) : bool EnCursoHaciaInscripcione s + RealizarCambioEstado(AnioLectivo, string*) : bool + ValidarCambioEstado(AnioLectivo, string*) : bool

200

Diagrama de Clases del paquete Persistencia


class Persistencia PersistenteCalificac ion ~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : v oid ~ PersistenteCalificacion(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ Tabla() : string PersistenteAnioLectiv o ~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : void ~ PersistenteAnioLectivo(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ Tabla() : string PersistenteInasistencia ~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : v oid ~ PersistenteInasistencia(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ Tabla() : string

PersistenteEscolaridad ~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : v oid ~ PersistenteEscolaridad(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ Tabla() : string -

ObjetoPersistent e _objetoDominio: Objeto {readOnly}

PersistenteInstitut o + ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : v oid ~ PersistenteInstituto(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ Tabla() : string

~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : void ~ ObjetoPersistente(Objet o) property ~ ObjetoDominio() : Objet o ~ SQLDelete() : st ring ~ SQLInsert() : st ring ~ SQLObtenerFilas() : st ring ~ SQLObtenerTodos() : string ~ SQLProximoIDLibre() : st ring ~ SQLSelectClave() : st ring ~ SQLUpdate() : st ring ~ Tabla() : string

PersistenciaSIINCO + + + + + + + + + + _conexion: [Link] _objSingleton: PersistenciaSIINCO _sesion: Sesion -_objSingleton

BeginTransaction() : v oid CommitTransaction() : v oid El iminar(Objeto) : bool Guardar(Objeto) : bool GuardarAccionSesion(ObjetoPersistente, string) : bool GuardarObjeto(ObjetoPersistente) : bool GuardarObjetoCompuesto(ObjetoPersistente) : bool Instancia() : PersistenciaSIINCO Instancia(Sesion) : Persistenc iaSIINCO NuevaSesion() : bool Obtener(Objeto) : bool ObtenerFilas(Objeto) : v oid ObtenerProximoID(Objeto) : int ObtenerT odos(Objeto) : Lista<Objet o> PersistenciaSIINCO() RollbackTransaction() : void

PersistenteInscripc ion ~ ArmarObjeto([Link]) : bool ~ CrearParametros([Link], Sesion) : v oid ~ PersistenteInscripcion(Objet o) property ~ SQLDelete() : string ~ SQLInsert() : string ~ SQLObtenerFilas() : string ~ SQLProximoIDLibre() : string ~ SQLSelectClave() : string ~ SQLUpdate() : string ~ T abla() : string PersistenteSesion _sesion: Sesi on {readOnly}

~ CrearParametrosCabecera([Link]) : void ~ CrearParametrosLinea([Link], ObjetoPersi stente, string) : v oid ~ PersistenteSesion(Sesion) property ~ SQLId() : string ~ SQLInsertCabecera() : string ~ SQLInsertLinea() : string ~ SQLUpdateCabecera() : string

201

2.6.5. Implementacin. A continuacin la lista de las clases encontradas y sus respectivas responsabilidades: [Link]. Diccionario de Clases Se detallan las clases que se agregarn con respecto a la iteracin I y adems aquellas que sern modificadas por la presente iteracin.
Paquete Clases Alumno AnioLectivo Calificacion CalificacionFinCurso CalificacionFinCursoExterna CalificacionFinCursoInterna Escolaridad EstadosEscolaridad EscolaridadExterna EscolaridadInterna Examen ExamenInterno Grupo Inasistencia InasistenciaFinCurso InformeCalificacion InformeEscolaridad InformeInscripciones Inscripcion Instituto Materia Objeto PeriodoExamen Sesion EnCursoHaciaInscripciones InicialHaciaInscripciones InscripcionesHaciaEnCurso ManejadorCalificaciones ManejadorCurso ManejadorEscolaridad ManejadorGrupo ManejadorInasistencias ManejadorInscripciones SeleccionValidadorCalificacion SeleccionValidadorCambioEstado SeleccionValidadorInscripcion SIINCOManejador ValidadorCalificacionExamenes ValidadorCalificacionNotasFinales ValidadorInscripcionesGenerico Estado Modificada Nueva Nueva Nueva Nueva Nueva Nueva Nueva Nueva Nueva Nueva Nueva Modificada Nueva Nueva Nueva Nueva Nueva Nueva Nueva Modificada Modificada Nueva Nueva Nueva Nueva Nueva Nueva Modificada Nueva Modificada Nueva Nueva Nueva Nueva Nueva Modificada Nueva Nueva Nueva

Dominio

Aplicacin

Paquete Dominio
Paquete Sper Clase Clase Descripcin Atributos _mBoolNuevo: Tipo bool _mBoolEliminado: Tipo bool _mBoolCompuesto: Tipo bool _mBoolAuditable: Tipo bool _mListafilas: Tipo Lista Dominio n/a Objeto Clase que ser heredada por los objetos utilizados en el sistema. Descripcin Indica si se trata de un objeto a crear. Indica si se trata de un objeto a eliminar. Es un objeto compuesto por otros objetos. Indica si se debe guardar informacin de auditora sobre ese objeto. (se agrega) Si el objeto es compuesto almacena la lista de los objetos que lo componen.

202

_mTimeStamp: Tipo byte.

Mtodos Pblicos object Clone() override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntAlumno: tipo int _mStrNombres: tipo string _mStrNombre1: tipo string _mStrNombre2: tipo string _mStrApellido1: tipo string _mStrApellido2: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrFechaNacimiento: tipo DateTime _mStrLugarNacimiento: tipo string _mStrSexo: tipo string _mStrDireccion: tipo string _mStrBarrio: tipo string _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrEmail: tipo string _mStrNombrePadre: tipo string _mStrNombreMadre: tipo string _mBoolTutor: tipo bool _mStrNombreTutor: tipo string _mStrRelacionTutor: tipo string _mIntJuramentoBandera: tipo int _mStrLugarJuramentoBandera: tipo string _mStrInstitutoPrimaria: tipo string _mStrEnfermedades: tipo string _mStrMedicamentos: tipo string _mStrTratamientos: tipo string _mStrOtros: tipo string _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mAnio: Tipo int _mEstado: Tipo EstadoLectivo

Mantiene una referencia de un objeto editado para evitar que el mismo pueda ser modificado desde otra terminal al mismo tiempo. Descripcin Realiza una copia de un objeto dado Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Alumno Se registran todos los alumnos que se inscriben en el colegio. Descripcin Identificacin del objeto Alumno. Se elimina. Primer nombre del Alumno. (se agrega) Segundo nombre del Alumno. (se agrega) Apellido paterno del Alumno. Apellido materno del Alumno. Indica el tipo de documento con el que se registra el Alumno. Documento de Identidad del Alumno. Fecha de nacimiento del Alumno. Lugar de nacimiento del Alumno. (se agrega) Sexo del Alumno (Masculino, Femenino). Direccin actual del Alumno. Barrio donde reside el alumno. Localidad del Alumno. Telfono de contacto del Alumno. Email del Alumno. Nombre del padre del Alumno. (se agrega) Nombre de la madre del Alumno. (se agrega) Se elimina. Nombre del tutor del Alumno. Especifica la relacin entre el tutor y el Alumno. Indica si el alumno ha jurado la bandera. (se agrega) Nombre de la institucin donde el alumno juro la bandera. (se agrega) Nombre de la institucin donde el alumno curso primaria. (se agrega) Permite detallar si el Alumno tiene alguna enfermedad conocida. Permite detallar si el Alumno usa algn tipo de medicamento o similar. Permite detallar si el alumno se encuentra bajo algn tratamiento mdico. Permite ingresar otras observaciones del alumno. Indica la fecha en que se dio de alta al Alumno en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto AnioLectivo Se registran los distintos estados del ao lectivo adems de los perodos de exmenes de este y si estos se encuentran abiertos o cerrados. Descripcin Indica el ao lectivo. Estado en que se encuentra el ao (Inicial, Inscripciones, EnCurso).

203

_mPeriodoExamenActual: Tipo PeriodoExamen _mPeriodoExamenActivo: Tipo bool Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _dateFecha: Tipo DateTime _mPlanCursoMateria: Tipo PlanCursoMateria _mAlumno: Tipo Alumno _mIntAnioLectivo: Tipo int _mIntPeriodo: Tipo int _mIntNota: Tipo int _mBoolAprobada: Tipo int _mStrConcepto: Tipo string Mtodos Pblicos n/a Constructor new Calificacion() Paquete Sper Clase Clases Descripcin Atributos n/a Mtodos Pblicos n/a Constructor n/a Paquete Sper Clase Clases Descripcin Atributos _mFecha: Tipo DateTime _mPlanCurso: Tipo PlanCurso _mAlumno: Tipo Alumno _mIntAnioLectivo: Tipo int _mIntNota: Tipo int _mEstadoFinCurso: Tipo EstadosEscolaridad _mEstadoEscolaridad: Tipo EstadosEscolaridad

Indica el perodo de examen en que se encuentra el ao (febrero, abril, setiembre, diciembre). Indica si el perodo de examen se encuentra abierto o cerrado. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Calificacion Contiene las distintas calificaciones obtenidas por los alumnos. Descripcin Indica la fecha en que se registra la calificacin. Indica el plan, el curso y la materia a la que pertenece la calificacin. Identificador del alumno. Ao lectivo en que se registra la materia. Perodo en que se registro la calificacin. Valor de la calificacin. Indica si la calificacin hace que la materia se apruebe o se repruebe. Concepto ingresado junto con la calificacin. Descripcin Descripcin

Dominio Calificacion CalificacionFinCurso, CalificacionFinCursoExterna, CalificacionFinCursoInterna, Examen y ExamenInterno. Contiene las distintas clases especficas por tipo de calificacin. Descripcin Descripcin Descripcin

_mStrConcepto: Tipo string _mStrInstituto: Tipo string _mStrMotivoEstado: Tipo string Mtodos Pblicos new Escolaridad() Constructor n/a

Dominio Objeto Escolaridad Registra las escolaridades generadas por los alumnos. Descripcin Fecha en que se registr la escolaridad. Plan y curso al que pertenece la escolaridad. Alumno al que pertenece la escolaridad. Ao lectivo al que pertenece la escolaridad. Calificacin final del curso. Estado de la escolaridad al finalizar el curso (aprobada, reprobada, promocin parcial, fallo en suspenso). Nuevo estado de la escolaridad generado por un reproceso de las calificaciones de un alumno (aprobada, reprobada, promocin parcial). Concepto ingresado con la calificacin de la escolaridad. Institucin donde se genero la escolaridad. Motivo que genero el estado de la escolaridad. Descripcin Descripcin

204

Paquete Sper Clase Clases Descripcin Atributos n/a Mtodos Pblicos n/a Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntGrupoID: tipo int _mStrGrupoIdentificador: tipo string _mPlanCurso: tipo PlanCurso _mStrDescripcion: tipo string _mIntAnio: tipo int _mStrTurno: tipo string _mIntMinimoAlumnos: tipo int _mIntMaximoAlumnos: tipo int _mCerrado: tipo bool _mDateFechaAlta: tipo DateTime Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mGrupo: Tipo Grupo _mIntPeriodo: Tipo int _mAlumno: Tipo Alumno _mIntNoJustificadas: Tipo int _mIntJustificadas: Tipo int Mtodos Pblicos n/a Constructor new Inasistencia() Paquete Sper Clase Clases Descripcin Atributos n/a Mtodos Pblicos n/a Constructor n/a

Dominio Escolaridad EstadosEscolaridad, EscolaridadExterna y EscolaridadInterna. Contiene las distintas clases especficas por tipo de escolaridad. Descripcin Descripcin Descripcin

Dominio Objeto Grupo Se registran todos los grupos que componen los distintos cursos del colegio. Descripcin Cdigo del objeto Grupo. Identificador del Alumno. Detalla la referencia a la composicin PlanCurso. Descripcin del Curso. Indica el ao lectivo de Curso. Indica el turno del Curso (matutino, vespertino). Indica el mnimo de alumnos con que puede comenzar un Curso. Indica el mximo de alumnos que puede tener Curso. Indica si el grupo se encuentra abierto o cerrado. (se agrega) Indica la fecha en que se dio de alta al Grupo en el sistema. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto Inasistencia Registra las inasistencias de los alumnos del colegio. Descripcin Grupo al que pertenecen las inasistencias. Perodo en donde se generaron las inasistencias. Alumno al que corresponden las inasistencias. Cantidad de inasistencias justificadas. Cantidad de inasistencias injustificadas. Descripcin Descripcin n/a Dominio Inasistencia InasistenciaFinCurso Contiene las distintas clases especficas por tipo de Inasistencia. Descripcin Descripcin Descripcin

205

Paquete Sper Clase Clase Descripcin Atributos _mGrupo: Tipo Grupo _mAlumno: Tipo Alumno _mDateFechaInscripcion: Tipo DateTime Mtodos Pblicos n/a Constructor new Inscripcion() Paquete Sper Clase Clase Descripcin Atributos _mStrNombre: Tipo string _mStrDireccion: Tipo string _mStrTelefono1: Tipo string _mStrTelefono2: Tipo string Mtodos Pblicos n/a Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mIntMateria: tipo int _mStrNombre: tipo string _mIntHorasSemanales: tipo int _mIntSesionesSemanales: tipo int _mDateFechaAlta: tipo DateTime _mCurso: Tipo Curso _mBoolComputable: Tipo bool Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mPeriodo: Tipo Periodo Mtodos Pblicos n/a Constructor n/a

Dominio Objeto Inscripcion Registra las inscripciones de los alumnos en los distintos grupos del colegio. Descripcin Grupo al que pertenece la inscripcin. Alumno al que pertenece la inscripcin, Fecha en la que se realiza la inscripcin. Descripcin Descripcin n/a Dominio Objeto Instituto Registra los datos principales del colegio. Descripcin Nombre del colegio. Direccin del colegio. Telfono principal del colegio. Telfono secundario del colegio. Descripcin Descripcin

Dominio Objeto Materia Se registran todas las materias que son dictadas en los distintos cursos del colegio. Descripcin Cdigo identificador de la Materia. Nombre de la Materia. Horas semanales que debe tener la materia. Cantidad de sesiones en las que se debe dictar la materia en la semana. Indica la fecha en que se dio de alta a la Materia en el sistema. Indica el curso al que pertenece la materia. (se agrega) Especifica si se trata de una materia computable para la evaluacin del alumno o no. (se agrega) Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a Dominio Objeto PeriodoExamen Maneja los cuatro perodos de examen que se brindan en el colegio. Descripcin Perodo de examen vigente. Descripcin Descripcin

206

Paquete Sper Clase Clase Descripcin Atributos _mPeriodo: Tipo Periodo Mtodos Pblicos n/a Constructor n/a Paquete Sper Clase Clase Descripcin Atributos _mUsuario: Tipo Usuario Solo Lectura _anioLectivo: Tipo AnioLectivo _mIntSesion: Tipo decimal _mStrIP: Tipo string _mStrHost: Tipo string Solo Lectura _mDateInicioSesion: Tipo DateTime Solo Lectura _mDateFinSesion: Tipo DateTime Mtodos Pblicos n/a Constructor new Sesion()

Dominio PeriodoExamen Perodo Maneja los cuatro perodos de examen que se brindan en el colegio. Descripcin Perodo de examen vigente. Descripcin Descripcin

Dominio Objeto Sesion Se registran todas las sesiones realizadas por los usuarios en el sistema. Descripcin Usuario de la Sesin. Ao lectivo actual. Nmero de la sesin. Ip desde donde se abre la sesin. Nombre del PC desde donde se ha iniciado la sesin. Fecha y hora de inicio de sesin. Fecha y hora de fin de sesin. Descripcin Sincroniza un objeto con sus hijos. Descripcin

Paquete Aplicacin
Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorCalificaciones Mtodos Pblicos override Guardar(unaCalificacion: tipo Objeto) tipo Boolean override GuardarLista(listaCalificaciones: tipo Lista) tipo Boolean override Obtener(UnaCalificacion: tipo Objeto) tipo Boolean ObteneExamenes(anio: tipo int, PeriodoExamen: tipo Periodo) tipo Lista static new Instancia() : tipo ManejadorCalificaciones Mtodos Privados static Validar(unaCalificacion : tipo Calificacion) Aplicacin SIINCODominio SIINCOManejador ManejadorCalificaciones Es la clase que se encarga de gestionar los objetos Calificaciones. Descripcin Representa a un nuevo manejador de Calificaciones en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda una Calificacin, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Sobrecarga el mtodo padre, guarda una lista de Calificaciones, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Dado una Calificacin, obtiene los datos de la misma adems del alumno, materia, curso y plan a la que pertenece. Arma un nuevo objeto examen y recupera la lista de resultados del mismo para un determinado ao lectivo y perodo. Singleton. Descripcin Valida los datos de una calificacin verificando que se ingrese el alumno a quien pertenece y que la calificacin se encuentre dentro del rango de notas validas. En caso de encontrar un error, dispara una excepcin.

207

Paquete Paquetes dependencia Sper Clase Clase Interface Descripcin Atributos n/a Mtodos Pblicos ValidarCalificacion(unaCalificacion: Calificacion) tipo bool Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Interface Descripcin Atributos n/a Mtodos Pblicos ValidarCalificacion(unaCalificacion: Calificacion) tipo bool Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos n/a Mtodos Pblicos static SeleccionarValidador(calificacion: tipo calificacion): tipo IValidarCalificacion Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorCurso Mtodos Pblicos override Guardar(unCurso: tipo Objeto) tipo Boolean CursosOrdenados() tipo Lista static UltimoCurso() tipo Curso static new Instancia() : tipo ManejadorCurso Mtodos Privados static Validar(unCurso : tipo Curso)

Aplicacin SIINCODominio ManejadorCalificaciones ValidadorCalificacionNotasFinales IValidarCalificacion Valida las notas finales ingresadas. Descripcin Descripcin Realiza validaciones sobre la nota final ingresada. Descripcin

Aplicacin SIINCODominio ManejadorCalificaciones ValidadorCalificacionExamenes IValidarCalificacion Verifica si el examen supera la nota mnima ya que en ese caso se debe marcar la materia pendiente como aprobada. Descripcin Descripcin Indica si la calificacin ingresada supera la nota mnima de aprobacin. Descripcin

Aplicacin SIINCODominio ManejadorInscripciones SeleccionValidadorCalificacion Dependiendo de la calificacin retorna el validador correspondiente a su tipo. Descripcin Descripcin Retorna el validador correspondiente dependiendo del tipo de calificacin recibida. Descripcin

Aplicacin SIINCODominio SIINCOManejador ManejadorCurso Es la clase que se encarga de gestionar los objetos Alumno. Descripcin Representa a un nuevo manejador de Cursos en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Curso, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Obtiene todos los cursos existentes y los ordena de menor a mayor comenzando por el que no tiene previo. (se agrega) Obtiene el ltimo curso dictado en el colegio segn los cursos previos. (se agrega) Singleton Descripcin Valida los datos de un Alumno verificando los datos identificador y curso previo. Tambin verifica un curso no sea pueda ser previo de ms un curso. En caso de encontrar un error, dispara una excepcin.

208

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorEscolaridad Mtodos Pblicos override Obtener(UnaEscolaridad: tipo Objeto) tipo Boolean CandidatosExamen(AnioLectivo: tipo int, PeriodoExamen: tipo int) tipo Lista CandidatosExamen(planCursoMateria: tipo PlanCursoMateria, AnioLectivo: tipo int, PeriodoExamen: tipo int) tipo Lista

Aplicacin SIINCODominio SIINCOManejador ManejadorEscolaridad Es la clase que se encarga de gestionar los objetos Escolaridad. Descripcin Representa a un nuevo manejador de Escolaridad en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Recupera el objeto desde la clase heredada, y recupera objeto de escolaridad para mantenerla completa. Dado los cursos disponibles obtiene los candidatos a exmenes para todas las materias. Dado los cursos disponibles obtiene los candidatos a exmenes para una materia especfica.

Al cerrar los grupos, con este mtodo se calcula la ProcesarEscolaridadCursada (Inscripcion: tipo Inscripcion) escolaridad del alumno y se retorna para poder se tipo EscolaridadInterna guardada. Al cerrarse un perodo de exmenes se reprocesa la ProcesarEscolaridadAlumno (unAlumno: tipo Alumno, escolaridad de los alumnos verificar en qu estado queda anioLectivo: tipo AnioLectivo) tipo bool la escolaridad con los resultados del exmenes obtenidos. ObtenerEscolaridadCursoAlumnoUltima (unAlumno: tipo Obtiene la ltima escolaridad vlida para un alumno y un Alumno, curso: tipo Curso) tipo Escolaridad. curso. Por valida se entiende que no est reprobada. ObtenerEscolaridadAlumno(unAlumno: tipo Alumno) tipo Dado un alumno se obtiene la escolaridad vigente del IList. mismo. static new Instancia() : tipo ManejadorEscolaridad Singleton. Mtodos Privados Descripcin n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorGrupo Mtodos Pblicos override Guardar(unGrupo: tipo Objeto) tipo Boolean override Eliminar(unGrupo: tipo Objeto) tipo Boolean override Obtener(unGrupo: tipo Objeto) tipo Boolean override ObtenerTodos(unGrupo: tipo Objeto) tipo Lista GruposAnioLectivo(anioLectivo: tipo AnioLectivo)tipo Lista ObtenerEscolaridadesAnio (anioLectivo: tipo AnioLectivo)tipo Lista ArmarEscolaridadGrupo(unGrupo: tipo Grupo)tipo Lista HabilitadoParaCierre (unGrupo: tipo Grupo)tipo bool CerrarGrupo (unGrupo: tipo Grupo)tipo bool GuardarEscolaridadGrupo (unGrupo: tipo Grupo)tipo bool GuardarCalificacionesGrupo (unGrupo: tipo Grupo, calificaciones: tipo Lista)tipo bool Aplicacin SIINCODominio SIINCOManejador ManejadorGrupo Es la clase que se encarga de gestionar los objetos Grupo. Descripcin Representa a un nuevo manejador de Grupos en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda un Grupo, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Elimina un grupo siempre en cuando este se encuentre en condiciones de ser eliminado.(se agrega) Dado un Grupo, obtiene los datos de ese Grupo y los datos del PlanCurso al que pertenece. Obtiene falso si no lo encuentra. (se agrega) Obtiene todos los Grupos existentes con los respectivos PlanesCursos a los que pertenece. (se agrega) Obtiene todos los Grupos para un determinado ao lectivo. (se agrega) Obtiene todas las escolaridades de los alumnos para todos los grupos de un determinado ao lectivo. (se agrega) Procesa y arma las escolaridades de los alumnos de un grupo. (se agrega) Indica si un grupo se encuentra en condiciones para ser cerrado verificando que el mismo tenga todas sus calificaciones e inasistencias ingresadas. (se agrega) Si el grupo est habilitado para el cierre, guarda las escolaridades y lo marca como cerrado. (se agrega) Guarda las escolaridades siempre que el grupo no se encuentre cerrado. (se agrega) Guarda las calificaciones de los alumnos del grupo siempre que el grupo no se encuentre cerrado y el estado del ao lectivo lo permita. (se agrega)

209

GuardarInasistenciasGrupo (unGrupo: tipo Grupo, inasistencias: tipo Lista)tipo bool static new Instancia() : tipo ManejadorGrupo Mtodos Privados static Validar(unGrupo : tipo Grupo) tipo bool

Eliminable(unGrupo : tipo Grupo) tipo bool

Guarda las inasistencias de los alumnos del grupo siempre que el grupo no se encuentre cerrado y el estado del ao lectivo lo permita. (se agrega) Singleton Descripcin Valida los datos de un Grupo verificando los datos identificador, ao lectivo, turno y que pertenezca a un PlanCurso. En caso de encontrar un error, dispara una excepcin. Indica si un grupo determinado puede ser eliminado verificando que el mismo no est cerrado ni contenga inscripciones. Aplicacin SIINCODominio SIINCOManejador ManejadorInasistencias Es la clase que se encarga de gestionar los objetos Inasistencias. Descripcin Representa a un nuevo manejador de Inasistencias en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda una inasistencia, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Sobrecarga el mtodo padre, guarda una lista de inasistencias, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Dado una Inasistencia, obtiene los datos de la misma adems del alumno y el grupo a la que pertenece. Singleton. Descripcin Valida los datos de una inasistencia verificando que se ingrese el alumno a quien pertenece y tambin el grupo. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio SIINCOManejador ManejadorInscripciones Es la clase que se encarga de gestionar los objetos Inscripciones. Descripcin Representa a un nuevo manejador de Inscripciones en caso de ser nuevo, sino contina utilizando el ya creado. Descripcin Sobrecarga el mtodo padre, guarda una inscripcin, antes de hacerlo valida los datos y devuelve verdadero si se pudo realizar el guardado correctamente. Elimina una inscripcin verificando previamente si la misma se encuentra apta para ser eliminada retornando verdadero si se pudo realizar la eliminacin correctamente. Dada una Inscripcin, obtiene los datos de la misma adems del alumno y el grupo a la que pertenece. Dado un ao lectivo, se obtienen todas las inscripciones invlidas por haberse realizado estando en fallo en suspenso y no haber superado esa condicin antes del comienzo del ao. Esta lista se corresponde a todas las inscripciones invlidas de todos los grupos del ao. Singleton. Descripcin Valida los datos de una inscripcin verificando que se ingrese el alumno a quien pertenece y tambin el grupo. En caso de encontrar un error, dispara una excepcin. Aplicacin SIINCODominio

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorInasistencias Mtodos Pblicos override Guardar(unaInasistencia: tipo Objeto) tipo bool override GuardarLista(listaInasistencias: tipo Lista) tipo bool override Obtener(unaInasistencia: tipo Objeto) tipo bool static new Instancia() : tipo ManejadorInasistencias Mtodos Privados static Validar(unaInasistencia : tipo Inasistencia)

Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos private static _objSingleton: tipo ManejadorInscripciones Mtodos Pblicos override Guardar(unaInscripcion: tipo Objeto) tipo bool

override Eliminar(unaInscripcion: tipo Objeto) tipo bool override Obtener(unaInscripcion: tipo Objeto) tipo bool

override ObtenerInscripcionesNoValidas(anioLectivo: tipo AnioLectivo) tipo Lista static new Instancia() : tipo ManejadorInscripciones Mtodos Privados static Validar(unaInscripcion : tipo Inscripcion)

Paquete Paquetes dependencia

210

Sper Clase Clase Interfaces Descripcin Atributos n/a Mtodos Pblicos

ManejadorInscripciones ValidadorInscripcionesGenerico IValidarInscripcion Realiza distintas validaciones sobre las inscripciones. Descripcin Descripcin Verifica que:

ValidarInscripcion(unaInscripcion: tipo Inscripcion, mensajeRetorno: tipo out string)tipo bool

El grupo donde se har la inscripcin no est cerrado. El alumno no est inscripto en otro grupo el mismo ao.

El alumno est habilitado para inscribirse en el curso segn su escolaridad Verifica si una inscripcin es eliminable verificando que: Eliminable(unaInscripcion: tipo Inscripcion) tipo bool El grupo donde se har la inscripcin no est cerrado. El alumno no tenga calificaciones registradas.

Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos n/a Mtodos Pblicos static SeleccionarValidador(inscripcion: Inscripcion): tipo IValidarInscripcion Mtodos Privados n/a Paquete Paquetes dependencia Clase Descripcin Atributos private static _objSingleton: tipo SIINCOManejador Mtodos Pblicos virtual Eliminar(unObjeto: tipo Objeto) tipo bool

El alumno no tenga inasistencias registradas. Descripcin

Aplicacin SIINCODominio ManejadorInscripciones SeleccionValidadorInscripcion Dependiendo de la inscripcin retorna el validador correspondiente a su tipo. Descripcin Descripcin Retorna el validador correspondiente dependiendo del tipo de inscripcin recibida. Descripcin

virtual Guardar(unObjeto: tipo Objeto) tipo bool

virtual GuardarLista(listaObjeto: tipo Lista) tipo bool

virtual Obtener(unObjeto: tipo Objeto) tipo bool

virtual ObtenerTodos(unObjeto: tipo Objeto) tipo Lista virtual ObtenerProximo(unObjeto: tipo Objeto) tipo int virtual ObtenerDataSet(unObjeto: tipo Objeto) tipo DataSet ProcesarPeriodoExamen () tipo bool

Aplicacin SIINCODominio, SIINCOPersistencia SIINCOManejador Manejador genrico de objetos que contiene mtodos que pueden ser heredados por los dems Manejadores de Objetos. Descripcin Representa a un nuevo manejador en caso de ser nuevo, sino contina con el ya creado. Descripcin Mtodo que se encarga de eliminar cualquier tipo de objeto que herede de esta clase. Devuelve verdadero si la puede eliminar correctamente. Mtodo que se encarga de guardar cualquier tipo de objeto que herede de esta clase. Devuelve verdadero si lo puede guardar correctamente. Mtodo que se encarga de guardar cualquier tipo de lista de objetos que herede de esta clase. Devuelve verdadero si lo puede guardar correctamente. (se agrega) Mtodo que devuelve verdadero si existe el objeto a obtener. Este mtodo es usado por las clases que heredan este manejador. Mtodo que devuelve una Lista de objetos, dependiendo de la clase que lo hereda se obtienen los objetos correspondientes. Mtodo que devuelve el prximo identificador para el tipo de objeto solicitado. (se agrega) Se elimina. Mtodo que dependiendo del estado del perodo de exmenes vigente, cierra el perodo actual o abre el

211

ProcesarPeriodoExamenActual () tipo bool

AbrirPeriodoExamen () tipo bool CambioEstadoAnioLectivoValido(Validador: out string)tipo bool CambiarEstadoAnioLectivo()tipo bool InicioSesion(usuarioLogin: tipo Usuario, password: tipo string) tipo ResultadoLogin static Instancia() : tipo SIINCOManejador Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Interfaces Descripcin Atributos n/a Mtodos Pblicos ValidarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool RealizarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Interfaces Descripcin Atributos n/a Mtodos Pblicos ValidarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool

prximo perodo. (se agrega) Mtodo que cierra el perodo de examen vigente y recalcula las escolaridades para todos los alumnos que deban materias para el perodo. (se agrega) Verifica que se pueda abrir un perodo de examen controlando verificando que el perodo actual este cerrado y adems no se trate del ltimo perodo de examen de un ao lectivo no cerrado. (se agrega) Verifica que el cambio de estado sea vlido y devuelve verdadero o falso. (se agrega) Realiza el cambio del ao lectivo actual ponindole estado cerrado y abre el prximo. (se agrega) Si se ingresa un usuario y password correcto, crea una nueva sesin y la registra, adems obtiene el estado del ao lectivo y el del perodo de examen. (se agrega) Singleton Descripcin n/a Aplicacin SIINCODominio SIINCOManejador InicialHaciaInscripciones ICambioEstadoAnioLectivo Al ejecutar el sistema por primera vez, ste se encuentra en estado Inicial. Al salir de este estado se pasar a estado Inscripciones dejando adems, el primer perodo de exmenes abierto. Descripcin Descripcin Verifica que se pueda realizar el cambio de estado y en su defecto despliega la alerta correspondiente. Realiza el cambio de estado del ao lectivo pasando a estado inscripciones y adems abre el primer perodo de exmenes del ao. Descripcin

Aplicacin SIINCODominio SIINCOManejador InscripcionesHaciaEnCurso ICambioEstadoAnioLectivo Maneja el proceso de cambio del ao lectivo desde inscripciones hacia encurso. Descripcin Descripcin Valida que se pueda realizar el cambio de estado verificando que se encuentren cerrados los perodos de exmenes correspondientes al estado anterior y en su defecto despliega la alerta correspondiente. Realiza el cambio de estado del ao lectivo pasando a estado en curso. Adems se obtienen todos los grupos de ao y para cada uno de ellos sus alumnos inscriptos. Si alguna de las inscripciones no es vlida la elimina. Descripcin

RealizarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Interfaces Descripcin

Aplicacin SIINCODominio SIINCOManejador EnCursoHaciaInscripciones ICambioEstadoAnioLectivo Maneja el proceso de cambio del ao lectivo desde encurso hacia inscripciones.

212

Atributos n/a Mtodos Pblicos ValidarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool RealizarCambioEstado(anioLectivo: tipo AnioLectivo, mensajeRetorno: tipo out string) tipo bool Mtodos Privados n/a Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos n/a Mtodos Pblicos static SeleccionarValidador(anioLectivo: AnioLectivo): tipo ICambioEstadoAnioLectivo Mtodos Privados n/a

Descripcin Descripcin Valida que se pueda realizar el cambio de estado verificando que se encuentren cerrados todos los grupos y los perodos de exmenes del ao; en su defecto despliega la alerta correspondiente. Realiza el cambio de estado del ao lectivo pasando a estado inscripciones y adems abre el primer perodo de exmenes del ao. Descripcin

Aplicacin SIINCODominio SIINCOManejador SeleccionValidadorCambioEstado Dependiendo del estado del ao lectivo retorna el validador correspondiente. Descripcin Descripcin Retorna el validador correspondiente dependiendo del estado en que se encuentra el ao lectivo. Descripcin

[Link]. Mapeo de Clases a Tablas. Se desarrolla el detalle de mapeo nicamente para aquellas tablas y clases nuevas con respecto a la iteracin I adems de aquellas tablas que sern modificadas por la presente iteracin.
Paquete Clases Alumno AnioLectivo Calificacion Escolaridad Dominio Grupo Materia Inasistencia Inscripcin Sesion Tablas Alumnos AnioLectivo Calificaciones Escolaridades Grupos Materias Inasistencias Inscripciones Sesiones, SesionesLin Estado Modificada Nueva Nueva Nueva Modificada Modificada Nueva Nueva Nueva

Tablas
Clase Alumno _mIntAlumno: tipo int _mStrNombres: tipo string _mStrNombre1: tipo string _mStrNombre2: tipo string _mStrApellido1: tipo string _mStrApellido2: tipo string _mStrTipoDocumento: tipo string _mStrDocumento: tipo string _mStrFechaNacimiento: tipo DateTime _mStrLugarNacimiento: Tipo string _mStrSexo: tipo string _mStrDireccion: tipo string _mStrBarrio string: tipo _mStrLocalidad: tipo string _mStrTelefono: tipo string _mStrEmail: tipo string Tabla Alumnos Alumno int Nombres varchar(50) Nombre1 varchar(30) Nombre2 varchar(30) Apellido1 varchar(30) Apellido2 varchar(30) TipoDocumento varchar(20) Documento varchar(20) FechaNacimiento DateTime LugarNacimiento varchar(30) Sexo varchar(1) Direccion varchar(50) Barrio varchar(50) Localidad varchar(50) Telefono varchar(20) Email varchar(50) Modificaciones Eliminado Nuevo Nuevo

Nuevo

213

_mBoolTutor: tipo bool _mStrNombrePadre: tipo string _mStrNombreMadre: tipo string _mStrNombreTutor: tipo string _mStrRelacionTutor: tipo string _mIntJuramentoBandera: tipo int _mStrLugarJuramentoBandera: tipo string _mStrInstitutoPrimaria: tipo string _mStrEnfermedades: tipo string _mStrMedicamentos: tipo string _mStrTratamientos: tipo string _mStrOtros: tipo string _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase AnioLectivo _mAnio: tipo int _mEstado: tipo EstadoLectivo _mPeriodoExamenActual: tipo PeriodoExamen _mPeriodoExamenActivo: tipo bool Clase Calificacion _dateFecha: tipo DateTime propieddad Origen: Tipo string _mPlanCursoMateria: tipo PlanCursoMateria _mIntAnioLectivo: tipo int _mAlumno: tipo Alumno _mIntPeriodo: tipo int propieddad TipoCalificacion: Tipo string _mIntNota: tipo int _mBoolAprobada: tipo bool _mStrConcepto: tipo string Clase Escolaridad _mDateFechaPromocion: tipo DateTime _mAlumno: tipo Alumno _mIntAnioLectivo: tipo int _mPlanCurso: tipo PlanCurso propiedad Origen: tipo string _mIntNota: tipo int _mEstadoFinCurso: tipo EstadosEscolaridad _mEstadoEscolaridad: tipo EstadosEscolaridad _mStrMotivoEstado: tipo string _mStrConcepto: tipo string _mStrInstituto: tipo string Clase Grupo _mIntGrupoID: tipo int _mStrGrupoIdentificador: tipo string _mPlanCurso: tipo PlanCurso _mStrDescripcion: tipo string _mIntAnioLectivo: tipo int _mStrTurno: tipo string _mIntMinimoAlumnos: tipo int _mIntMaximoAlumnos: tipo int _mCerrado: tipo bool _mDateFechaAlta {Objeto}.Version

Tutor DboBoolT:char(1) NombrePadre: varchar(50) NombreMadre: varchar(50) NombreTutor varchar(50) RelacionTutor varchar(50) JuramentoBandera int LugarJuramentoBandera varchar(30) InstitutoPrimaria varchar(50) Enfermedades text Medicamentos text Tratamientos text Otros text FechaAlta DateTime timeStamp timestamp

Eliminado Nuevo Nuevo

Nuevo Nuevo Nuevo

Tabla AnioLectivo AnioLectivoVigente int Estado int PeriodoExamenActual int PeriodoExamenActivo DboBoolF:char(1) Tabla Calificaciones Fecha DateTime Origen varchar(20) Plan int, Curso int, Materia int AnioLectivo int Alumno int Periodo int TipoCalificacion varchar(20) Nota int Aprobada DboBoolF:char(1) Concepto varchar(200) Tabla Escolaridades FechaPromocion DateTime Alumno int AnioLectivo Plan int, Curso int Origen varchar(20) Nota int EstadoFinCurso int EstadoEscolaridad int MotivoEstado varchar(300) Concepto varchar(200) Instituto varchar(100) Tabla Grupos Grupo int GrupoIdentificador varchar(2) Plan int, Curso int Descripcion varchar(100) AnioLectivo int Turno varchar(20) MinimoAlumnos int MaximoAlumnos int Cerrado DboBoolF:char(1) FechaAlta DateTime Timestamp timestamp Modificaciones

Modificado

Nuevo

214

Clase Materia _mIntMateria: tipo int _mStrNombre: tipo string _mIntHorasSemanales: tipo int _mIntSesionesSemanales: tipo int _mBoolComputable: tipo bool _mDateFechaAlta: tipo DateTime {Objeto}.Version Clase Inasistencia _mGrupo: tipo Grupo _mIntPeriodo: tipo int _mAlumno: tipo Alumno _mIntNoJustificadas: tipo int _mIntJustificadas: tipo int Clase Inscripcion _mGrupo: tipo Grupo _mAlumno: tipo Alumno _mDateFechaInscripcion: tipo DateTime Clase Sesion _mIntSesion: tipo readonly decimal _mUsuario: tipo readonly Usuario _mStrIP: tipo readonly string _mStrHost: tipo readonly string _mDateInicioSesion: tipo readonly DateTime _mDateFinSesion: tipo DateTime Clase Sesion _mIntSesion: tipo readonly decimal Accin de base de datos Entidad de dominio Descripcion de los datos de la entidad de Dominio Hora del sistema

Tabla Materias Materia int Nombre varchar(30) HorasSemanales int SesionesSemanales int Computable DboBoolT:char(1) FechaAlta DateTime Timestamp timestamp Tabla Inasistencias Grupo int Periodo int Alumno int NoJustificadas int Justificadas int Tabla Inscripciones Grupo int Alumno int FechaInscripcion DateTime Tabla Sesiones Sesion int Usuario varchar(20) IP varchar(20) Host varchar(50) InicioSesion DateTime FinSesion DateTime Tabla SesionesLin Sesion int Accion varchar(20) Entidad varchar(50) EntidadID varchar(400) Hora DateTime

Modificaciones

Nuevo

215

Modelo de Datos Se detallan las tablas que se agregan con respecto a la iteracin I y aquellas que ya existan pero se modifican por la presente iteracin.

216

2.6.6. Testeo Especificacin de casos de testeo Ttulo Sistema Mdulo Iteracin Responsable Especificacin
Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede registrar la inscripcin de un alumno existente en el sistema. Estar logueado al sistema Ingresar al sistema e ir al formulario de El Alumno debe quedar con un usuario con mantenimiento de Usuarios (Men-> Gestin inscripto en el grupo privilegios para realizar Escolar->Inscripciones). seleccionado. dicha tarea. Debe existir al menos un Seleccionar el grupo donde se realizar la alumno y un grupo dados inscripcin. de alta en el sistema. Presionar el botn para agregar una inscripcin (+). Seleccionar uno de los alumnos habilitados para inscribir. Presionar la opcin Aceptar. Propsito: Verificar que NO se puede registrar la inscripcin de un alumno ya inscripto dentro del grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de No se debe realizar la con un usuario con mantenimiento de Usuarios (Men-> Gestin inscripcin y se debe privilegios para realizar Escolar->Inscripciones). emitir un mensaje dicha tarea. indicando la situacin. Debe existir al menos un Seleccionar el grupo donde se realizar la alumno y inscripto en el inscripcin. grupo a trabajar. Presionar el botn para agregar una inscripcin (+). De la lista de alumnos habilitados para inscribir, seleccionar el alumno ya inscripto en el grupo Presionar la opcin Aceptar. Propsito: Verificar que se puede eliminar la inscripcin de un alumno existente en el sistema Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe borrar la con un usuario con mantenimiento de Usuarios (Men-> Gestin inscripcin del alumno de privilegios para realizar Escolar->Inscripciones). la lista de inscripciones dicha tarea. del grupo. Debe existir al menos un Seleccionar el grupo donde se encuentra grupo con al menos un inscripto el alumno. alumno inscripto en el. De las inscripciones resultantes marcar la inscripcin a eliminar. Presionar el botn para eliminar una inscripcin (-). Resultado Testeado OK

TESTEO de la Gestin de inscripciones de Alumnos SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Testeado OK

Testeado OK

217

Propsito: Verificar que no se puede eliminar la inscripcin de un alumno si el mismo ya tiene calificaciones ingresadas. Estar logueado al sistema Ingresar al sistema e ir al formulario de La inscripcin no debe ser Testeado con un usuario con mantenimiento de Usuarios (Men-> Gestin borrada y se debe emitir OK privilegios para realizar Escolar->Inscripciones). un mensaje describiendo dicha tarea. la situacin. Debe existir al menos un Seleccionar el grupo donde se encuentra grupo con al menos un inscripto el alumno. alumno inscripto en el. Este alumno debe tener al De las inscripciones resultantes marcar la menos una calificacin final inscripcin a eliminar. registrada para el grupo. Presionar el botn para eliminar una inscripcin (-).

Propsito: Verificar que no se puede eliminar la inscripcin de un alumno si el mismo ya tiene inasistencias ingresadas. Estar logueado al sistema Ingresar al sistema e ir al formulario de La inscripcin no debe ser ERROR: con un usuario con mantenimiento de Usuarios (Men-> Gestin borrada y se debe emitir permite el privilegios para realizar Escolar->Inscripciones). un mensaje describiendo borrado dicha tarea. la situacin. de la inscripci Debe existir al menos un Seleccionar el grupo donde se encuentra n. grupo con al menos un inscripto el alumno. alumno inscripto en el. Este alumno debe tener Se corrige De las inscripciones resultantes marcar la inasistencias ingresadas y se inscripcin a eliminar. para el grupo. vuelve a ejecutar el Presionar el botn para eliminar una inscripcin caso. (-). Testeado OK

218

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Registro de Notas Finales SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se puede registrar correctamente una Nota Final a un alumno inscripto en un grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro La nota final del alumno Testeado con un usuario con de Notas Finales (Men-> Gestin Escolardebe registrarse OK privilegios para realizar >Registro de Calificaciones->Calificacin fin de correctamente en el dicha tarea. Curso). sistema. Debe existir al menos un alumno inscripto en algn Seleccionar el grupo donde se encuentra el grupo. alumno a calificar. Seleccionar la materia a la que pertenece la calificacin. Presionar cargar notas. Agregar la calificacin Final del alumno y el concepto. Presionar la opcin Guardar. Propsito: Verificar que NO se puede registrar una Nota Final fuera del rango permitido segn el plan. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro No se debe permitir que con un usuario con de Notas Finales (Men-> Gestin Escolarse digite una calificacin privilegios para realizar >Registro de Calificaciones->Calificacin fin de invalida. dicha tarea. Curso). Debe existir al menos un alumno inscripto en algn Seleccionar el grupo donde se encuentra el grupo. alumno a calificar. Seleccionar la materia a la que pertenece la calificacin. Presionar cargar notas. Intentar digitar una nota invalida segn el plan. Propsito: Verificar que NO se pueden ingresar ni modificar Notas finales sobre un grupo procesado y cerrado. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro El sistema no debe Testeado con un usuario con de Notas Finales (Men-> Gestin Escolarpermitir que se realice OK privilegios para realizar >Registro de Calificaciones->Calificacin fin de dicha accin. dicha tarea. Curso). Debe existir al menos un grupo procesado y cerrado. Seleccionar el grupo cerrado e intentar modificar las notas finales del mismo.

Testeado OK

219

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Registro de Inasistencias. SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se puede registrar correctamente las inasistencias de un alumno inscripto en un grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro Se deben registrar Testeado con un usuario con de Inasistencias (Men-> Gestin Escolarcorrectamente las OK privilegios para realizar >Registro de Inasistencias. inasistencias del alumno. dicha tarea. Debe existir al menos un Seleccionar el grupo donde se encuentra el alumno inscripto en algn alumno a ingresarle las inasistencias. grupo. Agregar las inasistencias justificadas e injustificadas del alumno lo cual deber resultar en el clculo automtico del total de inasistencias fictas. Presionar la opcin Guardar. Propsito: Verificar que NO se pueden ingresar ni modificar inasistencias sobre un grupo procesado y cerrado. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro El sistema no debe Testeado con un usuario con de Inasistencias (Men-> Gestin Escolarpermitir que se realice OK privilegios para realizar >Registro de Inasistencias. dicha accin. dicha tarea. Debe existir al menos un Seleccionar el grupo cerrado e intentar modificar grupo procesado y cerrado. las inasistencias del mismo. .

220

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Registro de Resultados de Exmenes. SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se puede registrar correctamente resultados de exmenes para los alumnos que deban rendir una materia. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro Se deben registrar Testeado con un usuario con de Resultados de Exmenes (Men-> Gestin correctamente el OK privilegios para realizar Escolar-> Exmenes-> Registrar Exmenes) resultado de examen del dicha tarea. alumno. Debe existir al menos un Seleccionar el curso donde el alumno tiene alumno en la situacin de pendiente una materia. deber rendir un examen en al menos una materia. Seleccionar la materia. Presionar Cargar Notas. (Esto presentar una lista con todos aquellos alumnos obligados a rendir examen en dicha materia). Ingresar el resultado obtenido por el alumno en el examen. Presionar la opcin Guardar. Propsito: Verificar que NO se puede digitar un resultados de examen invalido segn el plan. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro El sistema no debe con un usuario con de Resultados de Exmenes (Men-> Gestin permitir la digitacin de privilegios para realizar Escolar-> Exmenes-> Registrar Exmenes) una nota invlida. dicha tarea. Debe existir al menos un Seleccionar el curso donde el alumno tiene alumno en la situacin de pendiente una materia. deber rendir un examen en al menos una materia. Seleccionar la materia. Presionar Cargar Notas. (Esto presentar una lista con todos aquellos alumnos obligados a rendir examen en dicha materia). Intentar digitar una nota invlida en el resultado de examen de acuerdo al plan. Propsito: Verificar que NO se puede ingresar ni modificar resultados de exmenes de un perodo cerrado. Estar logueado al sistema Ingresar al sistema e ir al formulario de Registro El sistema no debe con un usuario con de Resultados de Exmenes (Men-> Gestin permitir que se realice privilegios para realizar Escolar-> Exmenes-> Registrar Exmenes) dicha accin. dicha tarea. Debe existir al menos un Seleccionar un perodo de examen cerrado e perodo de examen cerrado. intentar modificar la informacin del mismo.

Testeado OK

Testeado OK

221

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Proceso de Grupos. SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que no se pueda procesar un grupo que no tiene todas las notas finales ingresadas. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso El grupo no debe ser con un usuario con de Grupos (Men-> Gestin Escolar-> Procesar procesado y debe emitir privilegios para realizar Grupos) un mensaje indicando dicha tarea. esta situacin. Debe existir al menos un Intentar realizar un proceso de grupos tal que el grupo no procesado. mismo tenga todas las inasistencias de los alumnos registradas pero debe faltar alguna nota final para algn alumno en alguna Materia. Seleccionar el grupo. Presionar Guardar y Cerrar.

Resultado Testeado OK

Propsito: Verificar que no se pueda volver a procesar un grupo que ya se encuentra procesado y cerrado. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se debe mostrar la Testeado con un usuario con de Grupos (Men-> Gestin Escolar-> Procesar informacin OK privilegios para realizar Grupos) correspondiente al grupo dicha tarea. y las evaluaciones de los alumnos pero debe estar Debe existir al menos un Seleccionar el grupo que ya se encuentra deshabilitada las grupo procesado y cerrado. procesado y cerrado e intentar reprocesarlo. funcionalidades de procesar y cerrar. Propsito: Verificar el correcto comportamiento del proceso de grupos en la evaluacin final de los alumnos segn sus calificaciones. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se deben obtener los ERROR: con un usuario con de Grupos (Men-> Gestin Escolar-> Procesar siguientes resultados en el caso privilegios para realizar Grupos) dependiendo de la de tercer dicha tarea. situacin del los alumnos. ao no reprueba Realizar un proceso de grupos tal que existan un alumno alumnos en las siguientes situaciones: con una materia 1. Un alumno con todas las materias 1. Aprobado. pendiente aprobadas incluyendo las previas y las de primer del curso actual. ao.

2. Un alumno con todas las materias del


curso actual aprobadas pero con materias previas pendientes menores o iguales en cantidad al mximo permitido para aprobacin parcial.

2. Promocin Parcial.

Se corrige y se vuelve a ejecutar el caso. Testeado OK

3. Un alumno con ninguna materia previa


pendiente y con materias insuficientes en el curso actual y tal que la cantidad de estas no superan al mximo permitido para promocin parcial.

3. Promocin Parcial.

4. Un alumno con materias previas


pendientes y tambin insuficientes en el curso actual pero tal que la suma de las mismas no supera la cantidad permitida para promocin parcial.

4. Promocin Parcial.

222

5. Un alumno con materias previas


pendientes y tambin insuficientes en el curso actual tal que la suma de las mismas supera la cantidad permitida para promocin parcial pero no supera el mximo permitido para fallo en suspenso.

5. Fallo en Suspenso.

6. Un alumno con materias previas


pendientes y tambin insuficientes en el curso actual tal que la suma de las mismas supera la cantidad permitida para promocin parcial y adems tambin supera el mximo permitido para fallo en suspenso.

6. Reprobado.

7. Un alumno con ninguna materia previa


pendiente pero con insuficientes en el curso actual tal que las mismas supera la cantidad permitida para promocin parcial y adems tambin supera el mximo permitido para fallo en suspenso.

7. Reprobado.

8. Para el caso de tercer ao, procesar un


grupo donde exista un alumno con una materia pendiente de primer ao y ninguna materia insuficiente en segundo ni tercer ao. En todos estos casos, los alumnos deben tener la cantidad total de inasistencias fictas menor o igual al mximo permitido para promover.

8. Reprobado.

Adems, por pantalla se debe visualizar la razn de esta evaluacin final.

Presionar la opcin Guardar. Propsito: Verificar el correcto comportamiento del proceso de grupos en la evaluacin final de los alumnos segn sus Inasistencias. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se deben obtener los Testeado con un usuario con de Grupos (Men-> Gestin Escolar-> Procesar siguientes resultados OK privilegios para realizar Grupos) dependiendo de la dicha tarea. situacin del los alumnos. Realizar un proceso de grupos tal que existan alumnos en las siguientes situaciones: 1. Alumno con evaluacin final 1. Reprobado. correspondiente a Aprobado pero con total de inasistencias fictas superior a la cantidad mxima permitida para promover. 2. Alumno con evaluacin final 2. Reprobado. correspondiente a Promocin Parcial pero con total de inasistencias fictas superior a la cantidad mxima permitida 3. Reprobado. para promover.

3. Alumno con evaluacin final


correspondiente a Fallo en suspenso pero con total de inasistencias fictas superior a la cantidad mxima permitida para promover. Adems, por pantalla se debe visualizar la razn de esta evaluacin final.

Presionar la opcin Guardar.

223

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Manejo de perodos de Exmenes. SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Propsito: Verificar que se cumpla el orden definido del ciclo de exmenes. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso con un usuario con de Grupos (Men-> Gestin Escolar-> privilegios para realizar Exmenes->Procesar Perodo de Exmenes) dicha tarea. El primer perodo de examen a procesar debe ser Febrero y debe estar en estado abierto. Procesar uno a uno los perodos verificando que cada vez que se procese un perodo el sistema agregue la opcin de abrir el prximo siguiendo el siguiente ciclo. Febrero => Abril => Julio => Setiembre

Resultado Esperado El ciclo debe cumplirse segn lo especificado.

Resultado Testeado OK

| | <=

| <= <= <= <= <= |

Propsito: Verificar al abrir un perodo de examen en la grilla candidatos a examen se muestren todos los alumnos que deban rendir examen en dicho perodo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Deben mostrarse los Testeado con un usuario con de Grupos (Men-> Gestin Escolar-> alumnos que deben rendir OK privilegios para realizar Exmenes->Procesar Perodo de Exmenes). examen en ese perodo dicha tarea. tomando aquellos que se encuentran en promocin Alumnos con materias Abrir el prximo perodo de examen disponible. parcial y solo en el caso previas pendientes. de febrero alumnos en . Verificar la lista de alumnos obligados a rendir fallo en suspenso. examen en ese perodo en la pantalla de Candidatos a Examen NO se deben mostrar los alumnos Aprobados y Reprobados. Propsito: Verificar los cambios de escolaridades de los alumnos en los procesos de perodos de examen. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso El sistema debe realizar Testeado con un usuario con de Grupos (Men-> Gestin Escolar-> los siguientes cambios en OK privilegios para realizar Exmenes->Procesar Perodo de Exmenes). las escolaridades de los dicha tarea. alumnos: Alumnos que rindieron Realizar un proceso de perodo de examen tal exmenes en el perodo y que existan alumnos en las siguientes se encuentran en distintas situaciones: situaciones. Se debe tener en cuenta que para un alumno . obligado a un examen que no se presente a rendirlo la materia continuara estando pendiente al igual que si lo rinde y no lo aprueba. (En cualquier perodo)

1. Alumno con Promocin Parcial que


aprueba todas las materias pendientes en el perodo de examen.

1. La nueva escolaridad
es Aprobado.

2. Alumno con Promocin Parcial que NO


aprueba todas las materias pendientes en el perodo de examen.

2. La escolaridad
continua siendo

224

(En el perodo de febrero)

Promocin Parcial.

3. Alumno con Fallo en Suspenso que NO


aprueba las materias suficientes para que la cantidad de pendientes resultante sea menor o igual al mximo de materias para Promocin Parcial.

3. La nueva escolaridad
es Reprobado.

4. Alumno con Fallo en Suspenso que


aprueba las materias suficientes para que la cantidad de pendientes resultante sea menor o igual al mximo de materias para Promocin Parcial.

4. La nueva escolaridad
es Promocin Parcial.

5. Alumno con Fallo en Suspenso que


aprueba todas las materias pendientes en el perodo de examen.

5. La nueva escolaridad
es Aprobado.

225

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Manejo Estados del Ao Lectivo. SIINCO Gestin Escolar 2 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se cumpla el orden definido del ciclo de Estados del Ao Lectivo Estar logueado al sistema El primer perodo de examen a procesar debe El ciclo debe cumplirse con un usuario con ser el Perodo Inicial donde se armara toda la segn lo especificado. privilegios para realizar infraestructura del colegio. Una vez cerrado este dicha tarea. perodo los restantes deben seguir el siguiente orden sin ninguna alteracin y sin volver a pasar por el Perodo Inicial. Inicial => Inscripciones => Curso => Cierre

Resultado Testeado OK

| | <=

| <= <= <= |

Propsito: Verificar que cada Estado SOLO permita las tareas especificas de s mismo. Estar logueado al sistema Cada Estado tiene una serie de funcionalidades Solo deben estar con un usuario con disponibles. disponibles las privilegios para realizar funcionalidades Se verifica que cada perodo disponga de las dicha tarea. correspondientes a cada siguientes funcionalidades. estado. 1. Inicial Mantenimiento de Ficheros. Configuracin. Informes. Ayuda 2. Inscripciones Manejo de Grupos. Inscripciones. Registro de Exmenes. Proceso de Perodos de Examen. Mantenimiento de Alumnos y Profesores. Informes. Ayuda.

ERROR: permite ingresar notas en el perodo de inscripci n. Se corrige y se vuelve a ejecutar el caso. Testeado OK

3. En Curso. Registro de Calificaciones. Registro de Inasistencias. Registro de Exmenes. Proceso y cierre de Grupos. Proceso de Perodos de Examen. Mantenimiento de Alumnos y
Profesores. Inscripciones. Informes Ayuda.

Propsito: Verificar que en cada cambio de Estado, se realicen las validaciones pertinentes a dicho cambio. Estar logueado al sistema En cada cambio de estado, se verifica que el Se deben realizar las con un usuario con mismo cumpla con las validaciones variaciones

ERROR: permite

226

privilegios para realizar dicha tarea.

correspondientes a dicha tarea. Cada cambio debe controlar lo siguiente:

1. Apertura de Perodo de Inscripciones. Debe encontrarse el ao lectivo


anterior cerrado.

correspondientes a cada estado desplegando un mensaje de error en cada situacin en donde no se cumpla alguna de ellas.

cerrar el ao sin haber sido procesado s todos los perodos de examen. Se corrige y se vuelve a ejecutar el caso. Testeado OK

2. Apertura de Perodo En Curso. No puede existir un grupo con un

nmero de alumnos inferior al mnimo definido. Debe encontrarse el primer perodo de examen procesado y cerrado.

3. Cierre del Ao (pasaje a


Inscripciones). Deben encontrarse todos los grupos procesados y cerrados. Tienen que haber sido procesados y cerrados todos los perodos de exmenes del ao.

Propsito: Verificar que en cada cambio de Estado, se realicen las tareas pertinentes a dicho cambio. Estar logueado al sistema En cada cambio de estado, se verifica que el Se deben realizar las con un usuario con mismo cumpla con las tareas correspondientes a tareas correspondientes a privilegios para realizar dicha tarea. cada cambio de estado. dicha tarea. Cada cambio debe realizar las siguientes tareas:

Testeado OK

1. Apertura de Perodo de Inscripciones. No aplica. 2. Apertura de Perodo En Curso. Verifica que no exista un alumno

inscripto que en el primer perodo de exmenes (febrero) haya quedado en condicin de Reprobado en ese caso elimina la inscripcin del alumno.

3. Cierre del Ao (pasaje a


Inscripciones). No aplica.

227

[Link]. Conclusiones del Testeo Una vez ms, el testeo exhaustivo, nos ha permiti detectar defectos en el diseo y la generacin del sistema y de esta manera asegurar una producto efectivo y realmente de calidad. Debemos destacar que si bien el total de casos fueron 23, varios de ellos estn compuestos por una gran combinacin de tareas que podran haber sido divididas en un caso distinto para cada una de ellas, pero se decidi realizar una agrupacin por funcionalidad para obtener de esa manera una mejor comprensin y evitar la escritura redundante. Detalle del testeo: Cantidad de casos ejecutados: 24 Cantidad de errores detectados: 3 Cantidad de defectos corregidos: 3 Cantidad de defectos pendientes: 0

2.6.7. Resumen de la Iteracin II. Al igual que en la anterior iteracin, en la presente debemos destacar antes que nada, que una vez ms se logr llegar al objetivo de cumplir con todos los puntos planteados y estipulados en la reunin inicial con el cliente. Sin embargo, otra vez surgieron imponderables que debemos destacar: Se modific el cronograma y la planificacin del sistema debido a las siguientes razones: El desvo descrito en el resumen de la iteracin I, impact directamente sobre la presente por lo que el equipo debi tomar medidas al respecto para poder llegar a la obtencin del producto deseado en tiempo y forma. Como se puede leer en el principio de esta iteracin surgi el concepto de Ao Lectivo que antes no haba sido tomado en cuenta como factor importante tanto para nuestro equipo como para el cliente pero una vez analizado el mismo, se defini que era vital para el correcto desempeo del sistema. Dada la complejidad de esta iteracin y tomando como premisa que este ser el ncleo principal del sistema, se redobl esfuerzo en la etapa de anlisis y diseo lo cual nos permiti detectar distintas problemticas de negocio del colegio que evitaron que este tiempo se multiplicara en la etapa de implementacin y testeo. Esto no quiere decir que las etapas mencionadas no hayan sufrido desvos o sobreasignacin, sino que simplemente se redujo la dimensin que estas podran llegar a tener. Para contrarrestar estas situaciones y sabiendo que la extensin del tiempo de entrega final del proyecto no es una opcin; se tomaron dos decisiones. La primera fue la replanificacin total de las iteraciones II y III tratando siempre de salvaguardar los tiempos estimados y procurando que las modificaciones de fechas fueran de la menor magnitud posible. Segundo; para cumplir con la primera decisin, optamos por aumentar la dedicacin planificada que equivala a 5 horas diarias de lunes a sbados extendindola a ms cantidad de horas y tambin el uso de los domingos. Esto si bien fue una decisin difcil, hoy; ubicados en esta instancia de la iteracin nos permite afirmar que fue decisin acertada. En resumen, los integrantes absorbimos las problemticas de la actual y anterior iteracin realizando un corrimiento mnimo en las fechas de la planificacin inicial y llegando a la obtencin de un buen producto con una buena calidad. Nota: Este desvi y sobreasignacin puede verse en el informe de avance del proyecto detallado en el Anexo VIII.

228

2.7. ITERACION III


2.7.1. Reunin con el Cliente Evaluacin del Cliente En esta nueva reunin con el cliente una vez implantado el segundo release de nuestro sistema, pudimos comprobar que el mismo se encuentra satisfecho con el producto brindado y todas sus expectativas estn contempladas y colmadas. Una vez obtenida esta aprobacin, se defini que en esta tercera y ltima iteracin nuestro equipo se enfocar en la realizacin de informes relativos a la gestin del colegio y en mutuo acuerdo con el cliente se definieron realizar los siguientes: Emisin de Frmula 69 (Escolaridad). Informe de notas finales por Grupo. Informe de inasistencias por Grupo. Informe de candidatos a examen por Perodo. Informe de resultados de exmenes por Materia / Perodo. Informe de inscripciones por Grupo.

Adicionalmente a esos informes predefinidos surgi una iniciativa por parte de nuestro equipo de poder brindarle una suerte de generador de informes con una interface de consultas para que en un futuro adems de los listados mencionados anteriormente, un usuario con conocimientos avanzados en informtica; que por otra parte hoy ya integra el staff del colegio, pueda realizar informes dinmicos y de esta manera obtener una mayor independencia. Esto no solo otorgar esta comodidad al colegio sino que le permitir a nuestro equipo poder agregar cualquier informe futuro sin la necesidad de realizar ninguna modificacin en el programa. Sin dudarlo, esta idea fue aceptada inmediatamente. Para los distintos informes planificados, identificamos los siguientes procesos.
Identificacin IP18 IP19 IP20 Proceso Emisin de Frmula 69. Informe de notas finales por Grupo Informe de inasistencias por Grupo Informe de candidatos a examen por perodo. Informe de resultados de exmenes por Materia / Perodo Informe de inscripciones por Grupo Proceso generador de informes dinmicos. Descripcin Emitir la escolaridad completa de un alumno. Dado un grupo pode obtener todas las notas finales de sus alumnos. Dado un grupo pode obtener todas las inasistencias de sus alumnos. Dado un perodo de examen se obtienen todos los candidatos a rendir examen en dicho perodo para todas las materias. Dado un perodo de examen y una materia obtener todos los resultados obtenidos.

IP21

IP22

IP23

Dado un grupo pode obtener todas las inscripciones del mismo.

IP24

Permitir generar nuevos informes dinmicos a travs de la herramienta.

IP18: Para cada alumno que lo solicite, se debe poder emitir su escolaridad siguiendo la normativa del CES. Esta normativa indica el formato y la informacin que debe contener este documento de manera tal que el alumno pueda presentarlo en otra institucin o realizar otras tareas de manera oficial. IP19: Es necesario para el colegio poder obtener las calificaciones obtenidas por los alumnos para los grupos que lo componen en sus distintos cursos y aos lectivos con el fin de generar informacin estadstica que pueda ser empleada para diversos controles. 229

IP20, IP21, IP22 e IP23: Por lo mismo que se detalla en el IP19, es importante para el colegio poder obtener de manera sencilla y eficiente las inasistencias de los alumnos como as tambin los resultados de los candidatos a dar exmenes, los exmenes rendidos y las inscripciones de los distintos grupos. IP24: Con el fin de obtener una mayor independencia, los responsables del colegio aceptaron nuestra propuesta de un generador de informes dinmico que le permita a un usuario calificado realizar distintos informes que puedan necesitar en el futuro sin la necesidad de contactar a nuestro equipo.

2.7.2. Planificacin y Anlisis de riesgos Formulario de Especificacin de Riesgo

Nuevos requerimientos

ID 3

Si bien en este momento no se prev, no existe ningn impedimento en que el cliente pueda realizar nuevos requerimientos una vez comenzado el proyecto. De ocurrir esto, tendr un impacto directo en la estimacin de tiempos pudiendo generar retraso y la eventual replanificacin. Clasificacin: Proyecto Evaluacin del Riesgo Ocurrencia Probabilidad Impacto en Tamao Esfuerzo Cronograma Calidad Valor Final 1 2 1 1 1 1 2 2 1 1 1 2 2 1 1 2 2 3 2 2 Anteproyecto 50% Iteracin I 40% Iteracin II 40% Iteracin III 15%

Acciones Preventivas: Recabar exhaustivamente todos los requerimientos y necesidades del cliente para no dejar ningn clavo suelto. Revisar peridicamente la lista de requerimientos junto con el cliente. Elemento Disparador: El cliente muestra inters en cambar la solucin acordada previamente. Acciones Correctivas: De ser necesario, redefinir junto al cliente las nuevas necesidades del mismo y replanificar las tareas para el cumplimiento de ellas. Evaluacin de Seguimiento: Si bien a esta altura del proyecto y restando solo la iteracin de informes la probabilidad que surjan nuevos requerimientos es mnima, se decidi no descartarla basados en las experiencias vividas en las iteraciones I y II.

230

2.7.3. Anlisis [Link]. Requerimientos Los requerimientos a implementar en esta iteracin son los siguientes: Emisin de Frmula 69 (Escolaridad). Informe de notas finales por Grupo. Informe de inasistencias por Grupo. Informe de candidatos a examen por perodo. Informe de resultados de exmenes por Materia / Perodo. Informe de inscripciones por Grupo. Generador dinmico de Informes.

[Link]. Anlisis de los Casos de Uso Identificacin


Identificacin Descripcin Requerimiento

CU33 CU34 CU35 CU36 CU37 CU38 CU39

Emisin de Frmula 69 Informe de notas finales por Grupo Informe de inasistencias por Grupo Informe de candidatos a examen por perodo Informe de resultados de exmenes por Materia / Perodo Informe de inscripciones por Grupo Generador dinmico de Informes

RF16 RF17 RF17 RF17 RF17 RF08 Nuevo

Diagrama de casos de uso de la iteracin.


uc CU General Iteracion 3

Emitir Informes Generados Usuari o

Emitir Informe de Notas Finale s Usuario Ex perto

Generar Informes Dinamicos

Emitir Informe de Inscripcione s

Emitir Informe de Inasistencia s

Emitir Informe de Candidatos a Ex amen por Perodo

Emitir Informe Resultados de Ex amen

231

CU33: Emisin de Frmula 69. Permitira a los usuarios emitir escolaridades de alumnos segn las normas predeterminadas por el CES. CU34: Informe de notas finales por Grupo. Permitira a los usuarios emitir un informes de notas finales para un determinado grupo curso ao lectivo. CU35: Informe de inasistencias por Grupo. Permitira a los usuarios emitir informes de inasistencias para un determinado grupo curso ao lectivo. . CU36: Informe de Candidatos a examen por Perodo. Permitira a los usuarios emitir informes de los candidatos a examen en un perodo para todas las materias. CU37: Informe de resultados de exmenes por Materia / Perodo. Permitira a los usuarios emitir informes de resultados de exmenes para un determinado perodo materia. CU38: Informe de inscripciones por Grupo. Permitira a los usuarios emitir informes de las inscripciones para un determinado grupo curso ao lectivo. CU39: Generador dinmico de Informes. Permitira a un usuario con conocimientos avanzados de informtica generar distintos informes que puedan necesitarse en un futuro sin depender de un integrante de nuestro equipo.

[Link]. Diagramas de Secuencia Descripcin de la interaccin de Objetos.


Identificacin Emisin de Frmula 69 Emisin de Frmula 69 Informe de notas finales por Grupo Informe de notas finales por Grupo Informe de inasistencias por Grupo Informe de inasistencias por Grupo Informe de candidatos a examen por Perodo Informe de candidatos a examen por Perodo Informe de resultados de exmenes por Materia / Perodo Informe de resultados de exmenes por Materia / Perodo Informe de inscripciones por Grupo Informe de inscripciones por Grupo Generador dinmico de Informes Generador dinmico de Informes CU36 CU35 CU34 CU33 Caso de uso asociado

CU37 CU38 CU39

Dada la semejanza en la secuencia de los casos de uso 45, 46 y 47 solo se realizar un diagrama de secuencia de stos y que tambin corresponder a los futuros informes que puedan ser creados a travs del Generador. Por consiguiente los diagramas que muestran a continuacin se corresponden a: Emitir Frmula 69. Emitir Informes. Generar Informes dinmicamente. 232

sd Emitir Formula69 Sistema Usuario

1. El usuario solicita al sistema emitir la escolaridad de un alumno. 2. El usuario selecciona el alumno. 3. El sistema realiza la emisin correpondiente.

Emitir Formula 69()

sd Emitir Informe Sistema 1. El usuario selecciona el informe a emitir. 2. El sistema realiza el informe correspondiente. Usuario Emitir Informe()

sd Generar informes dinamicos Sistema Usuario GenerarNuevoInforme()

1. El usuario solicita al sistema generar un nuevo informe. 2. El sistema le pide al usuario registrar las condiciones del informe 3. El usuario completa las condiciones y confirma el informe 4. El sistema genera el nuevo informe.

233

2.7.4. Diseo Una vez ms, al finalizar el anlisis de la iteracin, se obtiene un modelo conceptual del dominio del problema resuelto a travs de los casos de uso, los diagramas de secuencia de anlisis y el diagrama de clases genrico.

[Link]. Casos de Uso de Diseo CU33: Emitir Frmula 69. Nombre: Emitir Frmula 69. Resumen: Permite emitir una escolaridad completa de un alumno del colegio siguiendo la normativa predefinida por el CES. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - El usuario debe estar logueado en el sistema. - El alumno solicitante debe tener al menos un ao procesado en el colegio. Flujo principal: 1. El usuario ingresa al men Fichero de Alumnos. 2. El usuario selecciona el alumno a travs de la bsqueda de alumnos. 3. El sistema despliega los datos del alumno para que sea verificados. 4. El usuario solicita emitir la frmula 69. 5. El sistema emite la frmula 69 del alumno. 6. El caso de uso finaliza. CU33: Interfaz de usuario asociada

CU34: Informe de notas finales por Grupo. Nombre: Informe de notas finales por Grupo. Resumen: Permite emitir un listado de notas finales de los alumnos de un determinado grupo. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - El usuario debe estar logueado en el sistema. - Debe haber al menos un grupo con notas finales ingresadas. Flujo principal: 1. El usuario ingresa al men de registro de calificaciones finales. 2. El sistema le pide al usuario que seleccione grupo deseado. 3. El usuario digita los datos del grupo o lo encuentra a travs de las bsqueda de grupo. 4. El sistema despliega los datos del grupo para que sea verificados. 5. El usuario confirma la emisin. 234

6. El sistema emite el informe. 7. El caso de uso finaliza. CU34: Interfaz de usuario asociada

CU35: Informe de inasistencias por Grupo. Nombre: Informe de inasistencias por Grupo. Resumen: Permite emitir un listado de las inasistencias de los alumnos de un determinado grupo. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - El usuario debe estar logueado en el sistema. - Debe haber al menos un grupo con inasistencias ingresadas. Flujo principal: 1. El usuario ingresa al men de registro de inasistencias. 2. El sistema le pide al usuario que seleccione el grupo deseado. 3. El usuario digita los datos del grupo o lo encuentra a travs de las bsqueda de grupos. 4. El sistema despliega los datos del grupo para que sea verificados. 5. El usuario confirma la emisin. 6. El sistema emite el informe. 7. El caso de uso finaliza. Flujo alternativo: 1. a. Si las condiciones del informe no son correctas. a. El sistema despliega el mensaje de que no es posible realizar el informe. b. El caso de uso finaliza. CU35: Interfaz de usuario asociada

CU36: Informe de candidatos a examen por Perodo. 235

Nombre: Informe de candidatos a examen por Perodo. Resumen: Permite emitir un listado de todos los candidatos a examen para un determinado perodo y todas sus materias. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - El usuario debe estar logueado en el sistema. - Debe haber al menos un candidato a examen para algn perodo. Flujo principal: 1. El usuario ingresa al men de procesar resultados de exmenes. 2. El sistema le pide al usuario que seleccione el perodo a listar. 3. El usuario digita el perodo deseado. 4. El sistema despliega los datos seleccionados para que sea verificados. 5. El usuario confirma la emisin. 6. El sistema emite el informe. 7. El caso de uso finaliza. CU37: Interfaz de usuario asociada

CU37: Informe de resultados de exmenes por Materia / Perodo. Nombre: Informe de resultados de exmenes por Materia / Perodo. Resumen: Permite emitir un listado de resultados de exmenes para un determinado perodo y materia. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Secretaria u otro usuario con el privilegio para realizar la operacin. Precondiciones: - El usuario debe estar logueado en el sistema. - Debe haber al menos examen con resultados ingresados. Flujo principal: 8. El usuario ingresa al men de procesar resultados de exmenes. 9. El sistema le pide al usuario que seleccione el perodo y la materia a listar. 10. El usuario digita los datos solicitados por el sistema o los encuentra a travs de las bsquedas disponibles para tal fin. 11. El sistema despliega los datos seleccionados para que sea verificados. 12. El usuario confirma la emisin. 13. El sistema emite el informe. 14. El caso de uso finaliza.

236

CU37: Interfaz de usuario asociada

CU38: Informe de Inscripciones por Grupo. Nombre: Informe de Inscripciones por Grupo. Resumen: Permite realizar un listado de las inscripciones realizadas para un grupo especfico. Permite adems, emitir el listado por impresora o exportarlo a Excel. Actor: Usuario con privilegios para realizar esta operacin. Precondiciones: El usuario debe estar logueado en el sistema. Debe existir al menos una inscripcin en un grupo a listar. Flujo principal: 1. El usuario ingresa al men de inscripciones. 2. El sistema le pide al usuario que seleccione el grupo a listar. 3. El usuario digita los datos del grupo o los encuentra a travs de las bsquedas disponibles para tal fin. 4. El sistema despliega los datos seleccionados para que sea verificados. 5. El usuario confirma la emisin. 6. El sistema emite el informe. 7. El caso de uso finaliza. CU38: Interfaz de usuario asociada

237

CU39: Generador dinmico de Informes. Nombre: Generador dinmico de Informes. Resumen: Permite generar un informe adicional segn pautas definidas por un usuario, Actor: Usuario experto en informtica o un integrante de nuestro equipo. Precondiciones: - El usuario debe estar logueado en el sistema. Flujo principal: 1. El usuario ingresa al men de informes y selecciona generar un nuevo informe. 2. El sistema despliega la interface para la generacin de informes. 3. El usuario agrega un nombre y determina las condiciones y parmetros que tendr ese informe. 4. El usuario confirma el informe. 5. El sistema registra el nuevo informe en la lista de informes existentes. 6. El caso de uso finaliza. Flujo alternativo: 1. a. Si el criterio especificado no es correcto. a. El sistema despliega el mensaje de que no es posible generar el nuevo informe. b. El caso de uso finaliza. 2. a. El informe ya existe y el usuario quiere eliminarlo. a. El usuario ingresa al men de informes y selecciona uno de los informes existentes. b. El sistema despliega los datos del informe para que sean verificados. c. El usuario indica eliminar el informe. d. El sistema pide la confirmacin de la eliminacin. e. El usuario confirma la eliminacin. f. El sistema elimina el informe. g. El caso de uso finaliza. CU39: Interfaz de usuario asociada

238

[Link]. Diagramas de secuencia Para recordar a que caso de uso y diagrama de secuencia del anlisis estn asociados se presenta la siguiente tabla:
Identificacin Anlisis Emisin de Frmula 69 Caso de uso asociado CU33 CU34 CU35 CU36 CU37 CU38 CU39 CU39 CU39 Identificacin Diseo DID57 DID58 DID59 DID60 DID61 DID62 DID63 DID64 DID65

- Emisin de Frmula 69 Informe de notas finales por Grupo - Informe de notas finales por Grupo Informe de inasistencias por Grupo - Informe de inasistencias por Grupo Informe de candidatos a examen por Perodo - Informe de candidatos a examen por Perodo Informe de resultados de exmenes por Materia / Perodo - Informe de resultados de exmenes por Materia / Perodo Informe de inscripciones por Grupo - Informe de inscripciones por Grupo Generador dinmico de Informes Agregar Informe Modificar Informe Eliminar informe

CU33: Emisin de Frmula 69 DID57: Emisin de Frmula 69


sd EmitirEscolaridad Presentaci on Form GestionEscolaridades Usuario Emiti rEscol aridad(Al umno) Arm arObjeto(Alumno) :Escolari dad Apl icaci on M anej adorEscolaridades Persistencia Persisntenci aSIINCO

Obtener(Escolaridad) :bool Obtener(Escol aridad) :bool Sel eccionarObjeto() : Escolari dad Retornar(Escolari dad)

Retornar(Escolaridad) Retornar(Escolari dad)

239

CU34: Informe de notas finales por Grupo DID58: Informe de notas finales por Grupo
sd Listar Notas Finales por Grupo Presentacion Form GestionCalificaciones Usu ario Li starNotasFinal esP orGrupo( ) Arm arO bjeto() :NotasFi nal esG rupo Aplicaci on M anej adorCal ificaciones P ersistencia P ersi sntenci aSIINCO

ObtenerT odos(Nota sFinalesGrupo) :bool Obten erT o dos(NotasFi nalesG rupo) :bo ol Sele ccionarObjetos() : Nota sFinalesGr upo Retornar(NotasFi nal esG r upo)

Retornar(NotasFinalesGr upo) Retorn ar(NotasFinalesGrupo)

CU35: Informe de inasistencias por Grupo DID59: Informe de inasistencias por Grupo
sd Listar Inasistencia s por G rupo Pre se ntacion Form G estio nInasistenci as Usu ario Li starIna sistencia sPorGru po() Arm arO bjeto() :Inasi sten ciasGrup o Ap licacion M an ejado rInasiste ncias Persi stenci a Persisn tenciaSIINCO

ObtenerT odo s(Ina si stenciasGru po) :b ool O btenerT odos(In asistencia sGrupo ) :bool Se leccionarO bj etos() : Inasist en ciasGr u po Retornar(Inasiste nciasGru po)

Reto rn ar(Ina sistencia sG rupo) Re torna r(Inasi stenciasGr upo)

240

CU38: Informe de candidatos a examen por Perodo DID62: Informe de candidatos a examen Perodo
sd Listar Candidatos a Examen Presentacion Form Gesti onExam enes Usuario ListarCandidatosExam en(Exam en) Arm arObjeto(Exam en) :CandidatosExam en Apl icacion M anejadorExam enes Persistencia PersisntenciaSIINCO

ObtenerT odos(CandidatosExam en) :bool ObtenerT odos(CandidatosExam en) :bool SeleccionarObj etos() : CandidatosExam en Retornar(Candi datosExam en)

Retornar(CandidatosExam en) Retornar(CandidatosExam en)

CU37: Informe de resultados de exmenes por Materia / Perodo DID61: Informe de resultados de exmenes por Materia / Perodo
sd Lis tar Res ultados de Exa me ne s Pre sen ta ci o n Form Ge stio nE xam en es Usua rio L i sta rRe sul tad osE xam e n(E xam en ) A rm a rO bj e to(E xa m e n) :Resul ta do sE xam en A pli caci on M an ej a do rE xam ene s P ersiste nci a Pe rsi snte nci aS IINCO

O bte ne rT o dos(Re sultado sE xam en ) :b oo l Ob ten erT odo s(Resu l ta dosE xa m e n) :bo ol S e lecci o narOb jetos() : Re sul tad osE x am en Re torn ar(Re sultado sEx am en )

Reto rna r(Resu lta dosEx a m e n) Reto rna r(Re su ltad osE x a m e n)

241

CU38: Informe de inscripciones por grupo DID62: Informe de inscripciones por grupo
sd Listar Incripciones por Grupo Pre sentacion Form GestionIn scripciones Usuario 1.0 ListarInscripci onesPorGrupo( ) 1 .1 Arm arObjeto() :Inscripcione sGrup o Aplicacion M a nejad orInscripcion es Persiste ncia Persisnte nciaSIINCO

1.2 Ob tenerT od os(Inscripci onesGrupo) :bool 1 .3 Obte nerT odos(Inscripcion esGrupo) :bool 1.4 In scricpinesGr upo= Seleccio narObj etos() 1.5 Re torna r(Inscripcione sGrupo)

1.6 Retorna r(Inscripcion esGrupo) 1.7 Retornar(Inscri pcione sGru po)

(from Diagramas de S ecuencia)

242

CU39: Generador dinmico de Informes DID63: Agregar informe


sd CU39 - DI63 - Generar Informe Presentacion FormGenerarInformes Usuario NuevoInforme() IngresarCondi ciones() Apl icacion ManejadorInform es Persistencia Persisntenci aSIINCO

GuardarInforme() ArmarObjeto() :Informe

DetectarParametros(Informe) ArmarParametros(Informe) RetornarInformeProcesado(Inform e)

Guardar(Informe) :bool Validar(Informe) :bool

Guardar(Informe) :bool NuevoInformePersistente(Informe) : Inform ePersi stent e

Insertar(InformePersi stente) :int

243

CU39: Generador dinmico de Informes DID64: Modificar informe


sd CU39 - DI64 - Modificar Informe Presentacion FormGenerarInformes Usuario SeleccionarInforme() Arm arObjeto(Informe) Aplicacion ManejadorInformes Persistencia PersisntenciaSIINCO

ObtenerObjeto(Informe) :bool ObtenerObjeto(Informe) :bool Informe= SeleccionarObjeto(Informe) RetornarObjeto(Informe) RetornarObjeto(Informe) Retornar(Informe) ModificarCondiciones(Informe)

Guardar(Informe) DetectarParametros(Informe) Arm arParametros(Informe) RetornarInform eProcesado(Informe)

guardarObjeto(Informe) :bool Validar(Informe) :bool

GuardarObjeto(Informe) :bool

NuevoInformePersistente(Informe) : InformePersistent e

Insertar(InformePersistente) :int

244

CU39: Generador dinmico de Informes DID65: Eliminar informe


sd Eliminar Informe Presentacion Form GenerarInform es Usuario SeleccionarInform e() Arm arObjeto(Inform e) Aplicacion M anejadorInform es Persistencia PersisntenciaSIINCO

ObtenerObjeto(Informe) :bool ObtenerObjeto(Inform e) :bool Inform e= SeleccionarObjeto(Informe) RetornarObjeto(Informe) RetornarObjeto(Inform e) Retornar(Informe) Eliminar(Informe) Elim inarObjeto(Informe) :bool Elim inarObjeto(Inform e) :bool NuevoInform ePersistente(Informe) : InformePersistent e

El iminar(Inform ePersistente) :int

[Link]. Diagramas de Clases Al igual que en las iteraciones anteriores, en esta etapa se identifican para cada clase, sus atributos, sus operaciones y las responsabilidades identificadas en el anlisis. Tambin se especifican los mtodos que implementan esas operaciones. Identificacin de Clases Adicionales Se detallan aquellas clases que son agregadas o existentes y utilizadas por la presente iteracin.

245

Diagrama de Paquetes
class Diagrama de Paquetes EXE Presentacio n + BuscarIDDescripcion + FormBasicoMantenimiento + FormBusqueda + FormBusquedaAlum no + FormBusquedaCurso + FormBusquedaGrupo + FormBusquedaInform es + FormBusquedaMateria + FormBusquedaPlan + FormBusquedaPlanCursos + FormBusquedaProfesor + FormBusquedaT ipoUsuario + FormBusquedaUsuario + FormCambioEstadoAnio + FormConfiguracionBD + FormConfiguracionInstituto + FormConfiguracionTipoUsuarios + FormConfiguracionUsuarios + FormEscritorioAplicacion + FormFicheroAlumnos + FormFicheroCursos + FormFicheroMaterias + FormFicheroPlanCursos + FormFicheroPlanes + FormFicheroProfesores + FormGestionCalificacionesNotasFinales + FormGestionCierreGrupos + FormGestionExamenes + FormGestionGrupos + FormGestionInasistenciasFinCurso + FormGestionInscripciones + FormGestionProcesarPeridosExam en + FormInformesArm ado + FormInform esSeleccion + FormInform esVisualizar + FormLogin + Form MDIPrincipal + FormSplash + Program + VisorGrupo + VisorPlanCurso DLL Persistenci a + Conexion + CreadorObejetoPersistente + ObjetoPersistente + PersistenciaSIINCO + PersistenteAlum no + PersistenteAnioLectivo + PersistenteCalificacion + Persist enteCurso + PersistenteEscolaridad + PersistenteGrupo + PersistenteInasistenc ia + PersistenteInform e + PersistenteInform eParametros + PersistenteInscripcion + PersistenteInstitut o + PersistenteM ateria + PersistentePlan + PersistentePlanCurso + PersistentePlanCursoM ateria + Persist enteProfesor + PersistenteSesion + PersistenteT ipoUsuario + PersistenteUsuario + SIINCOInform es DLL Aplicacion + ManejadorAlum no + ManejadorCalificaciones + ManejadorCurso + ManejadorEscolaridad + ManejadorGrupo + ManejadorInasistencias + ManejadorInform es + ManejadorInscripciones + ManejadorMateria + ManejadorPlan + ManejadorPlanCurso + ManejadorProfesor + ManejadorT ipoUsuario + ManejadorUsuario + SIINCOManejador + ICambioEstadoAnioLectivo + IValidarCalificacion + IValidarInscripcion DLL Domini o + Alum no + AnioLectivo + Calificacion + CalificacionFinCurso + CalificacionFinCursoExterna + CalificacionFinCursoInterna + Copiadora + CreadorObjeto + Curso + Escolaridad + EscolaridadExterna + EscolaridadInterna + Exam en + Exam enInterno + Grupo + Inasistencia + InasistenciaFinCurso + Inform e + Inform eParametros + Inscripcion + Instituto + Lista + Materia + Objet o + ParametrosSQL + PeriodoExamen + Plan + PlanCurso + PlanCursoMateria + Profesor + Sesion + SIINCOExcepcion + T ipoUsuario + Usuario + IObserv able + IO bserv ador

246

Diagrama de Clases del paquete Presentacin


class GUI FormBasicoMantenimiento -_objSingleton _form Busquedas: Form BusquedaAl umno = new Form Busqued... {readOnly} _obj Singleton: FormFicheroAlum nos ArmarObj etoDesdePantalla() : void ArmarPantal laDesdeObjeto() : void buttonEscolaridadRefrescar_Click(object, EventArgs) : void buttonEscolaridadVistaPrevia_Cli ck(object, EventArgs) : void CargarEscolaridad() : void Form FicheroAlum nos() Inicio() : void Instancia(Form ) : Form FicheroAlum nos M enuBuscar_Click(object, Item ClickEventArgs) : void M enuCancelar_Click(obj ect, Item Cl ickEventArgs) : void M enuElim inar_Click(object, Item ClickEventArgs) : void M enuGuardar_Click(object, Item ClickEventArgs) : void M enuNuevo_Click(object, Item ClickEventArgs) : void Nuevo() : void ReporteEscolaridad() : voi d Sel eccionar(Objeto) : void Val idar() : bool [Link] FormGestionInasistenciasFinCurs o # + _obj GrupoRegistro: Grupo _obj Singleton: Form GestionInasistenci asFinCurso -_objSingleton [Link] FormGestionCalificacionesNotasFinale s # + _objGrupoRegistro: Grupo _objM ateri aRegistro: M ateria _objSingleton: Form Gesti onCal ifi cacionesNotasFinal es Arm arPantallaGrupo() : void CargarM ateriasGrupo(PlanCurso) : void com boM aterias_SelectedVal ueChanged(object, EventArgs) : void Form atoAprobaciones() : void Form GestionCali ficaci onesNotasFinales() HabilitarIngresoNota() : void HabilitarSeleccionGrupoM aterias() : void Instancia(Form ) : Form GestionCali fi cacionesNotasFinales m enuRegi strarNotas_Item Clicked(object, T oolStri pItem ClickedEventArgs) : void m Salir_Item Click(object, [Link] ClickEventArgs) : void m Selecci onarGrupo_Item Click(object, [Link] Cl ickEventArgs) : void Sel eccionGrupo(Obj eto) : void toolCargarNotas_Cli ck(obj ect, EventArgs) : void -_objSingleton FormFicheroA lumnos FormGestionCierreGrupo s + _objGrupoRegistro: Grupo _objSingleton: Form GestionCi erreGrupos [Link] [Link] -_objSingl eton

# # + # # # # # # -

Arm arDatosGrupo() : void CargarDetall eAlumno() : void CargarEscolaridadAlum nos() : void CrearCabecera(object, CreateAreaEventArgs) : voi d Form atoDetalleAprobaci ones() : void Form atoEscolaridades() : void Form atoLabels() : void Form GestionCierreGrupos() gridViewEscol aridades_FocusedRowChanged(object, FocusedRowChangedEventArgs) : voi d Instancia(Form ) : Form GestionCi erreGrupos m Guardar_ItemClick(obj ect, [Link] Cli ckEventArgs) : void m GuardarCerrar_ItemClick(object, [Link] Cli ckEventArgs) : void m Im prim ir_ItemClick(object, [Link] ClickEventArgs) : void m Salir_Item Click(object, [Link] ClickEventArgs) : void m Selecci onarGrupo_Item Click_1(obj ect, [Link] ClickEventArgs) : void ReporteFinCurso() : voi d Sel eccionGrupo(Obj eto) : void

property - AnioLectivoActual() : AnioLectivo - GrupoRegi stro() : Gr upo

ArmarPantal laGrupo() : void CargarAlum nos() : void CrearCabecera(object, CreateAreaEventArgs) : voi d Form atoAprobaciones() : void Form GestionInasistenciasFi nCurso( ) Instancia(Form ) : Form GestionInasi stenciasFinCurso m Guardar_Item Click(obj ect, [Link] Cli ckEventArgs) : void m Im primi r_ItemClick(object, [Link] ClickEventArgs) : void m IngresoInasistenciasSelecci onarGrupo_Item Click(object, Item ClickEventArgs) : void m Salir_Item Click(object, [Link] ClickEventArgs) : void ReporteInasistenci as() : v oid Sel eccionGrupo(Obj eto) : void

property - Ani oLecti voActual() : AnioLectivo - GrupoRegistro() : Gr upo [Link] [Link] FormGestionInscripcione s + _obj GrupoInscripcion: Grupo _obj Singleton: Form GestionInscripciones -_obj Singleton

property - AnioLectivoActual() : AnioLectivo - GrupoRegi stro() : Gr upo + M ateri aRegi stro() : M ateria XtraF orm FormInformesV isualizar + _i nform e: Informe Arm arControlesParam etros() : void Arm arForm atoReporte() : void barInform esAtras_Item Click(object, [Link] Cl ickEventArgs) : void barInform esEj ecutar_Item Click(object, [Link] ClickEventArgs) : void barInform esIm pri mir_Item Cl ick(object, [Link]) : void barInform esSal ir_Item Cl ick(obj ect, [Link] ClickEventArgs) : void barInform esVi staPrevia_Item Click(object, [Link] ClickEventArgs) : void Caj aT extoT i po(Inform eParam etros, int) : T extEdit CrearCabecera(object, CreateAreaEventArgs) : voi d Ej ecutarInform e() : void Form Inform esVisualizar(Form , Inform e) InicioInform e() : void

AgregarAlum no_Cli ck() : void Alum noSeleccionado(Obj eto) : void CargarInscripcionesGrupo() : void CrearCabecera(object, CreateAreaEventArgs) : voi d Form GestionInscripciones() Instancia(Form ) : Form GestionInscri pci ones m FicherosBuscarGrupo_Item Click(object, Item ClickEventArgs) : void m FicherosSalir_Item Cl ick(obj ect, [Link] ClickEventArgs) : void m Im primi r_ItemClick(object, [Link] ClickEventArgs) : void Qui tarAlum no_Click() : void ReporteInscripciones() : void Sel eccionGrupo(Obj eto) : void

property - Ani oLecti voActual() : AnioLectivo - GrupoInscripcion() : Grupo SIINC [Link].F ormBasicoMantenimi ent o -_objSingleton _form Busquedas: Form BusquedaInform es = new Form Busqued... {readOnl y} _obj Singleton: Form Inform esArm ado ArmarObj etoDesdePantalla() : void ArmarPantal laDesdeObjeto() : void buttotnCrearParam etros_Cl ick(object, EventArgs) : void Form Inform esArm ado() Inicio() : void Instancia(Form ) : Form Inform esArm ado M enuBuscar_Click(object, Item ClickEventArgs) : void M enuCancelar_Click(obj ect, Item Cl ickEventArgs) : void M enuElim inar_Click(object, Item ClickEventArgs) : void M enuGuardar_Click(object, Item ClickEventArgs) : void M enuNuevo_Click(object, Item ClickEventArgs) : void Nuevo() : void Sel eccionar(Objeto) : void Val idar() : bool FormInformesA rmado

# # + # # # # # # -

property - Inform e() : Inform e [Link] [Link] FormInformesSeleccio n + + _objSingleton: Form Inform esSelecci on AbrirInform e() : void barSeleccionarInform eAbrir_ItemClick(obj ect, ItemClickEventArgs) : void barSeleccionarInform eSalir_ItemCli ck(obj ect, ItemCli ckEventArgs) : void Form Inform esSel eccion() Inicio() : void Instancia(Form ) : Form Inform esSelecci on l istBoxInform es_DoubleClick(obj ect, EventArgs) : void -_obj Singleton

247

Diagrama de Clases del paquete Dominio


class Dominio Objet o Inform e _m BoolEdi table: bool = true _m IntInform e: int _m StrConsulta: string _m StrNombre: stri ng StrRegularExpression: stri ng = @":\w *" InformeParametro s _m IntInform e: int _m StrParam etro: string _m StrT ipo: stri ng _m StrTitulo: string _m StrValor: stri ng Objet o

+ Informe() + SincronizarCom puestoFilas() : void property + Consulta() : string + ConsultaParametri zada() : string + Editable() : bool + InformeID() : int + Nombre() : string + RegularExpressi on() : string + T oStringID() : string

- Form atearValor() : string + ListaT ipoParam etros() : List<string> + Si ncronizarCom puestoFilas() : void property + InformeID() : int + Param etro() : string + T i po() : string + T i poParam etro() : Enums.T ipoControl + T i tulo() : string + T oStri ngID() : string + Val or() : string + Val orFormateado() : stri ng

Diagrama de Clases del paquete Persistencia


class Persistencia

SIINCOInforme s + + + + + + + + + + + + _conexion: [Link] _objSingleton: SIINCOInformes -_objSingleton

AlumnoInscriptoEnAo(Inscripcion) : bool CrearLista(string, Objeto) : Lista<Objeto> EjecutarInforme(Informe) : DataSet EsValidoCursoPrevio(int, int) : bool Instancia() : SIINCOInformes ObtenerCalificaciones(Calificacion, [Link]) : Lista<Objeto> ObtenerEscolaridadCursoAlumnoUltima(Alumno, Curso) : Escolaridad ObtenerEscolaridades(Escolaridad, [Link]) : Lista<Objeto> ObtenerInscripciones(Inscripcion, [Link]) : Lista<Objeto> ObtenerObjeto(string, Objeto) : Objeto SIINCOInformes() TieneCalificaciones(Ins cripcion) : bool TieneInasistencias(Inscripcion) : bool UltimoCurso() : Curso

248

Diagrama de Clases del paquete Aplicacin


class Aplicacion SIIN CO Manejador M anejadorGrupo + + + + + + + + + + + + + + + + + + _objSi ngleton: M anejadorGrupo Arm arEscol aridadGrupo(Grupo) : Li sta<Objeto> CerrarGrupo(Grupo) : bool Eli m i nable(Grupo) : bool Eli m i nar(Objeto) : bool GruposAni oLecti vo(AnioLectivo) : Lista<Objet o> Guardar(Obj eto) : bool GuardarCal ificaci onesGrupo(Grupo, Lista<Objeto>) : bool GuardarEscolaridadGrupo(Grupo) : bool GuardarInasi stenciasGrupo(Grupo, Li sta<Objeto>) : bool Habil itadoParaCierre(Grupo) : bool Instanci a() : M anej adorGrupo Obtener(Obj eto) : bool ObtenerCal ificaci on(Inscri pcion, M ateri a, Cal ifi cacionFi nCursoInterna) : Cali fi cac ion ObtenerCal ificaci onesGrupo(Grupo, Materi a, Cal ifi cacionFi nCursoInterna) : Li sta<Objet o> ObtenerCal ificaci onesGrupo(Grupo, Cali ficacionFinCursoInterna) : Lista<Obj et o> ObtenerCal ificaci onesGrupoAlum no(Inscripcion, Calificaci onFinCursoInterna) : Lista<Obj et o> ObtenerCal ificaci onesGrupoM ateria(Lista<Objeto>, M ateri a, Cal ificaci onFinCurso) : Li sta<Objet o> ObtenerEscolaridadesAnio(AnioLectivo) : Lista<Obj et o> ObtenerInasi stenciasGrupo(Grupo, Inasi stenci a) : Li sta<Obj et o> ObtenerInasi stenciasGrupoAlum no(Inscri pcion, Inasistenci a) : Inasistenc i a ObtenerInscriptos(Grupo) : Lista<Objet o> ObtenerT odos(Objeto) : Lista<Objet o> Vali dar(Grupo) : bool -_obj Singleton

property - AnioLectivoActual () : AnioLectivo -_objSingleton SIIN CO Manejador M anejadorInscripc i ones + + + + + _objSingl eton: M anejadorInscripci ones El im inar(Obj eto) : bool Guardar(Objeto) : bool Instancia() : M anejadorInscripc i ones Obtener(Objeto) : bool ObtenerInscri pcionesNoVali das(AnioLecti vo) : Li sta<Obj et o> Val idar(Inscri pcion) : bool + + + + SIIN CO Manejador -_objSingleton _obj Si ngleton: M anej adorInasistencias Guardar(Objeto) : bool GuardarLista(Li sta<Objeto>) : bool Instancia() : M anejadorInasi stenc i as Obtener(Objeto) : bool Vali dar(Inasi stencia) : bool M anejadorInasistenc ias

SIIN CO Manejador M anej adorCali fi cac iones + + + ~ + + _objSingl eton: M anejadorCal ifi caciones Guardar(Objeto) : bool GuardarLi sta(Lista<Objeto>) : bool Instancia() : ManejadorCalificac i ones NuevaCal ificaci onFinal(string) : Cali ficac ion Obtener(Objeto) : bool ObtenerExam enes(i nt, PeriodoExam [Link] odos) : Lista<Obj et o> Val idar(Cali ficacion) : bool -_objSingleton + + + + -

SIIN CO Manejador M anej adorInform es _obj Singleton: M anej adorInform es -_obj Singleton

DetectarParam etros(Inform e) : v oi d Guardar(Objeto) : bool Instancia() : M anejadorInform es ObtenerInform e(Inform e) : Dat aSet Param etroEnLista(Inform e, string) : bool Val idar(Inform e) : bool

SIIN CO Manejador M anej adorEscol ari dad + + + + + + + + _obj Singleton: Manej adorEscol ari dad Candi datosExam en(int, int) : Li sta<Objet o> Candi datosExam en(PlanCursoM ateria, i nt, int) : Li sta<Objet o> Instancia() : M anejadorEscolari dad Obtener(Objeto) : bool ObtenerEscolaridadAlum no(Alum no) : IList ObtenerEscolaridadCursoAl um noUltim a(Alum no, Curso) : Escolaridad ProcesarEscolari dadAlumno(Alum no, AnioLectivo) : bool ProcesarEscolari dadCursada(Inscripcion) : EscolaridadInterna -_objSingl eton

249

2.7.5. Implementacin A continuacin se detalla la lista de las clases encontradas y sus respectivas responsabilidades: [Link]. Diccionario de Clases Se muestran nicamente las clases que se agregadas o existentes y utilizadas por la presente iteracin.
Paquete Dominio Clases Informe InformeParametros ManejadorCalificaciones ManejadorEscolaridad ManejadorInasistencias ManejadorInscripciones ManejadorGrupo ManejadorInformes Estado Nueva Nueva Utilizada Utilizada Utilizada Utilizada Utilizada Nueva

Aplicacion

Paquete Dominio
Paquete Sper Clase Clase Descripcin Atributos _mIntInforme: Tipo int _mStrConsulta: Tipo string _mStrNombre: Tipo string _mBoolEditable: Tipo bool StrRegularExpression: Tipo const string Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a Dominio Objeto Informe Se registra la consulta generada para ser ejecutada. Descripcin Indicador del informe. Es la consulta escrita por el usuario y a partir de la cual se genera el informe. Nombre del informe. Indica si es un informe editable por el usuario. Es una constante utilizada para identificar los parmetros dentro de la consulta. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a

Paquete Sper Clase Clase Descripcin Atributos _mIntInforme: Tipo int _mStrParametro: Tipo string _mStrTitulo: Tipo string _mStrTipo: Tipo string _mStrValor: Tipo string Mtodos Pblicos override void SincronizarCompuestoFilas(){} Constructor n/a

Dominio Objeto InformeParametros Guarda los distintos parmetros que contiene un informe. Descripcin Indicador del informe. Es el parmetro ingresado. Nombre del parmetro que se muestra al usuario. Tipo del parmetro. Valor por defecto del parmetro. Descripcin Sincroniza un objeto con sus hijos. Descripcin n/a

Paquete Aplicacin Solo se detalla la nueva clase ManejadorInformes


Paquete Paquetes dependencia Sper Clase Clase Descripcin Atributos n/a Mtodos Pblicos Aplicacin SIINCODominio SIINCOManejador ManejadorInformes Es la clase que se encarga de gestionar los objetos Calificaciones. Descripcin Descripcin

250

Sobrecarga el mtodo padre, sincroniza las lneas de un Informe y lo guarda, antes de hacerlo valida los datos y override Guardar(unInforme: tipo Objeto) tipo Boolean devuelve verdadero si se pudo realizar el guardado correctamente. Se recorre la lista de coincidencias con formato DetectarParametros (unInforme: tipo Informe) tipo void ":parametro" y por cada una de ellas se verifica si ya existe ese parmetro y de lo contrario se agrega. Traslada la consulta ya formateada a la capa de ObtenerInforme(unInforme: tipo Informe) tipo DataSet persistencia. static new Instancia() : tipo ManejadorInformes Singleton. Mtodos Privados Descripcin Verifica en la lista de parmetros si existe uno igual al ParametroEnLista(unInforme: tipo Informe, parametro: tipo string parametro y en caso de encontrar string): tipo static bool una coincidencia lo marca como valido

[Link]. Mapeo de Clases a Tablas Se desarrolla el detalle de mapeo nicamente para aquellas tablas y clases nuevas con respecto a las iteraciones anteriores.
Paquete Dominio Clases Informe InformeParametros Tablas Informes InformesParametros

Tablas
Clase Informe _mIntInforme: tipo int _mStrConsulta: tipo string _mStrNombre: tipo string _mBoolEditable: tipo bool Clase InformeParametros _mIntInforme: tipo int _mStrParametro: tipo string _mStrTitulo: tipo string _mStrTipo: tipo string _mStrValor: tipo string Tabla Informes Informe int Consulta varchar(2000) Nombre varchar(50) Editable DboBoolT:char(1) Tabla InformesParametros Informe int Parametro varchar(30) Titulo varchar(30) Tipo varchar(20) Valor varchar(20)

Modelo de Datos Se muestran nicamente las tablas agregadas concernientes a los informes.

251

2.7.6. Testeo Especificacin de casos de testeo Ttulo Sistema Mdulo Iteracin Responsable Especificacin
Preparacin para el Caso Procedimiento de Ejecucin Propsito: Verificar que se emite correctamente la frmula 69 de un alumno. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso con un usuario con de Calificaciones Finales (Men-> Ficherosprivilegios para realizar >Mantenimiento de Alumnos). dicha tarea. Debe existir al menos un Seleccionar el alumno al que se le desea emitir la alumno con escolaridad escolaridad. registrada en el sistema. En la ficha del alumno seleccionar la opcin Escolaridad. Resultado Esperado Se debe visualizar correctamente la escolaridad del alumno con todos sus datos correspondientes Resultado Testeado OK

TESTEO de Emisin de Frmula 69 SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se emite correctamente la frmula 69 de un alumno por impresora Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir la frmula con un usuario con de Calificaciones Finales (Men-> Ficheros69 del alumno por privilegios para realizar >Mantenimiento de Alumnos). impresora de manera dicha tarea. correcta. Debe existir al menos un Seleccionar el alumno al que se le desea emitir la alumno con escolaridad escolaridad. registrada en el sistema. En la ficha del alumno seleccionar la opcin Escolaridad. Seleccionar la opcin vista previa e intentar imprimir la escolaridad.

Resultado Testeado OK

252

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO de Informe de notas finales por Grupo SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se emite correctamente un informe de las calificaciones por grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por Testeado con un usuario con de Calificaciones Finales (Men-> Gestin pantalla un informe OK privilegios para realizar Escolar->Registro de Calificaciones). presentando las dicha tarea. calificaciones de todos los alumnos del grupo para Debe existir al menos un Seleccionar el grupo que se desea consultar. todas las materias. alumno con calificaciones registradas en el sistema. Presionar el botn de Emitir Listado de Calificaciones Propsito: Verificar que se emite correctamente un informe de las calificaciones por grupo a travs de la impresora. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por Testeado con un usuario con de Calificaciones Finales (Men-> Gestin impresora un informe OK privilegios para realizar Escolar->Registro de Calificaciones). presentando las dicha tarea. calificaciones de todos los alumnos del grupo para Debe existir al menos un Seleccionar el grupo que se desea consultar. todas las materias. alumno con calificaciones registradas en el sistema. Presionar el botn de Emitir Listado de Calificaciones En la pantalla con el informe, presionar la opcin Imprimir

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO de Informe de Inasistencias por Grupo SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se emite correctamente un informe de las inasistencias de un grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por Testeado con un usuario con de Inasistencias (Men-> Ficheros->Gestin pantalla un informe OK privilegios para realizar Escolar->Registro de Inasistencias). presentando todas las dicha tarea. Inasistencias del grupo. Debe existir al menos un Seleccionar el grupo que se desea consultar. alumno con inasistencias registradas en el sistema. Presionar el botn de Emitir Listado de Inasistencias Propsito: Verificar que se emite correctamente un informe de las calificaciones por grupo a travs de la impresora. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por Testeado con un usuario con de Inasistencias (Men-> Gestin Escolarimpresora un informe OK privilegios para realizar >Registro de Inasistencias). presentando todas las dicha tarea. Inasistencias del grupo. Debe existir al menos un Seleccionar el grupo que se desea consultar. alumno con inasistencias registradas en el sistema. Presionar el botn de Emitir Listado de Inasistencias En la pantalla con el informe, presionar la opcin Imprimir

253

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO de Informe de Candidatos a Examen SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Resultado Propsito: Verificar que se emite correctamente un informe de los candidatos a examen en el perodo vigente. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se debe emitir por Testeado con un usuario con de perodos de examen (Men-> Gestin pantalla un informe OK privilegios para realizar Escolar->Exmenes->Procesar Perodos de presentando todos los dicha tarea. Examen). candidatos a examen para el perodo vigente. Debe existir al menos un candidato a examen en el Seleccionar la opcin Emitir lista de Candidatos perodo. a Examen. Propsito: Verificar que se emite correctamente un informe de los candidatos a examen en el perodo vigente a travs de la impresora. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se debe emitir por Testeado con un usuario con de perodos de examen (Men-> Gestin impresora un informe OK privilegios para realizar Escolar->Exmenes->Procesar Perodos de presentando todos los dicha tarea. Examen). candidatos a examen para el perodo vigente. Debe existir al menos un candidato a examen en el Seleccionar la opcin Emitir lista de Candidatos perodo. a Examen. En la pantalla con el informe, presionar la opcin Imprimir

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO de Informe de Resultados de Exmenes. SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se emite correctamente un informe de resultados de examen en el perodo vigente. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se debe emitir por con un usuario con de perodos de examen (Men-> Ficherospantalla un informe privilegios para realizar >Gestin Escolar->Exmenes->Procesar presentando todos los dicha tarea. Perodos de Examen). resultados de examen para el perodo vigente. Debe existir al menos un alumno con un resultado de Seleccionar la opcin Emitir resultados de examen registrado en el exmenes registrados. perodo.

Resultado Testeado OK

Propsito: Verificar que se emite correctamente un informe de resultados de examen en el perodo vigente a travs de la impresora. Estar logueado al sistema Ingresar al sistema e ir al formulario de Proceso Se debe emitir por Testeado con un usuario con de perodos de examen (Men-> Gestin impresora un informe OK privilegios para realizar Escolar->Exmenes->Procesar Perodos de presentando todos los dicha tarea. Examen). resultados de examen para el perodo vigente. Debe existir al menos un alumno con un resultado de Seleccionar la opcin Emitir resultados de examen registrado en el exmenes registrados. perodo. En la pantalla con el informe, presionar la opcin Imprimir.

254

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO de Informe de Inscripciones por Grupo. SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se emite correctamente un informe de las inscripciones de un Grupo. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por con un usuario con de Inscripciones (Men-> Gestin Escolarpantalla un informe privilegios para realizar >Inscripciones). presentando todas las dicha tarea. inscripciones para el grupo seleccionado. Debe existir al menos un Seleccionar el grupo que se desea listar. alumno inscripto en algn grupo del colegio. Seleccionar la opcin Listar Inscripciones.

Resultado Testeado OK

Propsito: Verificar que se emite correctamente un informe de las inscripciones de un Grupo a travs de la impresora. Estar logueado al sistema Ingresar al sistema e ir al formulario de Ingreso Se debe emitir por Testeado con un usuario con de Inscripciones (Men-> Gestin Escolarimpresora un informe OK privilegios para realizar >Inscripciones). presentando todas las dicha tarea. inscripciones para el grupo seleccionado. Debe existir al menos un Seleccionar el grupo que se desea listar. alumno inscripto en algn grupo del colegio. Seleccionar la opcin Listar Inscripciones. En la pantalla con el informe, presionar la opcin Imprimir.

255

Ttulo Sistema Mdulo Iteracin Responsable Especificacin

TESTEO del Generador dinmico de Informes. SIINCO Informes 3 Mklivzov, Bcoppes

Preparacin para el Caso Procedimiento de Ejecucin Resultado Esperado Propsito: Verificar que se puede generar correctamente un informe a travs del generador. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe registrar con un usuario con generacin de informes (Men-> Informescorrectamente el nuevo privilegios para realizar >Agregar idear Informes). informe. dicha tarea. Seleccionar la opcin Nuevo Registrar el nombre, las condiciones y los parmetros del informe. Apretar el botn Guardar Propsito: Verificar que se puede modificar correctamente un informe a travs del generador. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe registrar con un usuario con generacin de informes (Men-> Informescorrectamente las privilegios para realizar >Agregar idear Informes). modificaciones sobre el dicha tarea. informe. Debe existir al menos un Seleccionar uno de los informes existentes en el informe generado a travs sistema. del generador. Realizar las modificaciones necesarias sobre el informe seleccionado Apretar el botn Guardar Propsito: Verificar que se puede eliminar correctamente un informe a travs del generador. Estar logueado al sistema Ingresar al sistema e ir al formulario de Se debe eliminar con un usuario con generacin de informes (Men-> Informescorrectamente el informe. privilegios para realizar >Agregar idear Informes). dicha tarea. Debe existir al menos un Seleccionar uno de los informes existentes en el informe generado a travs sistema. del generador. Apretar el botn Eliminar y confirmar la transaccin.

Resultado Testeado OK

Testeado OK

Testeado OK

[Link]. Conclusiones del Testeo En esta iteracin el resultado del testeo dio como resultado que no se detectaron defectos en ninguno de los 15 casos ejecutados. Este dato no solo verifica como es su propsito que el producto final tenga una muy buena calidad, sino que adems deja demostrado un claro perfeccionamiento de nuestro equipo en el proceso de desarrollo del sistema. Detalle del testeo: Cantidad de casos ejecutados: 15 Cantidad de errores detectados: 0 Cantidad de defectos corregidos: 0 Cantidad de defectos pendientes: 0 256

2.7.7 Resumen de la Iteracin III. Si bien, como se puede apreciar en el desarrollo de esta iteracin, la misma no insume un gran riesgo en cuanto su complejidad; no hay que dejar pasar la propuesta que le realizada por nuestro equipo y aceptada por nuestro cliente de realizar el generador de informes dinmicos. Por consiguiente y una vez comprometidos a proveer tal funcionalidad, una vez ms se debi ajustar la planificacin y utilizar la sobreasignacin como herramienta. De todas maneras, y a pesar de lo pensado previamente, el ajuste y la sobrecarga de trabajo no tuvieron una magnitud considerable como se puede apreciar en el informe de avance del anexo VIII. En sntesis; nuevamente el esfuerzo y el compromiso del equipo de trabajo, deriv en la obtencin de un producto final que satisfizo las expectativas propias y del cliente tal cual fue la meta trazada.

257

2.8 DESPLIEGUE
Diagrama de despliegue
deployment Diagrama de Despliegue

device Serv idor

SIINCO Sistema Administrador Terminal

SIINCO Sistema Base de Datos Usuari o

Requisitos Pentium IV, 512 MB RAM. (para el servidor de base de datos se recomienda 1 GB de memoria RAM). Sistema Operativo Windows XP / Windows 2003 / Vista / Seven. Microsoft SQL Server 2005 / 2008 Express. Microsoft SQL Server Management Studio Express 2005 / 2008. Windows Installer 3.1 .NET Framework 3.5 RAP (Respaldos Automticos Programables), entregado en el disco de instalacin

Instalacin del producto. 1. Instalador SIINCO Ejecutar programa con "[Link]" que este instalara el programa, .NET Framework 3.5, y el motor de base de datos SQL 2005 Express. 2. Instalador SQL Server Management Studio Express Instalar "SQL Server Management Studio Express" a partir de su instalador "SQLServer2005_SSMSEE.msi" 3. Base de Datos Generar la base de datos desde el archivo el backup vacio disponible. Pasos a seguir: - Abrir SQL Server Management Studio Express - Conectar al servidor de base de datos usando Autenticacin de SQL Server con un usuario valido o mediante autentificacin de Windows si el mismo lo permite.

258

En el Explorador de objetos, pulsar con el botn secundario sobre el elemento Bases de datos y del men desplegable, selecciona Restaurar base de datos. Escribir el nombre correspondiente en la caja de textos que hay junto a A una base de datos, nombre de base de datos SIINCO. Indicar dnde est el respaldo. Para ello marcar la opcin Desde dispositivo y pulsar en el botn para seleccionar el fichero de copia de seguridad de la base mediante el cuadro de dilogo. Agregar, buscar el archivo " [Link]" el mismo se encuentra en el disco de instalacin en SetupSIINCO\BaseDeDatos\DataVacia. El respaldo contiene una nica base de datos, marcar el check de la grilla Restaurar Ir a Opciones, y en la lista central se puede indicar dnde debe restaurarse la base de datos (por defecto es el directorio Data de SQL Server). Aceptar", si todo es correcto se indicara el resultado.

4. Iniciar el programa 4.1. Al abrir el programa por primera vez este estar configurado con la siguiente conexin: - Servidor: .\SQLEXPRESS - Base de Datos: SIINCO - Modo conexin: TrustedConnection Si se cumplen estas condiciones el programa ya estar habilitado para la conexin. 4.2. Usuario del sistema, por defecto la aplicacin tiene cargado los datos de un usuario con todos los privilegios, el usuario es: - USUARIO, no tiene contrasea.

259

2.9 POLTICA DE SEGURIDAD Y RESPALDO


Para el respaldo de los datos del sistema se utilizar la herramienta RAP (respaldos automticos programables). RAP es una herramienta free que permite realizar respaldos diarios automticos de una base de datos. Se debe configurar: Base de datos a respaldar. Destino de respaldos Destino alternativo de respaldos Cantidad de respaldos a preservar Servidor Usuario Contrasea Hecha esta configuracin, es posible crear un servicio de Windows para que los respaldos se realicen automticamente, para eso es necesario ejecutar el archivo [Link]. Esta herramienta permite realizar el respaldo hasta en dos equipos dentro de la red local. De todas maneras, se sugiere que los respaldos realizados deben ser mantenidos en unidades de CD-ROM o DVD o cualquier unidad extrable que permita trasladarlos fsicamente del lugar donde se encuentre la base de datos y de esa manera lograr una mayor seguridad.

Esta Herramienta es proporcionada en el disco de instalacin de SIINCO en la carpeta Respaldos\RAP.

260

2.10 PLAN DE CONTINGENCIA


Para el desarrollo del plan de contingencia se analizan los errores potenciales que pudieran ocasionar que el sistema deje de funcionar. A continuacin se detallan estas causantes y las medidas a tomar ante cada una de ellas: A nivel de hardware se ha propuesto la compra de una UPS (unidad de poder interrumpida), para conectar el servidor que albergar la base de datos; de esta manera se evitarn prdidas de datos por fallas en la red elctrica. Aplicar correctamente la estrategia de respaldos establecida, esto evitar en caso de ruptura o prdida de la base de datos la perdida de informacin de ms de un da de trabajo. Instalar el motor de base de datos Microsoft SQL Server 2005 Express adems del servidor de base de datos en otro PC que cumpla con las prestaciones mnimas, en el caso de que servidor principal tenga una falla, con el ltimo respaldo existente se restaurar la base de datos en este Servidor de backup, en los PC clientes simplemente se cambiar la configuracin de acceso a otro servidor.

261

2.10 PLAN DE CAPACITACION


Para eficiente uso y funcionamiento del sistema se estableci un plan de capacitacin al cliente que consiste en reuniones de capacitacin peridicas distanciadas aproximadamente en una semana entre cada una de ellas. Esto facilitar por un lado al familiarizacin del cliente con el sistema as como la recepcin de feedback por parte de cliente previo al comienzo del uso real del sistema. Las capacitaciones se dividirn segn las funcionalidades del sistema SIINCO previendo la siguiente planificacin: Primera semana - Ficheros principales del sistema. Segunda semana - Gestin de grupos e inscripciones. Tercera semana - Gestin de registro de calificaciones e inasistencias de grupos en curso. Cuarta semana - Cierre de grupos y registro de exmenes. Quinta semana - Proceso de exmenes y cambios de estado en ao lectivo.

262

2.11 CONCLUSIONES FINALES


12 de febrero del 2010, estamos llegando al final del proyecto. Esto podra parecer simple o sencillo para muchas personas, pero para nosotros signific un gran proceso donde combinamos maduracin y aprendizaje. Cuando comenzamos a transitar este camino, justo es decir que si bien cada uno de los integrantes trabaja da a da en el rea de informtica, nuestro conocimiento sobre metodologas, gestin de proyecto, estrategias y herramientas que empleamos era muy reducido y limitado. Hoy pasaron ms de 5 meses desde ese comienzo y haciendo un repaso de todo lo que aprendimos y llevamos a la prctica podemos afirmar con toda certeza que nos hemos enriquecido formidablemente. Se ha logrado un gran trabajo de equipo, que a pesar de tener que luchar contra la distancia fsica pudo realizar una comunin e interaccin excelente. Fuimos capaces de explotar los potenciales de los integrantes a travs de la distribucin de roles relacionados al perfil de cada uno. Afrontamos problemas cotidianos a nivel personal y de proyecto con un dinamismo y eficiencia que nos permiti llegar a un producto a nuestro parecer correcto ms all de cualquier contratiempo. Planificamos, replanificamos y siempre protegimos el buen fin del proyecto y compromiso de fechas fijado. Pasando estrictamente a lo tcnico; hoy podemos afirmar que somos capaces de realizar un proceso de desarrollo repetible, aplicando estrategias y tcnicas de desarrollo, anlisis, diseo y testeo. Somos capaces de aplicar patrones de diseo, el producto lo demuestra. Comprendimos y aplicamos los patrones singleton, factory, estrategy y observer de manera consistente y buscando siempre la simplificacin y mejora del proceso de desarrollo a travs de buenas prcticas ya existentes. Evaluamos herramientas, escogimos entre ellas, las estudiamos, las entendimos, las utilizamos y cuando fue necesario, las cambiamos en tiempo y forma al ver que sus limitaciones o complejidad podan afectar nuestra meta. Pero sobre todo, tenemos que decir, que ambos integrantes adquirimos una notoria experiencia como profesionales. En resumen, estamos dando por finalizado el proyecto. Proyecto que afront dificultades, demand esfuerzo y sacrificio pero el resultado fue sumamente positivo para nosotros y por sobre todas las cosas, lo fue para nuestro cliente que se encuentra satisfecho con esta primera etapa del producto adquirido y que se corresponde a nuestro proyecto final de carrera. Nuestra prxima meta como profesionales, se ocupar de terminar de brindarle al colegio Nuestra Seora del Huerto una herramienta til y eficaz que le permita abarcar todas sus necesidades y otorgarle la calidad, el dinamismo y modernismo que una institucin como esta se merece.

2.11.1 Lecciones Aprendidas Cabe resaltar adems en el marco de las conclusiones finales que en el transcurso del proyecto tambin obtuvimos algunas lecciones aprendidas que conviene mencionar para que sean tenidas en cuenta en el futuro. 1 No subestimar la complejidad del negocio del cliente. Nuestro equipo, si bien saba que la gestin acadmica de un colegio implicaba un importante manejo de reglas y validaciones, subestim la complejidad de las mismas en un principio lo que result en un sobreesfuerzo considerable en el desarrollo del proyecto para que el mismo llegara a buen fin. 2 Tomar los recaudos necesarios cuando el equipo se encuentra separado geogrficamente. Si bien la comunicacin ha sido fluida utilizando todas las herramientas disponibles para tal fin (MSN, skype, telefona, correo electrnico, viajes), s debemos mencionar que la eficacia de encontrarse e intercambiar opiniones personalmente no tiene comparacin. Hoy somos capaces de realizar esta afirmacin ya que en el ltimo perodo del proyecto los viajes fueron intensificados y el tiempo de trabajo juntos fsicamente se aument gracias a las licencias obtenidas por cada uno. De esta manera pudimos comprobar que el trabajo en conjunto fsicamente no tiene comparacin con el trabajo a distancia por ms esfuerzo que se ponga en este. 3 Escoger adecuadamente la cantidad de integrantes del proyecto.

263

Dada la cantidad de tareas y roles que se deben adoptar en el desarrollo de un proyecto y tambin en nuestro caso; con el agregado de la distancia fsica. Cada uno de los integrantes debi optar por tipos de roles afines a su perfil (funcionales y tcnicos) y el intercambio de los mismos para nivelar aprendizaje en la etapa crtica del proyecto fue casi mnimo. Por esta razn notamos que tal vez lo ideal hubiera sido contar con un tercer integrante encargado de regular esta situacin pudiendo delegar en l distintas actividades que nos permitieran un mayor tiempo para la nivelacin de aprendizaje. 4 Tomarse un tiempo prudencial para la preparacin del proyecto. Nuestro equipo, por razones personales se lanz a hacer el proyecto apenas un mes despus de haber tomado la decisin de realizarlo por lo que casi todas las tareas de aprendizaje, nivelacin de conocimientos y el estudio de las reglas de negocio del cliente se realizaron literalmente sobre la marcha. Basndonos en esta experiencia y hablando con otros compaeros que realizaron una preparacin adecuada previa a la solicitud de realizacin del proyecto, destacamos que sera una buena prctica recomendable a cualquier equipo con la cual se podra evitar dificultades por falta de experiencia Creemos que de haber realizado esta preparacin, hubiramos sido capaces de realizar una mejor estimacin y control del alcance del proyecto en una temprana etapa y de esta manera poder evitar la omisin de requerimientos, acotar funcionalidades, replanificar, etc.

264

3. BIBLIOGRAFIA
LARMAN, Craig. 2003. UML y Patrones Una introduccin al anlisis y diseo orientado a objetos y al proceso unificado. 2da. ed. Ciudad de Mxico: Pearson Prentice Hall. PRESSMAN, Roger S. 1998. Ingeniera del Software Un Enfoque Practico. 4ta. ed. Madrid: [Link] Hill. COOPER, Alan. 2007. About Face 3 The Essentials of Interaction Design. 3ra ed. Indianapolis: Wiley Publishing Inc.

265

4. ANEXOS 4.1. ANEXO I. SELECCIN DE HERRAMIENTAS


Los puntajes van desde 1 a 6, siendo 6 el valor ms alto a favor del tem correspondiente. La decisin de estos est basada en el conocimiento por parte del grupo, adaptabilidad a los requerimientos establecidos en el proyecto. Seleccin de Sistema Operativo
Seguridad Funciones de Red Facilidad de Operacin Costo de licencias Mantenimiento Requerimientos de Hardware Conocimiento general y capacitacin Performance general Totales Windows 98 1 2 4 1(*) 3 6 4 21 Windows XP 3 4 5 4 4 5 4 29 Windows 2003 Server 5 5 5 2 5 4 5 Linux 6 5 2 6 3 3 1 26

31

Seleccin Lenguaje de desarrollo


Conocimiento Disponibilidad de informacin Velocidad de las aplicaciones Orientacin a Objetos Requerimientos de Hardware Potencia del lenguaje Disponibilidad de acceso a datos Mantenimiento del cdigo Performance de acceso a datos Totales Visual Basic 6 6 4 5 1 5 1 4 2 2 30 Visual .NET 2008 2 5 3 5 3 3 4 5 6 36 Visual .NET C# 2008 3 6 3 5 3 4 4 5 5 Java 2 6 3 6 3 6 4 3 4 37

38

Seleccin Base de Datos


Access Potencia del motor Performance Requerimientos Hardware Facilidad de Integracin/uso Costo licencias Compatibilidad con SO Totales 2 3 6 5 4 6 26 Interbase 4 4 5 3 6 3 25 SQL Server 2008 Express 6 4 2 5 6 6 Postgre SQL 6 5 4 3 6 1 25

29

266

4.2. ANEXO II. CLCULO DE PUNTOS DE FUNCIN


4.2.1. Hoja de trabajo utilizada para el clculo del punto de funcin

Puntos de funcin sin ajustar (TUFP):


Descripcin Simple Entradas ___ x 3 Salidas ___ x 4 Consultas ___ x 3 Archivos ___ x 7 Interfaces de programa ___ x 5 Total de puntos de funcin sin ajustar (TUFP) Complejidad Media ___ x 4 ___ x 5 ___ x 4 ___ x 10 ___ x 7 Alta ___ x 6 ___ x 7 ___ x 6 ___ x 15 ___ x 10 Total ___ ___ ___ ___ ___ ___

Complejidad de procesado (PC)


Requiere el sistema copias de seguridad y de recuperacin fiables? Se requiere comunicacin de datos? Existen funciones de procesamiento distribuido? Es crtico el rendimiento? Se ejecutar el sistema en un entorno operativo existente y fuertemente utilizado? Requiere el sistema entrada de datos interactiva? Requiere la entrada de datos que las transacciones de entrada se lleven a cabo sobre mltiples pantallas u operaciones? Se actualizan los archivos maestros de forma interactiva? Son complejas las entradas, las salidas, los archivos o las peticiones? Es complejo el procesamiento interno? Se ha diseado el cdigo para ser reutilizable? Estn incluidas en el diseo la conversin y la instalacin? Se ha diseado el sistema para soportar mltiples instalaciones en diferentes organizaciones? Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizado por el usuario? Complejidad de procesado (PC):

Valor 0 1 2 3 4 5

Significado Sin Influencia Incidental Moderado Medio Significativo Esencial

Complejidad de procesado ajustada (PCA) = 0,65 + (0,01 * PC) Total de puntos de funcin ajustados (TAFP): PCA * TUPF

267

4.2.2. Calculo de funciones Funciones:


Entradas Mdulo 1 Usuarios / Tipos de Usuario Nro. Nombre 1.1 Agregar tipo de usuarios del sistema 1.2 Obtener un tipo usuario del sistema 1.3 Modificar un tipo usuario del sistema 1.4 Eliminar un tipo usuario del sistema 1.5 Agregar un usuario del sistema 1.6 Obtener un usuario del sistema 1.7 Modificar un usuario del sistema 1.8 Eliminar un usuario del sistema 1.9 Login y establecer acceso de usuario 2 Alumnos 2.1 Agregar un alumno 2.2 Obtener alumno 2.3 Modificar un alumno 2.4 Eliminar un alumno 2.5 Emitir listado de alumnos 3 Planes 3.1 Agregar plan 3.2 Obtener plan 3.3 Modificar plan 3.4 Eliminar plan 3.5 Emitir listado de planes 4 Profesores 4.1 Agregar un profesor 4.2 Obtener profesor 4.3 Modificar un profesor 4.4 Eliminar un profesor 4.5 Emitir listado de profesores 4.6 Asociacin profesor / materia 5 Cursos 5.1 Agregar curso (Ao de clase, primero, segundo) 5.2 Obtener curso 5.3 Modificar curso 5.4 Eliminar curso 5.5 Emitir listado de cursos 6 Materias 6.1 Agregar una materia 6.2 Obtener una materia 6.3 Modificar una materia 6.4 Eliminar materia 6.5 Asociar materia a un curso. 6.6 Emitir Listado de materias 7 Grupos 7.1 Agregar grupo 7.2 Obtener grupo 7.3 Modificar grupo 7.4 Eliminar grupos 7.5 Emitir listado de grupos 8 Inscripciones 8.1 Registro de Inscripciones 8.2 Obtener inscripciones 8.3 Eliminar inscripciones 8.4 Listar Inscripciones 8.5 Validar Inscripciones 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 S 1 1 M C S Salidas M C Consultas S M C 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Tot.

268

9 Calificaciones finales cursos

9.1 Agregar clasificaciones finales por grupo 9.2 Modificar clasificaciones finales de grupo 9.3 Obtener clasificaciones finales de grupo 9.4 Agregar inasistencias finales 9.5 Modificar inasistencias finales 9.6 Obtener inasistencias finales de grupo 9.7 Listados calificaciones por grupo/materia 9.8 Listados inasistencias por grupo 9.9 Cerrar Grupos

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 24 9 7 1 15 8 3

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 67

10 Exmenes

10.1 Agregar resultado de examen 10.2 Modificar resultado de examen 10.3 Obtener resultado de examen 10.4 Listar candidatos perodo de examen 10.5 Procesar perodos de exmenes

11 Estadsticas , informes

11.1 Emitir escolaridad de Alumno (F69) 11.2 Informes genricos entidades bsicas 11.3 Exportar entidades a planillas electrnicas 11.4 Generador de informes 11.5 Armar informes con generador

12 Bsqueda Genrica 13 Auditorias

12.1 Bsqueda genrica para usar en todas las entidades 13.1 Sesiones de usuario TOTALES

Archivos e interfaces:
Estructuras Lgicas Internas S 1 Usuarios / Tipos de Usuario 2 Alumnos 3 Planes 4 Profesores 5 Cursos 6 Materias 7 Grupos 8 Inscripciones 9 Calificaciones finales cursos 10 Exmenes 11 Estadsticas , informes 12 Bsqueda Genrica 13 Auditorias 13 Log base de datos Totales 1 8 3 3 1 1 1 1 1 1 1 1 1 1 1 1 1 M C Interfaces Externas S M C

269

Resumen de totales:
Resumen Nmero de Entradas Nmero de Salidas Nmero de Consultas Nmero de Archivos Nmero de Interfaces TOTAL de PFNA Nro. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Valor Simple Medio Complejo Total Factor Cant. Factor Cant. Factor 24 3 9 4 6 6 0 4 1 5 0 7 15 3 5 11 3 6 8 7 3 10 3 15 0 5 0 7 0 10

Cant.

144 5 118 131 0 398

Pregunta Valor Requiere el sistema copias de seguridad y de recuperacin fiables? Se requiere comunicacin de datos? Existen funciones de procesamiento distribuido? Es crtico el rendimiento? Se ejecutar el sistema en un entorno operativo existente y fuertemente utilizado? Requiere el sistema entrada de datos interactiva? Requiere la entrada de datos que las transacciones de entrada se lleven a cabo sobre mltiples pantallas u operaciones? Se actualizan los archivos maestros de forma interactiva? Son complejos las entradas, las salidas, los archivos o las peticiones? Es complejo el procesamiento interno? Se ha diseado el cdigo para ser reutilizable? Estn incluidas en el diseo la conversin y la instalacin? Se ha diseado el sistema para soportar mltiples instalaciones en diferentes organizaciones? Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizado por el usuario? Total Significado 0 Sin Influencia 1 Incidental 2 Moderado 3 Medio 4 Significativo 5 Esencial

3 3 0 3 0 4 3 4 3 4 4 2 2 3 37

Clculos:
GI Grado de Incidencia FCT Factor de Complejidad tecnolgica PFNA Puntos de Funcin No Ajustados PF Puntos de Funcin Ajustados Esfuerzo Por Punto de Funcin (Minutos) Costo de la hora de desarrollo (USS) Total de Horas del proyecto Costo del proyecto (USS) Reglas del Pulgar [Capers Jones 96] Nmero de personas Necesarias: PF/150 Esfuerzo: Tiempo x Nmero de Personas Tiempo de desarrollo en meses: PF0.4 Nmero de personas Necesarias: PF/150 Esfuerzo: Tiempo x Nmero de Personas 11.06 3 3.70 37 1.02 398 407 70 20 475 9500

5.53

270

4.3. ANEXO III. CONVENCIONES DE NOMENCLATURA


4.3.1. Convenciones del uso de Maysculas y minsculas Muchas convenciones de nomenclatura hacen uso de las maysculas y minsculas en sus identificadores. Entre ellas se encuentran: 1. Estilo Pascal (PascalCase) La primera letra del identificador y la primera letra de las siguientes palabras concatenadas estn en maysculas. El estilo de maysculas y minsculas Pascal se puede utilizar en identificadores de tres o ms caracteres, por ejemplo: UnEjemplo 2. Estilo camelCase La primera letra del identificador est en minscula y la primera letra de las siguientes palabras concatenadas en mayscula, por ejemplo: unEjemplo 3. Estilo Maysculas (ALL_CAPS) Todas las letras del identificador se encuentran en maysculas ejemplo IO 4. Estilo minsculas (small_caps) Todas las letras del identificador se encuentran en minsculas ejemplo ejemplo. Cada lenguaje de programacin hace uso de estos estilos segn el identificador que use y de acuerdo a su convencin. En la siguiente tabla se hace referencia a las convenciones usadas por cada lenguaje de programacin.
Tipo Clase Constante Mtodo Namespace / Package Propiedades Parmetro Variable local Interface PHP PascalCase ALL_CAPS camelCase small_caps (5.3x) camelCase camelCase camelCase PascalCase C# PascalCase PascalCase PascalCase PascalCase PascalCase camelCase camelCase PascalCase Java PascalCase ALL_CAPS camelCase small_caps camelCase camelCase camelCase PascalCase

4.3.2. Convencin de Nombres La convencin de nombres es un conjunto de normas y reglas para la escritura de nombres, cdigo fuente, identificadores y comentarios dentro de la programacin, que facilitan y hacen ms comprensible su lectura. 1. Clases Las clases representan cosas y no acciones, por tal motivo evitar verbos como nombre de clase. El nombre de la clase debe estar en singular, salvo que la clase represente multiplicidad de cosas.

271

Las Nombres de las clases deberan ser Sustantivos: ejemplo carro, hombre, tienda, pais, empleado, proveedor Cada clase debe tener un bloque de documentacin segn la norma del lenguaje. En el caso de C# se utiliza la siguiente caracterstica de documentacin y comentarios

1. /// 2. /// Bloque de Documentacin 3. /// 4. public class SampleClass 5. { 6. //contenido de clase 7. } 2. Mtodos Los nombres de los mtodos debern ser un verbo, dado que describe una accin ; ejemplo remover(), enviar(), cargar() Los Mtodos dentro de las clases siempre debe declarar su visibilidad tales como privadas, protegidas, pblicas, etc.

3. Variables Evitar variables que sean de un solo carcter, Los nombres comunes para las variables temporales son i, j, k, m, y n para los nmeros enteros; c, d, y e para los caracteres. Nombres de variables slo pueden contener caracteres alfanumricos Nombres de variables deben ser camelCase

4. Constantes Segn el tipo de lenguaje tenemos algunos ejemplos


PHP MIN_WIDTH LOCAL_CONSTANT COLUMNS C# LocalConstant MinWidth Colums Java MIN_WIDTH LOCAL_CONSTANT COLUMNS

5. Comentarios Segn el tipo de lenguaje que usemos podemos guiarnos de sus reglas y convenciones establecidas: php phpDocumentator c# MDSN guia (Gua Utilizada como referencia para la definicin de nomenclatura en nuestro proyecto.) java javadoc

6. Convencin de nombres de Base de Datos Ejemplo de nombres procedimientos almacenados. 272

CustomerGetSingleForID Devuelve un cliente por su ID CustomerGetListAllByName Devuelve una lista de clientes ordenados por nombre. Usualmente para usar Listas para las populares listas drop-downs, pero no para actualizar. Es por esta razn, que las listas frecuentemente tienen pocos campos. OrderGetListForCustomerIDByDate Devuelve una lista de rdenes para los clientes (ordenado por fecha). 7. Insert / Update / Delete Procedures Se detallan los tpicos procedimientos que trabajan en una sola fila en un dataset. CustomerUpdateSingle Actualiza un solo cliente. CustomerDeleteSingle Borra un solo cliente. CustomerInsertSingle Inserta un solo cliente. Algunas personas ponen un guin bajo despus del nombre del objeto en los procedimientos almacenados como por ejemplo Customer_UpdateSingle. Todos los procedimientos relatados a una entidad lgica muestran en la misma ubicacin en los listados y rboles en varios programas administradores de SQL Server y add-ins. Otros procedimientos almacenados no son tan simples de nombrar. ProcessPendingOrders CleanTempTables MungeMyDatabase 8. Tablas Las tablas debern nombradas basndose en lo que ellas contienen. Los nombres de tabla y de columnas utilizarn Pascal Case sin guiones bajos.

273

4.4. ANEXO IV. PRUEBA DEL SOFTWARE (Testeo)


Existen diferentes tcnicas de testeo definidas y las mismas pueden colaborar entre s para optimizar la deteccin de defectos. Caja Negra Caja blanca Unitario Integracin Modular Funcional Regresin Monkey Test Etc. De todas maneras, no es viable utilizarlas todas en un solo proyecto sino que se deben seleccionar las ms adecuadas para asegurar la calidad sin generar sobrecargo innecesario de trabajo ya que: Utilizando una nica tcnica, no se sobrepasa el 65% de deteccin de defectos(CapersJones). Combinando todas las formas de testeo no se sobrepasa el 60% de deteccin de defectos. Combinando dos prcticas cualquiera de testeo, se aumenta el porcentaje de deteccin al doble, pudindose llegar hasta un 95% de xito (empresas lderes).

Adems se debe tener en cuenta que: Prcticas distintas encuentran defectos de distinto tipo (Meyers). Personas distintas tienden a encontrar defectos distintos (NASA).

Teniendo en cuenta estas aclaraciones podemos definir que tcnicas utilizar la estrategia de testeo que seguir nuestro equipo para la deteccin de defectos. En una primera instancia se seleccionan las siguientes tcnicas pero como se mencion antes se dejara abierta la posibilidad de incluir otras si la situacin lo amerita. Testeo Funcional Integracin Modular Monkey Test.

Se da por sobresabido que cada miembro de nuestro equipo realizar testeo unitario sobre cada componente desarrollado. Prcticas a seguir para realizar el testeo Probar un sistema implica simular ese sistema, asegurarnos de que tal sistema hace lo que debe y no hace lo que no debe. Implica un anlisis con el propsito de encontrar problemas y errores, medir la funcionalidad y la calidad, capacidades, etc. Una cuestin muy importante a considerar es que no se puede probar todo. No existe el producto perfecto, siempre tenemos que hablar en trminos relativos o porcentuales, como por ejemplo, tasas de error. El proceso de pruebas es un proceso creativo y difcil; es importante planificar qu se va a probar, definir qu escenarios se va a probar. Finalmente, es importante dedicar tiempo y recursos suficientes a dicha tarea. Diez buenas prcticas a seguir: 1. Haz de la autoevaluacin del trabajo de cada uno una responsabilidad de equipo. Insiste en que Test y Evaluacin (T&E) forme parte del trabajo diario de cada uno (utiliza smoke tests para apoyarte en ello). Es necesario garantizar la produccin de trabajo de calidad todo el tiempo.

274

2. Establece cuanto antes un plan integral de pruebas y evaluacin. Establece pautas, objetivos y entregables de cada tipo de test. Puede establecerse en sesiones RAD (Rapid Application Development) al comienzo o en sesiones de tormenta de ideas. 3. Realiza un parte preventivo de pruebas de todo el trabajo especificado. No dejes nada sin cubrir; haz escenarios de todo; esto tambin te ayudar a entender mejor los requisitos. Inspecciona peridicamente los test y su adecuacin al comento de desarrollo actual. Desarrollo y pruebas van de la mano: crea los casos de prueba antes de desarrollar. 4. Utiliza las pruebas como indicadores de progreso. Que las pruebas te sirvan como indicador seguro de que algo est hecho y funciona. 5. Haz un inventario de los objetivos de las pruebas y disea para testabilidad. Disea una lista de qu debe ser probado antes de disear o implementar otra cosa. 6. Prueba desde el principio y a menudo. As retroalimentas el desarrollo y detectas problemas en el momento en que ocurren. 7. Disea y desarrolla test como si fueran entregables. Con la misma disciplina y mtodo. Desarrolla test en paralelo con el cdigo, actualiza los test cuando el producto cambia. Si escribes los test demasiado pronto, luego habr que redefinirlos, as que tampoco es bueno adelantarse demasiado. La ingeniera de desarrollo de test es igual que la ingeniera de cualquier producto software. 8. Provee herramientas y soporte adecuados para el testeo. 9. Mide costes, cobertura, resultados y efectividad de los test. As entenders mejor el proceso de testeo y podrs controlarlo y gestionarlo. 10. Entrena y gestiona al equipo. As se tomarn el testeo como algo serio y conocern qu se espera obtener de dicha tarea. El gestor indica guas, la direccin a seguir, qu pasos dar, etc.

275

4.5. ANEXO V. POO


Aspectos Principales El paradigma de la programacin Orientada a Objetos cuenta con tres factores preponderantes: 1. Tipos de datos abstractos (TDA). 2. Herencia. 3. Identidad de objetos. 1 - Los TDAs describen un conjunto de objetos con igual representacin. Existe un nmero de operaciones asociadas con cada tipo. Los TDAs extienden la nocin de tipo de dato mediante el ocultamiento de la implementacin de las operaciones definidas por el usuario final (mensajes) asociados con los tipos de datos. Los lenguajes que soportan la abstraccin de datos proporcionan construcciones para poder implementar los TDAs. Adems, todas las manipulaciones de las instancias de tipos de datos se realizan exclusivamente mediante las operaciones asociadas con dicho tipo de datos. 2 La herencia permite a los diseadores construir nuevos mdulos de software (tales como clases), reutilizando otros mdulos de software ya construidos (jerarqua de clases). La herencia de comportamiento permite compartir cdigo, por tanto posibilita la reusabilidad, entre mdulos de software. La herencia de representacin permite compartir estructura entre objetos de datos. La combinacin de estos dos tipos de herencia proporciona una estrategia poderosa para el modelado y desarrollo de software. 3 La identidad de objetos es la propiedad que un objeto que lo distingue de cada uno de los dems objetos. Con la identidad de objetos, stos pueden contener o referirse a otros objetos. La identidad organiza los objetos de espacio de objetos manipulados por un programa orientado a objetos. La abstraccin de datos y la herencia se utilizan para modelar y organizar los tipos o clases de objetos. Ventajas e Inconvenientes Las principales ventajas de programar mediante orientacin a objetos son: Un lenguaje de programacin que soporta el paradigma OO proporciona al desarrollador de software una forma natural de modelar el mundo real, utilizando para ello clases de objetos. Los objetos bien diseados en los sistemas OO constituyen la base para otros sistemas que se ensamblan, en gran parte, a partir de mdulos reutilizables, lo que redunda en una mayor productividad. Esta es, quizs, la ventaja ms conocida de la tecnologa de objetos. La reutilizacin de clases existentes, que han sido probadas en proyectos anteriores, conduce a la elaboracin de sistemas de mayor calidad, que satisfacen mejor los requisitos de negocios y contienen menos errores. El trabajo de programacin es ms fcil en base al uso de bibliotecas de clases predefinidas. La POO, y la herencia en particular, hacen que sea posible utilizar y definir de forma clara mdulos funcionalmente incompletos y, luego, permiten su extensin sin trastornar la operacin de otros mdulos o de sus clientes. Esto hace que los sistemas sean ms flexibles, ms fcilmente extensibles y de mantenimiento menos costoso. La convencin de paso de mensajes para la comunicacin entre objetos lleva a que las descripciones de la interfaz entre mdulos y sistemas externos se haga ms fcil. Tambin facilita la descripcin y la construccin de Interfaces Grficas de Usuario. El ocultamiento de informacin contribuye a construir sistemas seguros. 276

Los posibles inconvenientes son: Un programa orientado a objetos se ejecuta ms despacio sobre todo debido a la creacin de objetos, la ligadura dinmica y al polimorfismo. El desarrollador de software tiene que conocer las bibliotecas de clases para sacar rendimiento al lenguaje.

277

4.6. ANEXO VI. MTODOS


Modelo lineal secuencial Es llamado tambin ciclo de vida bsico o modelo en cascada. El modelo lineal secuencial sugiere un enfoque sistemtico secuencial del desarrollo de software que comienza en un nivel de sistemas y progresa con anlisis, diseo, codificacin, pruebas y mantenimiento. El modelo lineal secuencial comprende las siguientes actividades: Ingeniera y modelado de sistemas/informacin Anlisis de los requerimientos del software Diseo Generacin de cdigo Pruebas Mantenimiento

Modelo de construccin de prototipos En este modelo se comienza con la recoleccin de requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales para el software, identifican los requisitos conocidos y las reas en donde es obligatoria ms definicin. De este paso se genera un diseo preliminar o diseo rpido y se genera un prototipo el cual es enviado al cliente para que lo revise y de esta manera, al repetirse este proceso, progresivamente se definan con ms especificacin los requerimientos del sistema. De tal modo que el desarrollador de un primer prototipo agregue o redisee el sistema generando otro prototipo. Modelo DRA DRA significa desarrollo rpido de aplicaciones y es una adaptacin del modelo lineal secuencial en el que se logra un desarrollo rpido utilizando un enfoque de construccin basado en componentes. Cuando se comprenden bien los requisitos y el mbito del proyecto el modelo DRA permite el desarrollo de un sistema en un perodo de tiempo corto. El modelo DRA comprende las siguientes fases: Modelado de gestin Modelado de datos Modelo del proceso Generacin de aplicaciones Pruebas y entrega

278

Modelo incremental Este modelo combina elementos del modelo lineal secuencial con la filosofa interactiva de construccin de prototipos. El modelo incremental aplica secuencias lineales de la misma forma en que progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software. Cuando se utiliza un modelo incremental el primer incremento a menudo es un producto esencial (ncleo), es decir, se afrontan los requerimientos bsicos pero algunas funciones complementarias quedan pendientes de extraer. El cliente utiliza este primer prototipo y despus de una revisin se desarrolla un plan para el siguiente incremento. Este proceso se repite hasta tener un producto completo. La diferencia de este modelo con el modelo lineal secuencial es que en cada incremento se entrega un producto operacional permitiendo as la retroalimentacin para el siguiente incremento. Cada incremento consta de las siguientes fases: Anlisis. Diseo Codificacin Pruebas.

Modelo en espiral Es un modelo de proceso de software evolutivo que acompaa la naturaleza interactiva de construccin de prototipos con aspectos controlados y sistemticos del modelo lineal secuencial. Durante las primeras iteraciones la versin incremental podra ser un modelo en papel o prototipo. Durante las ltimas iteraciones se producen versiones cada vez ms complejas de ingeniera del sistema. El modelo en espiral se divide en un nmero de actividades estructurales, tambin llamadas regiones de tareas: Comunicacin con el cliente Planificacin Anlisis de riesgos Construccin y adaptacin. Evaluacin del cliente

Cada regin contiene tareas que se definen para lograr un nivel ms alto de formalidad. El primer circuito de la espiral produce el desarrollo de una especificacin de productos; los pasos siguientes en la espiral se podran utilizar para desarrollar un prototipo y progresivamente versiones ms sofisticadas del software. El modelo en espiral puede ser adaptado para utilizarse a lo largo de toda la vida del software de computadora ya que su enfoque puede ser utilizado en un aspecto de mantenimiento.

279

Modelo de ensamblaje de componentes El modelo de ensamblaje de componentes incorpora muchas de las caractersticas del modelo en espiral. Es evolutivo por naturaleza y exige un enfoque interactivo para la creacin del software. Sin embargo, este modelo configura aplicaciones desde componentes preparados de software llamados clases. La actividad de ingeniera comienza con la identificacin de clases candidatas. Esto se lleva a cabo examinando los datos que se van a manejar por parte de la aplicacin y el algoritmo que se va a aplicar para conseguir el tratamiento. Las clases creadas para proyectos anteriores se almacenan en una biblioteca de clases o deposito. Una vez identificadas las clases candidatas, la biblioteca de clases se examina para determinar si estas clases ya existen. En caso que as fuera, se extraen de la biblioteca de clases y se vuelven a utilizar. Si una clase candidata no reside en la biblioteca, se aplican los mtodos orientados a objetos. El modelo de ensamblador de componentes lleva a la reutilizacin del software. Modelo de desarrollo concurrente El modelo de proceso concurrente se puede representar en forma de esquema como una serie de actividades tcnicas importantes, tareas y estas estn asociadas a ellas. La actividad anlisis se puede encontrar en uno de los estados en cualquier momento dado. Todas las actividades existen concurrentemente, pero residen en estados diferentes. El modelo de proceso concurrente define una serie de acontecimientos de disparan transacciones de estado a estado para cada una de las actividades de la ingeniera de software. Modelo de mtodos formales El modelo de mtodos formales acompaa a un conjunto de actividades que conducen a la especificacin matemtica del software de computadora. Los mtodos formales permiten que un ingeniero del software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notacin rigurosa y matemtica. Cuando se utilizan mtodos formales durante el desarrollo, proporcionan un mecanismo para eliminar muchos de los problemas que son difciles de superar con paradigmas de la ingeniera del software. La ambigedad, lo incompleto y la inconsistencia se descubren y corrigen ms fcilmente, no mediante revisin, sino mediante la aplicacin del anlisis matemtico. Los modelos de mtodos formales ofrecen la promesa de un software libre de defectos. Sin embargo, se ha hablado de una gran preocupacin sobre su aplicabilidad en un entorno de gestin.

280

4.7 ANEXO VII. GANTT TIEMPOS REALES

281

4.8 ANEXO VIII. INFORMES DE AVANCE


AVANCE ITERACION I 1 - Reuniones con Tutores (Fecha/Lugar) 28/08/2009 12/09/2009 21/09/2009 16/10/2009 07/11/2009 28/11/2009 05/12/2009 16/12/2009 Facultad de Ingeniera ORT. (Anteproyecto) Oficina del Tutor. Facultad de Ingeniera ORT. Facultad de Ingeniera ORT. Oficina del Tutor. Oficina del Tutor. Oficina del Tutor. Facultad de Ingeniera ORT.

2 - Reuniones con Cliente (Fecha/ /Lugar) 26/08/2009 01/09/2009 09/09/2009 06/11/2009 15/12/2009 Colegio Nuestra Seora del Huerto. (Anteproyecto) Colegio Nuestra Seora del Huerto. (Anteproyecto) Colegio Nuestra Seora del Huerto. (Anteproyecto) Colegio Nuestra Seora del Huerto. Colegio Nuestra Seora del Huerto.

Comparacin entre tiempos. Junto con el detalle de la iteracin I, se agrega adems las tareas de aprendizaje de herramientas y armado de prototipos.
Tarea 1 2 3 4 5 6 7 Detalle Aprendizaje de herramientas Pruebas con herramientas de diseo Pruebas con lenguaje de programacin Pruebas de acceso a datos Compartir aprendizaje Armar prototipos Disear GUI Disear aplicacin base Disear acceso a datos Implementacin Iteracin I 1 2 3 4 5 6 7 8 Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Mantenimiento de Tipos de Usuario y Usuarios Listado de Tipos de Usuario y Usuarios Mantenimiento de Alumnos Listado de Alumnos Das 11 das 3 das 3 das 3 das 2 das 15 das 5 das 7 das 3 das 77.5 das 28.5 das 1 das 1 das 4 das 2 das 2 das 2 das 4 das 2 das 2 das 2 das 14 das 2 das 1 das 2 das 1 das Hs Ideales 110 10 50 30 20 150 50 70 30 625 252,5 5 10 40 20 10 10 40 10 10 20 120 10 5 10 5 Hs Reales Desviacin 90 10 40 20 20 164 50 84 30 785,5 346,5 3 12 45 20 15 10 49 14 15 20 183 21 7 21 5 -20 0 -10 -10 0 14 0 14 0 160,5 94 -2 2 5 0 5 0 9 4 5 0 63 11 2 11 0

9 10 11 12

282

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Mantenimiento de Planes Listado de Planes Mantenimiento de Cursos Listado de Cursos Mantenimiento de Materias Listado de Materias Mantenimiento de Grupos Listado de Grupos Mantenimiento de Profesores Listado de Profesores Relacionar Plan, Curso, Materias Listado de relaciones Plan, Curso, Materias Armado de Bsquedas de Entidades Genrico Testeo Manual de usuario y Ayuda en lnea Entrega primera iteracin Presentacin y pruebas con el cliente Conclusiones e Informe de avance Fin de Iteracin I

1 das 1 das 2 das 1 das 1 das 1 das 2 das 1 das 1 das 1 das 3 das 1 das 2 das 3 das 2 das 0.5 das 0.5 das 1 das das

5 5 10 5 5 5 10 5 5 5 15 5 10 15 10 2,5 2,5 10 0

5 5 10 5 5 5 15 5 5 5 15 5 44 24 8 2,5 2,5 20 0

0 0 0 0 0 0 5 0 0 0 0 0 34 9 -2 0 0 10 0

Grficos comparativos de duracin de tareas entre tiempo real e ideal.

Desglose del grafico anterior.

283

Tarea 1 2 3 4 5 6 7 8

Detalle Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases

Hs Ideales 5 10 20 10 10 10 10 20

Hs Reales Desviacin 3 12 20 15 10 14 15 20 -2 2 0 5 0 4 5 0

Tarea 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Detalle Mantenimiento de Tipos de Usuario y Usuarios Listado de Tipos de Usuario y Usuarios Mantenimiento de Alumnos Listado de Alumnos Mantenimiento de Planes Listado de Planes Mantenimiento de Cursos Listado de Cursos Mantenimiento de Materias Listado de Materias Mantenimiento de Grupos Listado de Grupos Mantenimiento de Profesores Listado de Profesores Relacionar Plan, Curso, Materias Listado de relaciones Plan, Curso, Materias Armado de Bsquedas de Entidades

Hs Ideales 10 5 10 5 5 5 10 5 5 5 10 5 5 5 15 5 10

Hs Reales Desviacin 21 7 21 5 5 5 10 5 5 5 15 5 5 5 15 5 44 11 2 11 0 0 0 0 0 0 0 5 0 0 0 0 0 34

25 Genrico

284

Tarea 26 27 28 29

Detalle Testeo Manual de usuario y Ayuda en lnea Presentacin y pruebas con el cliente Conclusiones e Informe de avance

Hs Ideales 15 10 2,5 10

Hs Reales Desviacin 24 8 2,5 20 9 -2 0 10

285

AVANCE ITERACION II 1 - Reuniones con Tutores (Fecha/Lugar) 18/12/2009 09/01/2010 13/01/2010 21/01/2010 Oficina del Tutor. Oficina del Tutor. Facultad de Ingeniera ORT. Facultad de Ingeniera ORT.

2 - Reuniones con Cliente (Fecha/ /Lugar) 17/12/2009 20/01/2009 Colegio Nuestra Seora del Huerto. Colegio Nuestra Seora del Huerto.

Comparacin entre tiempos.


Tarea 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Detalle Iteracin II Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Manejo de Ao Lectivo Gestin de Inscripciones Registro de Notas Finales Registro de Inasistencias Proceso de Grupos Validacin de aprobacin de Cursos Registro de Resultados de Exmenes Validacin de inscripciones Manejo de perodos de exmenes Generacin de informacin de Auditoria Actualizar privilegios Tipos de Usuarios Testeo Actualizar Manual de usuario y Ayuda en lnea Entrega segunda iteracin Presentacin y pruebas con el cliente Conclusiones e Informe de avance Fin de Iteracin II Das 34 das 1 das 1 das 7 das 2 das 2 das 3 das 12 das 3 das 3 das 6 das 19.5 das 2 das 2 das 2 das 2 das 3 das 2 das 1 das 2 das 2 das 1 das 0.5 das 3 das 0.5 das 1 das 1 das 1 das Hs Ideales 245 5 5 45 20 10 15 60 15 15 30 97,5 10 10 10 10 15 10 5 10 10 5 2,5 15 2,5 5 5 10 0 Hs Reales Desviacin 310 5 12 53 36 7 10 60 15 25 20 142,5 12 10 18 12 24 10 14 16 16 8 2,5 18 2,5 5 5 12 0 65 0 7 8 16 -3 -5 0 0 10 -10 45 2 0 8 2 9 0 9 6 6 3 0 3 0 0 0 2 0

286

Grficos comparativos de duracin de tareas entre tiempo real e ideal.

Desglose del grafico anterior.


Tarea 1 2 3 4 5 6 7 8 Detalle Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Hs Ideales 5 5 20 10 15 15 15 30 Hs Reales Desviacin 5 12 36 7 10 15 25 20 0 7 16 -3 -5 0 10 -10

Tarea 9 10 11 12 13 14 15 16 17 18 19

Detalle Manejo de Ao Lectivo Gestin de Inscripciones Registro de Notas Finales Registro de Inasistencias Proceso de Grupos Validacin de aprobacin de Cursos Registro de Resultados de Exmenes Validacin de inscripciones Manejo de perodos de exmenes Generacin de informacin de Auditoria Actualizar privilegios Tipos de Usuarios

Hs Ideales 10 10 10 10 15 10 5 10 10 5 2,5

Hs Reales Desviacin 12 10 18 12 24 10 14 16 16 8 2,5 2 0 8 2 9 0 9 6 6 3 0

287

Tarea 20 21 22 23

Detalle Testeo Actualizar Manual de usuario y Ayuda en lnea Presentacin y pruebas con el cliente Conclusiones e Informe de avance

Hs Ideales 15 2,5 5 10

Hs Reales Desviacin 18 2,5 5 12 3 0 0 2

288

AVANCE ITERACION III 1 - Reuniones con Tutores (Fecha/Lugar) 23/01/2010 30/01/2010 06/02/2010 Oficina del Tutor. Oficina del Tutor. Oficina del Tutor.

2 - Reuniones con Cliente (Fecha/ /Lugar) 22/01/2009 05/02/2009 Colegio Nuestra Seora del Huerto. Colegio Nuestra Seora del Huerto.

Comparacin entre tiempos. Junto con el detalle de la iteracin, se incluye adems la comparacin de tiempos de la etapa final del proyecto.
Tarea 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Detalle Iteracin III Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diseo Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Implementacin Emisin de Frmula 69 Informe de Inasistencias Informe de Notas Finales Informe de Exmenes Informe de Inscripciones Generador de Informes Dinmicos Generar Informes Base con Generador Testeo Actualizar Manual de usuario y Ayuda en lnea Entrega tercera iteracin Presentacin y pruebas con el cliente Informe de avance Fin de Iteracin III Etapa Final 1 2 3 4 5 6 7 8 Desarrollar Instalador Despliegue Detalle del Despliegue Gua Instalacin Estrategia de Respaldo Plan de Contingencia Revisiones generales del Proyecto Instalacin Conclusiones finales del proyecto Fin de Proyecto 5.5 das 1 das 2.5 das 1 das 0.5 das 0.5 das 0.5 das 1 das 1 das 1 das Das 15 das 1 das 1 das 3 das 1 das 1 das 1 das 4 das 1 das 1 das 2 das 9 das 2 das 0.5 das 0.5 das 0.5 das 0.5 das 4 das 1 das 2 das 0.5 das 1 das 1 das 2 das Hs Ideales 127,5 5 10 20 10 5 5 20 5 5 10 45 10 2,5 2,5 2,5 2,5 20 5 10 2,5 5 5 10 0 32,5 5 12,5 5 2,5 2,5 2,5 5 5 5 0 Hs Reales Desviacin 129 2 5 21 1 hora 10 5 6 1 hora 29,5 7,5 12 10 49 10 2,5 2,5 2,5 2,5 24 5 5 2,5 5 5 10 0 50,5 8 12,5 5 2,5 2,5 2,5 10 10 10 0 9,5 2,5 7 0 4 0 0 0 0 0 4 0 -5 0 0 0 0 0 18 3 0 0 0 0 0 5 5 5 0 0 0 1,5 -3 -5

289

Grficos comparativos de duracin de tareas entre tiempo real e ideal.

Desglose del grafico anterior.


Tarea 1 2 3 4 5 6 7 8 Detalle Reunin con el cliente Planificacin y Anlisis de riesgos Anlisis de requerimientos Casos de Uso Diagramas de Secuencia Diagramas de Casos de Uso Diagramas de Secuencia Diagrama de Clases Hs Ideales 5 10 10 5 5 5 5 10 Hs Reales Desviacin 2 5 10 5 6 7,5 12 10 -3 -5 0 0 1 2,5 7 0

290

Tarea 9 10 11 12 13 14 15

Detalle Emisin de Frmula 69 Informe de Inasistencias Informe de Notas Finales Informe de Exmenes Informe de Inscripciones Generador de Informes Dinmicos Generar Informes Base con Generador

Hs Ideales 10 2,5 2,5 2,5 2,5 20 5

Hs Reales Desviacin 10 2,5 2,5 2,5 2,5 24 5 0 0 0 0 0 4 0

Tarea 16 17 18 19

Detalle Testeo Actualizar Manual de usuario y Ayuda en lnea Presentacin y pruebas con el cliente Informe de avance

Hs Ideales 10 2,5 5 10

Hs Reales Desviacin 5 2,5 5 10 -5 0 0 0

291

Etapa Final
Tarea 1 2 3 4 5 6 7 8 Detalle Desarrollar Instalador Detalle del Despliegue Gua Instalacin Estrategia de Respaldo Plan de Contingencia Revisiones generales del Proyecto Instalacin Conclusiones finales del proyecto Hs Ideales 5 5 2,5 2,5 2,5 5 5 5 Hs Reales Desviacin 8 5 2,5 2,5 2,5 10 10 10 3 0 0 0 0 5 5 5

292

4.9 ANEXO IX. MANUAL DE USUARIO

Bienvenido a SIINCO, sistema informtico para colegios. Contacto: sistemasiinco@[Link]

293

Inicio de Sesin
Login Al ejecutar la aplicacin, esta solicitar como primer paso un usuario y una clave, como se puede observar en la siguiente imagen:

Figura 1, pantalla Login.

El personal del Colegio deber contar con un usuario y clave, que lo identifique y sea nico para el mismo. Dicha informacin deber ser ingresada en los cuadros correspondientes y seleccionar el botn Login. Si el usuario y clave son correctos el sistema le permitir entrar al programa principal. En el caso de que el usuario o clave sean incorrectos el sistema se lo indicar a travs de los siguientes mensajes

Figura 2, errores Login.

294

Pantalla principal del sistema


Desde esta pantalla podr acceder a las diferentes opciones del sistema. Esta pantalla es denominada Escritorio de la aplicacin, desde la cual podr tambin realizar cambio de usuario, acceder a la lista de informes.

Figura 3, Pantalla Principal.

295

Ficheros
Por medio de este men se puede acceder a todas las funcionalidades de mantenimiento las siguientes entidades Alumnos. Profesores. Materias. Cursos. Planes. Composicin de [Link] El men de ficheros es el siguiente:

Figura 4, Men Ficheros.

Se ha utilizado una misma estructura para realizar las tareas comunes de mantenimiento y visualizacin de los distintos elementos que maneja el sistema:

Men de Bsquedas

Abre el formulario de mantenimiento con un nuevo elemento a ser creado.

Abre el formulario de mantenimiento cargando los datos del elemento seleccionado en la bsqueda.

Cancela la bsqueda actual y vuelve al formulario de mantenimiento.

Imprime el listado de bsqueda con los elementos visibles segn el filtro aplicado Permite exportar el listado de bsqueda actual a un archivo en formato Excel

296

Refresca la bsqueda actualizando los elementos de la misma.

Men Mantenimiento

Limpia los datos del formulario actual y arma un nuevo elemento para poder cargar los datos y guardar. Guarda el elemento de edicin actual.

Cancela la edicin actual y vuelve a mostrar el elemento editado o nuevo en su estado original.

Elimina el elemento de edicin actual. Abre el formulario de bsquedas.

Cierra el formulario de edicin actual, tambin puede cerrar el formulario desde la pestaa del formulario .

Agregar un nuevo elemento


1. Con el Mouse, en el men ficheros, seleccionar el mantenimiento correspondiente al elemento que se desea agregar. 2. Se despliega la pantalla de bsquedas, seleccionar con el Mouse la opcin Nuevo, se abre el formulario de mantenimiento con los datos vacos. 3. Ingresar todos los datos concernientes al elemento a dar de alta. (Movilizarse entre las distintas cajas de texto para ingresar los datos puede hacerse con el tabulador aunque tambin es posible con la ayuda del Mouse haciendo clic en la caja de texto deseada) 4. Deben ingresarse todos los campos obligatorios del elemento los cuales se indican con un asterisco "*". En el campo Identificador, se trata de un campo automtico, si lo desea tambin puede cargarlo manualmente. 5. Una vez que se ingresan todos los datos deseados, hacer click en el botn Guardar. (Esta operacin tambin puede realizarse a travs de las teclas ctrl.+G) Una vez dentro del formulario de mantenimiento se pueden obviar el paso 1, solo seleccionar la opcin "Nuevo" desde el formulario de mantenimiento y repetir los pasos 3 a 5.

Editar un Elemento
1. Con el Mouse, en el men ficheros, seleccionar el mantenimiento correspondiente al elemento que se desea modificar. 297

2. Se despliega la pantalla de bsquedas, seleccionar el elemento a editar y luego presionar Editar, se abre el formulario con los datos del elemento a editar. Tambin puede hacer doblo click sobre el elemento a editar. 3. Realizar las modificaciones correspondientes sobre los datos existentes. 4. El elemento debe mantener datos en todos los campos obligatorios del elemento los cuales se indican con un asterisco "*". 5. Una vez que se realizan las modificaciones deseadas, hacer click en el botn Guardar. (Esta operacin tambin puede realizarse a travs de las teclas ctrl.+G)

Eliminar un Elemento
1. Con el Mouse, en el men ficheros, seleccionar el mantenimiento correspondiente al elemento que se desea modificar. 2. Se despliega la pantalla de bsquedas, seleccionar el elemento a editar y luego presionar Editar, se abre el formulario con los datos del elemento a editar. Tambin puede hacer doblo click sobre el elemento a editar. 3. Presionar la opcin "Eliminar". 4. El sistema desplegar un mensaje pidiendo la confirmacin de la Eliminacin. 5. Presionar la opcin "Aceptar" para eliminar el elemento.

298

Gestin Escolar
Concentra todos los mdulos correspondientes a la gestin escolar Manejo de grupos. Registrar Inscripciones de Alumnos. Registrar Inasistencias. Registrar Notas Finales. Registrar Resultados de Exmenes Procesar Grupos Procesar perodos de exmenes. El men de gestin escolar es el siguiente:

Figura 5, Men Gestin Escolar.

299

Manejo de grupos

Figura 6, Manejo de Grupos.

El funcionamiento de Grupos para agregar, editar o eliminar es el mismo utilizado para los mantenimientos de ficheros.

300

Inscripciones

Figura 7, Inscripciones.

1. Ingresar al formulario. Men-> Gestin Escolar -> Registrar Inscripciones. 2. Seleccionar la opcin. 3. Encontrar el grupo deseado y presionar 4. Verificar los datos del grupo. 5. Para agregar la inscripcin de un alumno presionar el botn (Agregar) o bien doble click.

5.1 Encontrar el alumno a inscribir de la lista presentada donde se podr filtrar para buscar el alumno a inscribir. 5.2 Hacer un click sobre el alumno a inscribir y presionar o en su defecto doble click.

6. Para remover la inscripcin de un alumno posicionarse sobre el mismo encontrndolo en la grilla presentada en el formulario principal con las inscripciones del grupo. 6.1 Presionar el botn (Remover).

Registrar Notas Finales

301

Figura 8, Registro de Calificaciones de Fin de Curso.

1. Ingresar al formulario. Men-> Gestin Escolar -> Registrar Notas Finales. 2. Seleccionar la opcin 3. Encontrar el grupo deseado y presionar 4. Verificar los datos del grupo. 5. Presionar la opcin 6. Se listarn todos los alumnos del grupo con sus respectivas notas si ya existiesen. 7. Registrar las Notas Finales deseadas o en su defecto modificar notas ya existentes. 8. Presionar el botn . . o bien doble click.

302

Registrar Inasistencias.
1. Ingresar al formulario. Men-> Gestin Escolar -> Registrar Inasistencias. 2. Seleccionar la opcin 3. Encontrar el grupo deseado y presionar 4. Verificar los datos del grupo. 5. Registrar las inasistencias deseadas o en su defecto modificar inasistencias ya existentes. 6. Presionar el botn . o bien doble click.

Procesar Grupos.

Figura 9, Proceso de Grupos.

1. Ingresar al formulario. Men-> Gestin Escolar -> Procesar Grupos. 2. Seleccionar la opcin 3. El programa mostrara el resultado de cada alumno del grupo, permitiendo ingresar un concepto sobre el resultado final del curso. Este resultado podr ser uno de los siguientes: - Incompleta: No se han completado todos los datos necesarios del alumno. - Fallo Suspenso: Las calificaciones determinan que el alumno quede en ese estado, el alumno deber rendir exmenes y salir del estado en el primer perodo de exmenes. - Promocin Parcial: Las calificaciones determinan que el alumno quede en ese estado, el alumno aprueba el curso, debiendo rendir exmenes de las materias no aprobadas. - Aprobado: El alumno aprueba el curso. - Reprobado: El alumno repite el curso y deber volver a cursarlo. 303

Posicionndose sobre los datos de un alumno se mostrarn a la derecha los datos particulares del alumno, inasistencias registradas, motivo del resultado de la promocin y detalle de notas registradas. 4. Se podrn Guardar los datos del grupo, estn o no todos los datos completos, mediante la opcin , si los datos estn completos (no existen alumnos con datos INCOMPLETOS) se podr cerrar el grupo , esta opcin guardara los datos pero tambin cerrara el grupo no permitiendo modificaciones futuras de ningn datos que afecte al mismo.

Registrar Resultados de Exmenes.

Figura 10, Registros de exmenes.

1. Ingresar al formulario. Men-> Gestin Escolar -> Exmenes -> Registrar Exmenes. 2. Seleccionar la Materia. 3. Presionar la opcin .

4. Se listarn todos los alumnos que deben rendir examen en ese perodo para esa materia. 5. Completar los resultados de todos los alumnos que rindieron examen y si no lo hicieron dejar el resultado en CERO. 6. Presionar el botn , el sistema avisa que han sido registrados las datos correctamente.

304

Procesar perodos de exmenes.

Figura 11, Procesar perodos de exmenes.

1. Ingresar al formulario. Men-> Gestin Escolar -> Exmenes -> Procesar Perodos de Exmenes. 2. En este mdulo podr ver que exmenes han sido registrados durante el perodo actual as como tambin la lista de alumnos candidatos a dar exmenes durante el perodo. 3. Seleccionar la opcin , el sistema procesara las escolaridades de los alumnos segn los resultados de exmenes, se realizar el cambio de perodo correspondiente

305

Informes
Men que contiene las aplicaciones referidas a los informes, a travs de este men es posible acceder tanto a la emisin de informes existentes, como as tambin a la creacin de nuevos informes personalizados.

Men Informes
El men de Informes es el siguiente:

Figura 12, Men Informes.

Tambin podr ejecutar informes desde el escritorio principal del sistema

Figura 13. Acceso a Informes.

Emitir Informes
Una vez que se accede al mdulo de informes se mostrara la lista de informes disponibles en el sistema. Seleccione un informe a emitir y luego seleccione la opcin

306

Figura 14. Acceso a Informes.

Una vez seleccionado el informe el sistema solicitar en caso de ser requerido los parmetros para poder emitir el informe.

Figura 15. Parmetros de Informe.

Ingrese los parmetros en caso de ser necesario y seleccione la opcin visualizar.

, y el informe se

307

Figura 16. Visualizar Informe.

Desde esta pantalla podr ver el informe, hacer una vista previa de la misma para imprimir , o bien realizar una impresin directamente .

Generar Informes (este mdulo es para uso de usuarios avanzados) Para acceder a este mdulo ir en el men principal a Informes / Editar Agregar Informes Seleccionar el Informe a Editar o seleccionar la opcin .

308

La pantalla de edicin es la siguiente

Figura 17. Armar Informe.

Se debe ingresar la sentencia SQL para el informe requerido, en caso de necesitar crear parmetros simplemente ingrese el parmetro con el formato : + nombre parmetro, Ej.: SELECT * FROM alumnos WHERE alumno = :codAlumno Luego seleccionar la opcin , luego deber escribir un Ttulo para el parmetro y el tipo de datos del mismo, tambin es posible establecer un valor por defecto para el parmetro en el momento de ser ejecutado el informe.

309

Configuracin
En este men se centralizan todas las tareas de configuracin del sistema como lo son: Configurar el Acceso a Base de datos. Mantener los datos del Instituto. Registro de Usuarios del sistema. Registro de Tipos de usuarios.

El men configuracin es el siguiente:

Figura 18. Men Configuracin.

Base de Datos:
Desde este men se podr cambiar parmetros de conexin al sistema.

Figura 19. Configuracin acceso.

310

Datos Instituto: Desde esta pantalla se podrn cargar la informacin del colegio.

Figura 20. Datos Instituto.

Tipos de Usuario: El mantenimiento de Tipos de Usuario es similar a las opciones de Ficheros, en este mdulo podr crear diferentes tipos de usuario que luego sern asignados a los usuarios creados, a permitiendo de esta manera que segn el usuario se tengan diferentes privilegios en el sistema. Usuarios: El mantenimiento de Usuarios es similar a las opciones de Ficheros, en este mdulo podr crear usuario con acceso al sistema, debiendo asignar un Tipo de Usuario para establecer los permisos que tendr el usuario.

311

Manejo Ao Lectivo
El sistema maneja del concepto del Ao Lectivo, este se basa en el comportamiento del sistema dependiendo del momento del ao en que se est trabajando. Los posibles estados y sus actividades relacionadas son: ESTADO INICIAL. Esta tarea se realizar una nica vez al comienzo del uso de la aplicacin y no podr ser utilizada posteriormente. Dentro de esta etapa se realizar: Configuracin del Sistema Se ingresarn los detalles del plan. Se darn de alta los cursos dictados en el colegio. Se agregarn las materias que componen dichos cursos. Se generarn todas las relaciones entre materias cursos y planes. INSCRIPCIONES. Durante este perodo, se podr realizar mantenimientos de alumnos y profesores como as tambin realizar inscripciones de alumnos y armado de grupos. En este perodo se podrn inscribir todos los alumnos que se encuentren aprobados total y parcialmente adems de aquellos que se encuentren en fallo en suspenso antes del fin del perodo de inscripciones que ser pautado por el comienzo del prximo estado. EN CURSO. Una vez que hayan sido armados todos los grupos y se realicen todas las inscripciones, un responsable del colegio con privilegios para tal tarea deber marcar el comienzo de clases en el sistema. Una vez realizada esta tarea, los usuarios solo podrn registrar en el sistema calificaciones, inasistencias e inscripciones de alumnos que nicamente se encuentren con Aprobacin total o parcial del curso anterior. Existen dos tareas adicionales que disparar este proceso: Se verificar que para darse un comienzo de clases, todas las inscripciones y los grupos estn conformados de manera correcta verificando entre otras cosas que no exista un grupo con menos inscripciones que el mnimo designado para el mismo. Se eliminarn todas las inscripciones de los alumnos que se encuentren en fallo en suspenso del ao anterior y no hayan exonerado las materias suficientes para salir de esta situacin en el perodo de exmenes de febrero.

312

Acceder a opcin de Cambio Estado de Ao Lectivo Para acceder al mdulo de cambio de estado puede hacerlo desde el escritorio principal del sistema o desde la barra de estado inferior del sistema.

Figura 21. Opcin para acceder al cambio de estado Figura 22. Opcin para acceder al cambio de estado

Realizar Cambio de Estado


En esta pantalla usted ser informado de: Estado Actual y el prximo estado en que quedar el sistema luego de procesar. Precondiciones que debern cumplirse para poder llevar a cabo el cambio de estado. Tareas que se ejecutarn al procesar el cambio.

Figura 23. Procese de cambio de estado. Si el sistema cumple con las Precondiciones para realizar el cambio, podr realizar el cambio mediante la opcin .

Nota: Luego de realizado un cambio de estado se deber cerrar y volver a abrir la aplicacin en las dems terminales que el sistema este ejecutndose.

Sobre el correcto funcionamiento del sistema.


313

Esta gua tratara de ayudarlo en el proceso de puesta a punto del sistema para lograr un correcto funcionamiento del mismo. Cuando instale el programa por primera vez el sistema entrara en un estado llamado Configuraciones, durante este estado usted podr definir las configuraciones necesarias para comenzar a trabajar. Etapa 1 - Configuracin. En la primera etapa se debern definir los datos de ficheros bsicos, ya que para poder comenzar el registro de movimientos estos sern necesarios y fundamentales. Plan: Definir el plan a utilizar en el sistema, este contiene la siguiente informacin. Rango de notas establecidas por el mismo, mnima y mxima. Nota mnima para poder aprobar una materia dentro de este plan.

Cursos:

Definir los cursos que se utilizaran en el sistema, para cada curso deber definir. Nmero y descripcin del mismo, Ej. 1 Primer Ao Ciclo Bsico. Si el curso tiene un curso previo para acceder al mismo, se deber indicar.

Materias:

Definir las Materias que se utilizarn en el sistema, para cada materia deber definir. Cdigo y nombre de la misma. Ej. 101 Matemtica Primero Horas y sesiones semanales en que se dicta la materia. Indicar si es Computable, esto indicara si la misma ser tenida en cuenta momento de pedir el registro de calificaciones y en el clculo de escolaridades Curso al que pertenece la misma.

Composicin de Plan/Cursos: Definir las combinaciones de plan / curso a utilizar en el sistema, deber definir. Un Plan y un Curso para la relacin. Inasistencias permitidas durante el ao para no reprobar. Cantidad de Materias insuficientes para poder obtener Promocin Parcial Cantidad de Materias insuficientes para poder obtener Fallo en Suspenso Asignar las materias del curso que sern utilizadas dentro de la composicin. Una vez definidas estas entidades el sistema est preparado para comenzar a funcionar. Para salir del estado de configuraciones deber realizar el proceso de Cambio de estado y el sistema pasar al estado Registro de Inscripciones.

314

Etapa 2 - Inscripciones.

Durante esta etapa se podrn realizar las siguientes tareas: Armado de Grupos Inscripciones de Alumnos a Grupos Carga de exmenes Proceso de perodos de exmenes. Emitir informes, crear informes, mantenimiento de usuarios y tipos de usuarios

Armado de Grupos: Armar los grupos que formarn para del ao lectivo, para formar un grupo se debern cargar los siguientes datos. Identificador Ej. A Turno, Ej. Matutino Plan/Curso del grupo.

Inscripciones: Inscribir los alumnos que formarn los grupos, los pasos para realizar inscripciones son los siguientes Seleccionar el grupo sobre el cual se desea realizar la inscripcin. Agregar los alumnos a inscribir, los alumnos permitidos sern aquellos que estn habilitados para el curso a inscribir, en caso contrario el sistema indicar que no es posible realizar la inscripcin. Nota: Durante el perodo de inscripciones se podrn inscribir alumnos cuya escolaridad del curso previo sea Aprobada, Promocin Parcial, Fallo suspenso, en el caso de Fallo en suspenso al momento de salir del estado de inscripciones, si estos alumnos inscriptos no han logrado salir de ese estado sern eliminadas dichas inscripciones. Carga de exmenes: Cargar los resultados de exmenes del perodo activo. El sistema permitir la carga de exmenes a alumnos cuyo estado de un curso sea Promocin Parcial o Fallo Suspenso.

Proceso de perodos de exmenes. Una vez finalizada la carga de todos los exmenes de un perodo, deber procesar el perodo, este proceso recalcular las escolaridades de alumnos permitiendo salir de los estados Fallo Suspenso o Promocin Parcial en caso de que las condiciones de materias pendientes lo determinen.

Condiciones para realizar el cambio de estado hacia Registro de Calificaciones El perodo de exmenes de febrero deber estar procesado.

Etapa 3 Registro de Calificaciones. Durante esta etapa se podrn realizar las siguientes tareas: Armado de Grupos Inscripciones de Alumnos a Grupos 315

Registro de Inasistencias de fin de curso Registro de calificaciones de fin de curso Procesar y Cerrar Grupos Carga de exmenes Proceso de perodos de exmenes. Emitir informes, crear informes, mantenimiento de usuarios y tipos de usuarios

Armado de Grupos: Armar los grupos que formarn para del ao lectivo, para formar un grupo se debern cargar los siguientes datos. Identificador Ej. A Turno, Ej. Matutino Plan/Curso del grupo.

Inscripciones: Inscribir los alumnos que formarn los grupos, los pasos para realizar inscripciones son los siguientes Seleccionar el grupo sobre el cual se desea realizar la inscripcin. Agregar los alumnos a inscribir, los alumnos permitidos sern aquellos que estn habilitados para el curso a inscribir, en caso contrario el sistema indicar que no es posible realizar la inscripcin, en esta etapa solo se permitir la iniciacin de alumnos cuyo curso previo este Aprobado o en Promocin Parcial

Registro de Inasistencias de fin de curso Registrar las inasistencias de fin de curso. Seleccionar el grupo sobre el cual se desea realizar el registro. Cargar las inasistencias de los alumnos durante el ao.

Registro de calificaciones de fin de curso Registrar las calificaciones obtenidas durante el curso del ao. Seleccionar el grupo sobre el cual se desea realizar el registro de calificaciones. Seleccionar la materia sobre la cual se realizar el registro. Registrar las notas, guardar y repetir el proceso para cada materia del grupo.

Procesar y Cerrar Grupos Una vez registradas las notas e inasistencias de un grupo, el mismo deber Cerrarse, todos los grupos del ao debern cerrarse para poder finalizar las actividades del ao lectivo. Si el Grupo se encuentra en condiciones para ser cerrado, este podr cerrarse, en caso contrario se indicar el motivo por el cual no est permitido el cierre.

Carga de exmenes: Cargar los resultados de exmenes del perodo activo. El sistema permitir la carga de exmenes a alumnos cuyo estado de un curso sea Promocin Parcial.

Proceso de perodos de exmenes. 316

Una vez finalizada la carga de todos los exmenes de un perodo, deber procesar el perodo, este proceso recalcular las escolaridades de alumnos permitiendo salir de estados Promocin Parcial en caso de que las condiciones de materias pendientes lo determinen.

Condiciones para realizar el cierre de Ao Lectivo y comenzar las inscripciones del prximo ao. Todos los grupos del ao debern estar procesados El ltimo perodo de exmenes del ao deber estar procesado.

Una vez procesado el cambio de estado el ciclo comienza nuevamente, quedando el sistema con un nuevo Ao lectivo activo, perodo Febrero Abierto y en estado de Inscripciones.

317

4.10 ANEXO X. EJEMPLO DE CODIGO:


using System; using [Link]; using [Link]; using [Link]; using [Link]; using [Link]; namespace [Link] { public class Conexion { const string SQL_CADENA_CONEXION = "Server=.\\SQLEXPRESS;Database=SIINCO;UID=SIINCOAdmin;Pwd=SIINCO1;Trusted_C onnection=NO;Language=Spanish;Connect Timeout=5"; private [Link] _conexion; private [Link] _comando; private [Link] _adaptador; private [Link] _transaccion; private bool _transaccionActiva = false; private string _CadenaConexion = [Link]; //objeto de dominio que contiene los parametros de conexion ParametrosSQL _ParametrosConexionSQL = new ParametrosSQL(); #region "Metodos" public Conexion() { if (_ParametrosConexionSQL.Servidor == [Link] || _ParametrosConexionSQL.BaseDatos == [Link]) { _CadenaConexion = SQL_CADENA_CONEXION; } else { _CadenaConexion = "Server=" + _ParametrosConexionSQL.Servidor + ";DataBase=" + _ParametrosConexionSQL.BaseDatos + ";UID=" + _ParametrosConexionSQL.Usuario + ";Pwd=" + _ParametrosConexionSQL.Password + ";Trusted_Connection=NO;Language=Spanish;Connect Timeout=5"; } //una vez obtenido el modo de acceso inicio la conexion Iniciar(_CadenaConexion); } private void Iniciar(string sqlCadenaConexion) { if (_conexion == null) { _conexion = new [Link](); _conexion.ConnectionString = sqlCadenaConexion; } //intento conectarme al SQL Server bool _Conectando = true; while (_Conectando) { try { _conexion.Open(); //asigno la conexiona la comando _comando = new [Link](); _comando.Connection = _conexion; //instancio el adaptador 318

_adaptador = new [Link](); _adaptador.SelectCommand = _comando; // Se estableci la conexin _Conectando = false; } catch ([Link] e) { string mensaje; switch ([Link]) { case 17: // No se pudo establecer la conexin mensaje = "No se puede establecer la conexin al servidor de base de datos."; break; default: mensaje = "Ha ocurrido un error inesperado al intentar conectar al servidor de base de datos."; break; } throw new Exception(mensaje, e); } } } public [Link] ConsultaSQL(String stringConsulta, String tabla) { [Link] _rs; _comando.CommandText = stringConsulta; //Instancio el dataset _rs = new DataSet(); _adaptador.Fill(_rs, tabla); return _rs; } public int EjecutarSQL(string strSQL) { _comando.CommandText = strSQL; return _comando.ExecuteNonQuery(); } public [Link] EjecutarReader(string strSQL) { _comando.CommandText = strSQL; return _comando.ExecuteReader(); } public void BeginTransaccion() { //se inicia la transaccion en caso de no existir if (_transaccionActiva == false) { _transaccion = _conexion.BeginTransaction(); _comando.Transaction = _transaccion; _transaccionActiva = true; } } public void CommitTransaccion() { //finaliza transaccion en caso de existir una activa if (_transaccionActiva == true) { _transaccion.Commit(); _transaccionActiva = false;

319

} }

} } public void RollbackTransaccion() { //si hay transaccion activa if (_transaccionActiva == true) { _transaccion.Rollback(); _transaccionActiva = false; } } #endregion #region "Propiedades" public [Link] Parametros { get { return _comando.Parameters; } } #endregion

En el ejemplo anterior se pueden ver los mtodos que son el punto de partida para acceder a datos de nuestra base relacional. Posteriormente se ir complementando esta clase para que cumpla con todas las funciones que necesitamos para la persistencia de nuestros objetos.

320

4.11 ANEXO XI. SOBRE EL DISEO IUI:


Paso 1: Enfocar cada pantalla en una sola tarea El primer paso en el diseo de IUI es tomar una caracterstica o conjunto de ellas y dividirlas dentro de pantallas separadas. Cada pantalla debe enfocarse en una sola tarea, llamada la primera tarea de la pantalla. Esta idea suena simple, pero algunas aplicaciones la adhieren. La mayora de las aplicaciones presentan una pantalla desde el cual todas las caractersticas estn hechas. Este diseo requiere que el usuario deduzca que puede hacer y cmo debe hacerlo. Lo primordial es que la tarea debe ser algo que haga sentir al usuario, preferentemente una reflexin de un detalle de implementacin u otro concepto abstracto. La tarea deber ser algo que haga pensar a los usuarios que hacer, preferentemente descrito en sus propias palabras. Paso 2: Expresar de la tarea Cada pantalla debe ser claramente titulada con una declaracin concisa y explcita de su tarea primaria. Esto puede ser una instruccin directa (Mantenimiento Alumnos) o preguntarle al usuario que es lo que desea hacer. El ttulo de la pantalla o pgina es muy importante; sin importar si el producto use ventanas, pginas Web, dilogos, u otros diseos. Las pantallas ms comunes tienen ttulos claros. Las pantallas que realizan mltiples tareas requieren ttulos abstractos o complejos. Por ejemplo, la pantalla que se encarga de la gestin del programa est bajo un panel que contiene el nombre de Ficheros. Esto es lo que se le llama ttulo abstracto. Dentro de esta pantalla (reflejada en un panel en nuestro software) intentamos darle al usuario la opcin a realizar. El ttulo de la pantalla indica un diseo claro. En este modelo, los diseadores eligen los ttulos de las pantallas en las etapas tempranas del proceso de diseo. En vez de elegir un ttulo que justifique la manera en que trabaja la pantalla, el ttulo es usado para determinar si la pantalla es coherente o en su caso tenga sentido el utilizado. Paso 3: Hacer que la pantalla contenga la tarea correcta Cuando se crea software que usa el modelo IUI, el trabajo ms exigente de diseo corresponde generalmente a la divisin en pantallas o pginas. El siguiente paso es determinar que controles sern usados en cada pantalla para completar la tarea primaria. Estos controles organizan el contenido de la pantalla donde el usuario realiza el trabajo. El ttulo de la pantalla y el contenido son dos divisiones del dilogo entre el programa y el usuario. La postura del ttulo del programa pregunta o da una instruccin, y el usuario responde a travs del contenido de la pantalla. Si el ttulo de la pantalla es claro y simple, generalmente disear la pantalla tambin lo ser. En conclusin, en un correcto diseo, los usuarios deben ser capaces de saber fcilmente como usar los controles para lograr la tarea primaria de la pantalla. En el caso de la asignacin de una materia a un curso, cuando los usuarios quieren realizar esta tarea podrn seleccionar tanto los cursos como las materas desde una lista que contengan estos datos, de esta forma los usuarios confirman su comprensin de la tarea y se incrementa la posibilidad de que el usuario sea exitoso, lo cual tambin resulta en un aumento de su confianza en el desarrollo de otras tareas de la aplicacin. Proveer una clara salida de la pantalla Para las pantallas cuya tarea primaria es la navegabilidad, realizando la tarea ella misma lleva al usuario a la pantalla siguiente. En el caso de nuestra aplicacin, todas las pantallas tendrn un botn

321

Atrs que lo llevara a la pantalla anterior (en caso que corresponda) y un botn Salir que lo llevar a la pantalla principal. Estudios de usabilidad han demostrado que los usuarios prefieren usar botones en una toolbar. Frecuentemente los usuarios estn desconformes con pantallas que no tengan una salida clara, sobretodo en pantallas cuya nica tarea es mostrar informacin para ser leda. Paso 4: Posibilitar enlaces a tareas secundarias El ltimo paso en el diseo de una pantalla es proveer un enlace a una tarea secundaria, cuyas caractersticas no estn directamente relacionadas con el objetivo de la tarea primaria, pero siempre que est relacionada con la pantalla. Las tareas secundarias brindarn al usuario cuadros de dilogos, cambiar la presentacin visual del contenido de la pantalla, o llevar al usuario a una pantalla diferente. Como en todas las aplicaciones, algunas pantallas de la nuestra no tendrn tareas secundarias, mientras que otras tendrn muchas. Diseo visual de tareas secundarias En un desarrollo eficiente, las tareas secundarias siempre deberan ser mostradas en una posicin subordinada de la pantalla, desde donde puedan ser accesibles de ser necesario, pero sin distraer al usuario de la tarea primaria. Como resultado de esta actividad se generar la especificacin de interface de usuario como producto que engloba los siguientes elementos: Principios generales de la interfaz Catlogo de perfiles de usuario Descomposicin funcional en dilogos Catlogo de controles y elementos de diseo de interfaz de pantalla Formatos individuales de interfaz de pantalla Modelo de navegacin de interfaz de pantalla

Las pantallas resultantes aparecern en la especificacin de casos de uso. Especificacin de Principios Generales de la Interface En esta tarea se especifican los estndares, directrices y elementos generales a tener en cuenta en la definicin de la interface de usuario tanto para la interactiva grfica (en nuestro caso) o carcter como tambin para los listados e informes impresos. En primer lugar se selecciona para el entorno de la interfaz interactiva formularios de Windows Forms creando un lineamiento a seguir en el diseo de los distintos formularios que forman la aplicacin. Directrices generales en cuanto a la interfaz y aspectos generales de interaccin Nuestro proyecto ser construido con una interface grfica utilizando Windows Forms. Esto se debe al tipo de software que queremos desarrollar. La idea es lograr un producto que quede instalado en la PC de trabajo y que el usuario pueda de manera rpida y sencilla completar su parte del trabajo. Es por esta razn, que el objetivo es desarrollar una interface amigable, intuitiva y organizada para el usuario pueda utilizar toda la funcionalidad del sistema con el ratn y con muy poca interaccin del teclado (esta condicin limita los errores y reduce el tiempo de ejecucin). Si bien siempre se brindar la posibilidad de utilizar el teclado, la idea es que la interaccin con el mismo se limite al ingreso de datos, ingreso que se intentar realizar de la manera ms amigable posible.

322

Principios de composicin de pantallas y criterios de ubicacin de los distintos elementos dentro de cada formato Las pantallas sern realizadas de la manera que se explic anteriormente y la especificacin ms detallada se podr ver en el anlisis de casos de uso. Para esto se realizarn pantallas que respeten un cierto estndar, salvo la pantalla principal, cuyo objetivo es muy distinto al resto. Para todas las pantallas: Los botones de accin (aceptar, cancelar, salir, etc.) deben estar ubicados en la parte superior de la pantalla (se crearn toolbars especficas reutilizables en la mayora de las pantallas), ya que es la norma general elegida por el equipo de desarrollo para todas nuestras pantallas. En el rea central de la pantalla se encontrarn los componentes de trabajo especficos a la funcionalidad de cada una de ellas. En el caso de un formulario en donde el usuario ingresa datos, el rea central contendr los componentes de ingreso de informacin. En primera instancia, el modo de trabajo ser de pantalla completa para todos los casos. Esto est dado por el tipo de GUI que utilizaremos en el software. En el rea superior de la pantalla principal estarn los elementos de acciones especiales, en principio, un TabControl donde se agruparn las diferentes funcionalidades del software. Agrupadas por el uso que dan a estas los usuarios. Normas para los mensajes de error y aviso, codificacin, presentacin y comportamientos. Los mensajes de error, aviso y codificacin se presentarn siguiendo el estndar de las interfaces grficas modernas: dilogos del tipo pop-up que aparecern con un icono que simbolice el tipo de mensaje (error, observacin, confirmacin, etc.) y un texto que detalle el mensaje en s mismo. Normas para la presentacin de ayudas La ayuda del sistema se presentar en formato HTML. La misma contar con un ndice que agrupe las reas temticas cubiertas por la ayuda y un buscador que permita llegar a cierta informacin rpidamente. Informes Impresos Si bien es la idea dentro del sistema toda la informacin que este administra se visualizar dentro de las pantallas del mismo, ciertos informes debern contar adems con la posibilidad de ser emitidos de manera impresa. En esta situacin, tambin se requiere que la informacin resultante de los procesos sea clara y precisa. Especificacin del Comportamiento Dinmico de la Interface El objetivo de esta tarea es especificar los flujos entre los distintos formatos de interface de pantalla, y tambin dentro del propio formato para de esta manera, alinearnos con todo lo mencionando anteriormente.

323

También podría gustarte