Prototipo del Sistema de información de PROMECYS
____________________________________________________________________________
Universidad Nacional de Ingeniería Facultad de Ciencias y Sistemas
“Propuesta de Prototipo de un Sistema de Información para el
Proceso de Matricula e Inscripción de Asignaturas del Programa de Modalidad Especial de la Facultad de Ciencias y
Sistemas de La Universidad Nacional de Ingeniería”.
Autores:
Br. Marisol de los Angeles Suárez Fonseca. Carnet 20-19800- 4. Br. Maria Gabriela Lagos Pasos. Carnet 2002-10348. Br. Gusmara Griselda Quezada Bravo. Carnet 2002-10456.
Tutor (a): Ing. Patricia Lacayo Cruz
Managua, Nicaragua 17 de Diciembre del 2008.
T.Mon 025.04 S939 2008
Prototipo del Sistema de información de PROMECYS
____________________________________________________________________________ ÍNDICE
Pág.
Objetivos……………………………………………………………………… Justificación………………………………………………………………….. Introducción………………………………………………………………….. Marco Teórico…………………………...…………………………………… Capitulo I: Modelo de Requerimientos
Antecedentes de PROMECYS…….……………………….. Misión………………………………………………………….. Visión………………………….……………………………….. Objetivos de la Institución…………………………………. Estructura Organizacional…………………………………. Descripción del problema………………………………….. Descripción del sistema de negocio………...…………… Descripción del sistema informático…………………….. Requerimientos del Sistema
Capitulo II: Análisis del Sistema Diagramas de actividad…………………………………….. Diagramas de casos de uso……………………………….. Plantillas de casos de uso…………………………………. Diagramas de secuencia y colaboración…………………
Capitulo III: Diseño del Sistema
Clases.…………………….…………………………………… Tipos de datos……………………………………………….. Diagrama de clases…………………………………………. Diagramas de estado……………………………………….. Seguridad de la base de datos……………………………. Modelo de datos………………..……………………………. Diccionario de datos………………………………………… Procedimientos Almacenados…………………………….. Funciones………………………..…………..………………... Vistas……………………………………………………………
Capitulo IV: Interfaz de Usuario
Estructura de la Interfaz…………………………………….. Paquete de clases……………………………………………. Paquete de formularios……………………………………… Reportes……………………………………………………….. Detallado de la interfaz de Usuario………………………..
1 2 3 4
26 27 27 27 28 29 31 32
34
37 43 45 56
89 92 93 94 96 97 98
105 106 110 112
115 115 122 136 142 144 151 156
Prototipo del Sistema de información de PROMECYS
____________________________________________________________________________ Capitulo V: Análisis de la red para la implementación del sistema
Recursos actuales…………………………………………… Requerimiento técnico..……………………………………..
Conclusiones…………………………………………………………………. Recomendaciones…………………………………………………………… Bibliografía……………………………………………………………………. Anexos………………………………………………………………………….
163 164
165 166 167 168
Prototipo del Sistema de información de PROMECYS
____________________________________________________________________________ AGRADECIMIENTO
Le agradezco profundamente a Dios por regalarme sabiduría para culminar mi carrera y fortaleza para no dudar en lograrlo. A toda mi familia por confiar en mi, en especial a mis padres: mamá, gracias por tu amor, consejos e incondicional apoyo cada vez que lo necesite; papá, gracias por ser mi mentor, por enseñarme a creer en mi y comprender mi verdadero valor como persona. A mi amigo Rodolfo Carmona por su invaluable ayuda y sus certeros consejos durante la elaboración de este trabajo.
Maria Gabriela Lagos Pasos
Agradezco a Dios por la sabiduría y fortaleza que me ha dado durante toda mi vida y por ayudarme a culminar una de las fases mas importante como lo es mi carrera, agradezco de todo corazón a mi familia y sobre todo a mis padres por confiar en mi y ayudarme a lograr mi meta, por darme los consejos que me motivaron para llegar al final del camino, también a quienes me brindaron su afecto, comprensión y cariño, agradezco a quienes contribuyeron en mi formación y aprendizaje, a Carmona por su ayuda incondicional.
Marisol Suárez Fonseca
Agradezco a Dios por darme la vida, por las maravillas que ha hecho en mí. Por ayudarme día a día a salir adelante, por la fortaleza y permitir la culminación de mi carrera. A mi mamá, quien es la persona más importante de mi vida, por el amor y cariño, por tus consejos, por ser mi ejemplo a seguir, no se que haría sin ti. Te adoro mamá A mis tías y tíos, quienes me han estado conmigo en todo momento, gracias por quererme como una hija y brindarme su apoyo. A mi Abuelito Héctor Bravo quien es como un padre, Gracias por el amor, tú ayuda y tus oraciones. Gracias a mis Hermanos Maury, Gustavo, Gaby, por ser especiales, por el apoyo y cariño que me han dado. Gracias Familia los amo… Quiero agradecer a una persona muy especial mi novio Wilfredo Porta, quien me ha dado su amor y cariño, gracias por tus consejos y motivarme en mis estudios. Gracias por ayudarme y confiar en mí, Te quiero mi amor… Gracias a Kar, por tu ayuda incondicional y compartir este momento.
Gusmara Quezada Bravo.
Prototipo del Sistema de información de PROMECYS
____________________________________________________________________________ DEDICATORIA
Para todas las personas que creyeron en mí en todo momento, a mis padres, hermanas, tios… pero con un cariño muy especial: A MIS ABUELOS…!
Maria Gabriela Lagos Pasos
Con mucho cariño a mis PADRES: Miguel Suárez y Moraima Fonseca por ser el pilar fundamental de mi vida y a todos los que me brindaron su apoyo.
Marisol Suárez Fonseca
A Dios por darme la oportunidad de culminar mis estudios. A mi mamá Marlene Bravo, por el amor, cariño y apoyo que me ha brindado. A mis hermanos Maury, Gustavo, Gaby. Por todo el amor y cariño que me han dado. A mis tíos, quienes me han dado su ayuda incondicional…A una persona muy especial mi abuelito Héctor Bravo. A mi novio Wilfredo Porta, por el cariño y amor que me has dado, por brindarme tu apoyo…
Gusmara Quezada Bravo
Prototipo del Sistema de Información de PROMECYS
- 1 -
OBJETIVOS
OBJETIVO GENERAL:
Desarrollar un Prototipo de un Sistema de Información que ejecute los procesos de matricula e inscripción de asignaturas para Programa de Educación Especial de La Facultad de Ciencias y Sistemas de La Universidad Nacional de Ingeniería (PROMECYS).
OBJETIVOS ESPECIFICOS:
Definir los requerimientos del Sistema por medio del análisis de los procesos actuales de matricula e inscripción de asignaturas de PROMECYS, haciendo uso del lenguaje UML para el modelado.
Diseñar una base de datos para el registro de información, a partir del
análisis de requerimiento utilizando como gestor de la base de datos SQL Server 2000.
Hacer uso del entorno de desarrollo de Netbeans para realizar las
interfaces graficas, que permitirán al usuario tener interacción con el prototipo de sistema de información.
Realizar un diseño de red que permita la conexión entre los equipos
tomando en cuenta los requerimientos de hardware y software.
Prototipo del Sistema de Información de PROMECYS
- 2 -
JUSTIFICACION
PROMECYS inicio como un programa pequeño creado para dar solución a las demandas de personas trabajadoras que deseaban estudiar una carrera universitaria, pero en los últimos años ha mantenido una demanda de estudiantes muy favorable motivo por el cual los procesos que hasta el momento se ha realizado de forma manual se han vuelto un problema, tanto para los trabajadores del programa como para los estudiantes que pertenecen en el mismo ya que el hecho de llevar la documentación de cada estudiante a mano, resulta más desordenado y lento al momento de querer realizar una matricula o una inscripción, incluso una simple búsqueda de un estudiante resulta problemático para el empleado.
Por tal razón hemos elegido contribuir al desarrollo de nuestra universidad con la propuesta de un prototipo de Sistema de Información para PROMECYS. Este programa como centro de enseñanza oferta un servicio académico el cual debe brindarse de la manera más eficiente y confiable para los estudiantes quienes constituyen el eje de la institución. Los procesos donde más se requiere organización y rapidez en el programa son las Matriculas, Inscripciones y las solicitudes de cualquier tipo de certificado por parte de los estudiantes y la realización de éstas actividades actualmente se efectúan de forma manual lo que hace necesario la realizacion de un sistema de información que permita agilizar dichas actividades, que optimice recursos, ahorre tiempo y sobre todo que ofrezca todas las comodidades a los estudiantes.
Se pretende colaborar con la misión de nuestra universidad brindando
un Sistema de Información que contribuya a mejorar la calidad de atención y del trabajo en los procesos de matriculas e inscripciones de asignaturas en PROMECYS. Con este sistema no solo queremos percibir el ahorro de tiempo y el aumento en la calidad de los procesos del programa sino también se procura contribuir al aprovechamiento de los recursos y de los avances tecnológicos de la universidad en general.
Además de ser provechoso para los estudiantes el Sistema de Información también contribuirá beneficiosamente con los empleados de PROMECYS porque todos los trámites que implican llevar acabo las matriculas e inscripciones se realizarán en menos tiempo y la pérdida de información o la incurrencia de errores serán mínimas.
Es importante tomar en cuenta que con la ayuda del Sistema de
Información la universidad tendrá un control exacto e inmediato de todo lo referido a PROMECYS por medio de reportes específicos, esto ayudará a tener una mejor visualización en cuanto al giro que toma el programa con respecto a la cantidad de estudiantes que maneja.
Prototipo del Sistema de Información de PROMECYS
- 3 -
INTRODUCCION
En un mundo donde la información se ha convertido en uno de los recursos más importantes para el desarrollo de las empresas los Sistemas de Información son un recurso cada vez más indispensable no solo para las grandes empresas de negocios sino también para organizaciones de carácter social, político y educativo, debido a su gran adaptabilidad a cualquier tipo de procesos en las diferentes áreas de trabajo.
Cada día se ven nuevos software, nuevos equipos, nuevas maneras de hacer las cosas y generalmente las universidades son las bases de estas innovaciones e investigaciones que en muchas ocasiones llegan a ser de gran ayuda para las empresas de carácter económico. La Universidad Nacional de Ingeniería es una de las universidades mas prestigiosas a nivel nacional y para dar crédito a su lema “líder en ciencia y tecnología” debe estar siempre un paso adelante de las demás, demostrando eficiencia no solo con una educación de calidad sino también en los procesos organizacionales y funcionales de cada uno de los programas, departamentos y servicios que brinda la misma. Es por esta razón que hemos diseñado un Prototipo de un Sistema de Información del proceso de Matricula e Inscripción de Asignaturas en el Programa de Modalidad Especial de La Facultad de Ciencias y Sistemas que ofrece la UNI que actualmente se lleva a cabo de forma manual lo que provoca atraso y pérdida de tiempo tanto para los empleados del mismo como para los estudiantes porque no se optimiza el tiempo del proceso que se realiza, además se tiende a cometer errores que conllevan a la pérdida de información valiosa, esto produce molestias al estudiante. En el documento se describe la problemática actual a partir de la cual se pueden visualizar las necesidades que permiten establecer los requerimientos necesarios para la automatización de los procesos, para lo cual se definió la estructura de la base de datos que es donde los datos están almacenados y además permite manipularlos. También se muestra el diseño de las interfaces que es con las que el usuario va a interactuar, para ello es necesario definir las pautas para luego programarlas y que funcionen de acuerdo a los requerimientos establecidos. Además se podrán emitir reportes a partir de la información que se encuentra almacenada en la base de datos.
Prototipo del Sistema de Información de PROMECYS
- 4 -
MARCO TEORICO
El programa PROMECYS como parte de un centro de enseñanza superior debe estar a la vanguardia de la tecnología de modo que le permita brindar un servicio satisfactorio a su cliente, en este caso el estudiante, para lo cual se crea el prototipo del sistema de matricula e inscripción de asignaturas que brindara al programa la herramienta necesaria para llevar a cabo las actividades de una manera optima y eficiente.
Para la creación del prototipo del sistema de matricula e inscripción de PROMECYS se hace necesario conocer los modelos de desarrollo de software los cuales permiten que el sistema cumpla con los requerimientos para lo cual está siendo creado. Estos modelos son:
Modelo en Cascada: es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.
Las etapas para el desarrollo en cascada son:
Análisis de requisitos
Diseño del Sistema
Diseño del Programa
Codificación
Pruebas
Implantación
Variantes
De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costes del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto.
Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy.
Modelo en Espiral: las actividades de este modelo son una espiral, cada bucle es una actividad. Las actividades no están fijadas a prioridad, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.
Las etapas para llevar a cabo este modelo son:
Determinar o fijar objetivos
Planificar
Prototipo del Sistema de Información de PROMECYS
- 5 -
Análisis del riesgo.
Desarrollar, verificar y validar.
Mecanismos de control.
Las ventajas que se presentan son el que el análisis de riesgo se hace de forma explícita y clara. Une los mejores elementos de los restantes modelos, reduce riesgos del proyecto, incorpora objetivos de calidad e integra el desarrollo con el mantenimiento.
Por otra parte presenta desventajas como la generación de mucho tiempo en el desarrollo del sistema, el modelo es costoso, además requiere experiencia en la identificación de riesgos.
Los Inconvenientes que se presentan es que genera mucho trabajo adicional y esto conlleva a que se generen muchos problemas sobre todo si la compañía que esta produciendo el software no es muy eficiente. Cuando un sistema falla se pierde tiempo y coste dentro de la empresa.
Modelo en V: o método en v que define un procedimiento uniforme para el desarrollo de productos. Es un método de gestión de proyectos y describe tanto métodos para la gestión como para el desarrollo de sistemas.
El Método-V describe las actividades y los resultados que se producen durante el desarrollo del software. Es una representación gráfica del ciclo de vida del desarrollo del sistema. Resume los pasos principales que hay que tomar en conjunción con las correspondientes entregas de los sistemas de validación.
La parte izquierda de la V representa la corriente donde se definen las especificaciones del sistema. La parte derecha de la V representa la corriente donde se comprueba el sistema (contra las especificaciones definidas en la parte izquierda). La parte de abajo, donde se encuentran ambas partes, representa la corriente de desarrollo.
La corriente de especificación consiste principalmente de especificaciones de requerimientos de usuario, especificaciones funcionales y de especificaciones de diseño. La corriente de pruebas, por su parte, suele consistir de calificación de instalación, calificación operacional y calificación de rendimiento. La corriente de desarrollo puede consistir (depende del tipo de sistema y del alcance del desarrollo) en personalización, configuración o codificación.
Modelo de desarrollo incremental: es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo. El desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo.
El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos entre lo que tenemos construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande. Al ir desarrollando
Prototipo del Sistema de Información de PROMECYS
- 6 -
parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos. Por otra parte si un error importante es realizado, sólo la última iteración necesita ser descartada. Al reducir el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo. Si un error importante es realizado, el incremento previo puede ser usado. Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
Modelo de Desarrollo Evolutivo: es como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces denominado como prototipo evolutivo) construye una serie de grandes versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental presupone que el conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume que los requerimientos no son completamente conocidos al inicio del proyecto.
En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y sólo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementación parcial del sistema que recibe sólo estos requerimientos. El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentación a los desarrolladores. Basada en esta retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada. El proceso se repite indefinidamente.
Modelo Concurrente: es como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.
Desarrollo por Etapas: es similar al modelo de prototipos ya que muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.
En el desarrollo por etapas de pueden distinguir las fases de especificación conceptual, análisis de requerimientos, el diseño inicial, el diseño detallado, codificación, depuración y liberación. Estas diferentes fases se van repitiendo en cada etapa del diseño.
El siguiente modelo lo empleamos en PROMECYS, ya que como su nombre lo dice es para realizar un prototipo de lo que será el software una vez terminado y permite al cliente tener una visión de lo que el sistema de información va a realizar, además el cliente puede exponer sus ideas acerca del funcionamiento del mismo y así permitir lo que es la retroalimentación, es muy importante el uso de este modelo porque PROMECYS es un cliente difícil ya que no está
Prototipo del Sistema de Información de PROMECYS
- 7 -
seguro de lo que realmente desea y cambia de opinión constantemente. Para comprender mejor hacemos referencia a la teoría de este tipo de modelo.
Modelo de Prototipos: se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido). El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. El diseño rápido conduce a la construcción de un prototipo, el cual es evaluado por el cliente o el usuario para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La iteración ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.
Las Ventajas que se presentan al hacer uso de este modelo es que es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. También ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.
La construcción de prototipos se puede utilizar como un modelo del proceso independiente, se emplea más comúnmente como una técnica susceptible de implementarse dentro del contexto de cualquiera de los modelos del proceso expuestos. Sin importar la forma en que éste se aplique, el paradigma de construcción de prototipos ayuda al desarrollador de software y al cliente a entender de mejor manera cuál será el resultado de la construcción cuando los requisitos estén satisfechos.
Se puede concluir que a pesar de que tal vez surjan problemas, la construcción de prototipos puede ser un paradigma efectivo para la ingeniería del software. La clave es definir las reglas del juego desde el principio; es decir, el cliente y el desarrollador se deben poner de acuerdo en que el prototipo se construya y sirva como un mecanismo para la definición de requisitos, que se descarten partes del prototipo por decisión mutua del cliente y del que está desarrollando el prototipo.
Después de tener un modelo de desarrollo de software se hace necesaria la utilización de un lenguaje que nos ayude a comprender gráficamente el comportamiento del sistema de información que estamos desarrollando.
El Proceso Unificado Racional (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
Prototipo del Sistema de Información de PROMECYS
- 8 -
El RUP está basado principios claves:
Adaptar el proceso, el proceso deberá adaptarse a las características propias del proyecto u organización. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto.
Balancear prioridades, los requerimientos de los diversos inversores pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un balance que satisfaga los deseos de todos.
Demostrar valor iterativamente, los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados.
Elevar el nivel de abstracción, este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o esquemas (frameworks) por nombrar algunos. Esto previene a los ingenieros de software ir directamente de los requisitos a la codificación de software a la medida del cliente. Un nivel alto de abstracción también permite discusiones sobre diversos niveles arquitectónicos. Éstos se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con UML.
Enfocarse en la calidad, el control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción
Ciclo de vida
El ciclo de vida RUP es una implementación del Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones.
El RUP divide el proceso de desarrollo en ciclos, teniendo un producto final al final de cada ciclo, cada ciclo se divide en fases que finalizan con un hito donde se debe tomar una decisión importante:
Fase de concepción ó inicio, en esta fase se establece la oportunidad y alcance el proyecto. Se identifican todas las entidades externas con las que se trata (actores) y se define la interacción en un alto nivel de abstracción: se deben identificar todos los casos de uso, y se deben describir algunos en detalle. La oportunidad del negocio incluye: definir los criterios de éxito, identificación de riesgos, estimación de recursos necesarios, y plan de las fases. Los productos de esta fase son:
· Un documento de visión general, que incluye los requerimientos generales del proyecto, las características principales, y las restricciones. · El modelo inicial de casos de uso (10% a 20 % listos).
Prototipo del Sistema de Información de PROMECYS
- 9 -
·El glosario. · Caso de negocio, donde se incluye el contexto, los criterios de éxito, y el pronóstico financiero. · Una identificación inicial de riesgos. · Un plan de proyecto. · Uno o más prototipos.
Fase de Elaboración:
Es la parte más crítica del proceso, al final toda la ingeniería “dura” está hecha, se puede decidir si vale la pena seguir adelante, a partir de aquí la arquitectura, los requerimientos y los planes de desarrollo son estables. Ya hay menos riesgos y se puede planificar el resto del proyecto con menor incertidumbre, se construye una arquitectura ejecutable que contemple: los casos de uso críticos y los riesgos identificados. Objetivos:
Analizar el dominio del problema Establecer una arquitectura base sólida Desarrollar un plan de proyecto Eliminar los elementos de mayor riesgo para el desarrollo exitoso
del proyecto Productos:
Modelo de casos de uso (80% completo) con descripciones detalladas.
Otros requerimientos no funcio-nales o no asociados a casos de uso.
Descripción de la Arquitectura del Software. Un prototipo ejecutable de la arquitectura. Lista revisada de riesgos y del caso de negocio.
• Plan de desarrollo para el resto del proyecto. • Un manual de usuario preliminar.
Fase de Construccion
En esta fase todas las componentes restantes se desarrollan e incorporan al producto, todo es probado en profundidad, el énfasis está en la producción eficiente y no ya en la creación intelectual, puede hacerse construcción en paralelo, pero esto exige una planificación detallada y una arquitectura muy estable.
Producto
El producto de software integrado y corriendo en la plataforma adecuada.
Manuales de usuario. Una descripción del “release” actual.
Prototipo del Sistema de Información de PROMECYS
- 10 -
Fase de transición
El objetivo es traspasar el software desarrollado a la comunidad de usuarios. Una vez instalado surgirán nuevos elementos que implicarán nuevos desarrollos (ciclos). Incluye:
Pruebas Beta para validar el producto con las expectativas del cliente Ejecución paralela con sistemas antiguos Conversión de datos Entrenamiento de usuarios Distribuir el producto
Objetivo Obtener autosuficiencia de parte de los usuarios. Concordancia en los logros del producto de parte de las personas
involucradas. Lograr el concenso cuanto antes para liberar el producto al mercado.
Principales características
Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
Pretende implementar las mejores prácticas en Ingeniería de Software Desarrollo iterativo Administración de requisitos Uso de arquitectura basada en componentes Control de cambios Modelado visual del software Verificación de la calidad del software
El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una persona puede desempeñar distintos roles a lo largo del proceso).
Fases
Establece oportunidad y alcance Identifica las entidades externas o actores con las que se trata Identifica los casos de uso
CICLOS DE RUP Requerimientos
Los desarrolladores y clientes deben acordar qué es lo que el sistema debe hacer:
• Relevar requerimientos
Prototipo del Sistema de Información de PROMECYS
- 11 -
• Documentar funcionalidad y restricciones • Documentar decisiones • Identificar actores • Identificar casos de uso • Los casos de uso describen la funcionalidad. • Los requerimientos no funcionales se incluyen en una especificación
complementaria. Analisis y Diseño
Descripción de cómo se implementará el sistema: un plano Debe:
Ejecutar las tareas y funciones descritas en los casos de uso Satisfacer todos los requerimientos Flexible a cambios
El modelo de diseño consta de Clases estructuradas en paquetes Diseños de subsistemas con interfaces definidas
(componentes) Forma de colaboración entre las clases.
Implementacion
Definir la organización del código Implementar clases y objetos en forma de componentes (fuente,
ejecutables, etc.) Probar las componentes desarrolladas Integrar las componentes en un sistema ejecutable
Pruebas
Propósito: Verificar la interacción entre los objetos Verificar la integración apropiada de componentes Verificar que se satisfacen los requerimientos
Identificar los defectos y c
Las pruebas de regresión son importantes en desarrollos iterativos, Rational tiene herramientas para automatizar algunas pruebas.
orregirlos antes de la instalación
RUP describe como planear y ejecutar estas pruebas, propone probar las componentes desde el principio con respecto a la confiabilidad, funcionalidad y performance.
Distribucion Producir un producto y hacerlo llegar a sus usuarios finales, incluye varias actividades:
• Producir un “release” • Empaquetar el software
Prototipo del Sistema de Información de PROMECYS
- 12 -
• Distribuir el software • Instalar el software • Apoyar a los usuarios
A veces también incluye: • Realizar pruebas beta • Migración de datos • Aceptación formal
La mayor parte de la distribución ocurre durante la transición, este es uno de los flujos de trabajo menos documentados en RUP.
Para llevar a cabo esto tomamos como referencia UML,
Lenguaje Unificado de Modelado (UML) que es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes de software reutilizables. UML es la herramienta para realizar el análisis y diseño del sistema de información.
Es importante resaltar que UML es un "lenguaje" para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software. UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. En UML encontramos una variedad de diagramas que se clasifican en:
Diagramas de Estructura: que enfatizan los elementos que deben existir en el sistema modelado. Entre los diagramas de estructura tenemos el diagrama de clases, diagrama de componentes, diagrama de objetos, diagrama de despliegue, diagrama de paquetes.
Diagrama de clases: es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas informáticos donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro. El diagrama de clases contempla una serie de elementos que forman al mismo, como lo son:
Atributos:, son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto. Suponiendo que el objeto es una puerta, sus propiedades serían: la marca, tamaño, color y peso.
Prototipo del Sistema de Información de PROMECYS
- 13 -
Operaciones son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el nombre de un atributo, el nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc.
Interfaz es un conjunto de operaciones y/o propiedades que permiten a un objeto comportarse de cierta manera, por lo que define los requerimientos mínimos del objeto.
Herencia se define como la reutilización de un objeto padre ya definido para poder extender la funcionalidad en un objeto hijo. Los objetos hijos heredan todas las operaciones y/o propiedades de un objeto padre. Por ejemplo: Una persona puede subdividirse en Proveedores, Acreedores, Clientes, Accionistas, Empleados; todos comparten datos básicos como una persona, pero además tendrá información adicional que depende del tipo de persona, como saldo del cliente, total de inversión del accionista, salario del empleado, etc.
Al diseñar una clase se debe pensar en cómo se puede identificar un objeto real, como una persona, un transporte, un documento o un paquete. Estos ejemplos de clases de objetos reales, es sobre lo que un sistema se diseña. Durante el proceso del diseño de las clases se toman las propiedades que identifican como único al objeto y otras propiedades adicionales como datos que corresponden al objeto.
Diagrama de componentes: representa la separación de un sistema de software en componentes físicos (por ejemplo archivos, cabeceras, módulos, paquetes, etc.) y muestra las dependencias entre estos componentes.
Diagramas de objetos: son utilizados durante el proceso de Análisis y Diseño de los sistemas informáticos en la metodología UML. Se puede considerar un caso especial de un diagrama de clases en el que se muestran instancias específicas de clases (objetos) en un momento particular del sistema. Los diagramas de objetos utilizan un subconjunto de los elementos de un diagrama de clase. Los diagramas de objetos no muestran la multiplicidad ni los roles, aunque su notación es similar a los diagramas de clase. Una diferencia con los diagramas de clase es que el compartimiento de arriba va en la forma, Nombre de objeto: Nombre de clase.
Diagrama de despliegue: es un tipo de diagrama del lenguaje unificado de modelado que se utiliza para modelar el hardware utilizado en la implementación de sistemas y las relaciones entre sus componentes. Los elementos usados por este tipo de diagrama son nodos (representados como un prisma), componentes (representados como una caja rectangular con dos protuberancias del lado izquierdo) y asociaciones.
Prototipo del Sistema de Información de PROMECYS
- 14 -
Contiene los nodos y las conexiones que muestran la arquitectura del sistema en tiempo de ejecución a través de procesadores, dispositivos y los componentes de software que se ejecutan en esta arquitectura. Esta es la última descripción física de la topología del sistema, describiendo la estructura de las unidades de hardware y el software que se ejecuta en cada unidad. Los nodos se representan con cubos en tres dimensiones con su nombre en el interior. Si el nodo representa a una instancia en lugar de una clase, el nombre va subrayado. Las conexiones se representan con líneas continuas y contienen el nombre y el estereotipo de la conexión. El nombre es el identificador de la misma y el estereotipo indica el protocolo de comunicaciones entre los dos nodos implicados. Diagrama de paquetes: muestra como un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema. Los Paquetes están normalmente organizados para maximizar la coherencia interna dentro de cada paquete y minimizar el acoplamiento externo entre los paquetes. Con estas líneas maestras sobre la mesa, los paquetes son buenos elementos de gestión. Cada paquete puede asignarse a un individuo o a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo requerido. Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un paquete. Pero para ser funcional, la asignación debe seguir un cierto principio racional, tal como funcionalidad común, implementación relacionada y punto de vista común. UML no impone una regla para componer los paquetes. Los paquetes contienen elementos del modelo al más alto nivel, tales como clases y sus relaciones, máquinas de estado, diagramas de casos de uso, interacciones y colaboraciones; atributos, operaciones, estados, líneas de vida y mensajes están contenidos en otros elementos y no aparecen como contenido directo de los paquetes.
Diagramas de actividad representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. También muestra el flujo de control general. Un diagrama de actividad es utilizado en conjunción con un diagrama de caso de uso para auxiliar a los miembros del equipo de desarrollo a entender como es utilizado el sistema y cómo reacciona en determinados eventos. Lo anterior, en contraste con un diagrama de flujo que ayuda a un programador a desarrollar código a través de una descripción lógica de un proceso. Se pudiera considerar que un diagrama de actividad describe el problema, mientras un diagrama de flujo describe la solución.
Existe una variedad de elementos que componen un diagrama de actividad:
Inicio es representado por un círculo de color negro sólido.
Prototipo del Sistema de Información de PROMECYS
- 15 -
Actividad representa la acción que será realizada por el sistema la cual es representada dentro de un ovalo.
Transición ocurre cuando se lleva acabo el cambio de una actividad a otra, es representada simplemente por una línea con una flecha en su terminación para indicar dirección.
Ramificación ocurre cuando existe la posibilidad que ocurra más de una transición (resultado) al terminar determinada actividad. Este elemento es representado a través de un rombo.
Unión ocurre al fusionar dos o más transiciones en una sola transición o actividad. Este elemento también es representado a través de un rombo.
Expresiones Resguardadas es utilizada para indicar una descripción explicita acerca de una transición. Este tipo de expresión es representada mediante corchetesy es colocada sobre la línea de transición.
Fork representa una necesidad de ramificar una transición en más de una posibilidad. Aunque similar a una ramificación (Branch) la diferencia radica en que un fork representa más de una ramificación obligada, esto es, la actividad debe proceder por ambos o más caminos, mientras que una ramificación (Branch) representa una transición u otra para la actividad (como una condicional).
Diagrama de Caso de uso describe lo que hace un sistema desde el punto de vista de un observador externo, debido a esto, un diagrama de este tipo generalmente es de los más sencillos de interpretar en UML, ya que su razón de ser se concentra en un Que hace el sistema, a diferencia de otros diagramas UML que intentan dar respuesta a un Como logra su comportamiento el sistema.
Un caso de uso está muy relacionado con lo que pudiera ser considerado un escenario en el sistema. Un caso de uso es empleado con más frecuencia en alguna de las siguientes etapas:
Determinación de Requerimientos: Por lo general nuevos requerimientos de sistema generan nuevos casos de uso, conforme es analizado y diseñado el sistema.
Comunicación con el Cliente: Debido a la sencillez de este tipo de diagramas, son fáciles de emplear para comunicarse con el cliente final del proyecto.
Generación de pruebas de Sistemas: A través de los diagramas uso-caso se pueden generar una serie de pruebas de sistema.
Los elementos que son parte del diagrama de caso de uso son:
Actor: representa quien o que inicia una acción dentro del sistema, en otras palabras, es simplemente un rol que es llevado a cabo por una persona o cosa. Un Actor en un diagrama caso de uso es representado por una figura en forma de persona.
Caso de uso: El caso de uso en sí es representado por un ovalo que describe la funcionalidad a grosso modo que se requiere por el sistema.
Prototipo del Sistema de Información de PROMECYS
- 16 -
Comunicación: Este elemento representa la relación que existe entre un caso de uso y un Actor, dicho elemento es representado simplemente por una línea recta que se extiende de la figura del actor hacia el ovalo del uso-caso.
Limite de Sistema (System Boundry): Empleado para delimitar los límites del sistema, y representado por un rectángulo con color de fondo distintivo.
Generalización: indica que un caso de uso (ovalo) es un caso especial de otro caso, en otros términos, representa una relación padre-hijo, donde el hijo puede ser suplido directamente por el padre en cualquier momento. Este elemento es representado por una línea con flecha que se extiende del caso de uso hijo hacia el caso de uso padre (general).
Inclusión: es utilizada para indicar que un caso de uso depende de otro caso. Este elemento es representado por una línea punteada con flecha y comentario <<include>> que se extiende del caso de uso base hacia el caso de uso de inclusión.
Extensión: representa una variación de un caso de uso a otro, aunque similar a una generalización, una extensión representa una dependencia especifica, mientras una generalización no implica que los casos de uso dependen uno del otro. Este elemento es representado por una línea punteada con flecha y comentario <<extend>> que origina del caso de uso base hacia el caso de uso de extensión.
Diagrama de Estados muestra la secuencia de estados por los que pasa bien un caso de uso, bien un objeto a lo largo de su vida, o bien todo el sistema. En él se indican qué eventos hacen que se pase de un estado a otro y cuáles son las respuestas y acciones que genera..
En cuanto a la representación, un diagrama de estados es un gráfico cuyos nodos son estados y cuyos arcos dirigidos son transiciones etiquetadas con los nombres de los eventos. Un estado se representa como una caja redondeada con el nombre del estado en su interior. Una transición se representa como una flecha desde el estado origen al estado destino.
Un diagrama de estados puede representar ciclos continuos o bien una vida finita, en la que hay un estado inicial de creación y un estado final de destrucción (finalización del caso de uso o destrucción del objeto). El estado inicial se muestra como un círculo sólido y el estado final como un círculo sólido rodeado de otro círculo. En realidad, los estados inicial y final son pseudoestados, pues un objeto no puede “estar” en esos estados, pero nos sirven para saber cuáles son las transiciones iniciales y finales.
Diagramas de Interacción: que son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado. Los diagramas que forman parte de este grupo son los diagramas de secuencia y diagramas de colaboración.
Diagramas de secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos en un sistema. Un diagrama de secuencia muestra la
Prototipo del Sistema de Información de PROMECYS
- 17 -
interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. Mientras que el diagrama de caso de uso permite el modelado de una vista del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario, y mensajes pasados entre los objetos. Típicamente uno examina la descripción de un caso de uso para determinar qué objetos son necesarios para la implementación del escenario.
Un diagrama de secuencia muestra los objetos que intervienen en el escenario con líneas discontinuas verticales, y los mensajes pasados entre los objetos como vectores horizontales. Los mensajes se dibujan cronológicamente desde la parte superior del diagrama a la parte inferior; la distribución horizontal de los objetos es arbitraria. Durante el análisis inicial, el modelador típicamente coloca el nombre 'business' de un mensaje en la línea del mensaje. Más tarde, durante el diseño, el nombre 'business' es reemplazado con el nombre del método que está siendo llamado por un objeto en el otro. El método llamado, o invocado, pertenece a la definición de la case instanciada por el objeto en la recepción final del mensaje.
Diagramas de colaboración muestran explícitamente las relaciones de los roles. Por otra parte, un diagrama de colaboración no muestra el tiempo como una dimensión aparte, por lo que resulta necesario etiquetar con números de secuencia tanto la secuencia de mensajes como los hilos concurrentes. Un diagrama de colaboración es también un diagrama de clases que contiene roles de clasificador y roles de asociación en lugar de sólo clasificadores y asociaciones. Los roles de clasificador y los de asociación describen la configuración de los objetos y de los enlaces que pueden ocurrir cuando se ejecuta una instancia de la colaboración. Cuando se instancia una colaboración, los objetos están ligados a los roles de clasificador y los enlaces a los roles de asociación. El rol de asociación puede ser desempeñado por varios tipos de enlaces temporales, tales como argumentos de procedimiento o variables locales del procedimiento. Los símbolos de enlace pueden llevar estereotipos para indicar enlaces temporales.
Un uso de un diagrama de colaboración es mostrar la implementación de una operación. La colaboración muestra los parámetros y las variables locales de la operación, así como asociaciones más permanentes. Cuando se implementa el comportamiento, la secuencia de los mensajes corresponde a la estructura de llamadas anidadas y el paso de señales del programa.
Un diagrama de secuencia muestra secuencias en el tiempo como dimensión geométrica, pero las relaciones son implícitas. Un diagrama de colaboración muestra relaciones entre roles geométricamente y relaciona los mensajes con las relaciones, pero las secuencias temporales están menos claras.
Como otros diagramas, el diagrama de colaboración también se compone de elementos como lo son:
Mensajes: los mensajes se muestran como flechas etiquetadas unidas a los enlaces. Cada mensaje tiene un número de secuencia, una lista
Prototipo del Sistema de Información de PROMECYS
- 18 -
opcional de mensajes precedentes, una condición opcional de guarda, un nombre y una lista de argumentos y un nombre de valor de retorno opcional. El nombre de serie incluye el nombre (opcional) de un hilo. Todos los mensajes del mismo hilo se ordenan secuencialmente. Los mensajes de diversos hilos son concurrentes a menos que haya una dependencia secuencial explícita.
Flujos: Generalmente, un diagrama de colaboración contiene un símbolo para un objeto durante una operación completa. Sin embargo, a veces, un objeto contiene diferentes estados que se deban hacer explícitos. Por ejemplo, un objeto pudo cambiar de localización o sus asociaciones pudieron diferenciarse. Los diferentes símbolos de objeto que representan un objeto se pueden conectar usando flujos "become" o "conversión". Un flujo "become" es una transición, a partir de un estado de un objeto a otro. Se dibuja como una flecha de línea discontinua con el estereotipo "become" o "conversión" y puede ser etiquetado con un número de serie para mostrar cuando ocurre. Un flujo de conversión también se utiliza para mostrar la migración de un objeto a partir de una localización a otra distinta.
Una vez que se realiza el análisis y diseño con la herramienta UML, ya se tiene una visión de los requerimientos del sistema de información, entonces se debe crear la base de datos donde se almacenara la información para posteriormente acceder a los datos de forma rápida y estructurada, para ello se hizo uso del sistema gestor de bases de datos SQL server 2000 que es un potente motor de bases de datos de alto rendimiento capaz de soportar grandes cantidades de registros.
SQL Server instala por defecto seis bases de datos, cuatro de sistema que utiliza SQL Server que son master (guarda información de todas las bases de datos, gestiona usuarios, permisos y parámetros de configuración), model (es la plantilla para crear nuevas bases de datos), tempdb (es un espacio de trabajo temporal para procesar consultas y procesar tareas de SQL Server) y la ultima que es msdb (utilizada por el agente de SQL, mantiene datos de alertas, trabajos, notificaciones y tareas programadas) y dos de ejemplos para poder realizar pruebas. El funcionamiento de este se inicia cuando se necesita recuperar datos de la base de datos se utiliza el lenguaje SQL para efectuar la petición, el sistema gestor de la base de datos procesa la petición SQL, recupera los datos solicitados y los devuelve.
SQL se utiliza para controlar todas las funciones que un sistema gestor de base de datos proporciona a los usuarios, incluyendo entre ellos la definición de datos (permite al usuario definir la estructura y organización de los datos almacenados y de las relaciones entre ellos), la recuperación de datos (SQL permite al usuario o a un programa de aplicación recuperar los datos almacenados de la base de datos y utilizarlos), la manipulación de datos (que permite al o programa usuario o programa de aplicación actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos o modificando datos previamente almacenados), Compartición de datos (SQL se utiliza para coordinar la compartición de datos por parte de usuarios concurrentes,
Prototipo del Sistema de Información de PROMECYS
- 19 -
asegurando que no interfieran unos con otros) y por último la integridad de datos (SQL define restricciones de integridad en la base de datos, protegiéndola así contra corrupción debidas a actualizaciones inconsistentes o fallas del sistema). Por tanto SQL es un lenguaje completo de control e interacción con un sistema de gestión de base de datos.
SQL juega papeles muy importantes, tales como:
SQL es un lenguaje de consultas interactivas, ya que los usuarios escriben ordenes SQL en un programa SQL interactivo para recuperar datos y mostrarlos en la pantalla, proporcionando una herramienta conveniente y fácil de usar para consultas en la base de datos.
SQL es un lenguaje de programación de base de datos, los programadores insertan ordenes SQL en sus programas de aplicación para acceder a los datos de la base de datos. Tanto como en los programas escritos por el usuario como los programas de utilidad de la base de datos (tales como los escritores de informes y las herramientas de entrada de datos).
SQL es un lenguaje de administración de base de datos, el administrador de la base de datos responsable de gestionar una base de datos en un computador utiliza SQL para definir la estructura de la base de datos y para controlar el acceso a los datos almacenados.
SQL es un lenguaje cliente / servidor, se utiliza esta arquitectura para minimizar el tráfico por la red, además permite tanto a las PCs como a los servidores que efectúen mejor su trabajo.
SQL es un base de datos distribuidas, los sistemas de gestión de base de datos distribuidos utilizan SQL para ayudar a distribuir datos a través agraves de muchos sistemas de información conectados. El software de gestión de base de datos de cada sistema utiliza SQL para comunicarse con otros sistemas, enviando peticiones para acceso de datos.
SQL es un lenguaje de pasarela de base de datos, en una red informática con mezcla de diferentes productos DBMS, SQL se utiliza a menudo en una pasarela (gateway) que permite que nuestro producto DBMS se comunique con otro producto.
SQL proporciona comandos del Lenguaje de Definición de Datos (DDL) y el Lenguaje de Manipulación de Datos (DML). Los comandos DDL permiten crear y definir nuevas bases de datos, campos e índices, mientras que los comandos DML permiten crear consultas para ordenar, filtrar y extraer datos de la base de datos.
Las Operaciones DDL o lenguaje de definición de datos incluyen una serie de comandos que pueda utilizar para crear tablas e índices y para modificar tablas agregando o quitando columnas e índices. Los identificadores o nombres de campos, índices o tablas no tienen restricción alguna en cuanto a la forma en que se digiten, lo único que hay que tomar en cuenta son los espacios en blanco o acentos deben ir entre corchetes.
Las Operaciones DML o lenguaje de manipulación de datos se utilizan para recuperar, actualizaros agregar o eliminar registros de tablas. Para estas tareas
Prototipo del Sistema de Información de PROMECYS
- 20 -
se admiten diversas instrucciones pero la mayoría de ellas utilizan la estructura de consulta SELECT.
Una vez realizada la base de datos se procede a elegir el lenguaje de programación que se va a utilizar, en este caso se utiliza Java que es un lenguaje de programación orientado a objetos , con el propósito de crear un lenguaje que pudiera funcionar en redes computacionales heterogéneas ( redes de computadoras formadas por más de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.),y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier máquina o plataforma. Java es toda una tecnología orientada a la programación de software con el cual podemos realizar cualquier tipo de programas. Hoy en día, la tecnología Java ha cobrado mucha importancia en el ámbito de Internet gracias a su plataforma. La tecnología Java está compuesta básicamente por 2 elementos: el lenguaje Java y su plataforma. Como plataforma nos referimos a la máquina virtual de Java (Java Virtual Machine). Una de las principales características que favoreció el crecimiento y difusión del lenguaje Java es su capacidad de que el código fuente funcione sobre cualquier plataforma de software y hardware, es decir, un mismo programa puede ejecutarse en varios sistemas sin tocar el código fuente.
El lenguaje fue diseñado con las siguientes características:
Simple: Elimina la complejidad de los lenguajes como "C" y da paso al contexto de los lenguajes modernos orientados a objetos. La filosofía de programación orientada a objetos es diferente a la programación convencional.
Familiar: Como la mayoría de los programadores están acostumbrados a programar en C o en C++, la sintaxis de Java es muy similar al de estos.
Robusto: El sistema de Java maneja la memoria de la computadora. No hay que preocuparse por apuntadores, memoria que no se esté utilizando, etc. Java realiza todo esto sin necesidad de que uno se lo indique.
Seguro. El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora.
Portable. Como el código compilado de Java (conocido como byte code) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el interprete de Java.
Independiente a la arquitectura. Al compilar un programa en Java, el código resultante un tipo de código binario conocido como byte code. Este código es interpretado por diferentes computadoras de igual manera, solamente hay que implementar un intérprete para cada plataforma. De esa manera Java logra ser un lenguaje que no depende de una arquitectura computacional definida.
Multithreaded. Un lenguaje que soporta múltiples threads es un lenguaje que puede ejecutar diferentes líneas de código al mismo tiempo.
nterpretado. Java corre en máquina virtual, por lo tanto es interpretado.
Prototipo del Sistema de Información de PROMECYS
- 21 -
Dinámico. Java no requiere que compiles todas las clases de un programa para que este funcione. Si realizas una modificación a una clase Java se encarga de realizar un Dynamic Bynding o un Dynamic Loading para encontrar las clases.
Entre las ventajas de utilizar Java están que no se debe volver a escribir el código si se quiere ejecutar el programa en otra máquina, un solo código funciona para todos los browsers compatibles con Java o donde se tenga una Máquina Virtual de java. Además es un lenguaje de programación orientado a objetos y tiene todos los beneficios que ofrece esta metodología de programación. Otra ventaja es que un browser compatible de java deberá ejecutar cualquier programa hecho en java, esto ahorra a los usuarios tener que insertar plug – ins y demás programas que a veces quitan tiempo y espacio en disco. Java es un lenguaje y por lo tanto puede hacer todas las cosas que puede hacer un lenguaje de programación como cálculos matemáticos, procesadores de palabras, bases de datos, aplicaciones graficas, animaciones, sonido, hojas de cálculo, etc. Por último si lo que nos interesa son las páginas web, estas ya no tienen que ser estáticas ya que se les puede poner toda clase de elementos multimedia y permiten un alto nivel de interactividad sin tener que gastar en paquetes de multimedia.
Entre las limitantes que java posee están la velocidad, los programas en java no tienden a ser rápidos, java es un lenguaje de programación y esta es una gran limitante y aunque es orientado a objetos no es fácil de aprender sobre todo para los que no son programadores, como java es nuevo no se conocen bien todas sus capacidades.
Para realizar las interfaces utilizaremos Netbeans que permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software. NetBeans está escrito en Java - pero puede servir para cualquier otro lenguaje de programación
La Plataforma NetBeans es una base modular y extensible usada como una estructura de integración para crear aplicaciones de escritorio grandes. Empresas independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fácilmente en la plataforma y que pueden también utilizarse para desarrollar sus propias herramientas y soluciones. La plataforma ofrece servicios comunes a las aplicaciones de escritrio, permitiéndole al desarrollador enfocarse en la lógica específica de su aplicación. Entre las características de la plataforma están: Administración de las interfaces de usuario (ej. menús y barras de herramientas), Administración de las configuraciones del usuario, Administración del almacenamiento (guardando y cargando cualquier tipo de
Prototipo del Sistema de Información de PROMECYS
- 22 -
dato), Administración de ventanas, Framework basado en asistentes (diálogos paso a paso). NetBeans contiene todos los módulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiéndole al usuario comenzar a trabajar inmediatamente.
Netbeans permite diseñar interfaces de usuario swing de manera intuitiva arrastrando componentes de interfaz de una paleta al área de interfaz, también puede usar el generador GUI para mostrar prototipos de interfaz a los clientes. NetBeans incluye funciones de localización y accesibilidad de interfaces de usuario. Permite crear páginas JSF totalmente funcionales para manipular datos de una base de datos. Compatible con JavaServer Faces (JSF), JavaServer Pages (JSP), unidades de persistencia, Struts y JavaServer Pages Standard Tag Library (JSTL). Incluye un editor visual para los descriptores de ejecución y un supervisor HTTP para depurar aplicaciones web.
Con el modelado UML de NetBeans, los diseñadores pueden centrarse en el diseño de la aplicación, y los desarrolladores, en el código. Primero, los diseñadores y analistas diseñan aplicaciones con UML, un lenguaje de modelado estándar, después, los desarrolladores generan código fuente a partir del modelo UML. También funciona en sentido inverso: es posible actualizar el modelo a partir de cambios realizados en el código fuente.
Netbeans tiene diferentes ventanas del generador de interfaces graficas de usuario que incluyen:
La interfaz grafica de usuario: los botones adicionales de la barra de herramientas permiten acceder cómodamente a los comandos habitual.
Inspector: proporciona una representación, tanto visual como no visual, de todos los componentes de la aplicación en forma de jerarquía de árbol. El inspector también permite visualizar el componente del árbol que se está editando en el generador de interfaces gráficas de usuario, así como organizar los componentes en los paneles disponibles. Paleta, lista personalizable de los componentes disponibles que contiene fichas para los componentes de JavaBeans, JFC/Swing y AWT, así como administradores de diseño. Además, puede crear, eliminar y reorganizar las categorías que se muestran en la paleta utilizando el personalizador.
Ventana de propiedades: muestra las propiedades del componente seleccionado en el generador de interfaces gráficas de usuario y las ventanas Inspector, Proyectos o Archivos.
El enfoque de NetBeans incorpora las mejores características, a fin de garantizar que las aplicaciones creadas con el IDE se adhieran a los estándares de la industria. NetBeans posee numerosas características que hacen que el IDE sea atractivo para cualquier desarrollador, incluyendo la amplia integración de las características específicas de la tecnología Java que no se encuentran disponibles en otros conjuntos de herramientas de aplicaciones multiplataforma. Las características de NetBeans de flexibilidad entre plataformas, el cumplimiento de UML y la capacidad de administrar la complejidad ayudan a garantizar que las aplicaciones cumplan con los requerimientos específicos del negocio. La nueva velocidad de desarrollo
Prototipo del Sistema de Información de PROMECYS
- 23 -
requiere también la visibilidad y confiabilidad del código abierto, conjuntamente con las capacidades de Java.
Para la creación de informes se utiliza JasperReport que es la mejor herramienta de código libre en java para generar reportes. Esta completamente escrita en java y se puede utilizar en una gran variedad de aplicaciones java incluyendo aplicaciones web, para generar contenido dinámico. JasperReport trabaja en forma similar a un compilador y a un intérprete, el usuario diseña el reporte codificándolo en XML de acuerdo a las etiquetas y atributos definidos en un archivo llamado jasperreports.dtd (parte de JasperReport). Usando XML el usuario define completamente el reporte, describiendo donde debe colocar el texto, imágenes, líneas, rectángulos, como adquirir los datos, como realizar ciertos cálculos, etc. Este archivo fuente XML debe ser compilado para obtener un reporte real. La versión compilada del fuente es nombrada “archivo jasper” (este termina con .jasper). un archivo jasper es el compilado de un código fuente. Cuando tenemos un archivo jasper, necesitamos los datos para producir un reporte. Se puede utilizar la librería JasperReport para llenar el reporte en varios entornos como una aplicación web. Jasper tiene disponible un visualizador especial para desplegar la vista previa de un reporte, diseñado para aplicaciones tradicionales de Java basadas en Swing.
iReport es un diseñador visual de código libre para JasperReport escrito en Java. Es un programa que ayuda a los usuarios y desarrolladores que usan la librería JasperReport para diseñar reportes visualmente. A través de una interfaz simple de usar, iReport provee las funciones más importantes para crear reportes en poco tiempo. iReport es de mucha ayuda para los que no conocen la sintaxis XML para generar reportes de JasperReport.
iReport provee a los usuarios de JasperReport una interfaz visual para construir reportes, generar archivos “jasper” y “print” de prueba. iReport nació como una herramienta de desarrollo, pero puede utilizarse como una herramienta de oficina para adquirir datos almacenados en una base de datos, sin pasar a través de alguna otra aplicación. iReport puede leer y modificar ambos tipos de archivo, XML y jasper. A través de JasperReport, es capaz de compilar XML a archivos jasper y “ejecutar reportes” para llenarlos usando varios tipos de fuentes de datos (JRDataSource) y exportar el resultado a PDF, HTML, XLS, CSV. Para que los datos se puedan visualizar en el reporte es necesario descargar las librerías de JasperReport y de iReport, para esto es necesario tener instalado el Jdk 1.4 o superior, no basta con tener instalado el J2RE. Además de ello se debe establecer la conexión entre iReport y la base de datos para lo que se debe proporcionar el driver JDBC correspondiente. Las secciones que componen a un reporte en iReport son title, el título de nuestro reporte debe escribirse en está sección. Solo se mostrará en la primera página del reporte. PageHeader, aparece en la parte superior de cada página. Puede contener información adicional del reporte, descripciones, etc. ColumnHeader, en esta sección se muestran los nombres de los campos que se van a presentar. Detail, en esta sección se despliegan los valores
Prototipo del Sistema de Información de PROMECYS
- 24 -
correspondientes a los nombres de los campos definidos en la sección anterior. ColumnFooter, puede presentar información de totales para algunos de los campos de la sección detail. PageFooter, aparece en la parte inferior de cada página. Este parte puede presentar, la fecha, número de página del reporte. Summar, esta sección puede presentar totales de campos de la sección detail, si se desea incluir algún gráfico en el reporte, debe hacerse en esta sección. JasperReports no maneja directamente gráficos, estos deben crearse independientemente como imágenes, incluso utilizando una de las numerosas librerías de código libre disponibles para la creación de gráficos. La imagen producida será mostrada usando un componente de imagen. La idea es realmente simple, pero la creación de un gráfico en tiempo de ejecución requiere de un buen conocimiento de la programación de JasperReports, y muchas veces es necesario utilizar scriptlets capaces de colectar los datos que se mostrarán en el gráfico.
Prototipo del Sistema de Información de PROMECYS
- 25 -
CAPITULO I:
MODELO DE REQUERIMIENTOS
“El tiempo más rentable es el de Planificar y Preparar”
Prototipo del Sistema de Información de PROMECYS
- 26 -
ENTORNO DE LA EMPRESA:
ANTECEDENTES
PROMECYS es un programa de modalidad especial dentro de la facultad de ciencias y sistemas de la Universidad Nacional de Ingeniería, el cual brinda la oportunidad de cursar la carrera de ingeniería de Sistemas a bachilleres, técnicos o profesionales del área administrativa e informática que laboran en alguna empresa o poseen su propio negocio. Este programa se origino en el año 1997, con el propósito de dar respuesta a una creciente demanda de profesionalización en una gran parte de la población laboral, así como aminorar la brecha existente entre los bachilleres que ingresan a las universidades estatales como también a los que quedan fuera del sistema regular universitario. La carrera consta de cinco años sin incluir la culminación de estudios, para esto el estudiante tiene la opción de realizar monografía o bien cursos de titilación clasificados en Mercadotecnia, Sistemas de Información y Calidad. En esta modalidad el año académico está dividido en cuatrimestres, cada cuatrimestre tiene una duración de 14 semanas con derecho a llevar 4 asignaturas por cuatrimestre. El pensum de estudio consta de 57 asignaturas, impartidas con un promedio de 12 asignaturas por cada año académico. PROMECYS brinda servicios adicionales como: programas de becas, orientados para aquellos alumnos de escasos recursos económicos y que alcancen un promedio mayor a 70% en cada asignatura. Para la mayor comodidad para nuestros alumnos, la facultad de ciencias y sistemas cuenta con cinco salas para laboratorio, la mayoría con acceso a Internet. El acceso libre a los laboratorios se da a través de tarjetas con precios módicos. Por las características que presenta esta modalidad es de vital importancia la elaboración de módulos de estudio por asignatura para la consolidación de los conocimientos adquiridos por los estudiantes durante los encuentros. También se impulsa a los estudiantes a desarrollar sus habilidades artísticas de los estudiantes mediante grupos de folklore, cultura y deportes.
Prototipo del Sistema de Información de PROMECYS
- 27 -
Por ultimo se contribuye a consolidar y actualizar los conocimientos de los estudiantes en el área informática, se sirven cursos libres en los siguientes campos:
SQL Server Internet Visual Basic Técnicas en diseño grafico Diseño de paginas Web Windows 98 y 2000 Office Mantenimiento preventivo y correctivo de computadoras
El lema es “Formando para la era del Conocimiento”.
MISION PROMECYS
La facultad de ciencias y sistemas es una entidad de la Universidad Nacional de Ingeniería, con excelencia académica, dedicada a la formación de profesionales altamente calificados en Ingeniería de Sistemas brindando una sólida preparación básica-científica-humanística a los estudiantes de Ingeniería y arquitectura, capaces de enfrentar las demandas del desarrollo social y tecnológico del país y la región. VISION PROMECYS Ser una facultad con excelencia académica, promotora de investigación científica y tecnológica, permitiendo intercambiar experiencias con las facultades y el sector productivo del país y la región. OBJETIVOS DE PROMECYS
Atender las demandas de profesionales en las empresas que deseen continuar profesionalizándose.
Dar respuesta a la demanda de bachilleres que no tienen acceso a las
universidades vía examen de admisión.
Atender la demanda de estudiantes de Ingeniería que son trabajadores y necesitan culminar sus estudios.
Prototipo del Sistema de Información de PROMECYS
- 28 -
ESTRUCTURA ORGANIZACIONAL
Prototipo del Sistema de Información de PROMECYS
- 29 -
DESCRIPCION DEL PROBLEMA
Actualmente el Programa de Modalidad Especial de La Facultad de
Ciencias y Sistemas (PROMECYS) realiza sus procesos de forma manual, al ser este un programa de carácter educativo implica el manejo de abundante información de los estudiantes que forman parte del mismo, esto deja en evidencia el manejo inadecuado que se le da a la información ya que no se tiene un control exacto sobre la valiosa información que el programa manipula como los datos de los estudiantes, de los trabajadores, las notas que obtienen los estudiantes, datos de los profesores, etc.
Uno de los procesos importantes que se llevan a cabo es el proceso de matricula que se realiza también de forma manual lo que provoca que dicho proceso sea lento, además de ello se tienden a cometer errores en la escritura ya que por la rapidez del proceso pueden ocurrir equivocaciones en el llenado de la hoja de matricula que es uno de los requisitos a cumplir, también se puede dar el caso de que la letra con que se ha llenado dicha hoja no sea legible o entendible lo que provoca atraso ya que se tiene que recurrir a la persona que la llenó para verificar los datos o información plasmada. La realización del proceso de matricula de forma manual resulta incomoda para el estudiante así como también para el empleado de PROMECYS por que provoca pérdida de tiempo al llevar a cabo la misma.
Debido a la forma en que se lleva a cabo el proceso de matricula no se
puede tener con exactitud el registro de alumnos que tiene este programa, ya que resulta difícil y trabajoso contar el total de estudiantes que tiene PROMECYS, cuantos hay de primer ingreso, cuantos son traslados, cuantos provienen directamente de la secundaria, cuantos están cursando su segunda carrera, cuantos son varones y cuantos mujeres, no hay control de cuantos estudiantes desertan y cuantos egresan de la carrera, todos estos datos son de suma importancia para el programa por que les permite tener datos estadísticos exactos en cuanto al programa se refiere.
Al igual que el proceso de matricula la realización del proceso de
inscripción de asignaturas se lleva a cabo de forma manual lo que significa atraso ya que para que el estudiante pueda llevar una asignatura el trabajador de PROMECYS debe verificar si se cumple con el prerrequisito y la precedencia de la asignatura a inscribir lo que se verifica con el pensum de la carrera y a la vez se revisan las notas de cada uno de los estudiantes que también se registran de forma manual lo que conlleva a realizar dicho proceso de manera lenta y tediosa para el trabajador de PROMECYS así como incomoda para los estudiantes por el tiempo que se toma realizar este proceso.
Al llevar a cabo los procesos de forma manual se tienden a cometer
errores en todos los aspectos los registros corren el riesgo de perderse o dañarse, es común que en la manipulación de la información las notas se pierdan o confundan esto perjudica en gran manera al estudiante por que las notas son consideradas información delicada y son el indicio o pasaporte que
Prototipo del Sistema de Información de PROMECYS
- 30 -
permite inscribir o no las asignaturas establecidas de acuerdo al año que cursen los estudiantes.
Otra dificultad que se presenta en PROMECYS es la realización de reportes ya que la recopilación de la información es tardada, para realizar constancias de notas o historiales académicos el tiempo de entrega es extenso debido a lo difícil que se hace la búsqueda de la información por alumno.
PROMECYS como un programa que ofrece sus servicios a los
estudiantes considera de suma importancia que se facilite el acceso al mismo desde las diferentes perspectivas para el estudiante, quién busca un servicio optimo y preciso sin pérdidas de tiempo de modo que maximice el mismo y asegure la calidad del servicio brindando de este modo satisfacción en la atención a los estudiantes, lo que se puede obtener a través de un sistema que permita acortar los tiempos del proceso, disminuir errores y evitar molestias al estudiante y atrasos innecesarios a los funcionarios del programa logrando de este modo un trabajo en conjunto satisfactorio para ambas partes y optimizando así tiempo y recursos disponibles.
PROMECYS presenta debilidades en el proceso de matricula debido a
que esta es realizada también de forma manual por lo tanto los tiempos de atención son mas extensos y se tiende a cometer errores lo que contribuye a la lentitud del proceso de matricula e inscripción, esta debilidad se da a nivel de dirección ya que esta no se ha preocupado por la creación de un software que facilite el proceso y mas aun que haga de este una herramienta que le permite optimizar el tiempo, además de no contar con el proceso de matricula e inscripción de asignaturas automatizados hace de PROMECYS un programa atrasado y por ende provoca inconformidad entre algunos estudiantes debido a las molestias por las que se tiene que pasar para poder ser parte del programa.
Para erradicar la inconformidad del cliente (estudiante) es preciso hacer uso de la tecnología de modo que permita agilizar el proceso de matricula e inscripción de asignaturas, ahorrando tiempo y optimizando los recursos que como programa debe aprovechar para dar mayor confiabilidad y credibilidad a los estudiantes acerca de la información que PROMECYS maneja, esto se logra con la implementación de un sistema de información que registre el proceso de matricula e inscripción de asignaturas, el registro de las asignaturas, registro de notas, registro de profesores, registro de trabajadores, etc evitando así atrasos e inconformidad a los estudiantes.
Cuando se oferta un servicio como es el caso de PROMECYS es
indispensable que este sea optimo, permitiendo así la satisfacción de los estudiantes para evitar que estos busquen otras opciones, por lo que se deben ofrecer todas las comodidades posibles de acuerdo a las necesidades que demandan los estudiantes de este modo se permitirá una mayor atención de los mismos obteniendo así resultados exitosos que son de gran beneficio para el programa.
Prototipo del Sistema de Información de PROMECYS
31
DESCRIPCION DEL SISTEMA DE NEGOCIOS
Para ingresar al Programa de Modalidad Especial de la Facultad de Ciencias y Sistemas el estudiante debe realizar ciertas actividades durante el proceso de matrícula. La información recopilada en dichas actividades se registran en documentos es decir se lleva un control manual.
El proceso inicia con la prematrícula, en el cual el estudiante debe presentar el recibo de pago de prematrícula, seguidamente se debe llenar sus datos en una hoja de formato, luego el empleado de PROMECYS debe entregar una constancia que indica que la prematricula se ha realizado, esta actividad la realizan solamente los estudiantes de primer ingreso. Una vez que se ha finalizado la prematrícula se envía la lista de estudiantes a Registro Central de la UNI para obtener los números de carnet que se asignaran a cada uno de los estudiantes de PROMECYS. La siguiente actividad a realizar es la matrícula en la que se hace oficial el ingreso del estudiante, para ello, se debe presentar el recibo de pago de matrícula, se llenan los datos en el formato el cual contiene los ítems de datos personales y datos generales además del tercer ítem Inscripción de clases. La matricula se realiza una vez por año y la inscripción tres veces al años en cada inicio de cuatrimestre.
Dentro de los datos personales se deben especificar los nombres y apellidos, estado civil, sexo, lugar, fecha de nacimiento, nacionalidad, departamento, municipio, dirección habitual, numero de teléfono, e-mail, fax, celular. Luego se llenan los datos de la información general, tales como: centro de estudio de secundaria, tipo de centro (estatal, autónomo, privado y subvencionado), el tipo de estudiante que puede ser ordinario, becario y trabajador, también se debe especificar la situación escolar que indica si el estudiante es de nuevo ingreso, reingreso, traslado interno, traslado externo, si esta continuando la carrera o si es su segunda carrera, son datos importantes para el programa de modo que se maneje un control con la información concerniente a cada uno de los estudiantes que integran el mismo.
Seguidamente se deben indicar las asignaturas a inscribir aquí el empleado verifica si la asignatura solicitada por el estudiante cumple con los requisitos y precedencia del pensum de la carrera, si la asignatura no cumple con dichos requerimientos el estudiante no podrá inscribir las asignaturas. En caso de primer ingreso se inscriben todas las asignaturas del primer cuatrimestre. Cuando se realizan las inscripciones se van contabilizando la cantidad de alumnos asignados a cada grupo especificado de acuerdo a las asignaturas inscritas, una vez que un grupo ha llegado al limite de alumnos se crea otro para ubicar a los demás para que no quede ninguno sin ubicación. El registro de notas se realiza en hojas que contienen un formato, en la cual el profesor indica las notas que obtuvo cada estudiante, luego este formato es entregado al empleado de PROMECYS quien se encarga de guardarlo. Además se realizan registro de los profesores que imparten las asignaturas de esta modalidad.
Prototipo del Sistema de Información de PROMECYS
32
DESCRIPCIÓN DEL SISTEMA INFORMÁTICO
Con el propósito de ahorrar tiempo y brindar satisfacción al estudiante supliendo todas sus necesidades se propone la implementación de un sistema de información que controle las matriculas e inscripción de asignaturas.
Dentro de las funciones que se necesita que realice el sistema de información está almacenar todas las prematrículas realizadas, en donde se introducirán la información de los estudiantes, es decir datos personales, datos laborales, para los estudiantes que trabajan.
El registro de matrícula es otra de las actividades que se realizarán, previo
a la matrícula se debe tener registrado la prematrícula de cada estudiante a ingresar a PROMECYS, entre los datos que ingresan en esta actividad están el año de curso, cuatrimestre y la inscripción de asignaturas. Cabe agregar que no siempre que se realice matrícula se deben inscribir las asignaturas, esta actividad de inscripción se puede realizar por aparte, además permite actualizar datos de los estudiantes.
La inscripción de asignaturas también estará comprendida en el sistema,
éste proceso introducirá las materias que el estudiante llevará en el cuatrimestre además mostrará cuales son las asignaturas que el estudiante puede inscribir. En caso de las asignaturas reprobadas, no se permitirá la inscripción de la asignatura posterior. Esta actividad también permite actualizar los datos de los estudiantes.
Las asignaturas que conforman la carrera se podrá visualizar en el
sistema, por lo que será más fácil el acceso del usuario, ya que también se especificará la precedencia y el requisito, es decir que al momento de inscribir el usuario podrá consultar las asignaturas que corresponden en cada cuatrimestre teniendo como referencia el pensum de la carrera.
Se llevará registro de docentes que laboran para PROMECYS donde se
indicará las asignaturas que imparten, como también el estado del docente si está actualmente laborando o no. De igual manera se almacenará los datos de los empleados, especificando el cargo que ocupan, de esta manera se puede tener a la disposición de los empleados del programa para cualquier consulta. También se podrá consultar notas ya que al finalizar cada cuatrimestre se deben introducir las notas de los estudiantes los cuales han sido registrados durante el proceso de matrícula.
El sistema también será capaz de generar reportes como:
Hoja de prematrícula por estudiante Hoja de matrícula por estudiante Estudiantes Prematriculados Estudiantes Matriculados Grupos de la carrera Estudiantes Becados Datos de Profesor Datos de empleado
Prototipo del Sistema de Información de PROMECYS
33
Asignaturas impartidas por grupos Notas de los estudiantes Hoja de Inscripción Estudiantes trabajadores Estudiantes sin Carnet Estudiantes Hombres Estudiantes Mujeres Notas por cuatrimestre Estudiantes por año
Prototipo del Sistema de Información de PROMECYS
34
CAPITULO II:
ANALISIS DEL SISTEMA
“Si comienza a planificar, no te desanimes si te equivocas muchísimo.”
Prototipo del Sistema de Información de PROMECYS
35
DIAGRAMAS DE ACTIVIDAD Los diagramas de actividad representan el modelo actual que sigue PROMECYS, el cual es llevado a cabo de forma manual para realizar los procesos que componen el funcionamiento del mismo. Los diagramas de actividad que representan los procesos principales de PROMECYS son el de prematricula, matricula, inscripción y solicitud del certificado de notas. En todos los procesos se realiza una interacción entre el estudiante y el empleado. Estos diagramas permiten al programador tener una visión de cómo funciona actualmente PROMECYS para luego poder crear un modelo a seguir que sea más eficiente de modo que permita agilizar los procesos y estos se puedan realizar en menor tiempo. En el funcionamiento actual podemos distinguir a través de los diagramas que se realiza trabajo innecesario. En el diagrama de prematricula se registra la prematricula y se llena una hoja con todos los datos del estudiante y en el diagrama de matricula se verifica si la prematricula existe para poder realizar la matricula y de nuevo se vuelve a llenar la hoja con todos los datos del estudiante, esto se da para actualizar los datos del mismo, pero se realiza dos veces en un periodo corto de tiempo este es un problema porque se almacena información redundante. El diagrama de actividad del proceso inscripción refleja que para poder inscribir es necesario cumplir con el pensum, pero esto se hace complejo porque al hacerlo manual, si una de las asignaturas a inscribir no cumple los requerimientos no puede inscribir la asignatura y el empleado debe revisar el pensum para indicarle que otras asignaturas puede llevar y para esto se toma su tiempo porque le toca comparar con los registros de notas. El proceso para la solicitud del certificado de notas es demorado porque cuando el estudiante llega a solicitarlo el empleado debe verificar que las notas hayan sido registradas, entonces el empleado recaba todas las notas que han sido solicitadas por el estudiante para luego realizar el certificado. Con los diagramas de actividad se pueden visualizar las dificultades por las que pasa PROMECYS para poder realizar las actividades que a menudo se llevan a cabo, ya que estas se hacen en un tiempo prolongado y se puede percibir que no satisfacen las necesidades inmediatas de los estudiantes.
Prototipo del Sistema de Información de PROMECYS
36
ESTUDIANTE
Solicita Prematricula y entrega reciboRevisa recibo prematricula
Llena hoja datos estudiantesRegistra nuevo estudiante
Recibe hoja prematriculaAgregar nueva prematricula
DIAGRAMAS DE ACTIVIDAD Proceso Prematricula PROMECYS
TRABAJADOR
Prototipo del Sistema de Información de PROMECYS
37
Solicita matricula y entrega recibo Verifica recibo y datos prematricula
registra matricula
recibe hoja matricula
llena hoja datos estudiante registra nuevo estudiante
registra nueva matricula
recibe hoja matricula
revisa recibo prematricula
DIAGRAMA DE ACTIVIDAD Proceso de Matricula PROMECYS
ESTUDIANTE EMPLEADO
Existe prematricula
si no
Prototipo del Sistema de Información de PROMECYS
38
llena hoja inscripcion revisa inscripcion
registra inscripcionrecibe hoja de inscripcion
DIAGRAMA DE ACTIVIDAD Proceso de Inscripción asignaturas PROMECYS
ESTUDIANTE EMPLEADO
Cumple con prerrequisito y precedencia
si
no
Prototipo del Sistema de Información de PROMECYS
39
ESTUDIANTE
Solicita notas verifica disponibilidad de notas
realizar certificado de notasrecibe certificado de notas
DIAGRAMA DE ACTIVIDAD Proceso Imprimir Certificado de Notas PROMECYS
EMPLEADO
Notas disponibles?
si
no
Prototipo del Sistema de Información de PROMECYS
40
DIAGRAMA DE CASO DE USO El diagrama de caso de uso se realiza para mostrar el funcionamiento del sistema de información que estamos proponiendo para dar solución a las dificultades que PROMECYS se está enfrentando. Este diagrama muestra que el único que tendrá interacción con el sistema es el empleado y que el estudiante únicamente recibirá lo que el sistema devuelve como las hojas de prematricula, de matrícula y las de inscripción. Al implementar el sistema de información los procesos se podrán realizar de manera rápida y eficiente y se beneficiaran tanto los empleados porque realizan más trabajo en menos tiempo, como los estudiantes porque las respuestas a sus solicitudes serán dadas en un tiempo mínimo. A través de los casos de uso que componen el diagrama podemos ver la secuencia de las acciones que se llevan a cabo en determinado momento. En el diagrama se reflejan los procesos que el sistema podrá llevar a cabo, entre estos está el de prematricula aquí se puede ver la lista de personas que han realizado este proceso, los datos almacenados pueden ser modificados, también se toman los datos de los posibles estudiantes, cuando ya se hace la matricula estas personas pasan a ser estudiantes y los datos de los pre matriculados pasan a la matricula, es entonces que pasan a ser estudiantes, también está la posibilidad de actualizar los datos del estudiante pero aquí los datos solo se modificaran de modo que la información almacenada no sea repetida. El proceso de inscripción es mucho más fácil ya que solo se indicara el año y cuatrimestre a cursar y al cargar la inscripción el sistema podrá mostrar las asignaturas que pueden ser inscritas. En el caso de las notas se facilitara la búsqueda, ya que estas están disponibles de forma rápida, la entrega certificados será en un tiempo mínimo. Hay información que es relevante para PROMECYS por la frecuencia con la que son solicitadas por sus estudiantes tal es el caso de los profesores que ya sea para consultas o reclamos los estudiantes siempre piden información de estos. También es relevante tener a la brevedad posible toda la información de las asignaturas (es decir pensum) que conforman la carrera que se oferta ya que también es solicitada. Por otra parte para manejar un mejor control dentro de PROMECYS es necesario contar con la información de los empleados, de la cantidad de grupos que tiene el programa y de que profesores imparten que asignaturas en que grupos. Como podemos darnos cuenta un sistema de información facilita en gran manera la realización de los procesos en PROMECYS, y hace de esta un programa competitivo y eficiente a la altura de cualquier centro de educación superior.
Prototipo del Sistema de Información de PROMECYS
41
Ingresar datos laborales
Modificar prematricula
Ingresar datos laboralesActualizar datos estudiantesextend
Buscar estudiantes nuevo ingreso
Buscar estudiantes reingreso
Botar asignatura
Ingresar datos estudiantes
extend
Buscar estudiantes prematriculados
extend
Buscar estudiante
Empleado
Registrar Prematricula
extend
extend
Registrar Matricula
extend
extend
extend
include
Registrar inscripcion
include
extend
extend
Registrar notas
include
extend
Imprimir hoja Prematricula
extend
Imprimir hoja matricula
extend
Imprimir hoja inscripcionextend
Estudiante
Imprimir certificado
extend
Imprimir reporte
Registrar prerequisito
Registrar precedencia
Imprimir pensum
Imprimir reporte
Registrar empleado
extend
Registrar asignatura
extend
extend
extend
Registrar grupo
Relacionar grupo_asignatura_profesor
extend
buscar profesor
Imprimir reporte
Registrar profesor
extend
extend
Empleado
Prototipo del Sistema de Información de PROMECYS
42
PLANTILLAS, DIAGRAMAS DE SECUENCIA Y DIAGRAMAS DE COLABORACION Cuando se identifican los casos de uso se deben describir de forma contextual a través de plantillas, se definen los actores que interactúan y en estas también se mencionan los escenarios de cada caso de uso, los escenarios son las posibles situaciones por las que puede pasar un caso de uso, en las plantillas está la información de todos los casos de uso principales y de los escenarios que cada uno de estos casos de uso tiene, en todos los escenarios el único actor que interactúa con el sistema es el empleado. Una vez que definimos todas las plantillas se continúa con la creación de los diagramas de secuencia que se realizan en correspondencia a cada escenario de cada caso de uso que ha sido definido, los diagramas de secuencia muestran de una manera clara la funcionalidad del prototipo que ha sido creado. Los diagramas de secuencia muestran desde que el empleado ingresa los datos hasta el camino que estos recorren para llegar hacia donde serán almacenados, de igual manera pasa cuando los datos son consultados y modificados. También se puede visualizar que el empleado interactúa solo con las interfaces del sistema en dependencia de los procesos que desea utilizar (de ahí la información busca el camino indicado según las instrucciones establecidas), la interfaces se relacionan con los registros que es donde la información esta almacenada. Los diagramas de secuencia nos permiten explicarle al cliente como funcionara el sistema ya que son sencillos y fáciles de entender y así este (Promecys) nos ha exteriorizado sus sugerencias con respecto a lo que desea. Para cada diagrama de secuencia que ha sido creado, corresponde un diagrama de colaboración que se crea a partir del mismo, este diagrama es mas explicito ya que muestra la secuencia de los mensajes enumerados para poder ver las acciones de forma consecutiva que se realizan entre los objetos y el empleado de PROMECYS.
Prototipo del Sistema de Información de PROMECYS
43
CASO DE USO: : Registro de Prematricula
DEFINICIÓN : Es el proceso que permite a un estudiante asegurar el cupo en la universidad y es el primer paso que se debe llevar a cabo para formar parte de la universidad.
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Empleado de PROMECYS que brinda atención al estudiante.
Estudiante Persona interesada en pertenecer al programa para poder concluir una carrera. Es quien solicita los servicios académicos que brinda la Universidad.
ESCENARIO #1 Nombre : Agregar Prematricula sin inconvenientes
Pre-Condiciones : -Recibo de Prematricula. - Cumplir con requisitos de prematricula
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : Hoja de Prematricula
Operaciones : 1. Activar interfaz registro de prematricula. 2. Registrar los datos del nuevo estudiante. 3. Guardar
ESCENARIO #2
Nombre : Prematricula de un registro existente
Pre-Condiciones : -Recibo de Prematricula -Cumplir con requisito de Prematricula
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : Hoja de Prematricula
Operaciones :
1. Activar interfaz registro de Prematricula. 2. Buscar registro de estudiante. 3. Actualizar datos estudiante y prematricula. 4. Registrar la inscripción y guardar.
ESCENARIO #3 Nombre : Imprimir hoja Prematricula
Pre-Condiciones : -Prematricula exista
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :
1. Activar interfaz de registro de Prematricula 2. Buscar registro de prematricula y mostrar 3. Imprimir hoja prematricula
Prototipo del Sistema de Información de PROMECYS
44
CASO DE USO: : Registro de Matricula
DEFINICIÓN : Es el proceso que permite al estudiante formar parte del programa y se realiza después de la prematricula, este proceso se lleva a cabo una vez al año.
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es la persona de PROMECYS que brinda atención al estudiante. ESCENARIO #1
Nombre : Registro de Matricula de Primer ingreso
Pre-Condiciones : - Recibo de matricula - Cumplir con prematricula
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : - Hoja de Matricula e inscripción
Operaciones
1. Activar interfaz de Matricula 2. Buscar datos prematricula 3. Ingresar datos matricula 4. Ingresar datos primera inscripción 5. Guardar
ESCENARIO #2
Nombre : Registro de Matricula de Reingreso
Pre-Condiciones : - Recibo de matricula Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : - Hoja de Matricula e inscripción
Operaciones
1. Activar interfaz de Matricula 1. Buscar datos de estudiante 2. Registrar matricula 3. Registrar inscripción 6. Guardar
Prototipo del Sistema de Información de PROMECYS
45
ESCENARIO #3
Nombre : Actualizar datos Estudiante
Pre-Condiciones : - ninguna Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : - ninguna
Operaciones
1. Activar interfaz de Matricula 2. Activar interfaz Datos estudiantes 3. Actualizar datos 4. Guardar
ESCENARIO #4
Nombre : Imprimir hoja matricula
Pre-Condiciones : - Matricula exista Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : - ninguna
Operaciones
1. Activar interfaz de Matricula 5. Activar interfaz reporte matricula 6. Mostrar hoja matricula 7. Imprimir hoja matricula
Prototipo del Sistema de Información de PROMECYS
46
CASO DE USO: : Registro de Inscripción
DEFINICIÓN : Permite registrar las inscripciones que se hacen cada cuatrimestre en correspondencia a cada matricula
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado es el que brinda atención al estudiante y permite llevar a cabo los procesos que comprende el programa
ESCENARIO #1 Nombre : Inscripción sin inconvenientes
Pre-Condiciones : Recibo de arancel del mes en curso Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : Hoja de Inscripción
Operaciones :
1. Activar interfaz de Inscripción 2. Buscar datos de estudiantes 3. Introducir datos de inscripción 4. Guardar registro de inscripción
ESCENARIO #2
Nombre : Botar asignatura inscrita
Pre-Condiciones : Tener previa Inscripción Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : Hoja de inscripción
Operaciones :
1. Activar la interfaz registro de inscripción 2. Buscar datos estudiantes e inscripción 3. Modificar datos inscripción 4. Guardar
ESCENARIO #3
Nombre : Imprimir hoja inscripción Pre-Condiciones : Inscripción exista
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :
1. Activar interfaz de Inscripción 2. Activar interfaz de reporte inscripción 3. Mostrar hoja inscripción 4. Imprimir hoja inscripción
Prototipo del Sistema de Información de PROMECYS
47
CASO DE USO: : Registro de Notas
DEFINICIÓN : Permite almacenar las notas de las asignaturas que van cursando los alumnos de Promecys
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el que lleva a cabo todos los procesos en Promecys ESCENARIO #1
Nombre : Ingresar notas
Pre-Condiciones : Haber inscrito la asignatura
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :
1. Activar interfaz registro nota 2. Buscar datos estudiante 3. Introducir datos notas 3. Guardar registro
ESCENARIO #2
Nombre : Imprimir Certificado de notas
Pre-Condiciones : ninguna Iniciado por : Empleado
Finalizado por : Empleado Post_Condiciones : ninguna
Operaciones :
1. Activar interfaz de Notas 2. Buscar datos notas 3. Activar interfaz reporte de notas 4. Mostrar reporte de notas 5. Imprimir reporte de notas
Prototipo del Sistema de Información de PROMECYS
48
CASO DE USO: : Registro Asignatura
DEFINICIÓN : Permite almacenar los datos de las asignaturas que forman parte de la carrera
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el que lleva a cabo todos los procesos en Promecys ESCENARIO #1
Nombre : Asignar prerrequisito
Pre-Condiciones : ninguna
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :
1. Activar interfaz Asignatura 2. Buscar datos de asignatura 3. Activar interfaz prerrequisito y seleccionar dato
3. Guardar registro ESCENARIO #2
Nombre : Asignar precedencia
Pre-Condiciones : ninguna Iniciado por : Empleado
Finalizado por : Empleado Post_Condiciones : ninguna
Operaciones :
1. Activar interfaz asignatura 2. Buscar datos asignatura 3. Activar interfaz precedencia y seleccionar dato 4. Guardar registro
ESCENARIO #3 Nombre : Imprimir pensum
Pre-Condiciones : ninguna
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :
1. Activar interfaz Asignatura 2. Activar interfaz reporte asignaturas (pensum) 3. Mostrar reporte de asignaturas (pensum) 4. Imprimir reporte
Prototipo del Sistema de Información de PROMECYS
49
CASO DE USO: : Registrar grupo
DEFINICIÓN : Permite tener registros de los grupos que han sido asignados de acuerdo a la cantidad de alumnos
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el encargado de llevar a cabo todos los procesos de Promecys. ESCENARIO UNICO
Nombre : Registrar grupo
Pre-Condiciones : Ninguna Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : ninguna
Operaciones :1. Activar interfaz Grupo 2. Registrar grupo 3. Guardar registro
Prototipo del Sistema de Información de PROMECYS
50
CASO DE USO: : Registro de Profesor
DEFINICIÓN : Permite almacenar los datos de los docentes de imparten clase a los diferentes grupos de Promecys.
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el que lleva a cabo todos los procesos en Promecys ESCENARIO #1
Nombre : Ingresar datos nuevo Profesor
Pre-Condiciones : ninguna
Iniciado por : Empleado Finalizado por : Empleado
Post-Condiciones : ninguna
Operaciones :1. Activar interfaz registro de Profesor 2. Introducir datos de profesor
3. Guardar registro
ESCENARIO #2 Nombre : Imprimir reporte de registro Profesor
Pre-Condiciones : ninguna Iniciado por : Empleado
Finalizado por : empleado Post_Condiciones : ninguna
Operaciones :
1. Activar interfaz Registro de Profesor 2. Activar interfaz reporte Profesor
3. Mostrar reporte profesor 4. Imprimir reporte profesor
Prototipo del Sistema de Información de PROMECYS
51
CASO DE USO: : Registro Empleados
DEFINICIÓN : Permite registrar los empleados que forman parte del programa para llevar un mejor control de la información de los mismos.
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el encargado de llevar a cabo todos los procesos de Promecys. ESCENARIO #1
Nombre : Ingresar datos nuevo empleado
Pre-Condiciones : Ninguna Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : ninguna
Operaciones :1. Activar la interfaz Registro de empleado 2. Ingresar datos empleado 3. Guardar registro
ESCENARIO #2 Nombre : Imprimir reporte empleados
Pre-Condiciones : ninguna Iniciado por : Empleado
Finalizado por : Empleado Post_Condiciones : ninguna
Operaciones :
1. Activar la interfaz Registro de empleados 2. Activar interfaz reporte de empleados 3. Mostrar reporte empleados 4. Imprimir reporte empleados
Prototipo del Sistema de Información de PROMECYS
52
CASO DE USO: : Relación profesor_grupo_asignaturas
DEFINICIÓN : Permite tener conocimiento de que profesores imparten determinadas asignaturas en grupos determinados
PRIORIDAD : (1) Vital (2) Importante (3) Conveniente
URGENCIA : (1)Inmediata (2) Necesario (3) Puede Esperar
ACTORES NOMBRE DEFINICION
Empleado Es el encargado de llevar a cabo todos los procesos de Promecys. ESCENARIO #1
Nombre : Registrar relación profesor_grupo_asignatura
Pre-Condiciones : Ninguna Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : ninguna
Operaciones :1. Activar interfaz vinculo profesor_grupo_asignatura 2. Asignar relaciones 3. Guardar registro
ESCENARIO #2
Nombre : Imprimir reporte relación profesor_grupo_asignatura
Pre-Condiciones : ninguno Iniciado por : Empleado
Finalizado por : Empleado Post-Condiciones : ninguno
Operaciones :
1. Activar interfaz vinculo profesor_grupo_asignatura 1. Activar interfaz reporte profesor_grupo_asignatura 2. Mostrar reporte 3. Imprimir reporte
Prototipo del Sistema de Información de PROMECYS
53
: Empleado
Interfaz Prematricula
Registro Prematricula
ingresar datos
guardar datosbuscar datos
buscadatos no encontrados
guardar datosguarda
datos guardados
: Empleado
Interfaz Prematricula
Registro Prematricula
1: ingresar datos2: guardar datos
3: buscar datos
4: busca
5: datos no encontrados 6: guardar datos
7: guarda
8: datos guardados
DIAGRAMAS DE SECUENCIA Y COLABORACION Caso de Uso: Prematricula Escena 1: Agregar Prematricula sin inconvenientes Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
54
Caso de Uso: Prematricula Escena 2: Prematricula de un registro existente Diagrama de Secuencia Diagrama de Colaboración
Interfaz Prematricula
: Empleado
Registro Prematricula
ingresar datos
guardar datos ()buscar datos ()
busca
"datos encontrados"
muestra datosactualiza datos prematricula
guardar datos () guardar datos ()guarda
"datos guardados"
Interfaz Prematricula
: Empleado
Registro Prematricula
1: ingresar datos2: guardar datos ()
3: buscar datos ()
4: busca
5: "datos encontrados"6: muestra datos
7: actualiza datos prematricula8: guardar datos ()
9: guardar datos ()
10: guarda
11: "datos guardados"
Prototipo del Sistema de Información de PROMECYS
55
: EmpleadoInterfaz
PrematriculaReporte
Prematricula
imprimir hoja prematricula ()mostrar reporte prematricula
despliega reporte
muestra reporte prematricula
aceptar impresion
reporte impreso
: Empleado
Interfaz Prematricula
Reporte Prematricula
1: imprimir hoja prematricula ()
3: despliega reporte4: muestra reporte prematricula
5: aceptar impresion
6: reporte impreso
2: mostrar reporte prematricula
Caso de Uso: Prematricula Escena 3: Imprimir hoja prematricula Diagrama de Colaboración Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
56
: EmpleadoInterfaz
MatriculaRegistro
PrematriculaRegistro
AsignaturaRegistro
InscripcionRegistro
EstudianteRegistro NotasRegistro
Maticula
buscar datos estudiante()buscar datos estudiante()
busca
muestra datos
"introduce datos matricula"
buscar asignaturas a inscribir()busca
"muestra asignaturas a inscribir"
"introduce datos inscrpción"
Guardar datos()
guardar datos()guarda
"datos guardados"
guardar datos()guarda
"datos guardados"
guardar datos()guarda
"datos guardados"
guardar datos()guarda
"datos guardados"
Caso de Uso: Matricula Escena 1: Registrar matricula de primer ingreso Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
57
: Empleado
Interfaz Matricula
Registro Prematricula
Registro Asignatura
Registro Inscripcion
Registro Maticula Registro
Estudiante
1: buscar datos estudiante()
3: busca
6: busca
8: "introduce datos matricula"9: "introduce datos inscrpción"
10: Guardar datos()
12: guarda
15: guarda
18: guarda
2: buscar datos estudiante()
4: muestra datos
5: buscar asignaturas a inscribir()
7: "muestra asignaturas a inscribir"
14: guardar datos()
16: "datos guardados"
11: guardar datos()
13: "datos guardados"
17: guardar datos()
19: "datos guardados"
Registro Notas
20: guardar datos()
21: guarda
22: "datos guardados"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
58
: Empleado
Interfaz Matricula
Registro Estudiante
Registro Asignatura
Registro Notas Registro Inscripcion
Registro Matricula
buscar datos estudiantes ()buscar datos ()
busca
"muestra datos"
introduce datos matricula
buscar asignaturas a inscribir ()busca
compara asignaturascompara
asignaturas filtradasmuestra asignaturas
cargar datos inscripcion
guardar datos ()guardar datos ()
guarda
"datos guardados"
guardar datos ()guarda
"datos guardados"
guardar datos ()guarda
"datos guardados"
guardar datos ()guarda
"datos guardados"
Caso de Uso: Matricula Escena 2: Registrar matricula de reingreso Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
59
: Empleado
Interfaz Matricula
Registro Estudiante
Registro Asignatura
Registro Notas
Registro Inscripcion
Registro Matricula
3: busca16: guarda
8: busca13:
10: compara19: guarda
22: guarda
25: guarda
1: buscar datos estudiantes ()5: introduce datos matricula6: cargar datos inscripcion
14: guardar datos ()
2: buscar datos ()15: guardar datos ()
4: "muestra datos"17: "datos guardados"
7: buscar asignaturas a inscribir ()
12: muestra asignaturas
18: guardar datos ()20: "datos guardados"
21: guardar datos ()23: "datos guardados"
24: guardar datos ()
26: "datos guardados"
9: compara asignaturas
11: asignaturas filtradas
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
60
: Empleado
Interfaz Matricula
Interfaz actualizar datos estduante
Regsitro Estudiante
actualizar datos estudiantes ()desplegar interfaz
despliega y muestra datos
actualizar y guardar ()guardar datos ()
guarda
"datos guardados""datos guardados"
: Empleado
Interfaz Matricula
Interfaz actualizar datos estduante
Regsitro Estudiante
1: actualizar datos estudiantes ()
2: desplegar interfaz
3: despliega y muestra datos
4: actualizar y guardar ()
5: guardar datos ()
6: guarda
7: "datos guardados"
8: "datos guardados"
Caso de Uso: Matricula Escena 3: Actualizar datos estudiantes Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
61
: Empleado
Interfaz Matricula
Reporte Matricula
imprimir hoja matricula ()mostrar reporte prematricula
despliega reporte
muestra reporte matricula
aceptar impresion
reporte impreso
Caso de Uso: Matricula Escena 4: Imprimir hoja matricula Diagrama de Secuencia Diagrama de Colaboración
: Empleado
Interfaz Matricula
Reporte Matricula
1: imprimir hoja matricula ()
3: despliega reporte4: muestra reporte matricula
5: aceptar impresion
6: reporte impreso
2: mostrar reporte matricula
Prototipo del Sistema de Información de PROMECYS
62
: EmpleadoInterfaz
InscripcionRegistro
EstudianteRegistro
AsignaturaRegistro Notas Registro
Inscripcion
buscar datos estudiante ()buscar datos estudiantes ()
busca
muestra datos
cargar datos inscripcion
buscar asignaturas a inscribir ()busca
comparar asignaturascompara
asignaturas filtradasmuestra asignaturas
selecciona datos inscripcion
guardar datos ()
guardar datos inscripcion ()guarda
"datos guardados"
guardar datos ()guarda
"datos guardados"
Caso de Uso: Inscripción Escena 1: Inscripción sin inconvenientes Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
63
: Empleado
Interfaz Inscripcion
Registro Estudiante
Registro Asignatura
Registro Notas
Registro Inscripcion
1: buscar datos estudiante ()
2: buscar datos estudiantes ()
3: busca
4: muestra datos
5: cargar datos inscripcion
6: buscar asignaturas a inscribir ()7: busca
8: comparar asignaturas
9: compara
10: asignaturas filtradas
11: muestra asignaturas
12: selecciona datos inscripcion 13: guardar datos ()
14: guardar datos inscripcion ()
15: guarda
16: "datos guardados"
17: guardar datos ()
18: guarda
19: "datos guardados"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
64
: EmpleadoInterfaz
InscripcionRegistro
EstudianteRegistro
InscripcionRegistro NotasRegistro
Matricula
buscar datos estudiante () buscar datos estudiante ()busca
muestra datos estudiante
buscar matricula ()busca
buscar inscripcion ()busca
buscar datos inscripcion ()busca
muestra datos inscripcionbotar asignatura ()
guardar datos ()
guardar datos ()guarda
"datos guardados"
Caso de Uso: Inscripción Escena 2: Botar asignatura inscrita Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
65
: Empleado
Interfaz Inscripcion
Registro Estudiante
Registro Inscripcion
Registro Notas
Registro Matricula
1: buscar datos estudiante ()2: buscar datos estudiante ()
3: busca
4: muestra datos estudiante
5: buscar matricula ()
6: busca
7: buscar inscripcion ()
8: busca
9: buscar datos inscripcion ()
10: busca
11: muestra datos inscripcion
12: botar asignatura ()13: guardar datos ()
14: guardar datos ()15: guarda
16: "datos guardados"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
66
: Empleado
Interfaz Inscripcion Reporte Inscripcion
imprimir hoja inscripcion ()mostrar reporte inscripcion
despliega reporte
muestra reporte inscripcion
aceptar impresion
reporte impreso
: Empleado
Interfaz Inscripcion
Reporte Inscripcion
1: imprimir hoja inscripcion ()
2: mostrar reporte inscripcion
3: despliega reporte4: muestra reporte inscripcion
5: aceptar impresion
6: reporte impreso
Caso de Uso: Inscripción Escena 3: Imprimir hoja inscripción Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
67
: Empleado
Interfaz Notas Registro NotasRegistro Estudiante
buscar datos estudiante () buscar datos ()busca
muestra datos
buscar asignaturas inscritas ()busca
muestra datos asignaturasingresa notas
guardar datos ()guardar datos ()
guarda
"datos guardados"
: Empleado
Interfaz Notas
Registro Notas
Registro Estudiante
1: buscar datos estudiante ()
2: buscar datos ()
3: busca
4: muestra datos
5: buscar asignaturas inscritas ()
6: busca
7: muestra datos asignaturas
8: ingresa notas9: guardar datos ()
10: guardar datos ()
11: guarda
12: "datos guardados"
Caso de Uso: Notas Escena 1: Ingresar notas Diagrama de Secuencia
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
68
: EmpleadoInterfaz Notas Registro
EstudianteRegistro Notas Reporte Notas
buscar datos estudiante ()buscar datos estudiante () busca
muestra datos estudiante
buscar datos notas ()
buscar datos notas ()busca
muestra datos notas
imprimir certificado de notas ()mostrar reporte notas
despliega reporte
muestra reporte notas
aceptar impresion
reporte impreso
Caso de Uso: Notas Escena 2: Imprimir certificado de notas Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
69
: Empleado
Interfaz Notas
Registro Estudiante
Registro Notas
Reporte Notas
1: buscar datos estudiante ()
2: buscar datos estudiante ()
3: busca
4: muestra datos estudiante
5: buscar datos notas ()6: buscar datos notas ()
7: busca
8: muestra datos notas
9: imprimir certificado de notas ()
10: mostrar reporte notas
11: despliega reporte12: muestra reporte notas
13: aceptar impresion
14: reporte impreso
Diagrama de colaboración
Prototipo del Sistema de Información de PROMECYS
70
Registro Precedencia : Empleado
Interfaz Asignatura
Registro Asignatura
Interfaz Precedencia
buscar asignatura () buscar asignatura ()busca
muestra asignatura
asignar precedencia
activar interfazactiva interfaz
buscar datos precedencia ()
busca datos ()
busca
muestra datos
muestra datos precedencia
selecciona precedencia
guardar datos precedencia ()guardar datos ()
guarda
"datos guardados""datos guardados"
Caso de uso: Registro Asignatura Escena 1: Asignar precedencia Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
71
Registro Precedencia
: Empleado
Interfaz Asignatura
Registro Asignatura
Interfaz Precedencia
2: buscar asignatura ()
3: busca
4: muestra asignatura
6: activar interfaz
7: activa interfaz
9: busca datos ()
10: busca
11: muestra datos
15: guardar datos ()
16: guarda
17: "datos guardados"
1: buscar asignatura ()5: asignar precedencia
8: buscar datos precedencia ()13: selecciona precedencia
14: guardar datos precedencia ()
12: muestra datos precedencia18: "datos guardados"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
72
Registro Prerrequisito : Empleado
Interfaz Asignatura
Registro Asignatura
Interfaz Prerrequisito
buscar asignatura () buscar asignatura ()busca
muestra asignatura
asignar prerrequisito
activar interfazactiva interfaz
buscar datos prerrequisito ()
busca datos ()
busca
muestra datos
muestra datos prerrequisito
selecciona prerrequisito
guardar datos prerrequisito ()guardar datos ()
guarda
"datos guardados""datos guardados"
Caso de Uso: Registro Asignatura Escena 2: Asignar prerrequisito Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
73
: Empleado
Interfaz Asignatura
Registro Asignatura
Interfaz Prerrequisito
Registro Prerrequisito
2: buscar asignatura ()
3: busca
4: muestra asignatura
6: activar interfaz
7: activa interfaz
9: busca datos ()
10: busca
11: muestra datos
15: guardar datos ()
16: guarda
17: "datos guardados"
1: buscar asignatura ()5: asignar prerrequisito
8: buscar datos prerrequisito ()13: selecciona prerrequisito
14: guardar datos prerrequisito ()
12: muestra datos prerrequisito18: "datos guardados"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
74
: EmpleadoInterfaz
AsignaturaRegistro
AsignaturaRegistro
PrecedenciaRegistro
PrerrequisitoReporte Pensum
buscar datos pensum () buscar datos pensum ()busca
buscar precedencias ()busca
muestra precedencias
buscar prerrequisitos ()busca
muestra prerrequisitosmuestra datos pensum
imprimir pensum ()
mostrar reporte pensumdespliega reporte
muestra reporte pensum
aceptar impresion
reporte impreso
Caso de Uso: Registro Asignatura Escena 3: Imprimir Pensum Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
75
: Empleado
Interfaz Asignatura
Registro Precedencia
Registro Prerrequisito
Reporte Pensum
1: buscar datos pensum ()
5: busca
8: busca
11: imprimir pensum ()
12: mostrar reporte pensum13: despliega reporte
14: muestra reporte pensum
15: aceptar impresion
16: reporte impreso
Registro Asignatura
2: buscar datos pensum ()
10: muestra datos pensum
3: busca
4: buscar precedencias ()
6: muestra precedencias
7: buscar prerrequisitos ()
9: muestra prerrequisitos
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
76
: EmpleadoInterfaz Grupo Registro Grupo
introducir datos grupo
guardar datos grupo ()guardar datos grupo ()
guarda
datos guardados
: Empleado
Interfaz Grupo
Registro Grupo
1: introducir datos grupo2: guardar datos grupo ()
3: guardar datos grupo ()
4: guarda
5: datos guardados
Caso de Uso: Registro Grupo Escenario único: registrar grupo Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
77
Registro Profesor : Empleado
Interfaz Profesor
ingresar datos profesor
guardar datos profesor () guardar datos profesor ()guarda
"datos guardados"
: Empleado
Interfaz Profesor
Registro Profesor
1: ingresar datos profesor2: guardar datos profesor ()
3: guardar datos profesor ()
4: guarda
5: "datos guardados"
Caso de Uso: Registro Profesor Escena 1: Registrar nuevo profesor Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
78
: Empleado
Interfaz Profesor
Registro Profesor
Interfaz Reporte Profesor
buscar registros profesor () buscar registros ()busca
muestra registros profesor
imprimir reporte profesor ()
mostrar reporte profesordespliega reporte
muestra reporte profesor
aceptar
"reporte impreso"
: Empleado
Interfaz Profesor
Registro Profesor
Interfaz Reporte Profesor
1: buscar registros profesor ()2: buscar registros ()
3: busca
4: muestra registros profesor
5: imprimir reporte profesor ()
6: mostrar reporte profesor
7: despliega reporte8: muestra reporte profesor
9: aceptar
10: "reporte impreso"
Caso de Uso: Registro Profesor Escena 2: Imprimir reporte registro profesor Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
79
: EmpleadoInterfaz
EmpleadoRegistro Empleado
ingresar datos empleados
guardar datos()guardar registro()
guarda
"registro guardado"
: Empleado
Interfaz Empleado
Registro Empleado
1: ingresar datos empleados2: guardar datos()
3: guardar registro()
4: guarda
5: "registro guardado"
Caso de Uso: Registro Empleados Escena 1: Ingresar datos nuevo empleado Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
80
Interfaz Reporte Empleado
: Empleado
Interfaz Empleado
Registro Empleado
buscar datos empleados ()buscar datos empleados ()
busca
muestra registros empleados ()
imprimir reportes empleados ()
mostrar reporte empleadosdespliega reporte
muestra reporte empleados
aceptar
"reporte impreso"
: Empleado
Interfaz Empleado
Registro Empleado
Interfaz Reporte Empleado
1: buscar datos empleados ()2: buscar datos empleados ()
3: busca
4: muestra registros empleados ()
5: imprimir reportes empleados ()
6: mostrar reporte empleados
7: despliega reporte
8: muestra reporte empleados
9: aceptar
10: "reporte impreso"
Caso de Uso: Registro Empleados Escena 2: Imprimir reporte empleados Diagrama de Secuencia Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
81
: Empleado
Interfaz Relacion profesor_grupo_asigantura
Registro asig_prof_grupo
Registro GrupoRegistro Asignatura
Registro Profesor
buscar datos ()buscar datos profesor ()
busca
mostrar datos profesor
buscar datos asignaturas ()busca
muestra datos asignaturas
busca datos grupo ()busca
muestra datos gruposeleccionar relaciones
guardar relaciones ()guardar relaciones ()
guarda
"relaciones guardadas"
Caso de Uso: Relación profesor_gupo_asignaturas Escena 1: Registrar relación profesor_grupo_asignatura Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
82
: Empleado
Registro asig_prof_grupo
Registro Profesor
Registro Asignatura
Registro Grupo
6: busca9: busca
14: guarda
Interfaz Relacion profesor_grupo_asigantura
1: buscar datos ()11: seleccionar relaciones 12: guardar relaciones ()
2: buscar datos profesor ()4: mostrar datos profesor
5: buscar datos asignaturas ()
7: muestra datos asignaturas
8: busca datos grupo ()
10: muestra datos grupo
13: guardar relaciones ()
15: "relaciones guardadas"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
83
Registro asig_prof_grupo : Empleado
Interfaz Relacion profesor_grupo_asignatura
Interfaz Reporte asig_profesor_grupo
buscar relaciones profesor_asignatura_grupo ()buscar relaciones ()
busca
muestra relaciones
imprimir reporte ()
mostrar reporte de relacionesdespliega reporte
muestra reporte
aceptar
"reporte impreso"
Caso de Uso: Relación profesor_gupo_asignaturas Escena 2: Imprimir reporte relación profesor_grupo_asignatura Diagrama de Secuencia
Prototipo del Sistema de Información de PROMECYS
84
: Empleado
Interfaz Relacion profesor_grupo_asignatura
Registro asig_prof_grupo
Interfaz Reporte asig_prof_grupo
1: buscar relaciones profesor_asignatura_grupo ()2: buscar relaciones ()
3: busca
4: muestra relaciones
5: imprimir reporte ()
6: mostrar reporte de relaciones
7: despliega reporte8: muestra reporte
9: aceptar
10: "reporte impreso"
Diagrama de Colaboración
Prototipo del Sistema de Información de PROMECYS
85
CAPITULO III:
DISEÑO DE LA BASE DE DATOS DEL SISTEMA
“Si evalúas siempre que terminas, poco a poco irás planificando cada vez
mejor.”
Prototipo del Sistema de Información de PROMECYS
86
CLASES
Para lograr una visión sencilla y funcional de los objetos involucrados en el sistema de matrículas e inscripciones de PROMECYS es necesario diseñar un modelo de clases que refleje el entorno que estamos estudiando, además con este se podrán visualizar de forma mas simple las relaciones que existen entre las clases involucradas en el sistema. Tomando en cuenta la descripción del sistema actual y guiándose por medio de los casos de uso y los escenarios que estos presentan, logramos identificar las siguientes clases: Estudiante, Empleado, Prematrícula, Matrícula, Inscripción, Nota, Asignatura, Profesor.
Estudiante: Es una de las clases mas importantes ya que representa el principal involucrado en las actividades del sistema, por medio de esta clase se puede accesar a los datos de cada uno de los estudiantes que pertenecen al programa tomando como atributo de identificación es Idestudiante. Los métodos que se realizaran en esta clase son: Agregar, Buscar, Modificar. Es importante señalar las relaciones que tiene la clase estudiante con el resto de las clases involucradas con el sistema.
Prematricula Matricula
Estudiante
1
1
1
*+Tiene
1
*
+Posee
1
1
- La relación de Estudiante con Prematrícula se da por asociación, donde 1 estudiante posee 1 prematrícula.
- La relación Estudiante con Matrícula se da por composición, donde 1 estudiante tiene muchas matrículas.
Empleado: Representa el registro de empleados de PROMECYS que pueden tener acceso al sistema o que llevan a cabo una funcionalidad en el mismo. Los métodos de esta clase representan la posibilidad de de Agregar un nuevo empleado, buscar y modificar datos de empleado, el atributo que lo identifica es código de empleado (Idempleado). La relación de esta clase se detalla a continuación:
Prototipo del Sistema de Información de PROMECYS
87
Prematricula Matricula
Empleado
1
*
1
*
+Ingresa
1
*
+Ingresa
1
*
- La relación de Empleado con Prematrícula se da por agregación, donde 1 empleado ingresa muchas Prematrículas.
- La relación de Empleado con Matrícula se da por agregación, donde 1 empleado ingresa muchas Matrículas,
Matrícula: Representa todas las matrículas que se han hecho en el
programa, identificado por medio de un número de matrícula (Idmatrícula), conteniendo la fecha en que se emite. Los métodos utilizados en esta clase son: Agregar, Buscar y Retirar Matrícula. Esta clase se relaciona con las clases Prematrícula e Inscripción.
Prematricula Inscripcion
Matricula
1
1 1
3
+Tiene1
3
+Requiere1
1
- La relación de Matrícula con Prematrícula se da por asociación, donde 1 matrícula requiere de 1 prematrícula.
- La relación de Matrícula con Inscripción se da por composición, donde 1 matrícula tiene 3 inscripciones.
Prematrícula: Representa todas las prematrículas que se han hecho en
el programa, el cual contiene la fecha en que se emite. Los métodos a utilizar en esta clase son: Agregar y Buscar Prematrícula.
Prototipo del Sistema de Información de PROMECYS
88
Inscripción: Son todas las inscripciones de asignaturas que realizan los
estudiantes en cada cuatrimestre, esta clase se identifica con un código de inscripción (Idinscripción), contiene datos como el cuatrimestre, beca y fecha en que se emite la inscripción. Los métodos que pertenecen a esta clase son: Agregar, Modificar, Buscar inscripción y Botar Asignatura,
Inscripcion Nota1..41 +Le Corresponde1 1..4
- La relación de Inscripción con Nota se da por composición, donde 1 inscripción le corresponde de 1-4 notas.
Asignatura: Representa todas la asignaturas que se sirven durante la
carrera es identificada por un código de asignatura, en esta clase se describe el nombre de la asignatura, el año y e cuatrimestre al que pertenece. Los métodos que se utilizaran en esta clase son: Modificar y Agregar asignatura. Esta clase se relaciona con Inscripción, tal relación es:
InscripcionAsignatura
1 *+Esta en1 *
- La relación de Asignatura con Inscripción se da por composición, donde
1 Asignatura está en muchas inscripciones.
Profesor: Esta clase permite identificar el registro de profesores con los que cuenta el programa ya que son un pilar muy importante para llevar a cabo el mismo, además es importante contar con esta información ya que forma parte del registro. Para esta clase se han definido atributos y métodos tales como: Agregar Profesor, Buscar y Modificar datos de profesor. La relación que se puede establecer con esta clase es la siguiente:
Profesor Asignatura* *+Imparten* *
- La relación de Profesor con Asignatura esta dada por asociación, donde muchos profesores imparten muchas asignaturas.
Nota: Esta clase contiene las notas de las asignaturas inscritas por medio
de las cuales el empleado (usuario), verifica la calificación de las asignaturas que pueden ser aprobado o reprobado el cual se refleja en la solicitud del certificado de notas. Los métodos utilizados en esta clase son: Agregar, Buscar y Modificar.
Prototipo del Sistema de Información de PROMECYS
89
TIPOS DE DATOS
Atributos: Los atributos o características de una clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:
Publico: Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
Privado: Indica que el método solo será accesible desde dentro de la clase (solo sus métodos lo pueden accesar).
Protegido: Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven.
En las clases que se han creado el tipo de dato para el atributo identificador de cada clase público, ya que a través de este se relacionan con las demás clases. Los demás atributos de las clases son de tipo privado, de modo que solo los métodos que pertenecen a la clase pueden accesar a ellos (atributos). Métodos: Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, estos pueden ser:
Publico: Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
Privado: Indica que el método solo será accesible desde dentro de la clase (solo otros métodos de la clase lo pueden accesar).
Protegido: Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven.
El tipo de dato de algunos de los métodos es público, ya que se puede accesar a ellos de todos lados, otro tipo de datos asignados a los métodos es privado, ya que este solamente se puede accesar los métodos de la misma clase. En la clase Matrícula el método RetirarMatrícula es de tipo Privado, ya que solo los métodos de la clase pueden accesar al mismo, en la clase inscripción el método BotarAsignatura es privado por tanto no se puede accesar desde fuera de la clase.
Prototipo del Sistema de Información de PROMECYS
90
NotaIdinscripcion : longIdasignatura : StringIdgrupo : StringNota : FloatCalificacion : int
Agregar()Buscar()Modificar()
EstudianteIdestudiante : LongCarnet : StringPrimerNombre : StringSegundoNombre : StringPrimerApellido : StringSegundoApellido : StringEstadoCivil : intSexo : intFechanac : DatetimeLugarnac : StringNacionalidad : StringDepartamento : StringMunicipio : StringDireccion : StringCentro_Ensenanza : StringCedula : StringTelefono : StringCelular : StringCorreo : StringLugar : StringCargo : StringDireccionT : StringTelefonoT : StringFax : String
Agregar()Modificar()Buscar()
EmpleadoIdempleado : intPrimerNombre : StringSegundoNombre : StringPrimerApellido : StringSegundoApellido : StringDireccion : StringCargo : StringSexo : intTelefono : StringCelular : String
Agregar()Modificar()Buscar()
InscripcionIdInscripcion : longIdmatricula : longCuatrimestre : intIdempleado : intFecha : DateBecado : int
Agregar()Modificar()Buscar()BotarAsignatura()
1 1..4+Corresponde1 1..4
MatriculaIdmatricula : longIdestudiante : longRecibo : intAnio : intFecha : DateBecado : int
Agregar()Buscar()RetirarMatrícula()
1
3+Tiene1
3
1
**
1
*
+Ingresa
1
*
PrematriculaIdestudiante : longRecibo : intFecha : DateEmpleado : int
Agregar()Buscar()1
1
1
+Posee
1
1
*
+Ingresa
1
*
1
1
+Requiere
1
1
AsignaturaIdasignatura : StringDescripcion : StringCuatrimestre : intCreditos : intAnio : int
Modificar()Agregar()
1
*
+Esta en
1
*
ProfesorIdprofesor : intPrimerNombre : StringSegundoNombre : StringPrimerApellido : StringSegundoApellido : StringSexo : intDireccion : StringEspecialidad : StringTipo : intTelefono : StringCelular : StringFecha : DateEstado : int
Agregar()Modificar()Buscar()
*** *+Imparten
DIAGRAMA DE CLASES PROMECYS
Prototipo del Sistema de Información de PROMECYS
91
Activomatricularse
reanudar matricula
Egresadoculmina pensum
Retirado
suspende matricula
DIAGRAMAS DE ESTADO Los diagramas de estado, nos muestran la secuencia de estados por los que pasan las clases matricula, estudiante y profesor. La matricula pasa por dos estados, cuando esta se realiza esta vigente y tiene que ser renovada sigue en el mismo estado (vigente), pero se da el caso en que se retira y su estado inmediatamente es retirada. Cuando un estudiante realiza una matrícula se dice que está activo, si la matricula se reanuda sigue siendo activo, cuando la matricula de suspende pasa a ser un estudiante retirado, y el ultimo estado por el que pasa el estudiante es cuando culmina el pensum y entonces se convierte en estudiante egresado. El ultimo diagrama de estado que se muestra es el de profesor que pasa también por dos estados que es activo cuando firma un contrato e imparte una o varias asignaturas, si se le renueva el contrato sigue siendo activo, pero una vez que el contrato es cancelado su estado pasa a inactivo DIAGRAMA DE ESTADO Clase: Estudiante
Prototipo del Sistema de Información de PROMECYS
92
Vigenterealiza matricula
renovar matricula
Retirada
retira metricula
Activo
Inactivo
imparte asignatura
renovar contrato
cancela contrato
DIAGRAMA DE ESTADO Clase: Matricula
DIAGRAMA DE ESTADO Clase: Profesor
Prototipo del Sistema de Información de PROMECYS
93
ESTRUCTURA DE LA BD
SEGURIDAD Una base de datos no es más que una colección de objetos interrelacionados entre sí que sirven para almacenar, recuperar y manipular información, y permiten crear reportes a partir de la misma. La base de datos que almacenará la información de todos los procesos que se llevan acabo en PROMECYS estará diseñada en SQL Server 2000. SQL que es una herramienta para organizar, gestionar y recuperar datos almacenados. Es de suma importancia que los datos que se manipulan en PROMECYS sean almacenados de forma segura y eficiente, lo que se logra a través de SQL Server 2000 ya que éste permite crear consultas a través de la herramienta Query Analyzer que implementa las cláusulas pertinentes para crear una base de datos por medio de código puro. Lo primero que debemos tomar en cuenta al diseñar una base de datos es que ésta sea lo suficientemente segura y confiable ya que almacenará datos muy importantes de la institución y cualquier flujo de información podría representar un problema bastante serio. Para ello nos apoyamos de las cuentas de usuarios, las cuales restringen el acceso a la base de datos por medio de contraseña, se creó una cuenta de acceso para la base de datos en el Query con la siguiente estructura: SP_ADDLOGIN ‘ADMINISTRADOR’,’ADMIN’,`DBPROMECYS` Para mantener un orden en la estructura de la base de datos, tomamos en cuenta la uniformidad en los nombres de los componentes, y definimos lo más claro posible los procesos y convenciones que utilizamos para el manejo de la misma. TABLAS: Los nombres de las tablas en la base de datos serán escritos con su primera
letra en mayúscula representando cada una al objeto o actividad a la que pertenece.
Los atributos de cada tabla serán escritos todos en letras minúsculas, especificando sus llaves de identificación con el prefijo “id” seguido del nombre de la tabla.
Los atributos que representan valores booleanos serán de tipo bit donde el valor 0 (cero) significa No, Masculino, Reprobado, Inactivo y 1 (uno) significa Sí, Femenino, Aprobado y Activo según la tabla a la que pertenece el atributo.
Prototipo del Sistema de Información de PROMECYS
94
MODELO DE DATOS
Prototipo del Sistema de Información de PROMECYS
95
DICCIONARIO DE DATOS Aquí definimos como están compuestas cada una de la tablas de la base de datos, especificando la funcionalidad de sus atributos: Asignatura: Contiene el registro de las asignaturas de la carrera. Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idasignatura
si
Varchar
4 Llave principal, identificador único de la
asignatura
Formato: 0000, XXX, XXX0
Descripcion si Varchar 4 Nombre de la asignatura Cuatrimestre si
Int 4 Cuatrimestre en el que
se imparte la asignatura No puede
excederse de 3
Credito
si
Int 4 Representan la cantidad
limite de veces que se puede llevar la
asignatura
--
Anio si Int 4 Representa el anio escolar al que pertenece
la asignatura
--
AsigGrupoProf: Es el control de las asignaturas que imparten los profesores y los grupos en donde se imparten las mismas Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idasignatura
si
Varchar 4 Es el código de la asignatura que se
imparte
Idgrupo
si Varchar 4 Representa el grupo en
que se impartió la asignatura
idprofesor
si
int 4 Es el código de los profesores que imparten determinada asignatura
Fecha
si
Datetime 8 Representa la fecha en que determinado
profesor impartió la asignatura
Formato asig: 0000, XXX, XXX0
Todos los atributos
de la tabla en conjunto representa
su llave primaria
Prototipo del Sistema de Información de PROMECYS
96
Departamento: Contiene el registro de los departamentos de los estudiantes Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
idepartamento si Varchar 4 Llave principal, es el nombre del
departamento
--
Empleado: Contiene el registro de la información personal y laboral de los empleados
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o
Comentario
Idempleado
si Int 4 Llave principal,
identificador unico del empleado
--
Cedula si Varchar 4 Numero de cedula del empleado
Formato: 000-000000-
0000X primernombre si Varchar 4 Primer nombre del
empleado --
segundonombre no Varchar 4 Segundo nombre del empleado
--
Primerapellido si Varchar 4 Primer apellido del empleado
--
Segundoapellido no Varchar 4 Segundo apellido del empleado
--
Direccion si Varchar 4 Direccion domiciliar del empleado
--
Cargo si Varchar 4 Cargo que desempeña -- Sexo si Bit 1 Sexo del empleado --
Telefono no Varchar 4 Telefono convencional Formato: 000-0000
Celular no Varchar 4 Telefono celular Formato: 000-0000
Prototipo del Sistema de Información de PROMECYS
97
Estudiante: Contiene la información personal y general de los Estudiantes, en donde se controla las actualizaciones de datos de los mismos
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o
Comentario Idestudiante
si
Bigint
8 Llave primaria,
identificador único del estudiante
--
carnet
no
Varchar
4
Representa el número de carnet que posee el
estudiante
Formatos: 0000-00000, 00-00000-0 No pueden haber dos
números de carnet iguales; es nulo por que
se puede matricular un
estudiante que todavía no tenga
carnet Primernombre si Varchar 4 Primer nombre del
estudiante --
Segundonombre no Varchar 4 Segundo nombre del estudiante
--
Primerapellido si Varchar 4 Primer apellido del estudiante
--
Segundoapellido no Varchar 4 Segundo apellido del estudiante
--
Estadocivil si Tinyint 1 Estado civil del estudiante
--
Sexo si Bit 1 Sexo del estudiante -- Fechanac si Datetime 8 Fecha de nacimiento del
estudiante Formato: dd/mm/aa
lugarnac si Varchar 4 Lugar de nacimiento del estudiante
--
departamento si Varchar 4 Departamento al que pertenece el estudiante
--
municipio si Varchar 4 Municipio al que pertenece el estudiante
--
direccion si Varchar 4 Direccion domiciliar del estudiante
--
centroenseñanza si Varchar 4 Centro de proveniencia del estudiante
--
tipocentro si Int 4 Tipo de centro
cedula no Varchar 4 Numero de cedula Formato:
000-000000-0000X
telefono no Varchar 4 Numero de telefono
convencional Formato: 000-0000
celular no Varchar 4 Numero de celular Formato: 000-0000
correo no Varchar 4 Correo electronico del estudiante
--
Prototipo del Sistema de Información de PROMECYS
98
Grupo: Es el registro de los grupos que conforman la carrera
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idgrupo
si
Varchar 4 Llave principal, identificador único del
grupo
Formato: XX0,
XX0-0 Anio si int 4 Año escolar al que
pertenece el grupo --
Ubicación si Varchar 4 Edificio donde se ubica al grupo
--
Aula si int 4 Numero de aula donde recibe clases al grupo
--
Inscripción: Es el registro de las inscripciones que realizan los estudiantes Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idinscripcion
Si
Bigint
8
Llave principal, representa el numero de
las inscripciones de cada estudiante
Las inscripciones no pueden ser mas de
tres por cada matricula
idmatricula
Si
Bigint
8
Llave foránea, representa el número de matrícula del estudiante
-
idempleado
Si
Int
4
Llave foránea, representa el numero
del empleado que hizo la inscripción
-
cuatrimestre
Si
Int
4
Representa el cuatrimestre que cursa
el estudiante
No puede exceder de 3
fecha
Si
Datetime
8 Representa la fecha en que fue realizada la
inscripción
Formato: dd/mm/aa
beca Si bit 1 Indica si el estudiante tiene beca
-
Laboral: Contiene el registro de la información laboral de los estudiantes Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idestudiante si Bigint 8 Llave principal, representa al estudiante
que trabaja
El idestudiante no se puede repetir en
esta tabla Lugar si Varchar 4 Representa el nombre
de la empresa donde trabaja el estudiante
--
Dirección si Varchar 4 Es la dirección del lugar de trabajo del estudiante
--
Cargo si Varchar 4 Cargo q desempeña el estudiante en su trabajo
--
Teléfono si Varchar 4 Numero telefónico del lugar de trabajo
Formato: 000-0000
fax no Varchar 4 Numero de fax del lugar de trabajo
Formato: 000-0000
Prototipo del Sistema de Información de PROMECYS
99
Matricula: Es el registro de la matricula de los estudiantes. Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idmatricula
Si
Bigint
8
Llave principal, representa el número de
matrícula de un estudiante
Solo puede haber una matrícula por
anio para cada estudiante
idestudiante
si
Bigint
8
Llave foránea, identifica a un estudiante
especifico
-
recibo
Si Int
4 Numero de recibo de matrícula
Formato: 00000
Anio Si Int
4 Anio que cursa el estudiante
No excede de 5
fecha
Si
Datetime
8
Representa la fecha en que se realiza a
matricula
Formato: dd/mm/aa
Municipio: Contiene el registro de los municipios de los estudiantes Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idmunicipio si Varchar 4 Llave principal, es el nombre del municipio de
determinado departamento
--
idepartamento si Varchar 4 Llave foránea, nombre del departamento
--
Nota: Es el registro de las notas obtenidas por los estudiantes en las asignaturas inscritas Nombre del
atributo Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idinscripcion
si
Bigint
8
Llave foránea, representa el código de
inscripción al que pertenecen las
diferentes asignaturas
--
Idasignatura
si
Varchar
4
Llave foránea,
representa el código de las asignaturas que se
inscribieron
Formato: 0000, XXX, XXX0; No pueden haber
mas de 4 asignaturas por cada
inscripción
Idgrupo
si
Varchar 4 Llave foránea,
representa el código del grupo donde se
recibirán las asignaturas
El año de la asignatura debe
coincidir con el año del grupo
Nota no Float 16 Representa la nota de las asignaturas inscritas
--
Calificación
no bit 1 Representa la calificación Aprobada o
Reprobada de las asignaturas inscritas
--
Prototipo del Sistema de Información de PROMECYS
100
Precedencia: Contiene el registro de las precedencia de las asignaturas
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
idprecedencia si Varchar 4 Llave primaria, representa una
asignatura que es precedencia de otra
Formato: 0000, XXX. XXX0
idasignatura si Varchar 4 Llave primaria, representa una
asignatura que posee precedencia
0000, XXX, XXX0
Prematricula: Es el registro de la prematrícula de los estudiantes
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
idestudiante
si
Bigint
8
Llave principal, representa que
estudiante tiene pre matrícula
Cada estudiante solo puede tener una pre
matrícula, aquí se genera el idestudiante
recibo Si Int 4 Es el numero de recibo de la prematricula
Sin recibo no se hace la prematricula
Fecha si Datetime 8 Representa la fecha en que el estudiante se pre
matriculó
Formato: dd/mm/aa
Idempleado si Int 4 Llave foránea, representa el numero
del empleado que hizo la pre matrícula
--
Requisito: Contiene el registro de los requisitos de las asignaturas
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
idrequisito si Varchar 4 Llave primaria, representa una
asignatura que es prerrequisito de otra
Formato: 0000, XXX. XXX0
idasignatura si Varchar 4 Llave primaria, representa una asignatura que
posee prerrequisito
0000, XXX, XXX0
Prototipo del Sistema de Información de PROMECYS
101
Profesor: Contiene el registro de la información personal y laboral de los profesores que imparten asignaturas en promecys
Nombre del atributo
Requerido
Tipo de dato
Tamaño Definición Formato, formula o Comentario
Idprofesor
si
Int 4 Llave principal, identificador único del
profesor
--
Cedula si Varchar 4 Numero de cedula del profesor
Formato: 000-000000-0000X
Primernombre si Varchar 4 Primer nombre del profesor
--
Segundonombre no Varchar 4 Segundo nombre del profesor
--
Primerapellido si Varchar 4 Primer apellido del profesor
--
Segundoapellido no Varchar 4 Segundo apellido del profesor
--
Sexo si Bit 1 Sexo del profesor -- Dirección si Varchar 4 Dirección domiciliar del
profesor --
Especialidad si Varchar 4 Especialidad en la que se desempeña
--
Tipo si Bit 1 Tipo de profesor -- Teléfono no Varchar 4 Teléfono convencional Formato:
000-0000 Celular no Varchar 4 Teléfono celular Formato:
000-0000 Fecha si Datetime 8 Fecha en que el
profesor entra a impartir clases
Formato: dd/mm/aa
Estado si Bit 1 Describe si el profesor esta o no impartiendo
clases en la universidad
--
Prototipo del Sistema de Información de PROMECYS
102
PROCEDIMIENTOS ALMACENADOS: Un procedimiento almacenado (stored procedure) es un programa el cual es almacenado físicamente la base de datos. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos y como tal, posee acceso directo a los datos que necesita manipular y solo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes. Los procedimientos almacenados de la base de datos del Sistema del Información de PROMECYS son utilizados en su mayoría para ejercer las funciones de Agregar, Obtener (Ver) y Actualizar los registros de las diferentes tablas de la misma, ya sean directamente de las tablas o por medio de vistas o funciones. Para poder acceder a cualquier procedimiento desde la interfaz siempre es necesaria una llave de entrada (Requerimiento), esta será la variable o variables que representan los atributos de las tablas que se necesitaran para que se lleve a cabo el funcionamiento de los mismos. El nombre del procedimiento debe empezar con el nombre de la tabla o
vista que estamos utilizando seguido por el sufijo que representa la función del procedimiento “Obtener”, “Actualizar”, “Agregar”.
Las variables que se necesitaran el procedimiento deberán llevar el mismo nombre, tipo y tamaño que el del atributo de la tabla o tablas que estamos utilizando.
Prototipo del Sistema de Información de PROMECYS
103
PROCEDIMIENTOS ALMACENADOS: Procedimientos Almacenados Obtener:
Estos procedimientos se utilizan en la base de datos cuando sea necesario obtener registros existentes de los diferentes registros de las tablas. Este tipo de procedimientos son los mas complicados de la base de datos ya que generalmente requieren mostrar datos de varias tablas, para lo cual es necesario implementar la utilización de vistas y así facilitar la manipulación de los datos cuando la información que se busca esta distribuida en tablas diferentes. Por Ejemplo: Un ejemplo sencillo de un procedimiento que muestra los datos de una única tabla es el siguiente: Nombre del Procedimiento EstudianteObtener
Requerimiento dbo.Estudiante Descripción o Propósito Se encarga de mostrar los datos
generales de determinado Estudiante Variables @Idestudiante Código: CREATE PROCEDURE EstudianteObtener @IDESTUDIANTE BIGINT AS SET DATEFORMAT ymd SELECT Carnet, Primernombre, Segundonombre, Primerapellido, Segundoapellido, Estadocivil, Sexo, Fechanac, Lugarnac, Nacionalidad, Departamento, Municipio, Direccion, Centroensenanza, TipoCentro, Cedula, Telefono, Celular, Correo FROM Estudiante WHERE Idestudiante LIKE @IDESTUDIANTE
Prototipo del Sistema de Información de PROMECYS
104
Ejemplo 2: También se pueden obtener por medio de un procedimiento almacenado las asignaturas que un estudiante podrá inscribir en un determinado cuatrimestre, para ello se necesita la ayuda de vistas que harán una revisión minuciosa en la base de datos. Nombre del Procedimiento AsignaturaQuePuedeInscribirObtener
Requerimiento Asignatura sqlClasesConPcyRqInscribir, sqlClasesReprobadas, sqlClaseSinPcyRqNoInscritas
Descripción o Propósito Se encarga de mostrar las Asignaturas que puede inscribir determinado estudiante, tomando en cuenta restricciones de precedencia, requisito, inscripción y cuatrimestre.
Variables @Idestudiante, @Cuatrimestre, @Anio
Codigo: CREATE PROCEDURE AsignaturasQuePuedeInscribir @IDESTUDIANTE BIGINT, @CUATRIMESTRE INT, @ANIO INT AS SELECT LTRIM(RTRIM (A.IDASIGNATURA)) AS IDASIGNATURA, LTRIM(RTRIM(DESCRIPCION)) AS DESCRIPCION, ANIO FROM ASIGNATURA A WHERE A.IDASIGNATURA IN (SELECT IDASIGNATURA FROM SQLCLASESCONPCYRQINSCRIBIR WHERE IDESTUDIANTE LIKE @IDESTUDIANTE AND CUATRIMESTRE LIKE @CUATRIMESTRE) OR A.IDASIGNATURA IN (SELECT IDASIGNATURA FROM SQLCLASESREPROBADAS WHERE IDESTUDIANTE LIKE @IDESTUDIANTE AND CUATRIMESTRE LIKE @CUATRIMESTRE) OR A.IDASIGNATURA IN (SELECT IDASIGNATURA FROM SQLCLASESINPCYRQNOINSCRITAS WHERE IDESTUDIANTE LIKE @IDESTUDIANTE AND CUATRIMESTRE LIKE @CUATRIMESTRE) AND ANIO <= @ANIO
Prototipo del Sistema de Información de PROMECYS
105
Procedimientos Almacenados Agregar: Son mas sencillos de comprender y crear ya que su función solo es de agregar registros en las diferentes tablas de la base de datos, actividad para la cual no es necesaria la utilización de funciones o vistas. En estos procedimientos solo se verá involucrada una tabla por cada uno. Por Ejemplo: Nombre del Procedimiento AsignaturaAgregar
Requerimiento dbo.Asignatura Descripción o Propósito Se encarga de guardar los diferentes
datos de una asignatura que se registra desde la interface.
Variables @Idasignatura, @Descripcion, @Cuatrimestre, @Credito, @Anio
Código: CREATE PROCEDURE AsignaturaAgregar @Idasignatura VARCHAR(10), @Descripcion VARCHAR(100), @Cuatrimestre INT, @Credito INT, @Anio INT AS INSERT INTO Asignatura VALUES (@Idasignatura, @Descripcion, @Cuatrimestre, @Credito, @Anio) Procedimientos Almacenados Actualizar:
También son sencillos de comprender ya que solo requieren del manejo de una tabla a la vez, se encargan de actualizar los registros existentes de las diferentes tablas de la base de datos por medio de la interfase. Por Ejemplo: Nombre del Procedimiento DocenteActualizar
Requerimiento dbo.Profesor Descripción o Propósito Se encarga de actualizar los datos de
un determinado Profesor. Variables @Iddocente , @Cedula,
@Primernombre,@Segundonombre, @Primerapellido,@Segundoapellido , @Sexo,@Direccion,@Especialidad, @Tipo,@Telefono,@Celular,@Fecha, @Estado
Prototipo del Sistema de Información de PROMECYS
106
Codigo: CREATE PROCEDURE DocenteActualizar @Iddocente INT, @Cedula VARCHAR (16), @Primernombre VARCHAR (50), @Segundonombre VARCHAR (50), @Primerapellido VARCHAR (50), @Segundoapellido VARCHAR (50), @Sexo INT, @Direccion VARCHAR (100), @Especialidad VARCHAR (100), @Tipo INT, @Telefono VARCHAR (8), @Celular VARCHAR (8), @FECHA VARCHAR (10), @Estado INT AS DECLARE @MYDATE AS DATETIME; SET @MYDATE = dbo.fn_myDate(@FECHA); UPDATE Profesor SET Cedula= @Cedula, Primernombre= @Primernombre, Segundonombre= @Segundonombre, Primerapellido= @Primerapellido, Segundoapellido= @Segundoapellido, Direccion= @Direccion, Especialidad= @Especialidad, Tipo= @Tipo, Estado= @Estado, Sexo= @Sexo, Celular= @Celular, Fecha= @MYDATE WHERE Profesor.Idprofesor= @Iddocente Otros Procedimientos Almacenados:
Los Procedimientos Almacenados también son utilizados para llamar a las vistas para reportes, o para llamar una función que tengamos que utilizar en algún momento que interactuamos con la interfase, estos son mas que todos Procedimientos de Obtener.
Prototipo del Sistema de Información de PROMECYS
107
FUNCIONES: Una función es un bloque de código que tiene las mismas características que un procedimiento almacenado. La diferencia es que una función devuelve un valor al retornar. Al devolver un valor puede ser llamada como parte de una expresión. En la base de datos de PROMECYS las funciones las utilizaremos para retornar los significados de los atributos booleanos cuando sean requeridos en este caso por la interfaz de usuario, para convertir una cadena string enviada por la interfaz a un tipo fecha en la base de datos y para retornar un conteo total de atributos de determinadas tablas. Para distinguir una función antepondremos en su nombre el prefijo “fn_” seguido por el nombre de la misma. Algunos ejemplos de las funciones que son necesarias en la base de datos de PROMECYS son: Funciones de Conteo:
Nombre de la Función fn_EstMatCount
Requerimiento dbo.Matricula Descripción o Propósito Se encarga de contar la cantidad de
Estudiantes Matriculados y retorna el total.
Variables @Idestudiante Código: CREATE FUNCTION dbo.fn_EstMatCount (@IDESTUDIANTE AS BIGINT) RETURNS INT AS BEGIN
DECLARE @COUNT AS INT; SELECT @COUNT = COUNT(Idestudiante) FROM Matricula WHERE Idestudiante = @IDESTUDIANTE; RETURN @COUNT END
Prototipo del Sistema de Información de PROMECYS
108
Funciones de fecha: Nombre de la Función fn_myDate
Requerimiento Una cadena de caracteres Descripción o Propósito Se encarga de convertir una cadena
de caracteres a una fecha, y retorna la fecha.
Variables @MyDate Codigo: CREATE FUNCTION dbo.fn_myDate (@MYDATE AS VARCHAR(10)) RETURNS DATETIME AS BEGIN DECLARE @AUX AS VARCHAR(10); SET @AUX = SUBSTRING(@MYDATE, 1,4); SET @AUX = @AUX + SUBSTRING(@MYDATE, 6,2); SET @AUX = @AUX + SUBSTRING(@MYDATE, 9,2); DECLARE @RTN AS DATETIME; SET @RTN = CAST(@AUX AS DATETIME); RETURN @RTN END Funciones para atributos booleanos:
Nombre de la Función fn_Sexo
Requerimiento Atributo de tipo bit Descripción o Propósito Se encarga de retornar el significado
que se ha determinado para los registros que tengan el atributo sexo
Variables @MyDate Codigo: CREATE FUNCTION dbo.fn_Sexo (@SEXO AS BIT) RETURNS VARCHAR(9) AS BEGIN IF (@SEXO = 0) BEGIN RETURN 'Femenino' END RETURN 'Masculino' END
Prototipo del Sistema de Información de PROMECYS
109
VISTAS: Una vista en SQL es el resultado de una consulta de varias entidades utilizadas para visualizar los registros que necesitamos de las tablas relacionadas sin la necesidad de crear una nueva. En nuestra base de datos las principales vistas son las que se crearon para el proceso de inscripción ya que éstas se encargaran de mostrar la asignaturas que un determinado estudiante puede inscribir durante un cuatrimestre, tomando en cuenta las precedencias, prerrequisitos, inscripciones anteriores y si puede adelantar clases; el resto de las vistas en su mayoría representan los reportes que se necesitan en el sistema, . El nombre de las vistas está representado por el prefijo “sql” seguido del nombre de la vista. Las principales vistas de la base de datos de PROMECYS: Nombre de la Vista sqlAsigEstudiante
Requerimiento Dbo.Estudiante, dboMatricula, dboInscripcion, dboNota, dbo.Asignatura,
Descripción o Propósito Se encarga de mostrar las notas de las asignaturas que han inscrito los estudiantes.
Resultado Idestudiante, idasignatura, descripción, nota, calificación, cuatrimestre, anio
Código: CREATE VIEW dbo.sqlAsigEstudiante AS SELECT dbo.Estudiante. Idestudiante, dbo.Nota.Idasignatura, dbo.Asignatura.Descripcion, dbo.Nota.Nota, dbo.Nota.Calificacion, dbo.Inscripcion.Cuatrimestre, dbo.Matricula.Anio FROM dbo.Estudiante INNER JOIN dbo.Matricula ON dbo.Estudiante.Idestudiante = dbo.Matricula.Idestudiante INNER JOIN dbo.Inscripcion ON dbo.Matricula.Idmatricula = dbo.Inscripcion.Idmatricula INNER JOIN dbo.Nota ON dbo.Inscripcion.Idinscripcion = dbo.Nota.Idinscripcion INNER JOIN dbo.Asignatura ON dbo.Nota.Idasignatura = dbo.Asignatura.Idasignatura
Prototipo del Sistema de Información de PROMECYS
110
Nombre de la Vista sqlAsigEstReprobadas
Requerimiento dbo.sqlAsigEstudiante Descripción o Propósito Se encarga de mostrar todas las
asignaturas que un estudiante ha reprobado y la cantidad de veces que la ha dejado.
Resultado Idestudiante, Idasignatura, Cantidad Codigo: CREATE VIEW dbo.sqlAsigEstReprobadas AS SELECT Idestudiante, Idasignatura, COUNT(Idasignatura) AS Cantidad FROM dbo.sqlAsigEstudiante WHERE (Nota < 60) GROUP BY Idasignatura, Idestudiante Nombre de la Vista sqlClaseSinPcyRqNoInscritas
Requerimiento dbo.Asignatura, dbo.Estudiante,
dbo.Requisito, dbo.Precedencia, dbo.Matricula, dbo.Inscripcion, dbo.Nota
Descripción o Propósito Se encarga de mostrar las asignaturas que no tienen precedencias ni prerrequisitos y que además no hayan sido inscritas por el estudiante.
Resultado Idestudiante, idasignatura, cuatrimestre
CREATE VIEW sqlClaseSinPcyRqNoInscritas as SELECT E.IDESTUDIANTE, A.IDASIGNATURA, A.CUATRIMESTRE FROM ASIGNATURA A, ESTUDIANTE E WHERE A.IDASIGNATURA NOT IN (SELECT IDASIGNATURA FROM REQUISITO) AND A.IDASIGNATURA NOT IN (SELECT IDASIGNATURA FROM PRECEDENCIA) AND A.IDASIGNATURA NOT IN (SELECT N.IDASIGNATURA FROM MATRICULA M, INSCRIPCION I, NOTA N WHERE M.IDMATRICULA = I.IDMATRICULA AND I.IDINSCRIPCION = N.IDINSCRIPCION AND E.IDESTUDIANTE = M.IDESTUDIANTE)
Prototipo del Sistema de Información de PROMECYS
111
CAPITULO IV:
INTERFAZ DE USUARIO
Prototipo del Sistema de Información de PROMECYS
112
ESTRUCTURA DE LA INTERFAZ DEL SISTEMA
Para realizar el diseño de la interfaz de usuario del sistema de información de PROMECYS utilizamos el lenguaje Java por medio de la plataforma de programación Netbeans el cual nos brinda muchas ventajas al momento de desarrollar nuestra aplicación ya que además de escribir, compilar, depurar y ejecutar programas puede servir para cualquier otro lenguaje de programación y nos facilita el trabajo al momento de conectarnos con la base de datos de SQL Server 2000. Estructura de las clases del sistema: En java todo forma parte de una clase, es una clase o describe como funciona una clase, y nuestro sistema no es la excepción, podemos decir que las clases son la parte fundamental de la aplicación ya que de ellas depende la buena funcionalidad y comunicación tanto con el mismo sistema como con la base de datos.
Todas las clases del sistema son públicas, lo que quiere decir que pueden ser accedidas desde cualquier clase del paquete o de otros paquetes utilizando únicamente la palabra import.
Para mantener un manejo mas ordenado de la funcionalidad de las diferentes clases del sistema, las subdividimos en paquetes, el paquete Clases que representa las tablas y métodos de la base de datos y el paquete Formularios que como su mismo nombre lo dice representa los formularios de la interfaz, también existe el paquete Reportes, aquí se guardan los reportes que genera el sistema.
PAQUETE CLASES: Al nombre de la clase se le antepone el prefijo “cs” (a excepción de la clase ProConexion), seguido del nombre de la tabla de la base de datos a la que ésta representa.
Los métodos de cada una de las clases también son públicos y serán nombrados de acuerdo a la función que queremos que realice. En la mayoría de las clases “cs” existen los siguientes métodos: Agregar(ProConexion ) - retorna boolean Esta función indica que si se realizó la operación Agregar getDB(ProConexion ) - retorna bolean Esta función indica que si se realizó la operación Obtener Actualizar(ProConexion) - retorna boolean Esta función indica que si se realizó la operación Actualizar
Prototipo del Sistema de Información de PROMECYS
113
Todas las clases “cs” a excepción de “ProConexion”, poseen atributos de datos simples que tienen su equivalente en la base de datos.
Los atributos podrán ser modificados de forma directa. No se están utilizando las funciones get o set puesto que no se determinó el uso de interfaces para su implementación. Ciertas clases poseen funciones static para su utilización sin necesidad de instanciar la clase, esto para hacer verificaciones en la base de datos de forma directa, este es el caso de: csAsignaturas public static String getPrimerGrupo(ProConexion con, String idAsig) csEstudiante public static long getSigId(ProConexion con) public static long ExisteCarnet(ProConexion con, String id) public static boolean MismoAnio(ProConexion con, long id, String fecha) public static boolean TieneMatricula(ProConexion con, long id)
public static long PuedeInscribir(ProConexion con, long id, String fecha)
csGrupo public static boolean getGrupAsig(ProConexion con, String grp, String asig)
Prototipo del Sistema de Información de PROMECYS
114
Estructura de las clases “CS” Nombre de la Clase Descripción Variables Métodos Paquetes que necesita csAsignatura
Representa la tabla Asignatura, por medio de ella se puede acceder y manipular los datos de esta tabla.
String ID_Asig String Descripción Int Cuatrimestre Int Creditos Int Anio
Guardar(): se utiliza para guardar los datos de una nueva asignatura en la BD. Actualizar(): se utiliza para actualizar los datos de una asignatura ya existente en la BD. getBD(): obtiene todos los datos de una determinada asignatura de la BD.
java.sql.CallableStatement; java.sql.ResultSet;
csEmpleado
Representa la tabla Empleado, por medio de ella se puede accesar y manipular los datos de esta tabla
Int ID String Cedula String Nombre1 String Nombre2 String Apellido1 String Apellido2 String Direccion String Cargo Int Sexo String Celular String Telefono
Guardar(): se utiliza para guardar los datos de un nuevo empleado en la BD Actualizar(): Se utiliza para actualizar los datos de un empleado existente en la BD ObtenerIdEmpleado(): Obtiene el Idempleado apartir de los datos que le son enviados.
java.sql.CallableStatement java.sql.ResultSe
Prototipo del Sistema de Información de PROMECYS
115
Nombre de la Clase Descripción Variables Metodos Paquetes que necesita csEstudiante
Representa la tabla Estudiante, por medio de ella se puede accesar y manipular los datos de esta tabla
Long ID; String Carnet String Nombre1 String Nombre2 String Apellido1 String Apellido2 int Estado_Civil int Sexo java.sql.Date Fecha_Nac; String Lugar_Nac String Nacionalidad String Departamento String Municipio String Direccion String Centro_Ense int Centro_Tipo String Cedula String Telefono String Celular String Correo csPrematricula datos_premat csLaboral datos_laboral
getFechaString(): transforma la fecha del formato de la BD al formato dd/mm/aa. getFecha(): transforma la fecha dd/mm/aa al formato de fecha de la BD. Guardar(): se utiliza para guardar los datos de un nuevo estudiante en la BD Actualizar():Se utiliza para actualizar los datos de un estudiante existente en la BD getDB():obtiene todos los datos de un determinado estudiante de la BD. getsigId(): método utilizado para incrementar el numero del Idestudiante cada vez que ingresa uno nuevo. ExisteCarnet(): método para validar que el numero de carnet no se repita. getLaboralCount(): método utilizado para validar que un estudiante tenga solo una información laboral. MismoAnio(): método para validar que existan un maximo de tres inscripciones por año. TieneMatricula(): metodo para validar que no existan dos matriculas el mismo año.
java.sql.CallableStatement java.sql.ResultSet
Prototipo del Sistema de Información de PROMECYS
116
Nombre de la Clase Descripción Variables Métodos Paquetes que necesita csGrupo
Representa la tabla Grupo, por medio de ella se puede accesar y manipular los datos de esta tabla
String Id int anio String ubicacion Int aula
Guardar(): se utiliza para guardar los datos de un nuevo Grupo en la BD Actualizar():Se utiliza para actualizar los datos de un grupo existente en la BD getDB():obtiene todos los datos de un determinado grupo de la BD getGrupAsig(): obtiene las asignaturas y los grupos en las que se imparten
java.sql.CallableStatement java.sql.ResultSet
csInscripcion Representa la tabla Inscripcion, por medio de ella se puede accesar y manipular los datos de esta tabla
Long Id; Long id_matricula Int cuatrimestre Int id_empleado java.sql.Date fecha Int becado
Guardar():se utiliza para guardar los datos de una nueva Inscripción en la BD InsertId():
java.sql.CallableStatement java.sql.ResultSet
csLaboral Representa la tabla Laboral, por medio de ella se puede accesar y manipular los datos de esta tabla
Long Id String lugar String direccion String cargo String telefono String fax
Guardar(): se utiliza para guardar los datos de un nuevo estudiante trabajador en la BD getBD: obtiene todos los dato determinado estudiante trabajador de la BD Actualizar():Se utiliza para actualizar los datos de un estudiante trabajador existente en la BD
java.sql.CallableStatement java.sql.ResultSet
Prototipo del Sistema de Información de PROMECYS
117
csMatricula Representa la tabla Matrícula por medio de ella se puede accesar y manipular los datos de esta tabla.
Long ID Long id_estudiante Int recibo Int anio java.sql.Date fecha Int becado
Guardar(): se utiliza para guardar los datos de una nueva matrícula en la BD. getInsertId(): se utiliza para incrementar el numero de matricula.
java.sql.CallableStatement java.sql.ResultSet
csNota Representa la tabla Nota por medio de ella se puede accesar y manipular los datos de esta tabla.
Long id_inscripcion String id_asig String id_grupo Float nota Int calificacion
Guardar(): se utiliza para guardar los datos de una nueva nota. getBD: obtiene todos los dato determinada nota existente en la BD Actualizar():Se utiliza para actualizar los datos de una nota determinada existente en la BD
java.sql.CallableStatement java.sql.ResultSet
csPrecedencia Representa la tabla Precedencia por medio de ella se puede accesar y manipular los datos de esta tabla
String asig String preced
Guardar(): Se utiliza para guardar los datos de una nueva precedencia.
clases.ProConexion
csPrematricula Representa la tabla Prematrícula por medio de ella se puede accesar y manipular los datos de esta tabla
Long id Int recibo Date fecha_pre Int empleado_id
Guardar(): Se utiliza para guardar los datos de una nueva prematrícula. getBD: obtiene todos los dato determinada prematrícula existente en la BD Actualizar():Se utiliza para actualizar los datos de una determinada prematrícula existente en la BD getFechaString(): transforma la fecha del formato de la BD al formato dd/mm/aa. getRecibo() metodo que valida que el numero de recibo sea int.
java.sql.CallableStatement java.sql.ResultSet java.util.Date
Prototipo del Sistema de Información de PROMECYS
118
csPrerrequisito Representa la tabla Requisito por medio de ella se puede accesar y manipular los datos de esta tabla
String asig String prereq
Guardar(): Se utiliza para guardar los datos de una nueva prerrequisito
clases.ProConexion
csProfesor Representa la tabla Profesor por medio de ella se puede accesar y manipular los datos de esta tabla
Int Id String cedula String nombre1 String nombre2 String apellido1 String apellido2 Int sexo String direccion String especialidad Int tipo; String telefono String celular Date fecha Int estado
Guardar(): Se utiliza para guardar los datos de un nuevo profesor. getBD: obtiene todos los dato determinado profesor existente en la BD Actualizar():Se utiliza para actualizar los datos de un determinado profesor existente en la BD. getFechaString(): transforma la fecha del formato de la BD al formato dd/mm/aa. getFecha(): transforma la fecha dd/mm/aa al formato de fecha de la BD.
java.sql.CallableStatement java.sql.ResultSet java.util.Date
csAsigGrpçupProf Representa la tabla AsigProfGrupo por medio de ella se puede accesar y manipular los datos de esta tabla
String asignatura String grupo Int profeso java.sql.Date fecha
Guardar(): Se utiliza para guardar los datos de un nuevo registro de profesor con su grupo y asignatura que imparte getBD: obtiene todos los datos de un determinado registro de profesor con su grupo y asignatura que imparte, existente en la BD Actualizar():Se utiliza para actualizar los datos de un determinado registro de profesor con su grupo y asignatura que imparte existente en la BD
java.sql.CallableStatement java.sql.ResultSet
Prototipo del Sistema de Información de PROMECYS
119
PAQUETE DE FORMULARIOS: El paquete de formularios del sistema de información de PROMECYS representa todas las interfaces y las funciones que se realizan en ellas, en otras palabras podemos decir que es el puente de conexión con los usuarios del sistema y el sistema mismo ya que por medio de éstos es que la información llegará al mismo. Para distinguir las clases que pertenecen a este paquete las nombraremos con el prefijo “frm” seguido por el nombre de la actividad que se realizará en el éste. En los formularios frm existen funciones que no retornan ningún tipo de valor (void), por lo cual son sencillamente procedimientos que utilizan otras funciones, aunque los métodos que mayormente encontramos en estos formularios son las que nos serán útiles para mostrar información obtenida directamente de la base de datos (en su mayoría para llenar las grid) o por medio de las clases “cs”.
Prototipo del Sistema de Información de PROMECYS
120
Nombre del Formulario
Descripción Variables Métodos Paquetes que necesita
fmrPrincipal Representa el menú principal, desde aquí se mandan a llamar a todos los formularios del sistema.
private ProConexionmyConexion private boolean flagConexion;
mnuSalir_ArchivoActionPerformed: salir del sistema mnuEmp_ConfigActionPerformed: llama al formulario Empleado mnuPrematricula_ProcesoActionPerformed: llama al formulario Prematricula mnuEst_ConfigActionPerformed: llama al formulario Estudiante mnuProf_ConfigActionPerformed: llama al formulario Profesor mnuAsig_ConfigActionPerformed llama al formulario Asignatura mnuGroup_ConfigActionPerformed llama al formulario Grupo mnuAGP_ConfigActionPerformed llama al formulario AsignaturaGrupoProfesor mnuMatricula_ProcesoActionPerformed llama al formulario Matricula mnuNotas_ProcesoActionPerformed llama al formulario Notas
clases.*; java.util.HashMap; java.util.Map; javax.swing.JOptionPane; net.sf.jasperreports.
fmrPrematricula Es el formulario que representa el proceso de prematrícula del estudiante.
private ProConexion myConexion; private long modificando; private Vector vEst; private csEstudiante est;
getFechaActual(): Toma la fecha actual del calendario LlenarDepartamento(): Muestra la lista de departamento que contiene el combo. LlenarMunicipio(): Muestra la lista de municipio que contiene el combo LlenarComboEmp(): Toma los datos de la tabla empleado para mostrarlos.
clases.*; java.sql.*; java.util.Vector; java.util.Calendar; java.util.HashMap; java.util.Map; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter; jasperreport.*;
Prototipo del Sistema de Información de PROMECYS
121
LlenarGrid(): Llena una tabla con la lista de estudiantes prematriculados getMunicipio(): Selecciona un municipio de la lista que se despliega en el combo getRecibo(): Toma el número de recibo. getEmpleadoId(): Toma el valor del id del empleado getTelefono() Verifica si cumple con el formato de telefono getCelular(): Verifica si cumple con el formato de celular CargarEstudiante(): Carga los datos del estudiante para mostrarlos en la pantalla GuardarDatos(): Guarda el ingreso de datos en el formulario. ModificarDatos(): Permite realizar modificaciones en los datos que se ingresan en el formulario de prematrícula LimpiarFormulario(): Limpia o Vacía los texto del formulario LlenarFormulario(): Muestra los datos del formulario prematricula luego de realizar una búsqueda BuscarDatosGrid(): Busca los datos que contienen las tablas filtrando según los datos que digite el usuario. Mod_Deshabilitar(): Deshabilita los campos que contiene el formulario prematrícula. Mod_Habilitar(): Habilita los campos que contiene el formulario.
Prototipo del Sistema de Información de PROMECYS
122
btnModificarMouseClicked(): Muestra los datos que se desea modificar al dar click btnBuscarMouseClicked(): Muestra los datos que se desea buscar al dar click alPresionarEnterBusqueda(): Realizar busqueda al presionar enter btnLimpiarMouseClicked(): Limpia los campos al dar click btnLaboralMouseClicked(): Muestra el formulario laboral al dar click btnGuardarMouseClicked(): Guarda los datos al dar click cmbDeptoItemStateChanged(): Filtra los municipios del departamento seleccionado btnSalirMouseClicked(): Salir del formulario prematrícula. jbtnReporteActionPerformed(): Imprime reporte
fmrMatricula Es el formulario que representa el proceso de matrícula del estudiante
private csEstudiante est; private ProConexion myConexion; private int codigo; private boolean modificado;
getFechaActual(): Toma la fecha actual del calendario getEmpleadoId(): LlenarComboEmp(): Muestra el nombre del empleado VerificarCarnet(): Verifica el valor y la longitud del numero de carnet LimpiarGrid_Inscripcion(): Limpia los datos de la tabla inscripción VerificarMatricula(): Verifica los datos introducidos en los campos del formulario. LlenarGrid_Inscripcion(): Llena la tabla con los datos introducidos en la
jasperreport.*; clases.*; java.sql.*; java.util.Vector; java.util.Calendar; java.util.HashMap; java.util.Map; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel
Prototipo del Sistema de Información de PROMECYS
123
inscripción de asignaturas LlenarGrid_NuevoIngreso(): Llena la tabla con los datos del estudiante LlenarGrid_Reingreso(): Llena la tabla con los datos del estudiante CargarMatricula(): Carga los datos para mostrarlos FormularioEstado(): Verifica si los campos del formulario tienen datos VerificarGrupos(): Verifica datos introducidos en grupo jbtnImprimirReporteActionPerformed(): Imprime Reporte jbtnReporteActionPerformed(): Imprime Reporte btnReing_BusMouseClicked(): Realiza busqueda al dar click btnNuevo_BusMouseClicked(): Realiza busqueda al dar click Buscar_NuevoIngreso(): Realiza busqueda de nuevo ingreso btnMatricular_InscMouseClicked(): Muestra los datos del estudiante que se desea matricular btnMatricular_ReiMouseClicked(): Muestra los datos del estudiante que se desea matricular btnGuardarMouseClicked(): Guarda datos de matricula txtCuatrimestreKeyPressed(): _Verifica si tiene algún valor cuatrimestre txtAnioKeyPressed(): Verifica si tiene algún valor anio btnCargarInscripcionMouseClicked(): Muestra las asignaturas a inscribir
Prototipo del Sistema de Información de PROMECYS
124
btnCancelarMouseClicked(): Cancela la matrícula txtCarnetKeyPressed(): Verifica si el carnet es válido btnSalirMouseClicked(): Salir del formulario jButton1MouseClicked(): Muestra el formulario Actualizar Estudiante
fmrInscripcion Es el formulario que representa el proceso de Inscripción del estudiante
csEstudiante est; ProConexion myConexion; boolean modificado;
getFechaActual(): Toma la fecha actual del calendario LlenarComboEmp(): Muestra el nombre del empleado VerificarCarnet(): Verifica el valor del carnet LimpiarGrid_Inscripcion(): Limpia los valores de la tabla inscripción VerificarMatricula(): Verifica el valor de cuatrimestre anio y recibo LlenarGrid_Inscripcion(): Llena la tabla con los datos introducidos en la inscripción de asignaturas LlenarGrid_Reingreso(): Llena la tabla con los datos del estudiante CargarMatricula(): Carga los datos para mostrarlos FormularioEstado(): Verifica si los campos del formulario tienen datos VerificarGrupos(): Verifica dato introducido en grupo chkBecadoMouseClicked():
clases.*; java.sql.*; java.util.Calendar; javax.swing.JOptionPane; java.util.Vector; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter; jasperreport.*;
Prototipo del Sistema de Información de PROMECYS
125
Indica si tiene algún valor beca btnCargarInscripcionMouseClicked(): Muestra las asignaturas a inscribir txtCuatrimestreKeyPressed(): Indica si tiene algún valor Cuatrimestre txtAnioKeyPressed(): Verifica si tiene algun valor anio jButton1MouseClicked(): Muestra el formulario Actualizar Estudiante txtCarnetKeyPressed(): Verifica si el carnet es válido btnBuscarMouseClicked(): Realiza busqueda txtBus_Nom2Buscar_Reingreso(): Compara los textos con los campos de la BD txtBus_Nom1Buscar_Reingreso(): Compara los textos con los campos de la BD txtBus_Ape2Buscar_Reingreso(): Compara los textos con los campos de la BD txtBus_Ape1Buscar_Reingreso() Compara los textos con los campos de la BD btnSalirMouseClicked(): Salir del formulario inscripción
frmAsigGrupProf Representa el formulario que contiene los datos de los profesores con las asignaturas que imparten y los grupos asignados
private ProConexion myConexion; private boolean modificando;
getFechaActual(): Toma la fecha actual del calendario LlenarComboAsig(): Muetsra nombre de las asignaturas LlenarComboProfesores(): Muestra el nombre de los profesores LlenarComboGrupos(): Muestra el nombre de los grupos LlenarFiltroGrupos(): Muestra los datos del filtro por grupo LlenarFiltroProfesores(): Muestra los datos del filtro por Profesor
clases.*; java.sql.*; java.util.Calendar; javax.swing.JOptionPane; java.util.Vector; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter; jasperreport.*;
Prototipo del Sistema de Información de PROMECYS
126
LlenarFiltroAsignaturas(): Muetra los datos del filtro por Asignaturas LlenarComboFiltro(): Muestra el tipo de filtro LlenarGridPrincipal(): Muestra los datos seleccionados String strFiltroGrupo(): Establece el tipo de filtro grupo String strFiltroAsignatura(): Establece el tipo de filtro asignatura strFiltroProf esor(): Establece un tipo de filtro Profesor getFiltro(): define valor interno para cada tipo de filtro getIdGrupo(): Toma el valor del grupo seleccionado getIdAsignatura(): Toma el valor de la asignatura seleccionada getIdProfesor(): Toma el valor del profesor seleccionado getFechaSql(): btnFiltrarMouseClicked(): Muestra los datos al dar click btnGuardarMouseClicked(): Guarda los datos que se han digitados btnSalirMouseClicked(): Salir del formulario AsigGrupProf
fmrAsigPre Es el formulario donde se ingresan las precedencia de las asignaturas
private ProConexion myConexion; private Vector vPre; private Vector colNames;
ObtenerIdCombo(): Obtiene el valor del dato seleccionado en el combo. LlenarComboAsig(): Muestra nombre de las asignaturas ObtenerIndexGridPrecedencia(): Verifica si la asignatura tiene precedencia
clases.*; java.sql.ResultSet; java.util.Vector; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel;
Prototipo del Sistema de Información de PROMECYS
127
EliminarPrecedenciaVector(): Elimina precedencia de la asignatura btnSalirMouseClicked(): Salir del formulario AsigPre btnEliminarMouseClicked(): Llama al metodo eliminarprededenciavector al dar click. btnAgregarMouseClicked(): Agrega nueva precedencia de la asignatura
fmrAsignatura Representa el formulario que contiene el registro de asignaturas de la carrera
private ProConexion myConexion; private boolean modificando; private csAsignatura asig; private Vector vPrereq; private Vector vPreced;
ObtenerIdGridAsignaturas(): Toma el valor de la asignatura seleccionada en la grid LlenarGridAsig(): llena la gid asignatura con los datos de estas EliminarPrerequisitosDB(): Elimina prerrequisito de una asignatura determinada EliminarPrecedenciasDB(): Elimina precedencia de una asignatura determinada GuardarPrerequisitos(): Guarda nuevo prerrequisito de la asignatura GuardarPrecedencias(): Guarda nueva precedencia de la asignatura LimpiarFormulario(): Limpia o vacía los campos del formulario CargarFormulario(): btnModificarMouseClicked(): muestra datos de la asignatura seleccionada para modificarse btnCancelarModifMouseClicked(): Cancela modificación de asignatura btnPrecedMouseClicked(): muestra precedencia de una determinada asignatura
clases.*; java.sql.*; java.util.Calendar; javax.swing.JOptionPane; java.util.Vector; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter;
Prototipo del Sistema de Información de PROMECYS
128
btnGuardarMouseClicked(): Guarda datos de asignatura btnPrereqMouseClicked(): muestra prerrequisito de una determinada asignatura btnSalirMouseClicked(): Salir del formulario Asignatura
fmrEmpleado Representa el formulario que contiene el registro de los Empleados
private ProConexion myConexion; private int modificando; private Vector vEmp;
VerificarDatosFormulario(): confirma que todos los datos requeridos del formulario esten llenos LlenarGrid(): llena la grid de empleados con los datos de la BD BuscarDatos(): Busca los datos que se desean mostrar LimpiarDatos(): Limpia o Vacia los campos LlenarFormulario(): llena el formulario de Empleado con los datos de un empleado que se ha seleccionado. ObtenerIdGrid(): Toma los datos del empleado GuardarDatos(): Verifica si los datos a guardar son correctos ModificarDatos(): se encarga de guardar la modificación de los datos de un empleado existente jbtnImprimirRempleadosActionPerformed(): Imprime Reporte btnModificarMouseClicked(): Muestra los datos del empleado que se desea modificar btnGuardarMouseClicked(): Guarda los datos de los textos del formulario Empleado.
clases.*; java.sql.*; java.util.HashMap; java.util.Map; java.util.Vector; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel;
Prototipo del Sistema de Información de PROMECYS
129
txtBuscarApellido1KeyPressed(): compara los datos de la tabla del formulario con los datos q contiene la BD btnBuscarMouseClicked(): Llama al método buscar datos al dar click btnCancelarEditMouseClicked(): llama al metodo limpiar() btnSalirMouseClicked(): Salir del formulario Empleado
FmrEstudiante Actualizar
Es El formulario por medio del cual se actualizan los datos del estudiante
csEstudiante est; ProConexion myConexion;
LlenarDepartamento(): Muestra la lista de los departamentos LlenarMunicipio(): Muestra la lista de los municipios LlenarDatos(): Guarda los datos ingresados en el formulario cmbDeptoItemStateChanged(): Muetra la lista de municipio btnSalirMouseClicked(): Salir del formulario
clases.*; java.sql.ResultSet; javax.swing.text.MaskFormatter;
FmrEstudiante Datos
Es el formulario por medio del cual se pueden modificar los datos del estudiante
private csEstudiante est; private ProConexion myConexion; private boolean valido; private Vector vEst; private Vector vAsig;
VerificarCarnet(): verifica si el numero de carnet es valido LlenarGrid_Reingreso(): muestra la gris con los datos de prematricula LlenarGrid_Notas(): muestra en la grid de notas las clases que ha inscrito el estudiante LimpiarGrid_Notas(): limpia la gris motas cuando esta tiene datos Button1MouseClicked(): Muestra el formulario ActualizarEstudiante al dar clic btnAsignarMouseClicked(): se encarga de guardar la asignación de los números de carnet btnBuscar1MouseClicked(): busca un estudiante en la BD btnSalirMouseClicked(): salir del formulario
clases.*; java.sql.ResultSet; java.util.Vector;
Prototipo del Sistema de Información de PROMECYS
130
FmrLaboral
Es el formulario donde se hace el registro laboral de los estudiantes
LlenarDatos(): muestra la información laboral del estudiante getTelefono(): valida el numero de telefono getFax(): valida el numero de celular guardarMouseClicked(): Guarda datos al dar click btnSalirMouseClicked(): Salir del formulario
clases.*; javax.swing.JOptionPane; javax.swing.text.MaskFormatter;
FmrNotas Representa el formulario de las notas de los estudiantes
private csEstudiante est; private ProConexion myConexion; private Vector vNotas; private Vector vAsig;
getFechaActual(): Toma la fecha actual del calendario LlenarGrid_Reingreso(): Llena la tabla con los datos del estudiante VerificarCarnet(): Verifica el valor del carnet FormularioEstado(): Verifica si los campos del formulario tienen datos CargarMatricula(): Carga los datos para mostrarlos LlenarGrid_Notas(): llena la grid con los datos de las asignaturas de la BD LimpiarGrid_Notas(): Limpia o vacía tabla del formulario nota ValidarNotas(): Verifica el valor ingresado de la nota LimpiarFormulario(): Limpia o vacía los campos del formulario btnCancelarMouseClicked(): Cancela operación btnGuardarMouseClicked(): Guarda datos jButton1MouseClicked(): Muestra el formulario ActualizarEstudiante al dar click
clases.*; java.sql.*; java.util.Calendar; javax.swing.JOptionPane; java.util.Vector; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter;
Prototipo del Sistema de Información de PROMECYS
131
txtCarnetKeyPressed(): Verifica si el carnet es válido btnSalirMouseClicked(): Salir del formulario btnAsignarMouseClicked(): Muestra los datos del estudiante en el formulario para asignar notas. btnBuscarMouseClicked(): Muestra datos del estudiante seleccionado txtBus_Nom2Buscar_Reingreso(): compara los datos de la tabla del formulario con los datos q contiene la BD txtBus_Nom1Buscar_Reingreso(): compara los datos de la tabla del formulario con los datos q contiene la BD txtBus_Ape2Buscar_Reingreso(): compara los datos de la tabla del formulario con los datos q contiene la BD txtBus_Ape1Buscar_Reingreso(): compara los datos de la tabla del formulario con los datos q contiene la BD
FrmProfesor Es el formulario por medio del cual se guardan los registros de los Profesores
private ProConexion myConexion; private int err; private int codigo;
getFechaActual(): Toma la fecha actual del calendario LlenarGrid(): LimpiarDatos(): Limpia o vacía los campos del formulario Profesor btnModificarMouseClicked(): Muestra los datos del Profesor al dar click btnSalirMouseClicked(): Salir del formulario Profesor btnGuardarMouseClicked(): Guarda los datos ingresados del profesor
clases.*; java.sql.ResultSet; java.util.Calendar; java.util.Vector; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel; jasperreport*.
Prototipo del Sistema de Información de PROMECYS
132
FrmBotar
Es el formulario que representa las asignaturas que el estudiante desea botar
private csEstudiante est; private csMatricula mat; private csInscripcion ins; private ProConexion myConexion;
getFechaSql(): getFechaActual(): Toma la fecha actual del calendario LimpiarGrids(): Limpia o vacia los datos de la tabla
clases.*; java.sql.*; java.util.Calendar; javax.swing.JOptionPane; java.util.Vector; javax.swing.table.DefaultTableModel; javax.swing.text.MaskFormatter;
Prototipo del Sistema de Información de PROMECYS
133
REPORTES DE PROMECYS
La herramienta utilizada para generar reportes dentro de la aplicación es el jasperreport , la cual es una herramienta de código libre en java que facilita diversidad de presentaciones en pantallas, o diseños en impresoras, o para archivar archivos en formato PDF, HTML, RTF, XLS, CSv y XML. Los reportes facilitan al usuario visualizar la información almacenada tanto en los procesos de prematrícula, matrícula, inscripción de clases, ingreso de notas así como también la información de los empleados y docentes que laboran para PROMECYS. Además se podrá acceder fácilmente a la ubicación de los grupos de clases, asignaturas que conforman la carrera. Con el uso del jaspereport el usuario no solo se ahorrará tiempo sino que también tendrá mayor eficiencia en su trabajo puesto que no tendrá que llenar los formatos de prematrícula y matrícula de forma manual lo que evita posibles errores en la escritura En el proceso de prematricula el usuario podrá imprimir la hoja de prematricula por estudiantes, una lista de estudiantes prematriculados, cabe agregar que en el proceso de matrícula también se podrán visualizar los mismos reportes. Cabe agregar que se incluirán reportes que brinden al usuario información necesaria para el desempeño de las actividades diarias de PROMECYS, tales reportes son: 1. Hoja de Prematrícula por Estudiante
Nombre del Reporte Hoja de Prematrícula Requerimientos del Reporte
dbo.Estudiante, dbo,Prematricula
Descripción/Propósito Muestra los detalles de la prematrícula de cada estudiante
Campos Llaves Idestudiante Modo de impresión Vertical Total -- Orden dbo.Estudiante(* Todos los atributos excepto
Idestudiante), dbo.Prematrícula (* Todos los atributos excepto Idprematricula)
Prototipo del Sistema de Información de PROMECYS
134
2. Hoja de Matricula por Estudiante Nombre del Reporte Hoja de Matrícula Requerimientos del Reporte
dbo.Matrícula, dbo.Estudiante
Descripción/Propósito Muestra los detalles de la matrícula de cada estudiante Campos Llaves Idestudiante, Idmatrícula Modo de impresión Vertical Total -- Orden dbo.Estudiante(* Todos los atributos), dbo,Matrícula(*
Todos los atributos) 3. Estudiantes Prematriculados Nombre del Reporte Estudiantes Prematriculados Requerimientos del Reporte
dbo.Estudiante, dbo.Prematricula
Descripción/Propósito Muestra la lista de todos los estudiantes prematriculados
Campos Llaves Idestudiante, Idprematrícula Modo de impresión Vertical Total Total de Estudiantes Prematriculados Orden dbo.Estudiante(Primernombre, Segundonombre,
Primerapellido, Segundoapellido) 4. Estudiantes Matriculados Nombre del Reporte Estudiantes Matriculados Requerimientos del Reporte
dbo.Estudiante, dbo,Matrícula
Descripción/Propósito Muestra la lista de los estudiantes matriculados Campos Llaves Idestudiante, Idmatricula Modo de impresión Vertical Total Total de Estudiantes Matriculados Orden dbo.Idestudiante (Primernombre, Segundonombre,
Primerapellido, Segundoapellido) 5. Grupos de la Carrera
Nombre del Reporte Grupos de la carrera Requerimientos del Reporte
dbo.Grupo
Descripción/Propósito Muestra la ubicación geográfica de los grupos Campos Llaves Idgrupo Modo de impresión Vertical Total -- Orden dbo.Grupo(Idgrupo, Anio, Aula, Ubicacion) 6. Estudiantes Becados
Prototipo del Sistema de Información de PROMECYS
135
Nombre del Reporte Estudiantes Becados Requerimientos del Reporte
dbo.Inscripcion, dbo.Estudiante, dbo.Matricula
Descripción/Propósito Muestra la lista de los estudiantes becados Campos Llaves IdInscripcion, Idmatricula, Idestudiante Modo de impresión Vertical Total Total Estudiantes Becados Orden dbo.Estudiante(Carnet, Primernombre,
Segundonombre, Primerapellido, Segundoapellido) 7. Datos de Profesor Nombre del Reporte Datos de Profesor Requerimientos del Reporte
dbo.Profesor
Descripción/Propósito Muestra los datos personales y laborales de los docentes contratados en promecys
Campos Llaves Idprofesor Modo de impresión Vertical Total -- Orden Dbo.Profesor (Primernombre,
Segundonombre,Primerapellido, Segundoapellido, Especialidad, Telefono, Celular)
8. Datos de Empleado Nombre del Reporte Datos de Empleado Requerimientos del Reporte
dbo.Empleado
Descripción/Propósito Muestra los datos personales de los empleados de promecys, así como también el cargo q ocupan
Campos Llaves Idempleado Modo de impresión Vertical Total -- Orden dbo.Empleado (* Todos los atributos) 9. Asignaturas impartidas por grupos
Prototipo del Sistema de Información de PROMECYS
136
Nombre del Reporte Asignaturas impartidas por grupos Requerimientos del Reporte
dbo.AsigProfGrupo, dbo.Profesor dbo.grupo, dbo.Asignatura
Descripción/Propósito Muestra los grupos donde se imparten las asignaturas de la carrera
Campos Llaves Idgrupo, Idasignatura, Idprofesor,Idgrupo Modo de impresión Vertical Total -- Orden dbo.AsigProfGrupo (Todos los atributos),
dbo.Profesor(Primernombre,Segundonombre Primerapellido, Segundoapellido, Telefono, Celular )
10. Notas de los Estudiantes Nombre del Reporte
Notas de los Estudiantes
Requerimientos del Reporte
dbo.Asignatura, dbo.Matricula, dbo.Nota, dbo.Inscripcion dbo.Estudiante
Descripción/Propósito
Muestra el nombre de los Estudiantes y las notas obtenidas de todas las asignaturas inscritas
Campos Llaves IdAsignatura, Idmatricula, Idinscripcion, Idestudiante Modo de impresión Vertical Total -- Orden dbo.Estudiante(Primernombre,Segundonombre,Primerap
ellido, Segundoapellido), dbo.Asignatura(Idasignatura),dbo.Nota(nota, Calificacion)
11. Hoja de Inscripción Nombre del Reporte
Hoja de Inscripción
Requerimientos del Reporte
dbo.Matricula, dbo.Inscripcion, dbo.Estudiante,dbo.Notas, dbo.Asignatura
Descripción/Propósito
Muestra las asignaturas inscritas por cada estudiante
Campos Llaves Idmatrícula, IdInscripcion, Idestudiante Modo de impresión Vertical Total -- Orden dbo.Estudiante(Primernombre,Segundonombre,Primerap
ellido, Segundoapellido), dbo.Inscripcion (Cuatrimestre), , dbo.Asignatura(Idasignatura,Descripcion)
12. Estudiantes Trabajadores
Prototipo del Sistema de Información de PROMECYS
137
Nombre del Reporte Estudiantes Trabajadores Requerimientos del Reporte
dbo.Estudiante, dbo.Laboral
Descripción/Propósito Muestra el nombre del estudiante y los datos del centro de trabajo
Campos Llaves Idestudiante Modo de impresión Vertical Total -- Orden dbo.Estudiante(Primerapellido, Segundonombre,
Primerapellido, Segundoapellido, Carnet), dbo.Laboral(Todos los atributos excepto Idestudiante)
13. Estudiantes sin carnet Nombre del Reporte Estudiantes sin carnet Requerimientos del Reporte
dbo.Estudiante
Descripción/Propósito Muestra la lista de los Estudiantes que no se les ha asignado carnet
Campos Llaves Idestudiante Modo de impresión Vertical Total Total de Estudiantes sin carnet Orden dbo.Estudiante (Primernombre, Segundonombre
Primerapellido, Segundoapellido) 14. Estudiantes Hombres Nombre del Reporte Estudiantes Hombres Requerimientos del Reporte
dbo.Estudiante
Descripción/Propósito Muestra la cantidad de estudiantes de sexo masculino. Campos Llaves Idestudiante Modo de impresión Vertical Total Total de Estudiantes Hombres Orden dbo.Estudiante (Carnet,Primernombre,
Segundonombre Primerapellido, Segundoapellido) 15. Estudiantes Mujeres
Prototipo del Sistema de Información de PROMECYS
138
Nombre del Reporte Estudiantes Mujeres Requerimientos del Reporte
dbo.Estudiante
Descripción/Propósito Muestra la cantidad de estudiantes de sexo femenino Campos Llaves Idestudiante Modo de impresión Vertical Total Total de Estudiantes Mujeres Orden dbo.Estudiante (Carnet,Primernombre,
Segundonombre Primerapellido, Segundoapellido) 16. Notas por Cuatrimestre Nombre del Reporte Notas por Cuatrimestre Requerimientos del Reporte
dbo.Asignatura, dbo.Matricula, dbo.Nota, dbo.Inscripcion
Descripción/Propósito Muestra las notas del estudiante de las asignaturas inscritas por cuatrimestre
Campos Llaves IdAsignatura, Idmatricula, Idinscripcion, Idestudiante Modo de impresión Vertical Total -- Orden dbo.Estudiante(Carnet,Primernombre, Segundonombre
Primerapellido, Segundoapellido), dbo.Asignaturas(Idasignatura,Descripcion), dbo.Nota(nota, Calificacion)
17. Estudiantes matriculados por año Nombre del Reporte Estudiantes matriculados por año Requerimientos del Reporte
dbo.Matricula, dbo.Estudiante
Descripción/Propósito Muestra la lista de los estudiantes matriculados por cada año de la carrera
Campos Llaves Idmatrícula, Idestudiante Modo de impresión Vertical Total Total de estudiantes matriculados por año Orden Dbo.Estudiante (Carnet,Primernombre,
Segundonombre Primerapellido, Segundoapellido), dbo.Matricula (Anio)
INTERFAZ DE USUARIO
Prototipo del Sistema de Información de PROMECYS
139
Para mantener la seguridad en el sistema, es necesario que éste confirme que la persona que está entrando en sistema sea un usuario existente en el mismo. Para ello, al entrar en el sistema éste pide el nombre del usuario y la contraseña que éste posee por medio del siguiente formulario: Para tener una mejor visión del funcionamiento del prototipo del sistema de matricula e inscripción de PROMECYS se presentan las pantallas que conforman el funcionamiento del mismo. La pantalla que se observa a continuación es la principal que es desde donde el usuario podrá seleccionar la opción que desea para realizar un determinado proceso.
Pantalla Principal
Prototipo del Sistema de Información de PROMECYS
140
En la pantalla siguiente se visualiza que se puede configurar los datos de los empleados, los datos de profesores, de las asignaturas, los grupos, actualizar los datos de los estudiantes y además se puede conocer el vínculo que existe entre asignatura, grupo y profesor. El formulario Empleados permite ingresar los datos de las personas que laboran en PROMECYS, también permite modificar los datos almacenados así como consultarlos. La interfaz presenta dos pestañas una de ellas es para buscar los datos y la otra es para ingresar, modificar y guardar los datos de los empleados. Interfaz Empleados
Pantalla Principal
Prototipo del Sistema de Información de PROMECYS
141
El formulario de Docentes permite ingresar los datos de los profesores que imparten las clases en PROMECYS. Estos datos una vez que han sido almacenados pueden ser consultados y modificados, una vez que se hacen los cambios necesarios se puede guardar la información.
Interfaz Docentes
Prototipo del Sistema de Información de PROMECYS
142
El formulario Asignatura permite ingresar los datos de una nueva asignatura, también permite visualizar las asignaturas que han sido almacenadas. Algunas asignaturas tienen prerrequisitos, otras precedencias, algunas veces tiene ambas y hay algunas que no tienen ni prerrequisitos, ni precedencias; esto se puede registrar desde la interfaz Asignaturas para ello el usuario debe ingresar los datos de la asignatura y después lo selecciona y activa la interfaz de precedencia o prerrequisito en dependencia de la necesidad que se tenga. La pantalla para ingresar la precedencia y el prerrequisito son similares, solo se selecciona la asignatura deseada y se guarda como precedencia o prerrequisito.
Interfaz Asignaturas
Interfaz precedencia Nota: la interfaz prerrequisito es igual a la de precedencia
Prototipo del Sistema de Información de PROMECYS
143
En el formulario de Grupos se ingresa la información del grupo: el código, la ubicación, el año y el número de aula, también se puede visualizar la información de los grupos que han sido almacenados.
Interfaz Grupos
Prototipo del Sistema de Información de PROMECYS
144
Por medio de este formulario, se podrá asignar los números de carnet a los estudiantes que todavía no lo tengan, teniendo una lista de todos los estudiantes para hacer la búsqueda más fácil, además se podrán actualizar los datos del mismo.
Prototipo del Sistema de Información de PROMECYS
145
Aquí después de asignado el carnet se puede buscar al estudiante con su número de carnet y actualizar los datos si se desea:
Prototipo del Sistema de Información de PROMECYS
146
La interfaz vínculo de grupos, asignaturas y profesores permite ver la relación que existe entre estos tres registros, también se pueden registrar relaciones nuevas y guardarlas. En esta interfaz se puede seleccionar el grupo y de acuerdo a la selección se pueden ver las asignaturas que el grupo puede llevar, también muestra la lista de los profesores que pueden impartir dichas asignaturas. Además aparece una lista que muestra el vínculo de los mismos, esta se puede filtrar por grupo, profesor y asignatura.
Interfaz relación grupos, asignaturas y profesores
Prototipo del Sistema de Información de PROMECYS
147
Desde la interfaz principal se pueden seleccionar las interfaces para llevar a cabo los procesos de Prematricula, Matricula, Inscripción, el ingreso de las notas y también botar asignaturas inscritas. El primer proceso que se realiza para formar parte de PROMECYS es la prematricula, esta interfaz tiene dos pestañas, desde la primera se puede agregar una nueva prematricula en la que se introducen los datos de las personas que se llegan a prematricular, y en la segunda pestaña se puede buscar la lista de las personas que se han prematriculado.
Esta es la vista de la pestaña principal, donde se
introducen los datos de
los prematricula
dos
Pantalla principal
Interfaz Prematricula
Prototipo del Sistema de Información de PROMECYS
148
Esta pantalla muestra la segunda pestaña de la interfaz prematricula que es donde se buscan los datos de las personas que han realizado una prematricula. Para modificar los datos almacenados es necesario primeramente hacer la búsqueda para después guardar los cambios.
Interfaz Prematricula
Prototipo del Sistema de Información de PROMECYS
149
Una vez que se ha llevado a cabo la prematricula, el siguiente paso es llevar a cabo el proceso de matricula, esta interfaz esta compuesta por tres pestañas, en la primera se ingresan los datos de la matricula, para lleva a cabo la misma es preciso buscar los datos de los estudiantes, estas listas están en las otras dos pestañas una corresponde a la de los estudiantes de reingreso y la otra a los de primer ingreso que corresponde a loo prematriculados. Para registrar la matricula es necesario buscar primero los datos de los estudiantes y después se ingresan los datos de la matricula para después ser guardada.
Interfaz Matricula
[Formulario de Matricula]
Prototipo del Sistema de Información de PROMECYS
150
Cuando se lleva a cabo la matricula generalmente se actualizan los datos de los estudiantes, esto se hace a través de la interfaz actualizar información del estudiante, en esta se pueden modificar los datos generales del estudiante, esto se lleva a cabo porque algunas veces se cambia el numero de teléfono y la dirección.
Interfaz actualizar información del estudiante Entre los datos de los estudiantes esta la información laboral que también puede ser modificada cada vez que se lleva a cabo la matricula, que se realiza una vez al año.
Interfaz datos laborales
Prototipo del Sistema de Información de PROMECYS
151
Después de haber llevado a cabo la matricula se puede realizar el proceso de inscripción de asignaturas, esta se hace tres veces al año, lo que significa que son tres inscripciones por cada matricula. La interfaz de inscripción tiene dos pestañas una para hacer la inscripción y la otra permite buscar los datos del estudiante. Para realizar la inscripción se debe buscar los datos de estudiante y después cargar la inscripción para posteriormente guardarla. Cuando se introducen los datos de la inscripción, se introduce el año y el cuatrimestre y cuando se da en cargar inscripción se muestran las asignaturas que se pueden cursar en ese año y cuatrimestre y luego se guarda la inscripción.
Interfaz Inscripción
Prototipo del Sistema de Información de PROMECYS
152
Cuando se realiza una inscripción, el estudiante tiene la opción de botar alguna de las asignaturas que ya ha inscrito. Para ello debe buscar los datos del estudiante para que se muestre la última inscripción se selecciona la asignatura que se desea botar, además se muestran otras opciones asignaturas que pueden ser inscritas ya sea que se adelanten o que se deban, después de haber seleccionado se guardan los cambios.
Formulario botar e inscribir asignaturas
Prototipo del Sistema de Información de PROMECYS
153
Se pueden realizar reportes de los diferentes procesos que se llevan a cabo en PROMECYS. Los reportes muestran los datos almacenados de cada uno de los procesos, estos son mandados a llamar a través de las vistas que se realizan en SQL. Algunos de los reportes son:
Reporte de estudiantes prematriculados
Prototipo del Sistema de Información de PROMECYS
154
Reporte de estudiantes becados
Prototipo del Sistema de Información de PROMECYS
155
Reporte de estudiantes matriculados
Prototipo del Sistema de Información de PROMECYS
156
Reporte datos de grupo
Prototipo del Sistema de Información de PROMECYS
157
Reporte detalles de prematricula
Prototipo del Sistema de Información de PROMECYS
158
Reporte hoja de matricula
Prototipo del Sistema de Información de PROMECYS
159
CAPITULO V:
ANALISIS DE LA RED PARA LA IMPLEMENTACION DEL SISTEMA
Prototipo del Sistema de Información de PROMECYS
160
RECURSOS ACTUALES
Actualmente PROMECYS cuenta con dos computadoras, las cuales no son están conectadas en red ni son utilizadas en las labores que se realizan en el proceso de matrícula e inscripción de estudiantes ya que estos se realizan de forma manual. Solo se cuenta con un pequeño registro de datos del estudiante que no tiene ningún tipo de conexión con los sistemas pertenecientes a la universidad. Por lo que se puede decir que el diagrama de despliegue actual es el siguiente:
Director (a) Asistente
El sistema estará implementado en 2 computadoras, las cuales pertenecen a los usuarios de PROMECYS, es decir quienes atenderán a los estudiantes que pertenecen al mismo. Una de las computadoras será utilizada como servidor y estará conectada en red con la otra computadora, a través de un switch utilizando cable UTP categoría 5, de tal manera que ambas podrán realizar los procesos del sistema y accesar a la información sin inconvenientes. La topología en que se clasifica la conexión de red de los equipos es la topología estrella, ya que las estaciones de trabajo estarán conectadas a un punto central (Switch) y las comunicaciones se harán posibles a partir de este. El diagrama de despliegue propuesto es el siguiente:
ImpresoraDirector (a) Asistente
Switch
Prototipo del Sistema de Información de PROMECYS
161
FACTIBILIDAD TÉCNICA
Es importante realizar un estudio de factibilidad para determinar la infraestructura tecnológica y la capacidad técnica que implica la implementación del sistema. Por lo que se debe evaluar si el equipo (hardware) y software están disponibles y si tienen las capacidades técnicas requeridas para la aplicación. Requerimientos de Hardware. Es importante contar con los requerimientos de hardware adecuados para la implementación del sistema. Requerimientos Actuales Requerimientos Recomendados Componente Características Procesador P4 1.80 Ghz Memoria Ram 128 MB Disco Duro 40 GB Monitor 15’’ CRT Teclado Si Mouse Si Altavoces No Tarjeta de Red 10/100 Mbps Requerimientos de Software. Para el desarrollo de la aplicación utilizaremos java jdk1.6, que es un entorno de desarrollo eficaz, que permite programar cualquier tipo de aplicación, tanto para escritorio como para entornos web. Algunos de los requerimientos de software a considerar para el sistema se detallan a continuación:
CONCLUSIONES
Componente Características Procesador P4 3.0 Ghz Memoria Ram 1 GB Disco Duro 80 GB Monitor 17’’ LCD Teclado Si Mouse Si Altavoces No Tarjeta de Red 10/100 Mbps
Paquete Software No. Licencia
Sistema Operativo Microsoft Windows XP Profesional Service Pack 2
55274-640-7756424-23428
Software Antivirus Antivir Personal Edition Classic 0000149996-ADJIE-0001
Entorno de Desarrollo
Java jdk1.6 Gratuita
Procesador de Varchar Microsoft Word 2007 89388-707-0441865-
65873 Gestor de Base de Datos
Microsoft SQL Server 2000 $ 400
Prototipo del Sistema de Información de PROMECYS
162
Se realizó el análisis de requerimientos para definir la problemática actual y
poder brindar una propuesta para la automatización de los procesos, encontrando 30 casos de usos que serán necesarios.
Se analizó el diagrama de clases lo cual permitió reconocer 14 tablas
relacionadas y normalizadas que se describen en el modelo de datos. Se ha diseñado un prototipo del sistema de información, tomando en cuenta
las actividades que realizan los usuarios en los diferentes procesos, mostrando 30 pantallas con 17 reportes disponibles en su prototipo.
Se diseño una topología en estrella para la interconexión de la red a utilizar
en el sistema, debido a la cantidad de maquinas existentes y la ubicación geográfica de las oficinas.
Prototipo del Sistema de Información de PROMECYS
163
RECOMENDACIONES
Se recomienda continuar con el desarrollo de la propuesta del prototipo
de sistemas de información, para los procesos de Matrícula e Inscripción de asignaturas y así mismo agilizar las actividades e incrementar la eficiencia.
Se recomienda la adquisición de nuevos equipos para ser reemplazados en la oficina de PROMECYS, ya que las características actuales no son suficientes para la demanda del sistema.
Prototipo del Sistema de Información de PROMECYS
164
BIBLIOGRAFIA
Libros
Programación en Java 2. Estructura de datos y Programación orientada a objetos. Luis Joyanes Aguilar e Ignacio Zahonero Martínez 1ra ed. México McGraw Hill.
Aprenda Programación en SQL Server 2000. Rebecca M Riordan. Mc
Graw Hill
Documentación De Cursos de Titulación.
Patricia Lacayo Cruz. Análisis Diseño e implementación de Sistema de
información. Curso de Titulación. Módulo I [Marzo 2007] Universidad Nacional de Ingeniería.
Evelyn Espinoza. Administración de base de datos Curso de Titulación.
Modulo II [Junio 2007]. Universidad Nacional de Ingeniería.
Marvin Parrales. Programación Orientada a Objeto. Curso de Titulación. Modulo III [Julio 2007]. Universidad Nacional de Ingeniería.