Tesis Huerto
Tesis Huerto
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.
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.
10
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.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
Gestionar Alumnos
Gestionar Profesore s
Gestionar Materias
Gestionar Plane s
Profeso r
Emitir Carnets
14
-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
Materias
Calificacione s
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
17
1.11.2 Arquitectura
EMBED [Link].11
Servidor
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:
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
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
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
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
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
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
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
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
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:
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
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.
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
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
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.
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
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
-_parent
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
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.
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
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
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
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
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
Gestionar Materias
Buscar Materias
Gestionar Cursos
Buscar Grupos
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.
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
Curso
Usuari o
1..*
Materia
1 TipoUsuario
1..*
1..* Profesor
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
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
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
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
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
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:
82
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
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
[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
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
- Listar Relacin PCM Buscar Relacin Plan Cursos Materias Buscar Relacin PCM
89
sd Agregar Tipo de Usuario Secretaria Presentacion FromConfigurarcionTipoUsuario Aplicacion ManejadorTipoUsuarios Persistencia PersistenciaSIINCO
Insertar(TipoUsuarioPersistente) :int
90
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
91
SeleccionarObjeto() :TipoUsuario RetornarObjeto(TipoUsuario) Retornar(TipoUsuario) Retornar(TipoUsuario) Eliminar() Eliminar() :bool Eliminar(TipoUsuario) :bool Nuevo(T ipoUsuario) : TipoUsuarioPersistente
Eliminar(TipoUsuarioPersistente) :Int
92
Insertar(UsuarioPersi stente) :i nt
93
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
SeleccionarObjeto() :Usuario RetornarObjeto(Usuario) Retornar(Usuario) Retornar(Usuario) Eliminar() Eliminar() :bool Eliminar(Usuario) :bool Nuevo(Usuario) : UsuarioPersistent e
Eliminar(UsuarioPersistente) :Int
Validar(Alumno) :bool
Guardar(Alumno) :bool
95
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
SeleccionarObjeto() :Alum no RetornarObjeto(Alumno) Retornar(Alumno) Retornar(Alumno) Eliminar() Eliminar() :bool Eliminar(Alumno) :bool
Validar(Profesor) :bool
Guardar(Profesor) :bool
sd M odificar Profes... Secretaria Presentaci on From Gesti onarProfesores Apli caci on M anejadorProfesores Persi stenci a Persi stenci aSIINCO
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
Sel eccionarProfesor()
ArmarObjeto() :Profesor
Selecci onarObjeto() :Profesor RetornarObjeto(Profesor) Retornar(Profesor) Retornar(Profesor) Eli minar() Eli minar() :bool Eliminar(Profesor) :bool
Validar(Plan) :bool
Guardar(Plan) :bool
99
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
SeleccionarObjeto() :Plan RetornarObjeto(Plan) Retornar(Plan) Retornar(Plan) Eliminar() Eliminar() :bool Eliminar(Plan) :bool
Validar(Curso) :bool
Guardar(Curso) :bool
101
SeleccionarCurso()
Guardar(Curso) :bool
102
SeleccionarObjeto() :Curso RetornarObjeto(Curso) Retornar(Curso) Retornar(Curso) Eliminar() Eliminar(Curso) :bool Eliminar(Curso) :bool
Validar(Materia) :bool
Guardar(Materia) :bool
103
SeleccionarObjeto() :M ateria RetornarObjeto(Materi a) Retornar(Materia) Retornar(Materi a) Modifi carDatos() Guardar( ) Validar(M ateri a) :bool
104
SeleccionarObjeto() :Materia RetornarObjeto(Materia) Retornar(Materia) Retornar(Materia) Eliminar() Eliminar(Materia) :bool Eliminar(Materia) :bool
105
Guardar(Grupo) :bool
106
Sel eccionarObjeto() :Grupo RetornarObjeto(Grupo) Retornar(Grupo) Retornar(Grupo) M odificarDatos() Guardar() Val idar(Grupo) :bool
107
SeleccionarObjeto() :Grupo RetornarObjeto(Grupo) Retornar(Grupo) Retornar(Grupo) Eliminar() Eliminar(Grupo) :bool Eliminar(Grupo) :bool Nuevo(Grupo) :GrupoPersistent e
Eliminar(GrupoPersistente) :Int
108
ObteneTodos(ListaAlumnos) :bool
ObtenerTodos(ListaAlumnos) :bool
Listar Profesores()
109
110
111
112
113
114
Validar(RelacionPCM) :bool
Guardar(RelacionPCM) :bool
115
Secretaria
SeleccionarRelacionPCM()
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
ObtenerRelacionPCM(Relacion) :bool ObtenerRelacion(RelacionPCM) :bool SeleccionarObjeto() :RelacionPCM RetornarObjeto(RelacionPCM) Retornar(RelacionPCM) Retornar(RelacionPCM) Eliminar() Eliminar() :bool Eliminar(RelacionPCM) :bool
CU023: Listar Relacin Plan, Cursos, Materias DID41: Listar Relacin PCM
sd Listar RelacionP... Secretaria Presentacion From GestionarRelacionPCM Aplicacion M anejadorRelacionPCM Persistencia PersistenciaSIINCO
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
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
-_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
-_formBusq uedas Busqued as:: Form Busqueda TipoUsuar io DevExp [Link] Busquedas::Form Busqueda
FormSplash
SIINCOPresentacion::Program
120
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
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
+ 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
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
121
-_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
+ 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
122
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 -
+ 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
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
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 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
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.
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.
Testeado O K
139
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.
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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.
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
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
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
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
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
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
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.
170
uc CU General Iteracion 2
Gestin de Inscripcione s
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.
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
Inscripcione s
Ex amenes
Inasistencia s
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
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
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
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
[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
- 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
CambiarEstado() ArmarObjeto(Estado)
ObtenerEstadoActual(Estado) :bool
ObtenerProximoEstado(EstadoActual) SeleccionarProximoEstado(EstadoActual)
Retornar(NuevoEst ado)
HabilitarFuncionalidades(NuevoEstado)
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
RetornarObjeto(Grupo)
RetornarObjeto(Grupo) RetornarObjeto(Grupo)
185
ManejadorAlumnos ManejadorInscripciones
RetornarObjeto(Alumno) RetornarObjeto(Alumno) NuevaInscripcion= ArmarInscripcion(Alumno, Grupo) GuardarInscripcion(NuevaInscripcion) GuardarInscripcion (NuevaInscripcion) NuevaInscripcionPersistent e (NuevaInscripcion)
186
ModificarInscripcion()
EliminarAlumno()
187
SeleccionarGrupo()
loop ObtenerNota [Para cada Alumno] ObtenerNota(Griupo, M ateria, Alumno) :bool Arm aObjetoNota(Grupo, Mat, Alu) :Nota
RetornarObjeto(ListaNotas) Retornar(ListaNotas)
188
Selecci onarPlanCurso()
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
189
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 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)
loop Guardar Examenes Rendidos [Para cada exam en en ListaExam enesRendidos] GuardarObjeto(Exam en) :bool NuevoExam enPersi stente(Exam en)
190
Selecci onarGrupo()
SeleccionarGrupo() ArmarObjeto(Grupo)
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
Guardar(List aInasistencias) GuardarInasistenc ias(List aInasistencias) GuardarInasistenc ias(List aInasistencias) NuevaListaInasistenciasPersistente(List aInasistencias)
GuardarObjeto(NuevaListaInasistenciasPersistent e) :int
191
Se leccionarGrupo()
Sele ccio narObje to() :Gru po RetornarObjeto(Grupo) RetornarObj eto (Grupo ) Reto rnarOb jeto(G ru po) O btenerProm edios(Grupo)
loop O btener Promedios M ate ria [Para cada Alum no y cada M ateria]
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)
Reto rnarOb jeto(Li staProm edi osFinales) RetornarObj eto(ListaP rom ediosFinales) Retornar(Lista Prom ediosFin ales)
192
SeleccionarUltimoPeriodoCerrado(Periodo)
Retornar(UltimoPeriodoCerrado)
ProximoPeriodo= Retornar(ProximoPeriodo)
AbrirPeriodo(ProximoPeriodo) :bool
NuevoPeriodoPersistente(ProximoPeriodo)
AbrirPeri odo(NuevoPeriodoPersistente)
193
loop ProcesarResultados [Para cada alumno] Obtener Resultados Examenes(Alumno, Peri odo) ArmarObjeto(AlumnoPeriodo)
NuevaEscolaridad= RecalcularEscolaridad(ListaResultadoExamenes)
ModificarEscolaridad(NuevaEscolaridad) NuevaEscolaridadPersistente(NuevaEscolaridad)
GuardarObjeto(NuevaEscolaridad) :int
194
CerrarPeriodo() ArmarObjeto(Periodo)
ObtenerPeriodoActual(Periodo) :bool
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
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 + -
-_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
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
# + -
_ 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 - 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
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
-_mGrupo
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
199
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
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 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
ValidadorCalificacionNotasFinales ValidarCalificacion(Calificacion) : bool + ValidadorCalificacionExamenes ValidarCalifi cacion(Calificacion) : bool EnCursoHaciaInscripcione s + RealizarCambioEstado(AnioLectivo, string*) : bool + ValidarCambioEstado(AnioLectivo, string*) : bool
200
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 -
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
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
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
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)
210
ManejadorInscripciones ValidadorInscripcionesGenerico IValidarInscripcion Realiza distintas validaciones sobre las inscripciones. Descripcin Descripcin Verifica que:
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
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 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
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
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
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
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
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
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
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. Promocin Parcial.
3. Promocin Parcial.
4. Promocin Parcial.
222
5. Fallo en Suspenso.
6. Reprobado.
7. Reprobado.
8. Reprobado.
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.
223
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 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. La nueva escolaridad
es Aprobado.
2. La escolaridad
continua siendo
224
Promocin Parcial.
3. La nueva escolaridad
es Reprobado.
4. La nueva escolaridad
es Promocin Parcial.
5. La nueva escolaridad
es Aprobado.
225
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
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
nmero de alumnos inferior al mnimo definido. Debe encontrarse el primer perodo de examen procesado y cerrado.
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.
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
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
IP24
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.
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.
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
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.
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
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.
sd Emitir Informe Sistema 1. El usuario selecciona el informe a emitir. 2. El sistema realiza el informe correspondiente. Usuario Emitir Informe()
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
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
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
Obtener(Escolaridad) :bool Obtener(Escol aridad) :bool Sel eccionarObjeto() : Escolari dad 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)
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)
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)
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)
242
243
ObtenerObjeto(Informe) :bool ObtenerObjeto(Informe) :bool Informe= SeleccionarObjeto(Informe) RetornarObjeto(Informe) RetornarObjeto(Informe) Retornar(Informe) ModificarCondiciones(Informe)
GuardarObjeto(Informe) :bool
NuevoInformePersistente(Informe) : InformePersistent e
Insertar(InformePersistente) :int
244
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
[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
# # + # # # # # # -
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
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
+ 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
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
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
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
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
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
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
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
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
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
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
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
260
261
262
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
31
38
29
266
Valor 0 1 2 3 4 5
Complejidad de procesado ajustada (PCA) = 0,65 + (0,01 * PC) Total de puntos de funcin ajustados (TAFP): PCA * TUPF
267
268
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.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.
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.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
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
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
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
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
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
281
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
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
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.
286
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
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
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
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
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
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
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:
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
294
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:
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 cargando los datos del elemento seleccionado en la bsqueda.
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
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.
Cierra el formulario de edicin actual, tambin puede cerrar el formulario desde la pestaa del formulario .
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:
299
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).
301
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.
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.
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
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:
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
Una vez seleccionado el informe el sistema solicitar en caso de ser requerido los parmetros para poder emitir el informe.
, y el informe se
307
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
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.
Base de Datos:
Desde este men se podr cambiar parmetros de conexin al sistema.
310
Datos Instituto: Desde esta pantalla se podrn cargar la informacin del colegio.
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
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.
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.
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
_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
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