universidad nacional autÓnoma de...

95
UNIVERSIDAD NACIONAL AUTÓNOMA DE NICARAGUA UNAN-LEÓN FACULTAD DE CIENCIA Y TECNOLOGIA Tesis para optar al título de Ingeniería en Sistemas de Información “Desarrollo de una aplicación web para la gestión académica del Colegio Madre María LuisaAutores: Br. Isidro Francisco Padilla Reyes. Br. Levin Dany Pichardo Berrios. Br. Sandra Patricia Sánchez García Tutor: Msc. Wilmer Matamoros. León, Diciembre 2012

Upload: lamnhan

Post on 28-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD NACIONAL AUTÓNOMA DE NICARAGUA

UNAN-LEÓN

FACULTAD DE CIENCIA Y TECNOLOGIA

Tesis para optar al título de Ingeniería en Sistemas de Información

“Desarrollo de una aplicación web para la gestión académica del Colegio Madre María Luisa”

Autores:

Br. Isidro Francisco Padilla Reyes.

Br. Levin Dany Pichardo Berrios.

Br. Sandra Patricia Sánchez García

Tutor:

Msc. Wilmer Matamoros.

León, Diciembre 2012

- 2 -

Dedicatoria

A mi madre Consuelo Reyes quien con su amor incondicional y esfuerzo me

dio la fuerza necesaria para cumplir mi sueño.

A mi abuela María Apolonia Reyes quien con su cariño y consejos me

reconforto y motivo para seguir adelante.

A mi padre Isidro Padilla quien con su apoyo me brindo el soporte y

respaldo que necesitaba para alcanzar mis metas.

Isidro Padilla

- 3 -

Dedicatoria

A mi madre, Manuela de Jesús Berríos (q.e.p.d) por quien decidí emprender

mi carrera profesional, quien con sus palabras alentó en mi el deseo de ser una

persona de bien y siendo la primera en creer que si lo podía lograr.

A mi padre, Santos Alberto Pichardo Zamora, quien con su humildad y

sencillez me recuerda que no debo olvidar mi procedencia y menos mi horizonte.

A mi tío y padrino, Francisco José Berríos, quien motivo en mi el deseo de

superación y con su ejemplo de vida sigue mostrando que si se pueden alcanzar

nuestras metas, con esfuerzo, dedicación y disciplina, aun contra pronósticos.

Y a mis familiares más cercanos, que también han creído en mí y me han dado

todo su apoyo moral y sentimental para continuar con mis sueños.

Levin Pichardo

- 4 -

Dedicatoria

A mi abuelo, el Sr Hugo Rolando García Arana (q.e.p.d.) quien con el

amor y la dedicación que solo un padre puede tener me permitió dar los primeros

pasos que me ayudaron a emprender el camino hasta convertirme en profesional.

A mi abuela, la Profesora Elia Marina Baca que me ayudo a ser paciente y

perseverante hasta alcanzar mi meta con su propio ejemplo de paciencia y amor

de madre que me tuvo desde la infancia.

A mi madre, la Profesora Elia García Mairena quien con un gran esfuerzo

me ayudo a culminar este camino cuesta arriba y con su ejemplo de mujer

luchadora me motiva a seguir adelante y no renunciar nunca a mis sueños.

A los demás miembros de mi familia que con consejos, regaños, cariño y risas

me dieron valor y confianza en mí misma.

Sandra Sánchez

- 5 -

Agradecimientos

Agradecemos a Dios, por sobre todas las cosas, quien nos dio la vida y nos ha

dado la sabiduría y el entendimiento para lograr nuestros propósitos.

A nuestras familias, quienes nos dieron palabras oportunas, animo, cariño y

confianza en nosotros mismos.

A nuestros compañeros de clases, quienes compartieron con nosotros sus

conocimientos y más importante aun su amistad sincera.

Y a todos los docentes que de una y otra manera colaboraron con nosotros en

este trabajo de tesis, y que nos compartieron sus conocimientos en el transcurso

de esta carrera.

- 6 -

INDICE

INTRODUCCIÓN ...................................................................................................... - 9 - 1.1. OBJETIVOS ................................................................................................... - 10 -

1.1.1. OBJETIVO GENERAL .......................................................................... - 10 - 1.1.2. OBJETIVOS ESPECIFICOS ................................................................. - 10 -

MARCO TEORICO ................................................................................................. - 11 - 2.1 INTERNET ...................................................................................................... - 11 -

2.2 WEB ................................................................................................................. - 12 - 2.2.1. FUNDAMENTOS DE LA WEB ............................................................ - 12 -

2.3. SISTEMA DE GESTION ACADÉMICA ..................................................... - 12 -

2.4. PORTAL WEB ............................................................................................... - 12 - 2.5. APLICACIONES WEB .................................................................................. - 13 -

2.5.1. ANTECEDENTES .................................................................................. - 14 -

2.5.2. CONSIDERACIONES TECNICAS ....................................................... - 14 - 2.5.3. ESTRUCTURA DE APLICACIONES WEB ........................................ - 15 -

2.5.4. VENTAJAS Y DESVENTAJAS ............................................................ - 15 - 2.6. PROGRAMACION WEB .............................................................................. - 16 - 2.7. PARADIGMA DE LA PROGRAMACION .................................................. - 17 -

2.8. CLIENTE-SERVIDOR .................................................................................. - 17 - 2.9. SSL .................................................................................................................. - 18 -

2.10. SEGURIDAD WEB ..................................................................................... - 19 -

2.11. RIESGOS DEL ENTORNO WEB ............................................................... - 20 -

2.11.1. BLANCOS ATRACTIVOS .................................................................. - 20 - 2.11.2. PRESIONES DE NEGOCIO ................................................................ - 20 -

2.11.3. DEBILIDADES DE HTTP ................................................................... - 21 - 2.11.4. MITOS DE LA SEGURIDAD WEB .................................................... - 21 - 2.11.5. AMENZAS COMUNES ....................................................................... - 21 -

2.11.6. DESCRIPCION DE ALGUNOS ATAQUES ...................................... - 22 -

METODOLOGÍA DE TRABAJO .......................................................................... - 27 - 3.1. MÉTODOS ..................................................................................................... - 27 -

3.2. CICLO DE VIDA ........................................................................................... - 28 -

3.3. CICLO DE VIDA EN CASCADA ................................................................. - 28 -

3.4. ETAPAS DEL MODELO EN CASCADA .................................................... - 29 - 3.4.1. ANALISIS DE REQUERIMIENTOS .................................................... - 29 - 3.4.2. DISEÑO DEL SISTEMA ....................................................................... - 29 - 3.4.3. DISEÑO DEL PROGRAMA .................................................................. - 29 - 3.4.4. CODIFICACION O PROGRAMACION ............................................... - 29 -

3.4.5. PRUEBAS ............................................................................................... - 29 -

ANALISIS DEL SITEMAS ..................................................................................... - 30 - 4.1. ESPECIFICACIÓN DE REQUISITOS SOFTWARE ................................... - 30 -

4.1.1. INTRODUCCION .................................................................................. - 30 - 4.1.2. DESCRIPCIÓN GENERAL ................................................................... - 31 -

4.2. REQUISITOS ESPECIFICOS ....................................................................... - 33 -

- 7 -

4.2.1. REQUISITOS COMUNES DE INTERFACES ..................................... - 33 - 4.2.2. REQUISITOS FUNCIONALES ............................................................ - 34 - 4.2.3. REQUISITOS NO FUNCIONALES ...................................................... - 52 -

DISEÑO DEL SISTEMAS ...................................................................................... - 54 - 5.1. DIAGRAMA DE CASOS DE USO ............................................................... - 54 - 5.2. DIAGRAMAS DE SECUENCIA .................................................................. - 55 - 5.3. DIAGRAMA DE CLASES ............................................................................ - 67 -

5.3.1. CAPA PERSISTENCIA (Capa de Negocios)......................................... - 67 - 5.3.2. CAPA PROCESO (Capa de Aplicación) ................................................ - 68 - 5.3.3. CAPA PAGINA (Capa de Usuario) ........................................................ - 70 -

5.4. DIAGRAMA ENTIDAD RELACION .......................................................... - 71 -

5.5. DISEÑO DE DATOS ..................................................................................... - 73 - 5.7. MODELO RELACIONAL ............................................................................. - 79 -

CODIFICACIÓN DEL SISTEMA ......................................................................... - 80 -

6.1. PHP ................................................................................................................. - 80 - 6.1.1. HISTORIA ............................................................................................... - 80 - 6.1.2. CARACTERISTICAS ............................................................................... - 81 -

6.2. ESTANDAR ZEND ....................................................................................... - 81 - 6.2.1. REGLAS DEL ESTANDAR .................................................................. - 82 -

6.2.2. FUNCIONES Y METODOS .................................................................. - 82 - 6.3. XAMPP ........................................................................................................... - 83 -

6.3.1. CARACTERISITICAS Y REQUISITOS ............................................... - 84 - 6.3.2. APLICACIONES .................................................................................... - 84 -

6.4. CSS ................................................................................................................. - 84 - 6.4.1. CSS 2.1 .................................................................................................... - 84 -

6.5. JAVA SCRIPT ................................................................................................ - 85 -

6.6. XHTML .......................................................................................................... - 85 - 6.6.1. VENTAJAS RESPECTO AL HTML ..................................................... - 85 -

6.7. SQL ................................................................................................................. - 86 - 6.7.1. ORIGENES Y EVOLUCION ................................................................... - 86 -

6.7.2. CARACTERISITICAS GENERALES ................................................... - 86 - 6.8. APACHE ........................................................................................................ - 87 -

6.8.1. CARACTERISITICAS ........................................................................... - 87 -

CONCLUSIONES .................................................................................................... - 89 -

RECOMENDACIONES .......................................................................................... - 90 -

BIBLIOGRAFÍA ...................................................................................................... - 91 -

ANEXOS ................................................................................................................... - 93 -

- 8 -

INDICE DE FIGURAS

Figura 5.2.1: D. Secuencia - Matricular Alumno ...................................................................... - 55 -

Figura 5.2.2: D. de Secuencia - Rematricular Alumno ............................................................. - 56 -

Figura 5.2.3: D. de Secuencia - Retirar Alumno....................................................................... - 56 -

Figura 5.2.4: D. de Secuencia - Registrar Docente .................................................................. - 57 -

Figura 5.2.5: D. de Secuencia - Retirar Docente ...................................................................... - 57 -

Figura 5.2.6: D. de Secuencia - Ingresar Asignatura ............................................................... - 58 -

Figura 5.2.7: D. de Secuencia - Retirar Asignatura .................................................................. - 58 -

Figura 5.2.8: D. de Secuencia - Asignar Materia ..................................................................... - 59 -

Figura 5.2.9: D. de Secuencia - Desasignar Materia ................................................................ - 59 -

Figura 5.2.10: D. de Secuencia - Ingresar Nota Parcial ........................................................... - 60 -

Figura 5.2.11: D. de Secuencia - Ingresar Nota Reparacion ................................................... - 60 -

Figura 5.2.12: D. Secuencia - Modificar Nota Parcial ............................................................. - 61 -

Figura 5.2.13: D. de Secuencia - Modificar Nota Reparacion .................................................. - 62 -

Figura 5.2.14: D. de Secuencia - Asignar Acta Calificaciones .................................................. - 63 -

Figura 5.2.15: D. de Secuencia - Asignar Acta Reparaciones .................................................. - 63 -

Figura 5.2.16: D. de Secuncia - Abrir Secciones ...................................................................... - 64 -

Figura 5.2.17: D. de Secuencia - Cerrar Secciones .................................................................. - 64 -

Figura 5.2.18: D. de Secuencia - Generar Certificado ............................................................. - 65 -

Figura 5.2.19: D. de Secuencia - Ingresar Noticia .................................................................... - 65 -

Figura 5.2.20: D. de Secuencia - Subir Imagen ........................................................................ - 66 -

Figura 5.2.21: D. de Secuencia - Eliminar Imagen ................................................................... - 66 -

Sistema de Gestión Académica Teothokos – SAGAT

- 9 -

INTRODUCCIÓN

INTRODUCCIÓN

Actualmente el Colegio Madre María Luisa que es donde será aplicado el sistema

de gestión, utiliza para el registro de matrícula, un formato en papel, éste es llenado con

los datos personales del alumno, que luego junto con otros documentos entregados

como requisitos para matricularse, pasan a ser parte del expediente del mismo.

La gestión de notas es llevada a cabo por la docencia, la secretaría y dirección, cada

docente lleva control de las calificaciones de sus alumnos, bimensualmente debe

entregar las calificaciones en un formato específico a la Dirección, la cual registra las

notas en un libro de actas.

La entrega de boletines se realiza bimensualmente, existe un formato de boletín,

cada alumno cuenta con un ejemplar único de este para todo el año, en el que los

profesores van registrando las notas de los mismos.

El pensum se elabora anualmente, la dirección entrega a cada docente una lista de

las asignaturas a impartir y en que grados impartirá las mismas. También se les asigna a

cada docente un grado el cual guiará, esto significa que será el encargado de llevar el

control de todas las calificaciones de los alumnos para luego entregar los boletines.

Los certificados de notas solicitados por los alumnos egresados, son elaborados

revisando los registros de los libros de actas académicos correspondientes al año en el

cual el alumno curso determinado grado.

La apertura de una sección adicional para un grado se hace en base a la cantidad de

alumnos que la dirección considera tener en su momento. Y la ubicación de un alumno

en otra sección se hace por medio del apellido del mismo o a consideración personal de

la dirección.

El presente trabajo tiene como fin la elaboración de un software que facilite el

registro y obtención de datos pertenecientes a cada uno de los procesos académicos del

Colegio Católico Madre María Luisa, el cual aún no cuenta con una automatización de

ninguna de las actividades académicas.

Con este sistema se almacenarán los datos de manera digital, para luego ser impresa

y archivada cierto tipo de información, también permitirá la generación de certificados,

estadísticas, noticias académicas, datos del centro, entre otros.

Sistema de Gestión Académica Teothokos – SAGAT

- 10 -

INTRODUCCIÓN

1.1. OBJETIVOS

1.1.1. OBJETIVO GENERAL

Elaborar un sistema con interfaz web para la Gestión Académica del colegio

Madre María Luisa.

1.1.2. OBJETIVOS ESPECIFICOS

Almacenar datos personales de los docentes y los alumnos del colegio.

Registrar las notas académicas de los alumnos.

Generar e imprimir boletines.

Presentar estadísticas referentes al rendimiento académico de los alumnos.

Mostrar información del centro y sus actividades académicas.

Permitir la actualización del pensum académico y la designación a los

docentes de las asignaturas a impartir.

Registrar información del centro y sus actividades académicas.

Sistema de Gestión Académica Teothokos – SAGAT

- 11 -

MARCO TEÓRICO

MARCO TEORICO

2.1 INTERNET

Internet, la red de redes, nace a mediados de la década de los setenta, bajo los

auspicios de DARPA, la Agencia de Proyectos Avanzados para la Defensa de Estados

Unidos. DARPA inició un programa de investigación de técnicas y tecnologías para

unir diversas redes de conmutación de paquetes, permitiendo así a los ordenadores

conectados a estas redes comunicarse entre sí de forma fácil y transparente.

De estos proyectos nació un protocolo de comunicaciones de datos, IP o Internet

Protocol, que permitía a ordenadores diversos comunicarse a través de una red, Internet,

formada por la interconexión de diversas redes.

A mediados de los ochenta la Fundación Nacional para la Ciencia norteamericana,

la NSF, creó una red, la NSFNET, que se convirtió en el backbone (el troncal) de

Internet junto con otras redes similares creadas por la NASA (NSINet) y el U.S. DoE

(Department of Energy) con la ESNET. En Europa, la mayoría de países disponían de

backbones nacionales (NORDUNET, RedIRIS, SWITCH, etc.) y de una serie de

iniciativas paneuropeas (EARN y RARE). En esta época aparecen los primeros

proveedores de acceso a Internet privados que ofrecen acceso pagado a Internet.

A partir de esta época, gracias entre otras cosas a la amplia disponibilidad de

implementaciones de la suite de protocolos TCP/IP (formada por todos los protocolos

de Internet y no sólo por TCP e IP), algunas de las cuales eran ya de código libre,

Internet empezó lo que posteriormente se convertiría en una de sus características

fundamentales, un ritmo de crecimiento exponencial, hasta que a mediados del 2002

empieza a descender ligeramente el ritmo de crecimiento.

A mediados de los noventa se inició el boom de Internet. En esa época el número de

proveedores de acceso privado se disparó, permitiendo a millones de personas acceder a

Internet, que a partir de ese momento ya se empezó a conocer como la Red, desbancado

a las demás redes de comunicación existentes (Compuserve, FidoNet/BBS, etc.). El

punto de inflexión vino marcado por la aparición de implementaciones de TCP/IP

gratuitas (incluso de implementaciones que formaban parte del sistema operativo) así

como por la popularización y abaratamiento de medios de acceso cada vez más rápidos

(módems de mayor velocidad, RDSI, ADSL, cable, satélite). El efecto de todos estos

cambios fue de “bola de nieve”: a medida que se conectaban más usuarios, los costes se

reducían, aparecían más proveedores e Internet se hacía más atractivo y económico, con

lo que se conectaban más usuarios, etc.

En estos momentos disponer de una dirección de correo electrónico, de acceso a la

web, etc., ha dejado de ser una novedad para convertirse en algo normal en muchos

países del mundo. Por eso las empresas, instituciones, administraciones y demás están

migrando rápidamente todos sus servicios, aplicaciones, tiendas, etc., a un entorno web

que permita a sus clientes y usuarios acceder a todo ello por Internet. A pesar del ligero

descenso experimentado en el ritmo de crecimiento, Internet está destinado a convertirse

Sistema de Gestión Académica Teothokos – SAGAT

- 12 -

MARCO TEÓRICO

en una suerte de servicio universal de comunicaciones, permitiendo una comunicación

universal.

2.2 WEB

La WWW (World Wide Web) o, de forma más coloquial, la web, se ha convertido,

junto con el correo electrónico, en el principal caballo de batalla de Internet. Ésta ha

dejado de ser una inmensa “biblioteca” de páginas estáticas para convertirse en un

servicio que permite acceder a multitud de prestaciones y funciones, así como a

infinidad de servicios, programas, tiendas, etc.

2.2.1. FUNDAMENTOS DE LA WEB

El éxito espectacular de la web se basa en dos puntales fundamentales: el protocolo

HTTP y el lenguaje HTML. Uno permite una implementación simple y sencilla de un

sistema de comunicaciones que nos permite enviar cualquier tipo de ficheros de una

forma fácil, simplificando el funcionamiento del servidor y permitiendo que servidores

poco potentes atiendan miles de peticiones y reduzcan los costes de despliegue. El otro

nos proporciona un mecanismo de composición de páginas enlazadas simple y fácil,

altamente eficiente y de uso muy simple.

2.3. SISTEMA DE GESTION ACADÉMICA

El objetivo principal de un Sistema de Gestión académica es llevar un control

detallado del rendimiento académico del alumno, como también información relativa a

las materias y contenidos entregados, evaluaciones de profesores, etc. entregando

además, las herramientas que permitan efectuar una gestión más eficiente. Cuenta con

una serie de funciones adicionales, las cuales permitirán conservar información

histórica, tanto de los Planes y Programas de Estudio, como resultados finales de los

alumnos, contenido de materias realizadas, cursos realizados, etc.

La evaluación de los alumnos pueda ser efectuada por distintas formas de

organización como por ejemplo curso y niveles. A su vez, las asignaturas pueden ser

agrupadas en distintas áreas del conocimiento, permitiendo con esto separarlas según su

importancia, asignando distintos porcentajes si lo ameritaran.

2.4. PORTAL WEB

Un portal de Internet es un sitio web que ofrece al usuario, de forma fácil e

integrada, el acceso a una serie de recursos y de servicios relacionados a un mismo

tema. Incluye elementos como enlaces, buscadores, foros, documentos, aplicaciones,

compra electrónica, etc. Principalmente un portal en Internet está dirigido a resolver

necesidades de información específica de un tema en particular.

El término portal tiene como significado puerta grande, y precisamente su nombre

hace referencia a su función u objetivo que es, por lo general, el punto de partida de un

usuario que desea entrar y realizar búsquedas en la web u obtener información

Sistema de Gestión Académica Teothokos – SAGAT

- 13 -

MARCO TEÓRICO

importante de él. Se puede decir que un portal ofrece servicios para la navegación en el

Internet, logrando incrementar la intensidad de tráfico en el mismo.

Los portales normalmente tienen programación que requiere muchos recursos

computacionales y por su alto tráfico generalmente se hospedan en servidores de

Internet dedicados. Normalmente está desarrollado en algún lenguaje más poderoso y

complejo que HTML, puede ser PHP o Java, y generalmente está asociado a una base

de datos que almacena tanto la información que se quiere presentar como la que se

obtiene del usuario del portal. Dicha información es totalmente aprovechable y en el

caso de la empresa, la información que queremos presentar se debe poder administrar

desde un área diseñada para que un usuario común dentro de nuestra empresa, pueda

actualizarla, modificarla, añadir nuevo contenido, de tipo que sea, sin necesidad de

expertos ya que entre otros el concepto de usuario abarca también a nuestro personal

interno.

Pero también un portal es una herramienta que permite integrar soluciones para

múltiples tipos de usuarios de su empresa o negocio, sus clientes, proveedores,

vendedores, técnicos, ejecutivos, ingenieros, personal de soporte y servicios

administrativos y comparten entre todos, obviamente con los niveles de autorización

adecuada, la misma información en línea, que normalmente estará almacenada en una

base de datos a la que se accede a través de aplicaciones, muchas veces complejas que

hacen de intercambiadores de información.

Un portal es mucho más que una página web, porque es completamente dinámico,

este dinamismo depende del tipo de información, grado de participación y el número de

usuarios finales. Un portal no solo provee al usuario información, sino que la recopila,

lo que se espera es que éste interactúe con la empresa.

Existen tres modalidades de portales:

1. Portales horizontales, también llamados portales masivos o de propósito general, se

dirigen a una audiencia amplia, tratando de llegar a toda la gente con muchas cosas.

Como ejemplo de portales de esta categoría están Terra, AOL, AltaVista, UOL, Lycos,

Yahoo, MSN, Yandex, etc.

2. Portales verticales, se dirigen a usuarios para ofrecer contenido dentro de un tema

específico como puede ser un portal de música, empleo, inmobiliario, un portal de

finanzas personales, arte, educación o de deportes.

3. Portales diagonales, se trata de una mezcla entre el portal horizontal y el vertical. Se

trataría de portales que utilizan redes sociales o aplicaciones generalistas como

Facebook, Pokebook, LinkedIn, Flickr o YouTube... complementados con contenidos

y/o utilidades dirigidas a un público muy concreto.

2.5. APLICACIONES WEB

Es una aplicación software que se codifica en un lenguaje soportado por los

navegadores web en la que se confía la ejecución al navegador. Una página Web puede

contener elementos que permiten una comunicación activa entre el usuario y la

información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias

Sistema de Gestión Académica Teothokos – SAGAT

- 14 -

MARCO TEÓRICO

a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y

enviar formularios, participar en juegos diversos y acceder a gestores de base de datos

de todo tipo.

2.5.1. ANTECEDENTES

En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía

su propio programa cliente que servía como interfaz de usuario que tenía que ser

instalado por separado en cada ordenador personal de cada usuario. El cliente realizaba

peticiones a otro programa -el servidor- que le daba respuesta. Una mejora en el

servidor, como parte de la aplicación, requería normalmente una mejora de los clientes

instalados en cada ordenador personal, añadiendo un coste de soporte técnico y

disminuyendo la productividad.

A diferencia de lo anterior, las aplicaciones web generan dinámicamente una serie

de páginas en un formato estándar, como HTML o XHTML, soportados por los

navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente,

directamente o a través de plugins tales como JavaScript, Java, Flash, etc., para añadir

elementos dinámicos a la interfaz de usuario. Generalmente cada página web en

particular se envía al cliente como un documento estático, pero la secuencia de páginas

ofrece al usuario una experiencia interactiva. Durante la sesión, el navegador web

interpreta y muestra en pantalla las páginas, actuando como cliente para cualquier

aplicación web.

El desarrollo de aplicaciones WEB ha evolucionado por los siguientes aspectos:

Evolución del Uso/Demandas

Evolución de Tecnologías Navegador

Evolución Tecnologías Servidores

Marketing de Ventas

Hiper-Hype y las Dot.Com

2.5.2. CONSIDERACIONES TECNICAS

Una ventaja significativa es que las aplicaciones web deberían funcionar igual

independientemente de la versión del sistema operativo instalado en el cliente. En vez

de crear clientes para Windows, Mac OS X, GNU/Linux y otros sistemas operativos, la

aplicación web se escribe una vez y se ejecuta igual en todas partes. Sin embargo, hay

aplicaciones inconsistentes escritas con HTML, CSS, DOM y otras especificaciones

estándar para navegadores web que pueden causar problemas en el desarrollo y soporte

de estas aplicaciones, principalmente debido a la falta de adhesión de los navegadores a

dichos estándares web (especialmente versiones de Internet Explorer anteriores a la

7.0). Adicionalmente, la posibilidad de los usuarios de personalizar muchas de las

características de la interfaz (tamaño y color de fuentes, tipos de fuentes, inhabilitar

Javascript) puede interferir con la consistencia de la aplicación web.

Otra aproximación es utilizar Adobe Flash Player o Java applets para desarrollar

parte o toda la interfaz de usuario. Como casi todos los navegadores incluyen soporte

para estas tecnologías (usualmente por medio de plug-ins), las aplicaciones basadas en

Flash o Java pueden ser implementadas con aproximadamente la misma facilidad. Dado

Sistema de Gestión Académica Teothokos – SAGAT

- 15 -

MARCO TEÓRICO

que ignoran las configuraciones de los navegadores, estas tecnologías permiten más

control sobre la interfaz, aunque las incompatibilidades entre implementaciones Flash o

Java puedan crear nuevas complicaciones, debido a que no son estándares. Por las

similitudes con una arquitectura cliente-servidor, con un cliente "no ligero", existen

discrepancias sobre el hecho de llamar a estos sistemas “aplicaciones web”; un término

alternativo es “Aplicación Enriquecida de Internet”.

2.5.3. ESTRUCTURA DE APLICACIONES WEB

Aunque existen muchas variaciones posibles, una aplicación web está normalmente

estructurada como una aplicación de tres-capas. En su forma más común, el navegador

web ofrece la primera capa, y un motor capaz de usar alguna tecnología web dinámica

(ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI, ColdFusion, embPerl, Python

(programming language) o Ruby on Rails) que constituye la capa intermedia. Por

último, una base de datos constituye la tercera y última capa.

El navegador web manda peticiones a la capa intermedia que ofrece servicios

valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una

interfaz de usuario.

2.5.4. VENTAJAS Y DESVENTAJAS

VENTAJAS

1. Ahorra tiempo: Se pueden realizar tareas sencillas sin necesidad de descargar ni

instalar ningún programa.

2. No hay problemas de compatibilidad: Basta tener un navegador actualizado para

poder utilizarlas.

3. No ocupan espacio en nuestro disco duro.

4. Actualizaciones inmediatas: Como el software lo gestiona el propio

desarrollador, cuando nos conectamos estamos usando siempre la última versión

que haya lanzado.

5. Consumo de recursos bajo: Dado que toda (o gran parte) de la aplicación no se

encuentra en nuestro ordenador, muchas de las tareas que realiza el software no

consumen recursos nuestros porque se realizan desde otro ordenador.

6. Multiplataforma: Se pueden usar desde cualquier sistema operativo porque sólo

es necesario tener un navegador.

7. Portables: Es independiente del ordenador donde se utilice (un PC de sobremesa,

un portátil...) porque se accede a través de una página web (sólo es necesario

disponer de acceso a Internet). La reciente tendencia al acceso a las aplicaciones

web a través de teléfonos móviles requiere sin embargo un diseño específico de

los ficheros CSS para no dificultar el acceso de estos usuarios.

8. La disponibilidad suele ser alta porque el servicio se ofrece desde múltiples

localizaciones para asegurar la continuidad del mismo.

9. Los virus no dañan los datos porque éstos están guardados en el servidor de la

aplicación.

10. Colaboración: Gracias a que el acceso al servicio se realiza desde una única

ubicación es sencillo el acceso y compartición de datos por parte de varios

Sistema de Gestión Académica Teothokos – SAGAT

- 16 -

MARCO TEÓRICO

usuarios. Tiene mucho sentido, por ejemplo, en aplicaciones online de

calendarios u oficina.

11. Los navegadores ofrecen cada vez más y mejores funcionalidades para crear

aplicaciones web ricas (RIAs).

DESVENTAJAS

1. Habitualmente ofrecen menos funcionalidades que las aplicaciones de escritorio.

Se debe a que las funcionalidades que se pueden realizar desde un navegador

son más limitadas que las que se pueden realizar desde el sistema operativo.

Pero cada vez los navegadores están más preparados para mejorar en este

aspecto. La aparición de HTML 5 representa un hito en este sentido. Es posible

añadir funcionalidades a estas aplicaciones gracias al uso de Aplicaciones de

Internet Ricas.

2. La disponibilidad depende de un tercero, el proveedor de la conexión a internet o

el que provee el enlace entre el servidor de la aplicación y el cliente. Así que la

disponibilidad del servicio está supeditada al proveedor

2.6. PROGRAMACION WEB

La programación Web, parte de las siglas WWW, que significan World Wide Web

o telaraña mundial.

Para realizar una página con la programación Web, se deben tener claros, tres

conceptos fundamentales los cuales son, el URL(Uniform Resource Locators), es un

sistema con el cual se localiza un recurso dentro de la red, este recurso puede ser una

página web, un servicio o cualquier otra cosa. En resumen el URL no es más que un

nombre, que identifica una computadora, dentro de esa computadora un archivo que

indica el camino al recurso que se solicita.

El siguiente concepto dentro de la programación Web, es el protocolo encargado de

llevar la información que contiene una pagina Web por toda la red de internet, como es

el HTTP (Hypertext Transfer Protocol).

Y por último el lenguaje necesario cuya funcionalidad es la de representar cualquier

clase de información que se encuentre almacenada en una pagina Web, este lenguaje es

el HTML (Hypertext Markup Language).

En la programación Web, el HTML es el lenguaje que permite codificar o preparar

documentos de hipertexto, que viene a ser el lenguaje común para la construcción de

una página Web.

Con el comienzo de Internet y la programación web, se desfasaron los diseños

gráficos tradicionales, con lo que se empezaron a diseñar interfaces concretas para este

medio, buscando ficheros pequeños para facilitar la carga de los mismos. La

programación web se orientaba a un diseño muy cargado interactuando con el usuario,

Sistema de Gestión Académica Teothokos – SAGAT

- 17 -

MARCO TEÓRICO

mientras que al empezar a competir con millones de webs se ha optado más por el

diseño sencillo y de fácil comprensión.

En programación web se creó la necesidad de conocer a fondo diferentes lenguajes

de programación como HTML, JavaScript y DHTML. Con esto se creó un nuevo

profesional de la informática, el diseñador web, experto en estos menesteres, que viene

siendo algo así como un experto en programación web, algo entre diseñador gráfico

tradicional y el programador de aplicaciones llevadas a Internet.

2.7. PARADIGMA DE LA PROGRAMACION

Un paradigma de programación es una propuesta tecnológica que es adoptada por

una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que

unívocamente trata de resolver uno o varios problemas claramente delimitados. La

resolución de estos problemas debe suponer consecuentemente un avance significativo

en al menos un parámetro que afecte a la ingeniería de software. Tiene una estrecha

relación con la formalización de determinados lenguajes en su momento de definición.

Probablemente el paradigma de programación que actualmente es el más usado a

todos los niveles es la orientación a objeto. El núcleo central de este paradigma es la

unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez

con otras entidades "objeto". Tradicionalmente datos y procesamiento se han separado

en áreas diferente del diseño y la implementación de software. Esto provocó que

grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptación a los

cambios y escalabilidad. Con la orientación a objetos y características como el

encapsulado, polimorfismo o la herencia se permitió un avance significativo en el

desarrollo de software a cualquier escala de producción.

2.8. CLIENTE-SERVIDOR

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro

programa (el servidor) que le da respuesta. En esta arquitectura la capacidad de proceso

está repartida entre los clientes y los servidores, aunque son más importantes las

ventajas de tipo organizativo debidas a la centralización de la gestión de la información

y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el

servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un

sólo programa. Los tipos específicos de servidores incluyen los servidores web, los

servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían

de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se

descompone en diferentes programas que pueden ser ejecutados por diferentes

computadoras aumentando así el grado de distribución del sistema. La arquitectura

cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución,

tanto a nivel físico como a nivel lógico.

Sistema de Gestión Académica Teothokos – SAGAT

- 18 -

MARCO TEÓRICO

La red Cliente/Servidor es aquella red de comunicaciones en la que todos los

clientes están conectados a un servidor, en el que se centralizan los diversos recursos y

aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que

estos son solicitados. Esto significa que todas las gestiones que se realizan se

concentran en el servidor, de manera que en él se disponen los requerimientos

provenientes de los clientes que tienen prioridad, los archivos que son de uso público y

los que son de uso restringido, los archivos que son de sólo lectura y los que, por el

contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente

en caso de que se esté utilizando en una red mixta.

2.9. SSL

Secure Sockets Layer (SSL; en español «capa de conexión segura») y su

sucesor Transport Layer Security (TLS; en español «seguridad de la capa de

transporte») son protocolos criptográficos que proporcionan

comunicaciones seguras por una red, comúnmente Internet.

Descripción

SSL proporciona autenticación y privacidad de la información entre extremos

sobre Internet mediante el uso de criptografía. Habitualmente, sólo el servidor es

autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin

autenticar.

SSL implica una serie de fases básicas:

Negociar entre las partes el algoritmo que se usará en la comunicación

Intercambio de claves públicas y autenticación basada en certificados

digitales

Cifrado del tráfico basado en cifrado simétrico

Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos

se van a usar. Las implementaciones actuales proporcionan las siguientes opciones:

Para criptografía de clave pública: RSA, Diffie-Hellman, DSA (Digital

Signature Algorithm) o Fortezza;

Para cifrado simétrico: RC2, RC4, IDEA (International Data Encryption

Algorithm), DES (Data Encryption Standard), Triple DES yAES (Advanced

Encryption Standard);

Con funciones hash: MD5 o de la familia SHA.

Funcionamiento:

El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser

comprimido, cifrado y empaquetado con un código de autenticación del

mensaje (MAC). Cada registro tiene un campo de content_type que especifica el

protocolo de nivel superior que se está usando.

Cuando se inicia la conexión, el nivel de registro encapsula otro protocolo, el

protocolo handshake, que tiene el content_type 22.

El cliente envía y recibe varias estructuras handshake:

Sistema de Gestión Académica Teothokos – SAGAT

- 19 -

MARCO TEÓRICO

Envía un mensaje ClientHello especificando una lista de conjunto de

cifrados, métodos de compresión y la versión del protocolo SSL más alta permitida.

Éste también envía bytes aleatorios que serán usados más tarde

(llamados Challenge de Cliente o Reto). Además puede incluir el identificador de la

sesión.

Después, recibe un registro ServerHello, en el que el servidor elige los

parámetros de conexión a partir de las opciones ofertadas con anterioridad por el

cliente.

Cuando los parámetros de la conexión son conocidos, cliente y servidor

intercambian certificados (dependiendo de las claves públicas de cifrado

seleccionadas). Estos certificados son actualmente X.509, pero hay también un

borrador especificando el uso de certificados basados en OpenPGP.

Cliente y servidor negocian una clave secreta (simétrica) común llamada master

secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o

simplemente cifrando una clave secreta con una clave pública que es descifrada con

la clave privada de cada uno. Todos los datos de claves restantes son derivados a

partir de este master secret (y los valores aleatorios generados en el cliente y el

servidor), que son pasados a través una función pseudoaleatoria cuidadosamente

elegida.

Aplicaciones

SSL se ejecuta en una capa entre los protocolos de aplicación

como HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP, que forma parte de

la familia de protocolos TCP/IP.

HTTPS es usado para asegurar páginas World Wide Web para aplicaciones de comercio

electrónico, utilizando certificados de clave pública para verificar la identidad de los

extremos.

SSL también puede ser usado para tunelizar una red completa y crear una red privada

virtual (VPN), como en el caso de OpenVPN.

2.10. SEGURIDAD WEB

La seguridad, en informática como en otras áreas, se basa en la protección de

activos. Estos activos pueden ser elementos tan tangibles como un servidor o una base

de datos, o pueden ser la reputación de una empresa. Generalmente podemos evaluar la

seguridad de un activo en base a tres aspectos principales que no necesitan explicación:

integridad, disponibilidad, confidencialidad.

Estos tres aspectos a su vez dependen de otros tres elementos principales que

engloban prácticamente todos los distintos controles que se pueden establecer en un

sistema informático:

Sistema de Gestión Académica Teothokos – SAGAT

- 20 -

MARCO TEÓRICO

Autenticación: los clientes de nuestras aplicaciones o servicios deben ser

identificados de forma única, sean usuarios finales, otros servicios o

computadoras externas.

Autorización: no solo es necesario saber quienes acceden a nuestros activos,

también es necesario establecer que es lo que pueden hacer con ellos. Un nivel

de autorización dado determina que tipo de operaciones o transacciones puede

efectuar un cliente dado sobre un recurso dado.

Registro y Auditoria: luego de efectuada una operación, es importante que esta

sea registrada adecuadamente, en particular es esencial si queremos evitar el

repudio de transacciones efectuada por un cliente.

Todos estos conceptos son especialmente válidos en el entorno de Internet, y

particularmente importantes dado el crecimiento explosivo de los servicios y

aplicaciones accesibles a través de Internet. Si bien cuando se habla de la seguridad de

aplicaciones web se deben considerar no sólo las amenazas externas a la compañía o

institución sino también las internas (administradores malintencionados, usuarios que

provocan accidentes, etc), las externas, generalmente son las más peligrosas e

impredecibles. Es sabido por otro lado que las aplicaciones más robustas y resistentes a

ataques son aquellas en las cuales las cuestiones de seguridad fueron consideradas desde

las primeras etapas del desarrollo.

2.11. RIESGOS DEL ENTORNO WEB

Se ha comprobado que en los últimos años, 75% o más de los ataques electrónicos

fueron a nivel de aplicación (y no a nivel de host o de red).

2.11.1. BLANCOS ATRACTIVOS

Todo tipo de transacciones se realizan actualmente en la web, y cada vez en mayor

proporción. Detalles de cuentas bancarias, tarjetas de crédito y todo tipo de información

confidencial y de valor circulan en enormes cantidades y continuamente. Es por ende

lógico que la mayoría de los esfuerzos de hackers y demás atacantes se centre en

vulnerar estas aplicaciones.

2.11.2. PRESIONES DE NEGOCIO

La variedad y complejidad de los requerimientos de usuarios finales continúa

creciendo, y con ellos aumenta la complejidad de las aplicaciones, la cantidad de

funcionalidades y fases de testeo. Esto sumado al incremento en la competencia y en la

necesidad de superarla en el time-to-market, implican sacrificios importantes en los

aspectos no-funcionales de la aplicación y específicamente en los aspectos de seguridad.

Especialmente cuando no existe una conciencia de seguridad a nivel corporativo, se

tiende a generar una alta presión para terminar el trabajo sin considerar suficientemente

las posibles vulnerabilidades.

Sistema de Gestión Académica Teothokos – SAGAT

- 21 -

MARCO TEÓRICO

2.11.3. DEBILIDADES DE HTTP

Las aplicaciones web están en parte definidas por su uso del protocolo HTTP como

medio de comunicación entre cliente y servidor. Este protocolo es simple y basado en

ASCII por lo que no se requiere gran esfuerzo para generar pedidos y descifrar el

contenido de las respuestas. Además utiliza un puerto TCP tan conocido que de poco

sirve un firewall para proteger una aplicación si tiene que admitir el tráfico a través del

puerto 80.

No mantiene por sí mismo el estado de la sesión ya un atacante no tiene que emular

mecanismos de mantenimiento de sesión, basta con emitir un request para lograr el

cometido. Mecanismos como el uso de cookies permiten simular una sesión virtual

intercambiando información adicional en cada request/response, pero no son efectivas si

no se las implementa bien, e introducen problemas adicionales de seguridad y

privacidad.

Existen muchas excepciones y variantes adicionales a estos elementos; en particular

se utiliza ampliamente SSL como protocolo de encriptación a nivel de transporte en las

comunicaciones cliente-servidor.

2.11.4. MITOS DE LA SEGURIDAD WEB

El usuario solamente enviará entradas esperadas: HTML admite el uso de tags que

manipulan las entradas a la aplicación, por ejemplo si la aplicación utiliza campos

ocultos para enviar información sensible estos pueden ser fácilmente manipulados desde

el cliente.

La validación puede realizarse únicamente del lado del cliente con JavaScript: Si no

se efectúa ninguna validación del lado del servidor, cualquier atacante que evite esta

validación, lo que no es difícil de lograr, tendrá acceso total a toda la aplicación.

El uso de firewalls es suficiente: Si el firewall tiene que habilitar los puertos 80 y/o

443 para que la aplicación sea accesible al exterior, no podrá hacer nada para detectar

entradas maliciosas del cliente, y por supuesto no es protección contra ataques internos.

El uso de SSL es una solución suficiente: SSL simplemente cubre el

request/response HTTP dificultando la intercepción del tráfico entre cliente y servidor,

pero no agrega seguridad al servidor ni evita el envío de código malicioso desde el

cliente.

2.11.5. AMENZAS COMUNES

Los múltiples ataques externos a los que puede estar expuesto un sitio web son

usualmente clasificados en 6 categorías principales. Indicaremos cada una y los tipos de

ataques más típicos que incluyen, y a continuación describiremos en mayor detalle

cuatro de ellos.

Sistema de Gestión Académica Teothokos – SAGAT

- 22 -

MARCO TEÓRICO

1) Autenticación: son las que explotan el método de validación de la identidad de un

usuario, servicio o aplicación

Fuerza Bruta

Autenticación insuficiente

Débil validación de recuperación de Password

2) Autorización: explotan el mecanismo de un sitio web de determinar si un usuario o

servicio tiene los permisos necesarios para ejecutar una acción.

Predicción de Credenciales o Sesión

Autorización insuficiente

Expiración de Sesión insuficiente

Fijado de Sesión

3) Ataques Lógicos: explotan la lógica de la aplicación (el flujo procedural utilizado

por la aplicación para efectuar cierta acción.

Abuso de funcionalidad

Denial of Service

Insuficiente Anti-Automatismo

Insuficiente validación de procesos

Manipulación de entradas (URL, campos)

4) Ataques al cliente: atacan al usuario de la aplicación.

Content Spoofing

Cross-Site Scripting

5) Ejecución de comandos: ataques diseñados para ejecutar comandos remotos en el

servidor.

Buffer Overflow

Format String

LDAP Injection

Ejecucuón de Comandos (OS Commanding)

SQL Injection

SSI Injection

XPath Injection

6) Robo de Información: ataques que apuntan a adquirir información específica sobre

el sitio web.

Indexado de directorio

Caminos transversales

Predicción de ubicación de recursos

Escape de información

2.11.6. DESCRIPCION DE ALGUNOS ATAQUES

SQL Injection

SQL Injection es una vulnerabilidad que afecta aplicaciones a nivel de base de

datos. Dicha vulnerabilidad consiste en enviar instrucciones SQL adicionales a partir de

parámetros entrada ingresados por el usuario.

Sistema de Gestión Académica Teothokos – SAGAT

- 23 -

MARCO TEÓRICO

Al "inyectar" el código SQL malicioso dentro de estos campos, el código "invasor"

se ejecuta dentro del código SQL propio de la aplicación para alterar su funcionamiento

normal, de acuerdo con el propósito del atacante.

SQL Injection es un problema de seguridad que debe ser tomado en cuenta por el

programador para prevenirlo. La vulnerabilidad ocurre cuando la aplicación ejecuta una

sentencia SQL que utiliza el valor de campos de entrada sin validarlos correctamente.

Permiten al atacante saltar restricciones de acceso, elevar privilegios del usuario,

extracción de información de la base de datos, ejecución de comandos dentro del

servidor. Incluso es posible destruir parte la base de datos de la aplicación (por ejemplo

insertando una sentencia DropTable).

Contramedidas

Los riesgos de SQL Injection pueden superarse relativamente fácil con cambios de

programación simples, que sin embargo requieren considerable disciplina de los

programadores para aplicar los métodos siguientes para cada procedimiento y función

accesibles de la red.

Variables de alcance: La más poderosa protección contra el SQL Injection es

utilizar solamente variables de alcance para imposibilitar la concatenación de

instrucciones SQL donde puedan aplicarse variables en las instrucciones anexadas.

Validación de la entrada: es necesaria una validación fuerte en lado de servidor para

entrada de usuario, validación de datos filtrar la entrada del usuario de caracteres SQL,

verificar tanto el tamaño como el tipo de los datos y sintaxis de las entradas de usuario.

Este punto se aplica a muchos ataques similares, en particular lo reafirmaremos para los

próximos ataques analizados.

Mensajes de error: Los mensajes de error a menudo revelan demasiada información

que puede ser útil al atacante (nombres de tablas, campos, vistas); por lo tanto no se

deberá exponer al usuario final los mensajes de error devueltos por el gestor de la base

de datos. Los mensajes de errores de la base de datos deberían ser notificados solamente

a los administradores de la aplicación.

Manipulación de parámetros

Es un conjunto de técnicas que atacan la lógica de negocio de la aplicación,

tomando ventaja del uso de campos ocultos o fijos para la transferencia de información

sensible entre browser y servidor. En particular, tags ocultos en un form, cookies o

parámetros anexados a la URL son fácilmente modificables por un atacante.

Manipulación de campos ocultos

Cualquiera de los valores que se almacenan en los campos de un formpueden ser

manipulados por un atacante. En particular los campos ocultos son usualmente

atractivos para su manipulación ya que muchos desarrolladores los utilizan para

información confidencial de estatus de algún objeto sobre el que se está trabajando.

La manipulación de estos campos es tan simple como salvar la página, editar el

valor de estos campos en su código HTML y recargarla en el browser.

Sistema de Gestión Académica Teothokos – SAGAT

- 24 -

MARCO TEÓRICO

Manipulación de URL

Los forms HTML envían sus resultados usando uno de dos métodos posibles: GET

o POST. Si el método es GET, todos los parámetros del form y sus valores

correspondientes aparecen en cadena de búsqueda del siguiente URL que el usuario ve.

Esta cadena puede ser fácilmente manipulable

Existen otros parámetros URL que podrian ser modificados, tales como atributos y

módulos internos. Los atributos son parámetros únicos que caracterizan el

comportamiento de la página que se envía. Un usuario malicioso puede modificar el

parámetro mode a readwrite para obtener permisos indebidos sobre el contenido.

Ejecución de comandos

Las técnicas de manipulación de entrada vistas son sólo algunas que llevan a la

posibilidad de ejecutar remotamente comandos del Sistema Operativo de la víctima.

Determinados caracteres especiales pueden ser interpretados por scripts de

validación poco seguros como una instrucción al SO de esperar un comando arbitrario a

continuación. En particular, el punto y coma o la barra | son en Unix caracteres que

permiten encadenar comandos. Por tanto incluir en el campo de entrada un ; seguido del

comando que se desea ejecutar puede tener éxito si el mecanismo de validación no es lo

bastante robusto.

Contramedidas

En la mayoría de los ataques de inyección de comandos, es necesario tener

conciencia de que todo dato hacia y desde un browser puede ser modificado. Por ende,

la validación propiamente dicha de cada dato de entrada debe darse en el servidor, fuera

del control del usuario.

Adicionalmente el servidor debería además configurarse para requerir una

autenticación debida al nivel del directorio para cada archivo en el mismo. Aún así esta

solución no es perfecta, por lo que es conveniente que el usuario utilizado por la

aplicación sobre el servidor tenga los permisos mínimos necesarios, para minimizar el

posible impacto.

Cross Site Scripting (XSS).

Esta amenaza surge de los riesgos inherentes de permitir a un servidor web enviar

código ejecutable (en cualquier lenguaje de scripting embebido en HTML) a un

browser. Cuando a un script de una página se le permite acceder a datos de otra página u

objeto, existe la posibilidad de que un sitio web malicioso, lo utilice para obtener

información confidencial.

El crosssite scripting, aprovecha las vulnerabilidades en los mecanismos de

validación de interacción entre páginas y objetos y en lenguajes scripting que ejecutan

en el cliente.

Existe tres tipos conocidos que vulnerabilidades que implican

Tipo 1 – XSS local

Sistema de Gestión Académica Teothokos – SAGAT

- 25 -

MARCO TEÓRICO

En esta categoría el problema reside en el propio script del lado del ciente de la

página. Por ejemplo si un fragmento de JavaScript accede un parámetro de un request

HTML y lo utiliza para escribir HTML en su propia página, no codificándolo como

entidades HTML, se presenta la vulnerabilidad. Estos datos serán reinterpretados por los

browsers como HTML, que podría incluir código adicional (maligno).

Tipo 2 – XSS reflejado

Este es el tipo más común, también es conocido como no-persistente. La

vulnerabilidad se presenta cuando los datos provistos por el cliente es utilizada

inmediatamente por scripts del lado del servidor para generar la página de resultados. Si

datos no validados provistos por el cliente son incluidos en la página de resultados sin

una codificación apropiada, es posible insertar código desde el lado del cliente. Basta

con un poco de ingeniería social para llevar a un usuario desprevenido a seguir un link

malicioso que inserte este código en la página de resultados, obteniendo acceso total a

su contenido.

Tipo 3 – XSS persistente

Este tipo incluye los ataques más poderosos. La vulnerabilidad existe cuando los

datos provistos por el cliente a la aplicación son almacenados persistentemente en el

servidor, y accesible a varios usuarios del sitio sin codificación de entidades HTML –

por ejemplo messageboards. El atacante puede insertar un script una única vez, y con

esto le basta para alcanzar a un gran número de usuarios, sin requerir mucho esfuerzo de

ingeniería social. Los métodos de inserción son variados y no es necesario utilizar la

aplicación misma para explotar la vulnerabilidad.

Ejemplo de cada uno de los tipos mencionados anteriormente.

Ejemplo1 – XSS local

Atacante envía a usuario, via email u otro mecanismo, la URL de una página

fraudulenta. Usuario cliquea en el link, un código JavaScript en la página abre una

página HTML vulnerable local a la máquina del usuario. La página HTML es obligada

a ejecutar código JavaScript en la localidad de la máquina del usuario, el atacante puede

ahora ejecutar comandos en la máquina del usuario con los permisos de éste.

Ejemplo 2 – XSS reflejado

El usuario visita frecuentemente un website particular. El servidor de este sitio le

permite al usuario loguearse con un ID/pswd propio y almacena información

confidencial (tarjeta de crédito). El atacante verifica una vulnerabilidad de XSS

reflejada en el servidor. El atacante genera una URL y la envía al usuario simulando ser

el servidor del sitio (mediante spoofing). El usuario visita esta URL estando logueado

en el servidor. Un script maligno embebido en la URL se ejecuta en el browser del

usuario tal como si proviniera del servidor, obteniendo información confidencial del

usuario y enviandola al servidor web del atacante.

Ejemplo 3 – XSS persistente

El servidor de un sitio web permite a sus usuarios publicar mensajes y otros

contenidos en el mismo para acceso de otros miembros. El atacante detecta una

vulnerabilidad de XSS persistente en el servidor. El atacante postea un mensaje con un

script insertado, asegurándose que muchos otros usuarios del sitio querrán leerlo por

cualquier motivo. Mediante el simple acceso al mensaje, el script insertado puede hacer

Sistema de Gestión Académica Teothokos – SAGAT

- 26 -

MARCO TEÓRICO

que cookies de sesión u otra información de autenticación podría enviarse al servidor

web del atacante. El atacante podria ahora loguearse como otros usuarios al sitio

Contramedidas

Preferentemente no debería permitirse código HTML en los campos de entrada, en caso

de que se necesitara, deberían de validarse los tags, descartando aquellos que pudieran

ser peligrosos, adicionalmente también se deben descartar caracteres potencialmente

peligrosos como -,",",?,&,<,>,etc.

Sistema de Gestión Académica Teothokos – SAGAT

- 27 -

METODOLOGÍA DE TRABAJO

METODOLOGÍA DE TRABAJO

3.1. MÉTODOS

Al igual que en otros sistemas de ingeniería, los sistemas de software requieren un

tiempo y esfuerzo considerable para su desarrollo y deben permanecer en uso por un

periodo mucho mayor.

Durante este tiempo de desarrollo y uso, desde que se detecta la necesidad de

construir un sistema de software hasta que este es retirado, se identifican varias etapas

que en conjunto se denominan el ciclo de vida del software y en cada caso, en función

de cuales sean las características del proyecto, se configurará el ciclo de vida de forma

diferente.

Usualmente se consideran las etapas: especificación y análisis de requisitos, diseño

del sistema, implementación del software, aplicación y pruebas, entrega y

mantenimiento.

Un aspecto esencial dentro de las tareas del desarrollo del software es la

documentación de todos los elementos y especificaciones en cada fase. Dado que esta

tarea siempre estará influida por la fase del desarrollo en curso, se explicará de forma

distribuida a lo largo de las diferentes fases como un apartado especial para recalcar su

importancia en el conjunto del desarrollo del software.

Tal como ya hemos mencionado, las etapas principales a realizar en cualquier ciclo de

vida son:

Análisis: Construye un modelo de los requisitos.

Diseño: A partir del modelo de análisis se deducen las estructuras de datos, la

estructura en la que descompone el sistema y la interfaz de usuario.

Codificación: Construye el sistema. La salida de esta fase es código ejecutable.

Pruebas: Se comprueba que se cumplen criterios de corrección y calidad.

Mantenimiento: En esta fase, que tiene lugar después de la entrega se asegura

que el sistema siga funcionando y adaptándose a nuevos requisitos.

Las etapas constan de tareas. La documentación es una tarea importante que se

realiza en todas las etapas. Cada etapa tiene como entrada uno o varios documentos

procedentes de las etapas anteriores y produce otros documentos de salida.

Sistema de Gestión Académica Teothokos – SAGAT

- 28 -

METODOLOGÍA DE TRABAJO

3.2. CICLO DE VIDA

El ciclo de vida inicialmente propuesto por Royce en 1970, fue adaptado para el

software a partir de ciclos de vida de otras ramas de la ingeniería. Es el primero de los

propuestos y el más ampliamente seguido por las organizaciones (se estima que el 90%

de los sistemas han sido desarrollados así).

3.3. CICLO DE VIDA EN CASCADA

Este modelo admite la posibilidad de hacer iteraciones, es decir, durante las

modificaciones que se hacen en el mantenimiento se puede ver por ejemplo la necesidad

de cambiar algo en el diseño, lo cual significa que se harán los cambios necesarios en la

codificación y se tendrán que realizar de nuevo las pruebas, es decir, si se tiene que

volver a una de las etapas anteriores al mantenimiento hay que recorrer de nuevo el

resto de las etapas.

Después de cada etapa se realiza una revisión para comprobar si se puede pasar a la

siguiente. Trabaja en base a documentos, es decir, la entrada y la salida de cada fase es

un tipo de documento específico. Idealmente, cada fase podría hacerla un equipo

diferente gracias a la documentación generada entre las fases.

Los documentos son:

Análisis: Toma como entrada una descripción en lenguaje natural de lo que quiere el

cliente. Produce el S.R.D. (Software Requirements Document).

Diseño: Su entrada es el S.R.D. Produce el S.D.D. (Software Design Document)

Codificación: A partir del S.D.D. produce módulos. En esta fase se hacen también

pruebas de unidad.

Pruebas: A partir de los módulos probados se realiza la integración y pruebas de todo el

sistema. El resultado de las pruebas es el producto final listo para entregar.

Ventajas

o La planificación es sencilla.

o La calidad del producto resultante es alta.

o Permite trabajar con personal poco cualificado.

Desventajas

o Lo peor es la necesidad de tener todos los requisitos al principio. Lo normal es que

el cliente no tenga perfectamente definidas las especificaciones del sistema, o puede

ser que surjan necesidades imprevistas.

o Si se han cometido errores en una fase es difícil volver atrás.

No se tiene el producto hasta el final, esto quiere decir que:

o Si se comete un error en la fase de análisis no lo descubrimos hasta la entrega, con el

consiguiente gasto inútil de recursos.

o El cliente no verá resultados hasta el final, con lo que puede impacientarse.

o No se tienen indicadores fiables del progreso del trabajo (síndrome del 90%).

o Es comparativamente más lento que los demás y el coste es mayor también.

Sistema de Gestión Académica Teothokos – SAGAT

- 29 -

METODOLOGÍA DE TRABAJO

3.4. ETAPAS DEL MODELO EN CASCADA

3.4.1. ANALISIS DE REQUERIMIENTOS

En esta fase se analizan las necesidades de los usuarios finales del software para

determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD

(documento de especificación de requisitos), que contiene la especificación completa de

lo que debe hacer el sistema sin entrar en detalles internos.

Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere

del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir

nuevos resultados a mitad del proceso de elaboración del software.

3.4.2. DISEÑO DEL SISTEMA

Se descompone y organiza el sistema en elementos que puedan elaborarse por

separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el

SDD (Documento de Diseño del Software), que contiene la descripción de la estructura

relacional global del sistema y la especificación de lo que debe hacer cada una de sus

partes, así como la manera en que se combinan unas con otras.

Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño

detallado. El primero de ellos tiene como objetivo definir la estructura de la solución

(una vez que la fase de análisis ha descrito el problema) identificando grandes módulos

(conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define

la arquitectura de la solución elegida. El segundo define los algoritmos empleados y la

organización del código para comenzar la implementación.

3.4.3. DISEÑO DEL PROGRAMA

Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de

los requerimientos del usuario así como también los análisis necesarios para saber que

herramientas usar en la etapa de Codificación.

3.4.4. CODIFICACION O PROGRAMACION

Es la fase de programación o implementación propiamente dicha. Aquí se

implementa el código fuente, haciendo uso de prototipos así como pruebas y ensayos

para corregir errores.

Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y

componentes reutilizables dentro del mismo proyecto para hacer que la programación

sea un proceso mucho más rápido.

3.4.5. PRUEBAS

Los elementos, ya programados, se ensamblan para componer el sistema y se

comprueba que funciona correctamente y que cumple con los requisitos, antes de ser

puesto en funcionamiento.

Sistema de Gestión Académica Teothokos – SAGAT

- 30 -

ANALISIS DEL SISTEMA

ANALISIS DEL SITEMAS

4.1. ESPECIFICACIÓN DE REQUISITOS SOFTWARE

4.1.1. INTRODUCCION

Propósito

Con el propósito de presentar todas las funcionalidades y capacidades que tendrá el

Sistema de Gestión Académica, se ha redactado el presente documento.

Ámbito del Sistema

El Sistema de Gestión Académica tendrá por nombre SAGAT (Sistema

Automatizado de Gestión Académica Theotokos), este sistema registrará información

de los estudiantes a través del proceso de matricula así como de los docentes que se

encuentren actualmente laborando.

Se llevará un registro de las notas de los estudiantes permitiendo el fácil acceso a

estas y otras informaciones de relevancia académica a los mismos estudiantes como

también a los docentes.

Se hará posible la publicación de noticias y avisos de eventos que acontecen en la

vida estudiantil además de información del mismo centro educativo.

El sistema no pretende gestionar la distribución de becas ni horarios de clases; así

tampoco la impresión de ciertos informes como el de Retención de Estudiantes,

Aprobados y Reprobados y el de Rendimiento Académico los cuales son actualmente

manejados por secretaría.

Personal Involucrado

El personal que podrá interactuar con el sistema está compuesto por la Directora,

Secretaria, Administrador del sistema, Docente y Alumno, todos y cada uno con

diferentes privilegios y funciones.

Definiciones, Acrónimos y Abreviaturas

CMML: Colegio Madre María Luis, centro educativo al cual está dirigido el sistema de

gestión académica.

SAGAT: Sistema Automatizado de Gestión Académica THEOTOKOS.

BBDD: Base de Datos.

Sistema de Gestión Académica Teothokos – SAGAT

- 31 -

ANALISIS DEL SISTEMA

Referencias

IEEE Std 610.12-1990. Software Engineering Standards Committee of the IEEE

Computer Society

IEEE Std 830-1998. Software Engineering Standards Committee of the IEEE Computer

Society

Resumen

En las siguientes secciones del documento se describe de forma general lo que se

espera del producto, sus funciones, las características que deben poseer los usuarios del

producto, las limitaciones bajo las que el producto no podría funcionar correctamente

y/o eficientemente, algunos requisitos a futuro. También de manera más específica se

describe la interfaz que tendrá el producto, atributos que deberá tener el sistema sobre

el cual funcionará, requisitos para el rendimiento y otros requisitos.

4.1.2. DESCRIPCIÓN GENERAL

Perspectiva del Producto

SAGAT es el primer proyecto software en su clase en ser utilizado para la gestión

académica en el CMML.

Funcionalidad del Producto

SAGAT permitirá el registro de estudiantes a través de el proceso de matrícula, se

llevara además un registro de las notas la cuales van a poder ser consultadas en línea por

ellos mismo. Se guardaran los datos de cada docente que se encuentre en funciones

dentro del CMML.

Se brindara fácil acceso a la información referente al CMML y a sus actividades

académicas y recreativas las cuales se podrán mantener actualizadas por la gestión de la

secretaría y dirección del CMML.

Características de los Usuarios

Los usuarios de SAGAT deberán tener conocimientos básicos en el manejo y uso de

un computador así como del navegador a través del cual van a consultar al sistema.

Adicionalmente los administradores de SAGAT en este caso Directora y Secretaria

deberán tener nociones de informática que les faciliten el llenado de los formularios

para el registro de estudiantes.

Sistema de Gestión Académica Teothokos – SAGAT

- 32 -

ANALISIS DEL SISTEMA

Restricciones

Políticas de la Empresa

La administración del CMML solamente permitirá contenido de carácter educativo,

académico y cultural que puedan contribuir al buen desarrollo y desenvolvimiento de la

vida estudiantil. Además estará a discreción de la misma administración la publicación

de eventos o reuniones de recreación organizadas por y para estudiantes del centro.

Limitaciones de Hardware

El computador que tendrá la función de servidor web deberá cumplir con las

siguientes características mínimas:

3 Gb de RAM

160Gb de Disco Duro

Procesador Intel CoreDuo 2.0 Ghz

Tarjeta de Red

Al menos una terminal o cliente con las siguientes características mínimas:

521 Mb de RAM

40 Gb de Disco Duro

Procesador Intel Pentium IV 2.0 Ghz

Tarjeta de Red

Lenguajes de Programación

PHP 5.0

Flash, Action Script 3.0

Javascript

Sql

Protocolos de Comunicación

HTTP 1.1

Consideraciones de Seguridad

SAGAT mantendrá la integridad de los datos además de asegurar la protección de

los mismos ante posibles modificaciones por parte de usuarios no autorizados.

Suposiciones y Dependencias

Se da por sentado que el servidor web trabajará bajo el Sistema Operativo Linux.

Evolución previsible del sistema

En un futuro los estudiantes serán capaces de matricularse en línea y de esta manera

el proceso se hará más rápido y con mayor comodidad para los padres y los mismos

alumnos.

Se podría desarrollar por separado un sistema contable completo que trabajará en

conjunto con SAGAT para manejar la solvencia de los alumnos.

Sistema de Gestión Académica Teothokos – SAGAT

- 33 -

ANALISIS DEL SISTEMA

Con el fin de ayudar a los padres de familia muy ocupados se podría llegar a

implementar los pagos en línea con el propósito de no hacer perder tiempo preciado en

grandes colas.

4.2. REQUISITOS ESPECIFICOS

4.2.1. REQUISITOS COMUNES DE INTERFACES

Interfaces de Usuario

Como cualquier aplicación típica WEB el sistema constará con una interfaces de

usuario compuesta por formularios, menús, botones, cajas de texto, etc.

Se presentarán gráficos en caso de ser necesario con el objetivo de explicar mejor

resultados de consultas relacionadas con rendimiento. La introducción de datos se hará

mayormente por medio de cajas de texto o por selección de opciones.

La interfaz será amigable e intuitiva, para mejorar la experiencia del usuario con el

sistema.

Interfaces de Hardware

El Computador donde estará instalado el sistema deberá constar con una tarjeta de

red un mínimo de 3 Gb de RAM, 120Gb de Disco duro y un procesador Intel Dual core

a 2.0

Interfaces de Software

Se deberá constar con una base de datos MySql.

Interfaces de Comunicación

Se deberá constar con todos los protocolos de red necesarios para la comunicación

entre el servidor y las terminales, además un navegador web compatible.

Sistema de Gestión Académica Teothokos – SAGAT

- 34 -

ANALISIS DEL SISTEMA

4.2.2. REQUISITOS FUNCIONALES

RF 1 Matricular Alumno

Introducción:

Este proceso deberá capturar todos los datos del futuro alumno para que su registro sea

incorporado al resto del cuerpo estudiantil.

Entradas:

Por Pantalla:

Nombre del Alumno

Apellido del Alumno

Fecha de Nacimiento (aa-mm-dd)

Cedula del Alumno

Selección del sexo del alumno

Año Académico

Selección de la religión que profesa

Nombre del padre

Apellido del padre

Cedula del padre

Trabaja (Selección de opción: Si o No.)

Oficio del padre

Lugar de Trabajo

Teléfono del padre

Nombre de la madre

Apellido de la madre

Cedula de la madre

Trabaja (Selección de opción: Si o No.)

Oficio de la madre

Lugar de Trabajo

Teléfono de la madre

Procesos:

Se ingresaran todos los datos en el formulario, se validarán los datos para

comprobar que cumplan con el formato y se guardaran los datos del alumno.

Salida:

Una vez almacenados los datos mostrará mensaje Matriculado con Éxito.

Sistema de Gestión Académica Teothokos – SAGAT

- 35 -

ANALISIS DEL SISTEMA

RF 2 Rematricular Alumno

Introducción:

Este proceso actualizará el grado del alumno y cualquier dato que necesite ser cambiado

si la información actual no coincide con la del año anterior.

Entradas:

Por Pantalla:

Numero de Carnet del Alumno

Por Sistema:

Cundo el sistema consulte los datos del alumno con el Numero de Carnet

brindara estos datos al proceso.

Procesos:

Se solicitará el Numero de Carnet del alumno, se hará las búsqueda de la

información del estudiante, se cargaran en pantalla los datos que se ingresaron

en el momento de la matricula y se podrá editar dicha información.

Salida:

Una vez que se valide que los campos cumplen con el formato, si el estudiante

fue matriculado en el mismo año no se guardaran los cambios y el sistema

solicitara ingresar nuevamente el número del carnet, los datos editados en este

proceso solo se guardarán si el sistema comprueba que no se había matriculado

el alumno en el mismo año.

RF 3 Actualizar Datos Alumnos

Introducción:

En esta función se podrán editar los datos de los alumnos previamente matriculado para

corregir cualquier error cometido en el proceso de matrícula o para actualizar algún

dato.

Entradas:

Por Pantalla:

Numero Carnet de Alumno

Por Sistema:

Cuando el sistema consulte los datos del alumno con el Número de Carnet

brindara estos datos al proceso.

Sistema de Gestión Académica Teothokos – SAGAT

- 36 -

ANALISIS DEL SISTEMA

Procesos:

Se solicitará el Numero de Carnet del alumno, se hará las búsqueda de la

información del estudiante, se cargaran en pantalla los datos que se ingresaron

en el momento de la matricula y se podrá editar dicha información.

Salida:

Una vez que se valide que los campos cumplen con el formato, se actualizaran

los datos registrados en la BD. Mostrará mensaje Actualizado con Éxito.

RF 4 Retirar Alumno

Introducción:

Esta función permitirá cambiar el estado de un estudiante de activo a inactivo en el caso

que abandone el centro CMML.

Entradas:

Por Pantalla:

Selección del Grupo

Selección de la opción Retirar correspondiente al alumno elegido.

Por Sistema:

El sistema consultará los datos del alumno seleccionado y los brindará al

proceso.

Procesos:

Se ingresara en el grupo en que está registrado el alumno, se elegirá la opción

Retirar del estudiante correspondiente y el estado del alumno será cambiado en

la BD a inactivo pero sin que se eliminen los datos por completo.

Salida:

Se mostrara la lista actualizada de los alumnos en el grupo.

RF 5 Ingresar Datos Docente

Introducción:

Se podrá registrar la información básica de un docente que iniciara a laborar en el

CMML.

Sistema de Gestión Académica Teothokos – SAGAT

- 37 -

ANALISIS DEL SISTEMA

Entradas:

Por Pantalla:

Nombres

Apellidos

Fecha de nacimiento (aa-mm-dd)

Cedula

Selección del sexo del docente

Selección de la religión

Teléfono

Celular

Dirección

Profesión

Otros estudios

Documentos Entregados

Procesos:

Se ingresarán los datos de docente, llenando los campos del formulario, el

sistema validará que los datos cumplan con el formato y los campos estén llenos,

se almacenarán los datos del docente en la BD.

Salida:

Una vez que se valide el formato de los campos, si el sistema detecta que se está

realizando un duplicado de un registro existente no almacenara ningún dato en

caso contrario ingresará el nuevo registro de docente en la BD, para ambas

situaciones mostrará un formulario vacío para ingresar nuevos registros.

RF 6 Actualizar Datos Docente

Introducción:

Este proceso permitirá la edición de los datos del maestro en caso de que se necesite

cambiar los datos actuales.

Entradas:

Por Pantalla:

Selección del docente a modificar.

Por Sistema:

La identificación del docente será brindada al proceso para consultar los datos en

la BD.

Procesos:

Se ingresara al listado de los docentes del centro, se seleccionará la opción

editar, se cambiarán los datos requeridos para que el registro este

actualizado, los datos serán almacenados.

Sistema de Gestión Académica Teothokos – SAGAT

- 38 -

ANALISIS DEL SISTEMA

Salida:

Se mostrará el expediente del docente con los datos actualizados.

RF 7 Retirar Docente

Introducción:

Esta función permitirá cambiar el estado de un docente de activo a inactivo en el caso de

no continuar laborando en el CMML.

Entradas:

Por Pantalla:

Lista de Docentes

Selección de la opción Retirar.

Por Sistema:

Se brindara el id del docente al proceso para la búsqueda de los datos

correspondientes.

Procesos:

Se ingresará al listado de los docentes, selección de la opción Retirar para el

docente correspondiente.

Salida:

Se mostrará la lista actualizada de los docentes activos en el colegio.

RF 8 Añadir Asignatura

Introducción:

Este proceso permite que se guarde el nombre y descripción de una materia que iniciará

a impartirse en el CMML.

Entradas:

Por Pantalla:

Nombre de la Asignatura

Categoría

Por Sistema:

Id de la Asignatura será brindado al proceso.

Sistema de Gestión Académica Teothokos – SAGAT

- 39 -

ANALISIS DEL SISTEMA

Procesos:

Se ingresará el nombre de la asignatura y la categoría en la que estaría incluida

esa materia, se creará un id para la asignatura que será utilizado internamente

por el sistema como referencia.

Salida:

Listado Actualizado de las asignaturas en el pensum.

RF 9 Retirar Asignatura

Introducción:

Se podrá cambiar el estado de una asignatura a estado inactivo cuando no se valla a

seguir impartiendo.

Entradas:

Por Pantalla:

Listado de la asignaturas.

Selección de la opción Retirar.

Por Sistema:

Id de la Asignatura será brindado al proceso.

Procesos:

Se ingresará a las asignaturas para visualizar el listado de asignaturas inscritas,

se elegirá la opción Retirar correspondiente a la asignatura que no estará siendo

impartida.

Salida:

Listado actualizado de las asignaturas activas en el centro.

RF 10 Restablecer Asignatura

Introducción:

Será posible la activación de una asignatura que fue retirada por error o que decidió

incluirse una vez más en el pensum.

Sistema de Gestión Académica Teothokos – SAGAT

- 40 -

ANALISIS DEL SISTEMA

Entradas:

Por Pantalla:

Listado de la asignaturas.

Selección de la opción Activar.

Por Sistema:

Id de la Asignatura será brindado al proceso.

Procesos:

Se ingresará a las asignaturas para visualizar el listado de asignaturas inscritas,

se elegirá la opción Activar correspondiente a la asignatura que será impartida

una vez más en el CMML.

Salida:

Listado actualizado de las asignaturas activas en el centro.

RF11 Agregar Asignatura a Pensum

Introducción:

Será posible registra una asignatura al pensum académico

Entradas:

Por Pantalla:

Lema

Por Sistema:

El año lectivo correspondiente

Procesos:

Se ingresará a las asignaturas para visualizar el listado de asignaturas inscritas,

se elegirá la opción Activar correspondiente a la asignatura que será impartida

una vez más en el CMML.

Salida:

Listado actualizado de las asignaturas activas en el centro.

Sistema de Gestión Académica Teothokos – SAGAT

- 41 -

ANALISIS DEL SISTEMA

RF 11 Abrir Secciones

Introducción:

Se podrá separar un grupo completo de alumnos en secciones para poder distribuir la

cantidad de estudiantes en grupos más pequeños.

Entradas:

Por Pantalla:

Grado del Grupo

Numero de Secciones.

Por Sistema:

Ninguna

Procesos:

Se elegirá el grupo que se va a separar en secciones, selección del número de

secciones en que será dividido el grupo, se registran las secciones para el grupo

y el total de estudiantes matriculados en el mismo será repartido

proporcionalmente en cada uno.

Salida:

Mostrará listado de grupos con el número de secciones actualizado.

RF 12 Cerrar Secciones

Introducción:

Esta función permitirá corregir cualquier error cometido en la división del grupo ya que

se unirán las secciones en un solo grupo o se distribuirán los alumnos en un número de

secciones menor.

Entradas:

Por Pantalla:

Listado de grupos con sus respectivas secciones.

Por Sistema:

Ninguna

Sistema de Gestión Académica Teothokos – SAGAT

- 42 -

ANALISIS DEL SISTEMA

Procesos:

Se visualizará el listado de grupos con sus secciones, se elegirá la opción Retirar

en la sección que se va a eliminar y el sistema unirá todos los alumnos en un

solo grupo para luego dividir o no el grupo en las secciones deseadas.

Salida:

Listado Actualizado de los grupos con sus secciones.

RF 13 Asignar Materia

Introducción:

Esta función permitirá delegar una asignatura a un maestro específico el cual será el

encargado de impartirla.

Entradas:

Por Pantalla

Grupo y Sección

Selección del Nombre del Docente

Selección del Nombre de la Asignatura

Por Sistema:

Se brindara el id del docente y el id de la asignatura al proceso para establecer la

relación.

Procesos:

Se seleccionará el grupo para el que estamos designando las asignaturas, se

elegirá el maestro y luego la asignatura que le será encargada, si se designa un

maestro con una materia de categoría Conducta será convertido automáticamente

en el profesor guía de ese grupo.

Salida:

Se mostrará el listado de las asignaturas con el docente elegido para impartirla.

RF 14 Desasignar Materia

Introducción:

Esta función se utilizará para retirar la asignación de una materia al docente

elegido, con el propósito de utilizar un docente diferente.

Sistema de Gestión Académica Teothokos – SAGAT

- 43 -

ANALISIS DEL SISTEMA

Entradas:

Por Pantalla:

Grupo

Por Sistema:

La relación entre el id del docente y el id de la asignatura es brindada al proceso.

Procesos:

Se elige el grupo, se podrán ver las asignaturas con el profesor que la imparte en

ese grupo, se elegirá la opción Borrar, se eliminará la relación entre el docente y

esa asignatura.

Salida:

Listado actualizado de las Materias Asignadas.

RF 15 Publicar Noticia

Introducción:

Se podrá ingresar noticias e información para mantener a los estudiantes atentos a las

actividades académicas.

Entradas:

Por Pantalla:

Título

Descripción de la noticia

Fecha y Hora de Publicación

Fecha y Hora de Caducidad

Por Sistema:

Ninguna

Procesos:

Se registrará un titulo para la noticia, se ingresará el texto que será publicado,

además de brindar la fecha en que fue publicado y la fecha de validez.

Salida:

Se muestra el formulario vacío para el ingreso de otra noticia.

Sistema de Gestión Académica Teothokos – SAGAT

- 44 -

ANALISIS DEL SISTEMA

RF 16 Asignar Acta Calificación

Introducción:

En esta función podremos guardar los datos del Acta en que están registradas las notas

de los parciales.

Entradas:

Por Pantalla:

Índice de acta (Libro-Acta-Folio)

Por Sistema:

Ninguna

Procesos:

Se ingresara el Número de Libro, de Acta y de Folio correspondiente y se

almacenará el dato.

Salida:

Se mostrará la lista actualizada de los grupos con su respectivo índice de acta.

RF 17 Asignar Acta Reparación

Introducción:

En esta función podremos guardar los datos del Acta en que están registradas las notas

de reparación.

Entradas:

Por Pantalla:

Índice de acta (Libro-Acta-Folio)

Por Sistema:

Ninguna

Procesos:

Se ingresara el Número de Libro, de Acta y de Folio correspondiente y se

almacenará el dato.

Salida:

Se mostrará la lista actualizada de los grupos con su respectivo índice de acta.

Sistema de Gestión Académica Teothokos – SAGAT

- 45 -

ANALISIS DEL SISTEMA

RF 18 Subir Fotos

Introducción:

Se podrá ingresar fotos de las actividades académicas y extracurriculares del CMML.

Entradas:

Por Pantalla:

Titulo

Comentario de la Foto

Ruta de ubicación del archivo

Por Sistema:

Se envía la ruta de la ubicación del archivo al sistema

Procesos:

El sistema buscará la ruta que se proporcione y añadirá el archivo especificado,

además se ingresara algún comentario con la fotografía a manera de descripción

de la actividad que se estaba realizando.

Salida:

Se mostrara mensaje Se añadió foto con éxito.

RF 19 Eliminar Fotos

Introducción:

Esta función podrá utilizarse para eliminar o borrar la foto que se había añadido con el

propósito de tener una galería actualizada o corregir si se había añadido por error.

Entradas:

Por Pantalla:

Lista de las fotos actuales.

Selección de la opción Eliminar.

Por Sistema:

Se envía la ruta de ubicación del archivo al sistema.

Procesos:

El usuario seleccionará la foto que no desea permanezca en la galería y al

seleccionar la opción Eliminar se borrara de la galería.

Salida:

Se mostrará la galería actualizada.

Sistema de Gestión Académica Teothokos – SAGAT

- 46 -

ANALISIS DEL SISTEMA

RF 20 Editar Pagina Estática

Introducción:

Con esta función se podrá editar la información de las páginas estáticas que contienen la

información básica del CMML.

Entradas:

Por Pantalla:

Se introducirá el texto.

Por Sistema:

Ninguna

Procesos:

Se podrá actualizar la información contenida en la reseña histórica o en los

reglamentos por ejemplo, se introducirá todo el texto actualizado y se guardará

para ser presentado.

Salida:

Se mostrará mensaje de Realizado con Éxito.

RF 21 Ingresar Nota Parcial

Introducción:

Con esta función el docente será capaz de ingresar una nota parcial para la asignatura

que este impartiendo.

Entradas:

Por Pantalla:

Contraseña del Docente

Nota Parcial

Procesos:

El docente tendrá que ingresar su usuario y contraseña, se muestra la lista de

materias impartidas por el docente en cual al seleccionar para ingresar las notas

correspondientes se muestra la lista de los alumnos que llevan dicha materia,

luego de ingresar las notas se mostrarán las notas de los parciales anteriores

Salida:

Notas de los alumnos y su nota final actualizadas del alumno.

Sistema de Gestión Académica Teothokos – SAGAT

- 47 -

ANALISIS DEL SISTEMA

RF 22 Ingresar Nota Reparación

Introducción:

Con esta función el docente será capaz de ingresar una nota de reparación para la

asignatura que imparte.

Entradas:

Por Pantalla:

Contraseña del Docente

Nota de Reparación

Procesos:

El docente tendrá que ingresar su usuario y contraseña, se muestra la lista de

materias impartidas por el docente la cual se seleccionara para ingresar las notas

correspondientes, se muestra la lista de los alumnos que reparan dicha materia y

que alcanzaron el derecho, luego de ingresar la nota de reparación.

Salida:

Se mostraran las notas de reparación de cada alumno.

RF 23 Modificar Nota

Introducción:

Con esta función la dirección será capaz de modificar una nota parcial para una

asignatura cuando sea necesario corregirla.

Entradas:

Por Pantalla:

Carnet del Alumno

Nota Parcial

Procesos:

El proceso pedirá el número de carnet del alumno, se obtendrá como resultados

las asignaturas con las notas correspondientes, y en ese momento se hará una

sustitución de la nota actual por la nueva y se guardarán los datos.

Salida:

Se mostraran las asignaturas con sus correspondientes notas.

Sistema de Gestión Académica Teothokos – SAGAT

- 48 -

ANALISIS DEL SISTEMA

RF 24 Modificar Nota Reparación

Introducción:

Con esta función la dirección será capaz de modificar una nota de reparación para una

asignatura cuando sea necesario corregirla.

Entradas:

Por Pantalla:

Carnet del Alumno

Nota Reparación

Procesos:

El proceso pedirá el número de carnet del alumno, se obtendrá como resultados

las asignaturas con las notas correspondientes, en ese momento añadirá la nota

de reparación y se guardarán los datos.

Salida:

Se mostraran las asignaturas con sus correspondientes notas reparación de la

materia.

RF 25 Mostrar Estadísticas

Introducción:

Este proceso permite conocer el rendimiento académico obtenido por año lectivo, en

determinada asignatura, por el grupo de Docentes, a nivel de Primaria, Secundaria y de

todo el colegio centro.

Entradas:

Por Pantalla:

Selección de la Opción Estadísticas.

Por sistema:

Año Académico

Asignatura

Grupo de Docentes

Primaria

Secundaria

Colegio

Procesos:

Se muestran cada una de las opciones mencionadas, para el caso de rendimiento

docente, se genera el rendimiento académico obtenido por los estudiantes de

cada docente de primaria, secundaria o todo el colegio.

Sistema de Gestión Académica Teothokos – SAGAT

- 49 -

ANALISIS DEL SISTEMA

Salida:

Se muestra los resultados según la opción proporcionada en la entrada.

RF 26 Cambiar Contraseña de Usuario

Introducción:

El administrador de SAGAT será capaz de administrar las cuentas de usuario,

específicamente podrá cambiar la contraseña de cada usuario del sistema.

Entradas:

Por Pantalla:

Nombre del Usuario

Contraseña Actual

Nueva Contraseña

Por Sistema:

Una vez validado el Nombre de Usuario y Contraseña, brindara los datos al

proceso.

Procesos:

Se buscara los datos del usuario por medio del nombre del mismo, se validara

que el campo Contraseña Actual coincida de hecho con la contraseña del

usuario, luego se actualizara el registro de la contraseña en la BD.

Salida:

Se mostrara mensaje de Cambio realizado con éxito.

RF 27 Respaldar BD

Introducción:

Esta operación es exclusiva del Administrador del sistema y permite realizar una copia

de seguridad de los datos de toda la base de datos.

Entradas:

Por Pantalla:

Selección de la opción Copia de Seguridad.

Por Sistema:

El sistema enviara el nombre de la BD y de las tablas que la componen al

proceso.

Procesos:

Sistema de Gestión Académica Teothokos – SAGAT

- 50 -

ANALISIS DEL SISTEMA

Se selecciona la opción Copia de Seguridad para indicar que se necesita realizar

respaldo de los datos almacenados actualmente en la BD.

Salida:

Se generará un archivo que puede ser guardado en cualquier dispositivo de

almacenamiento.

RF 28 Restaurar BD

Introducción:

Esta función permite a partir de una copia de seguridad, restaurar los datos de los

respaldos

Entradas:

Por Pantalla:

Selección de la Opción Restaurar Copia de Seguridad.

Por Sistema:

Ruta de ubicación del archivo

Procesos:

Seleccionar la Opción Restablecer Copia de Seguridad, se no permitirá elegir la

ruta de ubicación del archivo de respaldo que va a ser cargado por el sistema y

contiene los datos previamente respaldados.

Salida:

Se mostrara mensaje Copia de Seguridad Restaurada.

RF 29 Visualizar Notas

Introducción:

Los estudiantes serán capaces de consultar en línea sus notas parciales, notas de

reparación y el promedio de estas notas.

Entradas:

Por Pantalla:

Numero de Carnet del Alumno

Procesos:

El alumno ingresara su número de carnet y el sistema consultara en la BD por

los datos y las notas que se han registrado para este estudiante en cada

asignatura.

Salida:

Sistema de Gestión Académica Teothokos – SAGAT

- 51 -

ANALISIS DEL SISTEMA

Tabla de notas parciales, nota fina y/o de reparación por cada asignatura.

RF 31 Eliminar Noticia

Introducción:

Esta función permitirá al administrador del sistema la eliminación de una noticia, ya sea

por un error en la publicación o por su caducidad en fecha de valides.

Entradas:

Por Pantalla:

Lista de las noticias publicadas.

Por Sistema:

Envía el id de noticia la cual será eliminada

Procesos:

Se podrá eliminar una noticia dando en la opción del eliminar que proporciona el

sistema.

Salida:

Se muestra la lista de las noticias actualmente publicadas.

RF 32 Restablecer Docente

Introducción:

Esta función permitirá al administrador del sistema modificar el estado de un docente en

el sistema, específicamente regresar al docente a su estado activo en el centro, ya sea

porque se retiro por error o porque ha vuelto a ejercer labores en el centro.

Entradas:

Por Pantalla:

Lista de los docentes inactivos con la opción restablecer.

Por Sistema:

Envía el id del docente que será reactivado.

Procesos:

Se podrá reactivar en sus labores un docente seleccionado la opción restablecer

que proporciona el sistema.

Salida:

Se muestra la lista de los docentes inactivos.

Sistema de Gestión Académica Teothokos – SAGAT

- 52 -

ANALISIS DEL SISTEMA

RF 33 Restablecer Alumno

Introducción:

Esta función permitirá al administrador del sistema pasar al estado activo a un alumno

que haya sido retirado del centro por error.

Entradas:

Por Pantalla:

Introducir el número de carnet del alumno a reactivar.

Por Sistema:

Envía el id del alumno a reactivar.

Procesos:

Se podrá reactivar a un alumno dando en la opción restablecer que proporciona

el sistema.

Salida:

Se muestran el nombre, apellido, fecha nacimiento, grado y estado puesto a

activo del alumno.

4.2.3. REQUISITOS NO FUNCIONALES

4.2.3.1. REQUISITOS DE RENDIMIENTO

Se espera que el sistema soporte un mínimo de 10 usuarios conectados desde la red

local y un mínimo de 15 usuarios conectados desde internet. Además se estima que el

sistema sea accedido por al menos 3 usuarios diariamente y que se agreguen nuevos

registros todos los días.

Se tiene planificado que con los 120 Gb de almacenamiento mínimo se puedan guardar

un mínimo de X registros.

4.2.3.2. RESTRICCIONES DE DISEÑO

El software se verá limitado por las limitaciones que tenga la plataforma en la cual se

ejecute, siempre y cuando se cumplan unos requisitos mínimos.

Sistema de Gestión Académica Teothokos – SAGAT

- 53 -

ANALISIS DEL SISTEMA

4.2.3.3. REQUERIMIENTOS HARDWARE Y SOFTWARE PARA EL SERVIDOR

Requisitos software

Disponer de un sistema operativo

Disponer de un servidor web.

Tener instalado un motor de base de datos

Tener instalado un navegador de Internet.

Requisitos hardware

Un ordenador con procesador dual-core a 2.0 Ghz o superiores.

2Gb de RAM como mínimo, se recomienda 4Gb.

Disponer del 80% de espacio libre en disco

4.2.3.4. REQUERIMIENTOS HARDWARE Y SOFTWARE PARA EL CLIENTE

Requisitos software

Tener instalado Macromedia Flash, última versión.

Tener instalado un navegador de Internet.

Requisitos hardware

Un ordenador con procesador de 1.2Ghz o superior.

1Gb de RAM como mínimo.

4.2.3.5. SEGURIDAD

El acceso a la información está restringido a ciertos usuarios del sistema, cada usuario

del sistema tiene permisos específicos para realizar operaciones sobre el mismo.

El acceso de la aplicación a la base de datos se hace por medio de un usuario y

contraseña. Además el envío de los nombres de usuarios y contraseñas se hace bajo

algoritmos de encriptación.

4.2.3.6. MANTENIBILIDAD

El administrador del sistema debe realizar copias de seguridad, y hacer el respaldo de

las mismas. Se recomienda realizar las copias mensualmente

4.2.3.7. PORTABILIDAD

El uso del lenguaje PHP proporciona al sistema la característica de ser accesible desde

cualquier plataforma de sistema operativo y con cualquier explorador web.

Sistema de Gestión Académica Teothokos – SAGAT

- 54 -

DISEÑO DEL SISTEMA

DISEÑO DEL SISTEMAS

5.1. DIAGRAMA DE CASOS DE USO

ALUMNO

SECRETARIA

DOCENTE

ADMINISTRADOR

DIRECTORA

Iniciar Sesion

Ingresar Nota

Ver Notas

Subir Imagenes

Editar Pagina Estatica

Eliminar Imagenes

Eliminar Noticia

Respaldar BD

Restaurar BD

Cambiar Contraseña

Matricular AlumnoActualizar Alumno

Retirar Alumno

Rematricular Alumno

Abrir Pensum

Ingresar Docente

Editar Datos Docente

Retirar Docente

Registrar Asignatura

Retirar Asignatura

Ingresar Noticia

Ver Estadisticas

Editar Nota

Editar Nota Reparacion

Ingresar Nota Reparacion

Asignar Acta Calificacion

Asignar Acta Reparacion

Asignar Materia

Desasignar MateriaAbrir Secciones

Cerrar Secciones

Reestablecer Asignatura

Figura 5.1. 1: Diagrama de Casos de Uso

Sistema de Gestión Académica Teothokos – SAGAT

- 55 -

DISEÑO DEL SISTEMA

5.2. DIAGRAMAS DE SECUENCIA

/ : SECRETARIA

/ : Pagina /BD/ : Matricula

1 : Inicia el proceso de matricula()

2 : Muestra formulario()

3 : Llena el formulario()

4 : Matricular()

5 : consulta por alumno existente()

6 : Valida consulta()

7 : Confirma consulta()

8 : Almacena los datos()

9 : Confirma registro guardado()

10 : Confirma exito en el registro del alumno()

Figura 5.2.1: D. Secuencia - Matricular Alumno

Sistema de Gestión Académica Teothokos – SAGAT

- 56 -

DISEÑO DEL SISTEMA

Rematricular alumno

Figura 5.2.2: D. de Secuencia - Rematricular Alumno

Figura 5.2.3: D. de Secuencia - Retirar Alumno

Sistema de Gestión Académica Teothokos – SAGAT

- 57 -

DISEÑO DEL SISTEMA

Figura 5.2.4: D. de Secuencia - Registrar Docente

Figura 5.2.5: D. de Secuencia - Retirar Docente

Sistema de Gestión Académica Teothokos – SAGAT

- 58 -

DISEÑO DEL SISTEMA

Figura 5.2.6: D. de Secuencia - Ingresar Asignatura

Figura 5.2.7: D. de Secuencia - Retirar Asignatura

Sistema de Gestión Académica Teothokos – SAGAT

- 59 -

DISEÑO DEL SISTEMA

Figura 5.2.8: D. de Secuencia - Asignar Materia

Figura 5.2.9: D. de Secuencia - Desasignar Materia

Sistema de Gestión Académica Teothokos – SAGAT

- 60 -

DISEÑO DEL SISTEMA

Figura 5.2.10: D. de Secuencia - Ingresar Nota Parcial

Figura 5.2.11: D. de Secuencia - Ingresar Nota Reparacion

Sistema de Gestión Académica Teothokos – SAGAT

- 61 -

DISEÑO DEL SISTEMA

Figura 5.2.12: D. Secuencia - Modificar Nota Parcial

Sistema de Gestión Académica Teothokos – SAGAT

- 62 -

DISEÑO DEL SISTEMA

Figura 5.2.13: D. de Secuencia - Modificar Nota Reparacion

Sistema de Gestión Académica Teothokos – SAGAT

- 63 -

DISEÑO DEL SISTEMA

Figura 5.2.14: D. de Secuencia - Asignar Acta Calificaciones

Figura 5.2.15: D. de Secuencia - Asignar Acta Reparaciones

Sistema de Gestión Académica Teothokos – SAGAT

- 64 -

DISEÑO DEL SISTEMA

Figura 5.2.16: D. de Secuncia - Abrir Secciones

Figura 5.2.17: D. de Secuencia - Cerrar Secciones

Sistema de Gestión Académica Teothokos – SAGAT

- 65 -

DISEÑO DEL SISTEMA

Figura 5.2.18: D. de Secuencia - Generar Certificado

Figura 5.2.19: D. de Secuencia - Ingresar Noticia

Sistema de Gestión Académica Teothokos – SAGAT

- 66 -

DISEÑO DEL SISTEMA

Figura 5.2.20: D. de Secuencia - Subir Imagen

Figura 5.2.21: D. de Secuencia - Eliminar Imagen

/BD/ : Pagina / : Album

/ : ADMINISTRADOR

1 : Sube foto nueva()

2 : crear album()

3 : obtenerURLImagen()

4 : guardarAlbum()

5 : Almacena en BD()

6 : Confirma imagen guardada()

7 : Confirma album creado()

/ : Album / : BD/ : Pagina

/ : ADMINISTRADOR

1 : selecciona imagen a eliminar del album()

2 : eliminarImagen()

3 : elimina registro en Bd()

4 : Actualiza album()

5 : Confirma imagen eliminada()

6 : Confirma imagen borrada con exito()

Sistema de Gestión Académica Teothokos – SAGAT

- 67 -

DISEÑO DEL SISTEMA

5.3. DIAGRAMA DE CLASES

Para el diseño del diagrama de clases utilizamos el Modelo Vista Controlador

(MVC) es un patrón o modelo de abstracción de desarrollo de software que separa los

datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres

componentes distintos.

Es por lo que la aplicación está dividida en 3 capas, la primera es la capa de

Persistencia que es la encargada de la comunicación directa con la base de datos, la

segunda es la capa de Proceso en la que se encuentran las clases que definen el

funcionamiento de la aplicación y por último la capa de Presentación en la que se

encuentran todos los scripts que dan forma a la pagina.

5.3.1. CAPA PERSISTENCIA (Capa de Negocios)

En esta capa se encuentra establecida la conexión con la base de datos, es la que permitirá

el almacenamiento, modificación y visualización de los datos del sistema. Existe una clase

central que es BasedeDatos que es construida a partir de la clase

ManejadorBaseDeDatosInterface en la que se declaran los métodos pero que se relaciona

dependientemente de las clases SqlDelete, SqlUpdate, SqlInsert y SqlSelect.

Figura 5.3. 1: D. de Clases - Capa de Persistencia

Sistema de Gestión Académica Teothokos – SAGAT

- 68 -

DISEÑO DEL SISTEMA

5.3.2. CAPA PROCESO (Capa de Aplicación)

En esta capa se encuentran todas las clases que manejan el funcionamiento la

aplicación, en cada clase participan métodos que contienen clases de la Capa de

Persistencia.

Album

-idalbum: Integer+titulo: String-portada: String-fechapublicacion: Date-descripcion: String

+constructor()+guardarAlbum()+obtenerURLImagen(imagen: String): String+asignarPortada(idimagen: Integer, idalbum: Integer): Array+obtenerAlbum(): Array+eliminarAlbum(id: Integer): void+subirImagen(tema: String, imagen: String, descripcion: String, idalbum: Integer)+obtenerImagenesDeAlbum(id: Integer): Array+eliminarImagen(id: Integer): void+ultimoAlbum(): Array

PaginaEstatica

-titulo: String-contenido: Text-imagen: String-autor: String

+construct(titulo: String, imagen: Array, contenido: String, autor: String)+guardarPagina(): void+obtenerPaginaPorTitulo(titulo: String): Array+obtenerPaginaPorId(idpagina: String): Array+obtenerPaginas(): Array+editarPagina(idpagina: String, imagen: Array, contenido: String): String

MensajeDeError

-mensajeError: String-ruta: String

+construct(mensajeError: String, ruta: string)+determinarTipoDeMensaje(): String+obtenerOrigenDelError(): String

MiExcepcion

+construct(menssage: String, code: Integer, previous: Exeption)+mensajePersonalizado(): String

Noticia

-titulo: string+noticia: text-fechaPublicacion: date+fechaValides: date

+Construct(titulo, noticia, fechpub, fechval)+guardarNoticia(): void+obtenerNoticias(): Array+listarNoticias(): Array+eliminarNoticias(idnoticia): Array

Reparacion

-idralumno: String-idrasignatira: String-anyo: Integer-nota: Integer

+construct(idalumno: String, idasignatura: String, anyo: Integer, nota: Integer)+guardarReparacion(): void+mostrarNotaReparacion(asignatura: String, nivel: Integer, seccion: Integer): Array+obtenerNotaAsignaturaReparada(idalumno: String, idasignatura: String, anyo: Integer): Array+obtenerNotaDeReparacion(id: String): Array+actualizarNotaReparacion(notaRepar: Integer, idalum: String, idasign: String): Array+asignarLibroActaFolio(laf: Integer, grado: Integer, seccion: Integer)

Certificado

-año: Integer-nivel: Integer

+construct(idalumno: String, anyo: Integer, nivel: Integer)+obtenerCertificado(idalumno: String, nivel: Integer): String+obtenerMultiCertificado(idalum: String, nivelSup: Integer, nivelInfe: Integer): Array-eliminarGradosRepetidos(historial: Array): Array

Calificacion

-idalumno: String-idasignatura: String-anyo: Date-nota: Integer-parcial: Char+ciclo: Integer

+construct(idalumno: String, anyo: Intger, nota: Integer, idasignatura: String, parcial: Char, ciclo: Char)+parcialActual(idalumno: String, anyo: Integer, idAsignatura: String, ciclo: Char): Char+guardarCalificacion(): void+mostrarCalificaciones(nivel: Intege, seccion: Char, asignatura: String): Array+obtenerAlumnosQueRepararan(nivel: Integer, seccion: Char, idAsignatura: String): Array+verificarDerechoparaReparar(idalumno: String): Boolean+obtenerCalificaciones(id: String): Array+obtenerCalificacionesPorDocenteGuia(idDocente: String): Array+asignarLibroActaFolio(laf: String, grado: Integer, seccion: Char): String+actualizarCalificaciones(I: Integer, II: Integer, III: Integer, IV: Integer, idalum: String, idasig: String, ciclo: Char): String+obtenerCalificacionNivel(idalumno: String, anyo: Integer): Array

Figura 5.3. 2: D. de Clases - Capa de Proceso

Sistema de Gestión Académica Teothokos – SAGAT

- 69 -

DISEÑO DEL SISTEMA

Progenitor

-nombre: String-apellido: String-cedula: String-trabaja: String-oficio: String-lugar: String-telefono: Integer+idrhijo: String

+construct(nom: String, ape: String, ced: String, trab: String, of: Stringi, lug: String, tel: Integer, ide: String)+guardarProgenitor(): void+obtenerProgenitores(idAlumno: String): Array

IdAlumno

-id: string-curso: integer-sexo: char

+construct(curso: integer, sexo: char)+obtenerId(): String-idDisponible(): Integer

IdAsignatura

-id: string-añoRegistro: integer

+obtenerId(): String-idDisponible(): Integer

IdMatricula

-id: string-curso: integer

+construct(curso: Integer)+obtenerId(): String-idDisponible(): IntegerID

+generarId(Id: Object)

Asignatura

-asignatura: String-area: String-estado: Boolean

+construct(asignatura: Sring, area: String)+guardarAsignatura(): void+listarAsignaturas(): Array+obtenerAsignaturas(): Array+retirarAsignatura(idAsignatura: String): String+restablecerAsignatura(idAsignatura: String): String

Matricula

-alumno: Alumno-papa: Progenitor-mama: Progenitor-año: Iinteger-nivel: Integer-seccion: Char-edad: Integer

+Construct(noAl, apAl, feNa, ced, sx, niv, rel, noP, apP, cdP, trbP, ofP, lugP, telP, noM, apM, cedM, trbM, ofM, lugM, telM, vve, tut, telT, paren, dirA, bau, com, bauza, ent, obs)+GuardarMatricula(void)+ObtenerAlumnosPorNivel(nivel, seccion, curso): Array+Rematricular(nivel, relig, viv, tut, pare, direc, bau, comu, bauti, obser, entre)+ObtenerAlumnosPorNivelyAsignatura(nivel, seccion, asignatura): Array+ObtenerHermanosDeAlumno(idAlumno): Array+ObtenerHistorialAcademico(idAlumno): Array+actualizaDatosAlumnos(nivel, seccion, curso, religion, vive, tutor, parentesco, direccion): Array

Alumno

-nombre: String-apellido: String-fechaNacimiento: Date-cedula: String-sexo: Char-religion: String-vive: String-tutor: String-telefono: Integer-parentesco: String-direccion: String-bautizado: Char-comunion: Char-bautizarlo: Char-entregados: Text-observaciones: Text-estado: Boolean

+Construct(nom, ape, fechNa, ced, sx, rel, viv, tut, tel, pare, dir, bau, com, baz, ent, obs, sta)+guardarAlumno(): void+obtenerExpedienteDeAlumno(idAlumno: String): Array+obtenerDatosDeAlumno(idAlumno: String): Array+validarAlumno(idAlumno: String, fechaNacimiento: Date): Boolean+retirarAlumno(idAlumno: String): String+restaurarAlumno(idAlumno: String): String+obtenerAlumno(idAlumno: String): String

Imparte

-idasignatura-iddocente-nivel: String-seccion: Char

+construct(idasignatura: String, iddocente: String, nivel: Integer, seccion: Char)+guardarImparte(): void+asignaturasDeGrado(nivel: Integer, seccion: Char): Array+impartidaPorDocente(idAsignatura): Array+borrarAsignaturaImpartida(idAsignatura: String, nivel: Integer, seccion: Char): String+borrarAsignaturaEnImparte(idAsignatura: String): String

Grupo

-nivel: Integer-seccion: Char-iddocente: String+as: Char

+construc(grado: Integer, seccion: Char, idDocent: String)+guardarGuia(): void+docenteGuia(nivel: Integer, seccion: Char)+yaEsGuia(iddocente: String)+eliminarGuia(nivel: Integer, seccion: Char): String+listarGrupos(curso): Array+alumnosMatriculados(nivel: Integer): Integer+agregarGrupo(nivel: Integer, cantidad: Integer): String+grupoYaDividido(nivel): String+docenteGuia(grado: Integer, seccion: Char): String+gradoYaDividido(nivel: Integer): Boolean+deshacerDivicionDeGrado(grado: Integer): String

Docente

-nombre: String-apellido: String-fechaNacimiento: Date-clave: String-sexo: Char-religion: String-telefono: Integer-celular: Integer-direccion: String-profesion: String-estudios: Text-entregados: Text-estado: Boolean

+construct(nombDo, apellDo, fechnac, ced, sex, relig, tele, cel, direc, prof, estud, entr)+guardarDocente(): void+obtenerExpedienteDocente(idDocente: String): Array+listarDocentes(): Array+actualizarDatoDocente(idDoce: String, tel: Integer, cel: Integer, dir: String, estu: Text, entr: Text): String+retirarDocente(idDocente: String): String+restableceDocente(iddocente: String): String+obtenerDocentes(): Array

Estadistica

+construct()+matriculaColegio(): Integer+matriculaGrado(grado: integer): Integer+rendimientoColegio(): Float+rendimientoGrado(grado: Integer): Float+rendimientoAsignatura(idAsignatura: String): Float+rendimientoAsignaturaGrado(grado: Integer, idAsignatura: String): Float+rendimientoPrimaria(): Float+rendimientoSecundaria(): Float-consultaRendimiento(parcial: Char, tipo: String): String-consultaRendimientoGrado(parcial: Char, grado: Integer): String-consultaRendimientoAsignatura(parcial: Char, idAsignatura: String, grado: Integer): String+mejorAlumnoColegio(): Array+mejorAlumnoPrimaria(): Array+mejorAlumnoSecundaria(): Array+mejorAlumnoGrado(): Array-consultaMejorAlumno(parcial: Char, tipo: String): String-consultaMejorAlumnoGrado(parcial: Char, grado: Integer): String

Pensum

-anyoacademico: Date-lema: String-estado: Char

+construct(anyoacademico: Date, lema: String, estado: Char)+guardarPensum(): String+listarPensum(): Array-ultimoPensum(): Array+agregarAsignaturaPensum(idpensum: String, idasignatura: String, nivel: Integer, ciclo: Integer)+eliminarAsignaturaPensum(idpensum: String, idasignatura: String, nivel: Integer)+listarAsignaturasDePensum(nivel: Integer): Array+activarPensum(idpensum: String): Array-obtenerAsignaturasDePensum(idpensum: String): Array+clonarPensum(idpensum: String)

Usuario

+usuario: String+clave: String+tipo: Char+fechacam: Date+expira: Int

+constuct(usuario: String, clave: String, tipo: Char)+guardarUsuario()+verificarUsuario(usuario: String, clave: String): Int+cambiarClaveUsuario(usuario: String, clavAnt: String, nueClav: String): Bool+verificarExpiracionDeClave(u: String, c: String): Int+grabarIntentos(usuario: String)+desbloquearUsuario(usuario: String): Bool+listarUsuario(): Array-restablecerIntentos(usuario: String): Bool

Figura 5.3. 3: D. de Clases - Capa de Proceso (II)

Sistema de Gestión Académica Teothokos – SAGAT

- 70 -

DISEÑO DEL SISTEMA

5.3.3. CAPA PAGINA (Capa de Usuario)

En la Capa de Usuario existe una única clase Pagina la que se encarga a través del

manejo de scripts de darle apariencia a la aplicación y dar formato a los datos que se

ingresarán como los que se mostrarán.

Pagina

+activePage+acceso: String+formulario+content: String+contentSecundario+title: String+keywords: String+buttons: Array+menu: Array+usuarios: Array+permisos: Array+indicePermisos: Int+menu_Activo: String

+construct()+set(name: String, value: String)+display()+displayFormulario()+crearFormulario()+displayTitle()+displayKeywords()+cargarEstilosCSS()+displayHeader()+displayAutenticar()+displayMenu(buttons: Array)+foreach(buttons: Array)+displayMenuLateral(menu: Array)+displayContent()+displayContentSecundario()+displayFooter()

Figura 5.3. 4: D. de Clases - Capa de Presentación

Sistema de Gestión Académica Teothokos – SAGAT

- 71 -

DISEÑO DEL SISTEMA

5.4. DIAGRAMA ENTIDAD RELACION

Figura 5.4. 1: D. de Clases - BBDD SAGAT

nivel

Matricula

idpadre

nombre apellidos

trabaja

oficio lugar

telefono

cedula

idalumno

apellido

cedula

religi

on

nombre

fecha

naci sexo vive tutor

telefono direccion

parente

sco

bautiz

ado est

ado

bautiz

arlo

entrega

dos

comu

nion

idmatricula

nivel

año

seccion

idralumno edad

registra Padre tiene Alumno

año

I

II

III

IV

NF

laf

calificacion

es

seccion

estudios direccion

celular

estado

profesion

sexo

fechaNac

apellido

nombre

iddocente

religion

telefono

nivel seccion

idreparacion laf

Pensum

idpesum

anyolectivo lema estado

nivel ciclo

Reparación

Asignatura

idasignatura

area asignatura

estado

tieneasigna

repara

imparte Docente

clave

entregados

Sistema de Gestión Académica Teothokos – SAGAT

- 72 -

DISEÑO DEL SISTEMA

Figura 5.4. 2: D. E/R - BBDD RECURSOS

Noticias

fechapubli

idnoticia titulo

noticia

imagen

usuario clave

expiracion

tipo

timeexp

idusuario

Usuarios

PaginasEstaticas

idpagina

titulo

contenido

descripcion

imagen

contiene

edita modifica

administra

Imagen

imagen

idimagen tema

desscripcion

Album

Imagenes

portada

idalbum titulo

descripcion

imagen

Sistema de Gestión Académica Teothokos – SAGAT

- 73 -

DISEÑO DEL SISTEMA

5.5. DISEÑO DE DATOS

TABLA ALUMNOS

Almacena la información de los alumnos inscritos en el centro.

NOMBRE DESCRIPCION TIPO

Idalumno Llave primaria para identificar al alumno. VARCHAR(14)

Nombre Nombre del Alumno. VARCHAR(20)

Apellido Apellidos del Alumno. VARCHAR(20)

Fechanaci Fecha de nacimiento del alumno. DATE

Cedula Número del documento de identidad del Alumno. VARCHAR(16)

Sexo Género del Alumno. CHAR(1)

Religión Religión que profesa el alumno. VARCHAR(10)

Vive Define con quien vive el alumno. VARCHAR(6)

Tutor Nombre del responsable del alumno en caso de que no viva con los padres.

VARCHAR(40)

Teléfono Teléfono del tutor. VARCHAR(10)

Parentesco Parentesco del tutor con el alumno. VARCHAR(40)

Dirección Dirección de residencia del alumno. TEXT

Bautizado Si es o no bautizado. VARCHAR(2)

Comunión Si ha dado o no la primera comunión. VARCHAR(2)

Bautizarlo Progenitor o tutor confirma si desea bautizar al alumno en el centro.

VARCHAR(2)

Entregados Documentación entregada al momento de la matricula.

TEXT

Observaciones

Cualquier información relevante a la salud del alumno.

TEXT

Estado Estado del alumno en el centro. Activo o no. BOOL

TABLA PROGENITOR

Almacena la información de los padres de familia.

NOMBRE DESCRIPCION TIPO

Idpadre Llave primaria para identificar al progenitor. VARCHAR(16)

Nombre Nombre del Progenitor. VARCHAR(20)

Apellido Apellidos del Progenitor. VARCHAR(20)

Cedula Número del documento de identidad del Progenitor. VARCHAR(16)

Trabaja Confirmación si el Progenitor trabaja. Respuesta si o no.

VARCHAR(2)

Oficio Profesión del Progenitor. VARCHAR(20)

Lugar Lugar del trabajo del Progenitor VARCHAR(20)

Teléfono Teléfono del Progenitor VARCHAR(9)

Sistema de Gestión Académica Teothokos – SAGAT

- 74 -

DISEÑO DEL SISTEMA

TABLA MATRICULAS

Almacena los datos de la matricula del año lectivo.

NOMBRE DESCRIPCION TIPO

Idmatricula Llame primaria, código identificador de la matricula.

VARCHAR(14)

Anyo Año Académico. YEAR

Nivel Nivel Académico del alumno. VARCHAR(3)

Sección Sección en la que se matriculará el alumno.

CHAR(2)

Edad Edad del Alumno. INT(2)

Idralumno Llave Foránea que relaciona con la tabla Alumnos

VARCHAR(14)

TABLA DOCENTE

Almacena los datos de los docentes del centro.

NOMBRE DESCRIPCION TIPO

Iddocente Llave Primaria que identifica al docente. VARCHAR(16)

Nombre Nombre del docente. VARCHAR(20)

Apellido Apellidos del docente. VARCHAR(20)

Fechanaci Fecha de nacimiento del docente. DATE

Sexo Genero del docente. VARCHAR(1)

Clave Clave de usuario para ingresar al sist. VARCHAR(10)

Religión Religión que profesa el docente. VARCHAR(10)

Teléfono Número de teléfono del docente. VARCHAR(10)

Celular Numero de celular del docente. VARCHAR(10)

Dirección Dirección de residencia del docente. VARCHAR(80)

Profesión Profesión del docente. VARCHAR(24)

Estudios Títulos profesionales del docente. Cursos realizados por el docente.

TEXT

Entregados Documentación entregada por el docente. TEXT

Nivel Nivel asignado al docente para ser el guía.

VARCHAR(3)

Sección Sección asignada al docente para ser su guía.

CHAR(1)

Estado Estado del docente en el centro. Activo o Retirado.

BOOL

Sistema de Gestión Académica Teothokos – SAGAT

- 75 -

DISEÑO DEL SISTEMA

TABLA ASIGNATURA

Almacena los datos de las asignaturas impartidas en el centro.

NOMBRE DESCRIPCION TIPO

Idasignatura Llave Primaria identifica la asignatura. VARCHAR(12)

Asignatura Nombre de la asignatura. VARCHAR(25)

Area Área académica en la que se enfoca la asignatura.

VARCHAR(33)

Estado Estado de la asignatura en el pensum. Activa o Retirada.

BOOL

TABLA PENSUM

Almacena la nota obtenida por el alumno en la asignatura reparada.

NOMBRE DESCRIPCION TIPO

Idpensum Llave Primaria que identifica un registro en Pensum.

INT

AñoLectivo Año lectivo actual DATE

Lema Lema propuesto al inicio del año lectivo. VARCHAR(33)

Estado Pensum activo o no activo. BOOL

TABLA CALIFICACIONES

Almacena las notas parciales y nota final que obtiene un alumno por cada asignatura.

NOMBRE DESCRIPCION TIPO

Idralumno Llave foránea que relaciona con tabla Alumnos

VARCHAR(14)

Idrasignatura Llave foránea que relaciona con tabla Asignatura.

VARCHAR(14)

Año Año académico que cursa el alumno. YEAR

I Nota del primer parcial. INT(3)

II Nota del segundo parcial. INT(3)

III Nota del tercer parcial. INT(3)

IV Nota del cuarto parcial. INT(3)

NF Nota final del año. Promedio de los cuatro parciales.

INT(3)

LAF Numero de Libro, Acta y Folio en que está inscrita la nota final del año lectivo.

VARCHAR(14)

Sistema de Gestión Académica Teothokos – SAGAT

- 76 -

DISEÑO DEL SISTEMA

TABLA TIENEASIGNA

Almacena la relación entre el pensum y las asignaturas dentro del mismo.

NOMBRE DESCRIPCION TIPO

Idrasignatura Llave Foranea que identifica un registro en Asignatura.

INT

Idrpensum Llave Foranea que identifica un registro en Pensum.

INT

Nivel Nivel académico del alumno. VARCHAR(3)

Ciclo Ciclo o periodo dentro del año lectivo. INT

TABLA REPARACIONES

Almacena la nota obtenida por el alumno en la asignatura reparada.

NOMBRE DESCRIPCION TIPO

Idreparacion Llave Primaria que identifica a la nota de reparación.

INT

Idralumcal Llave foránea que relaciona con la tabla Calificaciones.

VARCHAR(14)

Idasignacal Llave foránea que relaciona con la tabla Calificaciones.

VARCHAR(14)

LAF Numero de Libro, Acta y Folio en la que esta inscrita la nota de reparación.

VARCHAR(14)

TABLA PAGINAESTATICA

Almacena información que es presentada por el sistema.

NOMBRE DESCRIPCION TIPO

Idpagina Llave Primaria, identifica la pagina. INT

Titulo Nombre de la página. VARCHAR(25)

Contenido Información que se mostrará en la página. TEXT

Imagen Ruta de ubicación de la imagen publicada en la página.

VARCHAR(100)

Autor Nombre del autor o redactor de la información presentada en la página.

VARCHAR(25)

Sistema de Gestión Académica Teothokos – SAGAT

- 77 -

DISEÑO DEL SISTEMA

TABLA USUARIOS

Almacena los datos de los usuarios que va

NOMBRE DESCRIPCION TIPO

Idusuario Llave Foránea que identifica al usuario. INT

Usuario Nombre del usuario. VARCHAR(15)

Clave Clave de la cuenta de usuario. VARCHAR(13)

Tipo Carácter que identifica el usuario que inicia su sesión.

CHAR

Fechacam Fecha de la última modificación del usuario.

DATE

Expiracion Cantidad de días de validez de la clave de usuario.

CHAR

TABLA ALBUM

Almacena los datos del album que organiza las imágenes dentro del sistema.

NOMBRE DESCRIPCION TIPO

Idalbum Llave Primaria, identifica la imagen. INT

Titulo Titulo que se le asigna a la imagen. VARCHAR(25)

Portada Ruta de ubicación de la imagen. VARCHAR(100)

Fechapublicacion Fecha en que el álbum fue creado DATE

Descripción Breve descripción de lo que representa la imagen.

TEXT

Sistema de Gestión Académica Teothokos – SAGAT

- 78 -

DISEÑO DEL SISTEMA

TABLA NOTICIAS

Almacena la información publicada a manera de noticias.

NOMBRE DESCRIPCION TIPO

Idnoticia Llave Primaria, identifica la noticia. INT

Titulo Nombre o encabezado de la publicación. VARCHAR(50)

Noticia Descripción o detalle de la noticia que se presenta.

TEXT

Fechapublicacion Fecha en que se publicó la noticia. DATE

Fechavalidez Fecha en que la noticia no tendría validez o no sería relevante.

DATE

TABLA IMAGENES

Almacena los datos de las imágenes presentadas en el sistema.

NOMBRE DESCRIPCION TIPO

Idimagen Llave Primaria, identifica la imagen. INT

Tema Titulo que se le asigna a la imagen. VARCHAR(25)

Imagen Ruta de ubicación de la imagen. VARCHAR(100)

Descripción Breve descripción de lo que representa la imagen.

TEXT

Idralbum Llave foránea que hace referencia al identificador de la tabla Album.

INT

Sistema de Gestión Académica Teothokos – SAGAT

- 79 -

CODIFICACIÓN DEL SISTEMA

5.7. MODELO RELACIONAL

Figura 5.7. 2: BD RECURSOS

Figura 5.7. 1: BD SAGAT

Sistema de Gestión Académica Teothokos – SAGAT

- 80 -

CODIFICACIÓN DEL SISTEMA

CODIFICACIÓN DEL SISTEMA

6.1. PHP

Es un lenguaje de programación interpretado, diseñado originalmente para la

creación de páginas web dinámicas. Es usado principalmente en interpretación del lado

del servidor (server-side scripting) pero actualmente puede ser utilizado desde una

interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo

aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor

(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por

Rasmus Lerdorf en 1994. Publicado bajo la PHP License, la Free Software Foundation

considera esta licencia como software libre.

6.1.1. HISTORIA

Fue originalmente diseñado en Perl, con base en la escritura de un grupo de CGI

binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf

en el año 1994 para mostrar su currículum vítae y guardar ciertos datos, como la

cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue publicado

"Personal Home Page Tools" después de que Lerdorf lo combinara con su propio Form

Interpreter para crear PHP/FI.

* PHP 3: Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans,

reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y crearon la base

del PHP3, cambiando el nombre del lenguaje a la forma actual. Inmediatamente

comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio

del 1998. Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo

que hoy se conoce como motor Zend. También fundaron Zend Technologies en Ramat

Gan, Israel.

* PHP 4: En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine

1.0. El día 13 de julio de 2007 se anunció la suspensión del soporte y desarrollo de la

versión 4 de PHP.

* PHP 5: El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine

2.0 (o Zend Engine 2). La versión más reciente de PHP es la 5.3.3 (22 de julio de 2010),

que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:

Mejor soporte para la Programación Orientada a Objetos, que en versiones

anteriores era extremadamente rudimentario.

Mejoras de rendimiento.

Mejor soporte para MySQL con extensión completamente reescrita.

Mejor soporte a XML ( XPath, DOM, etc. ).

Soporte nativo para SQLite.

Soporte integrado para SOAP.

Sistema de Gestión Académica Teothokos – SAGAT

- 81 -

CODIFICACIÓN DEL SISTEMA

Iteradores de datos.

Manejo de excepciones.

Mejoras con la implementación con Oracle.

6.1.2. CARACTERISTICAS

o Es un lenguaje multiplataforma.

o Completamente orientado al desarrollo de aplicaciones web dinámicas con

acceso a información almacenada en una Base de Datos.

o El código fuente escrito en PHP es invisible al navegador y al cliente ya que

es el servidor el que se encarga de ejecutar el código y enviar su resultado

HTML al navegador. Esto hace que la programación en PHP sea segura y

confiable.

o Capacidad de conexión con la mayoría de los motores de base de datos que

se utilizan en la actualidad, destaca su conectividad con MySQL y

PostgreSQL. Capacidad de expandir su potencial utilizando la enorme

cantidad de módulos (llamados ext's o extensiones).

o Posee una amplia documentación en su página oficial, entre la cual se

destaca que todas las funciones del sistema están explicadas y ejemplificadas

en un único archivo de ayuda.

o Es libre, por lo que se presenta como una alternativa de fácil acceso para

todos.

o Permite aplicar técnicas de programación orientada a objetos.

o Biblioteca nativa de funciones sumamente amplia e incluida.

o No requiere definición de tipos de variables aunque sus variables se pueden

evaluar también por el tipo que estén manejando en tiempo de ejecución.

o Tiene manejo de excepciones (desde PHP5).

Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de

programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en

particular, el programador puede aplicar en su trabajo cualquier técnica de

programación y/o desarrollo que le permita escribir código ordenado, estructurado y

manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón

de diseño Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y

acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes

independientes (ver más abajo Frameworks en PHP).

6.2. ESTANDAR ZEND

Los estándares nos permiten disminuir muchos costos que surgen a la hora de

desarrollar sistemas que van desde la incorporación de nuevos recursos hasta el

entendimiento de los sistemas "legacy" ("sistemas heredados") que existen en cualquier

organización, ayudan a asegurar que el código tenga una alta calidad, menos errores, y

pueda ser mantenido fácilmente. Si todos los desarrolladores programan como quieren,

o cualquiera inventa su "propio estándar" o toma el de "cualquier estándar que use otro

proyecto", indudablemente esto significará caos.

Sistema de Gestión Académica Teothokos – SAGAT

- 82 -

CODIFICACIÓN DEL SISTEMA

Zend es la empresa que desarrolla en la actualidad lo que puede considerarse

el Framework Oficial de PHP y también es la responsable de desarrollar el propio

lenguaje PHP como se mencionó.

El motor Zend es un motor de procesamiento para la interpretación y cifrado del

código php, desde la versión 4. Desarrollado por Zend Technologies para brindar un

equipo de soporte y acelerar la carga de aplicaciones realizadas con php.

Entre las funciones más importantes que realiza este motor de procesamiento está la

posibilidad de cifrar el código fuente de las páginas desarrolladas en php para así luego

hacer posible la comercialización de este.

6.2.1. REGLAS DEL ESTANDAR

General

Para archivos que contengan únicamente código PHP, la etiqueta de cierre ("?>") no

está permitida. No es requerida por PHP.

Identación

La identación suele estar compuesta por 4 espacios. Las tabulaciones no están

permitidas.

Tamaño máximo de línea

La longitud recomendable para una línea de código es de 80 caracteres. Líneas más

largas pueden ser aceptables en algunas situaciones. El tamaño máximo de cualquier

línea de código PHP es de 120 caracteres.

Final de línea

El Final de Línea sigue la convención de archivos de texto Unix. Las líneas deben

acabar con un carácter linefeed (LF).

Nombres de Archivo

Para cualquier otro archivo, sólo caracteres alfanuméricos, barras bajas (_) y guiones (-)

están permitidos. Los espacios en blanco están estrictamente prohibidos. Cualquier

archivo que contenga código PHP debe terminar con la extensión " .php ", con la

excepción de los scripts de la vista.

6.2.2. FUNCIONES Y METODOS

Los nombres de funciones pueden contener únicamente caracteres alfanuméricos.

Los guiones bajos (_) no están permitidos. Los nombres de funciones deben empezar

siempre con una letra minúscula. Cuando un nombre de función consiste en más de una

palabra, la primera letra de cada nueva palabra debe estar en mayúsculas. Esto es

llamado comúnmente como formato "camelCase".

Variables

Los nombres de variables pueden contener caracteres alfanuméricos. Las barras

bajas (_) no están permitidas. Para las variables de instancia que son declaradas con el

Sistema de Gestión Académica Teothokos – SAGAT

- 83 -

CODIFICACIÓN DEL SISTEMA

modificador "private" o "protected", el primer carácter de la variable debe ser una única

barra baja (_). Este es el único caso admisible de una barra baja en el nombre de una

variable. Las variables declaradas como "public" no pueden empezar nunca por barra

baja.

Demarcación de código PHP

El código PHP debe estar delimitado siempre por la forma completa de las etiquetas

PHP estándar:

<?php ?>

Las etiquetas cortas (short tags) no se permiten nunca.

Declaración de clases

Las Clases deben ser nombradas de acuerdo a laconvención de nombres de Zend

Framework. La llave "{" deberá escribirse siempre en la línea debajo del nombre de la

clase ("one true brace"). Cada clase debe contener un bloque de documentación acorde

con el estándar de PHPDocumentor. Todo el código contenido en una clase debe ser

separado con cuatro espacios. Únicamente una clase está permitida por archivo PHP

Declaración de Funciones y Métodos

Las Funciones deben ser nombradas de acuerdo a las convenciones de nombrado de

Zend Framework. Los métodos dentro de clases deben declarar siempre su visibilidad

usando un modificador private , protected , o public .

Como en las clases, la llave "{" debe ser escrita en la línea siguiente al nombre de la

función ("one true brace" form). No está permitido un espacio entre el nombre de la

función y el paróntesis de apertura para los argumentos.

Sentencias de Control

Las sentencias de control basadas en las construcciones if y elseif deben tener un solo

espacio en blanco antes del paréntesis de apertura del condicional y un solo espacio en

blanco después del paréntesis de cierre.

Dentro de las sentencias condicionales entre paréntesis, los operadores deben

separarse con espacios, por legibilidad. Se aconseja el uso de paréntesis internos para

mejorar la agrupación lógica en expresiones condicionales más largas.

La llave de apertura "{" se escribe en la misma línea que la sentencia condicional.

La llave de cierre "}" se escribe siempre en su propia línea. Cualquier contenido dentro

de las llaves debe separarse con cuatro espacios en blanco.

6.3. XAMPP

Es un servidor independiente de plataforma, software libre, que consiste

principalmente en la base de datos MySQL, el servidor web Apache y los intérpretes

para lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para

cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl.

Sistema de Gestión Académica Teothokos – SAGAT

- 84 -

CODIFICACIÓN DEL SISTEMA

El programa está liberado bajo la licencia GNU y actúa como un servidor web libre,

fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP está

disponible para Microsoft Windows, GNU/Linux, Solaris y MacOS.

6.3.1. CARACTERISITICAS Y REQUISITOS

XAMPP solamente requiere descargar y ejecutar un archivo zip, tar o exe, con unas

pequeñas configuraciones en alguno de sus componentes que el servidor Web

necesitará. XAMPP se actualiza regularmente para incorporar las últimas versiones de

Apache/MySQL/PHP y Perl. También incluye otros módulos como OpenSSL y

phpMyAdmin.

6.3.2. APLICACIONES

Realmente el propósito de los diseñadores de XAMPP era proveer de una

herramienta de desarrollo, para permitir a los diseñadores de sitios webs y

programadores probar los proyectos sin ningún acceso a Internet. Pero en la práctica,

XAMPP también es utilizado actualmente como servidor de sitios Web, puesto que solo

se necesitan algunas modificaciones para que funcione como tal y es generalmente lo

suficientemente seguro para serlo.

6.4. CSS

El nombre hojas de estilo en cascada viene del inglés Cascading Style Sheets, del

que toma sus siglas. CSS es un lenguaje usado para definir la presentación de un

documento estructurado escrito en HTML o XML (y por extensión en XHTML). El

W3C (World Wide Web Consortium) es el encargado de formular la especificación de

las hojas de estilos que servirán de estándar para los agentes de usuarios o navegadores.

La idea por lo cual CSS fue desarrollado, es para separar la estructura de un

documento de su presentación. El código propio de los estilo puede ser agregado como

un independiente separado o incluirse en el documento HTML. Para el último caso se

pueden definir estilos generales en la cabecera del documento o en cada etiqueta

particular por mediodel atributo "<style>".

6.4.1. CSS 2.1

La primera revisión de CSS2, normalmente conocida como "CSS 2.1", permitió

corregir algunos errores que se hallaron en CSS2, eliminando funcionalidades poco

soportadas o inoperables en los navegadores y añadiendo nuevas especificaciones.

De acuerdo al sistema de estandarización técnica de las especificaciones, CSS2.1

tuvo el estatus de "candidato" (candidate recommendation) durante varios años, pero la

propuesta fue rechazada en junio de 2005; en junio de 2007 fue propuesta una nueva

versión candidata, y ésta actualizada en 2009, pero en diciembre de 2010 fue

nuevamente rechazada.

Sistema de Gestión Académica Teothokos – SAGAT

- 85 -

CODIFICACIÓN DEL SISTEMA

En abril de 2011, CSS 2.1 volvió a ser propuesta como candidata, y después de ser

revisada por el W3C Advisory Committee, fue finalmente publicada como

recomendación oficial el 7 de junio de 2011.

6.5. JAVA SCRIPT

Es un lenguaje de programación interpretado, dialecto del estándar ECMAScript.

Se define como orientado a objeto basado en prototipos, imperativo, débilmente tipado

y dinámico.

Es usado principalmente del lado del cliente (client-side), implementado como parte

de un navegador web permitiendo así mejorar la interfaz de usuario y las páginas

web dinámicas, aunque también existe una forma de JavaScript del lado del

servidor (Server-side JavaScript o SSJS).

También es usado en aplicaciones externas a la web, por ejemplo en

documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) lo que hace su

uso algo significativo.

JavaScript se diseñó con una sintaxis similar al lenguaje C, aunque adopta nombres

y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no

están relacionados, sus semánticas y propósitos son diferentes.

Todos los navegadores modernos interpretan el código JavaScript integrado en las

páginas web. Para interactuar con una página web el lenguaje JavaScript es provisto de

una implementación del Document Object Model (DOM).

Anteriormente se venía utilizando en páginas web HTML para realizar operaciones

y específicamente para la aplicación cliente, sin acceso a funciones del servidor.

JavaScript se interpreta en el agente de usuario, al mismo tiempo que las sentencias van

descargándose junto con el código HTML.

6.6. XHTML

Siglas del inglés eXtensible HyperText Markup Language. XHTML es realmente

HTML expresado como XML válido. Se dice que es más estricto a nivel técnico,

permitiendo así ser más fácil al hacer cambios o buscar errores entre otros.

En la versión 1.0, XHTML es realmente una versión XML de HTML, por lo que

tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más

estrictas, de XML. Tiene como objetivo avanzar en el proyecto del World Wide Web

Consortium de lograr una web semántica, donde la información, y la forma de

presentarla estén claramente separadas.

6.6.1. VENTAJAS RESPECTO AL HTML

Las principales ventajas del XHTML sobre el HTML son:

Sistema de Gestión Académica Teothokos – SAGAT

- 86 -

CODIFICACIÓN DEL SISTEMA

Se pueden incorporar elementos de distintos espacios de

nombres XML (comoMathML y Scalable Vector Graphics).

Un navegador no necesita implementar heurísticas para detectar qué quiso poner

el autor, por lo que el parser puede ser mucho más sencillo.

Como es XML se pueden utilizar fácilmente herramientas creadas para

procesamiento de documentos XML genéricos (editores, XSLT, etc.).

6.7. SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en inglésstructured query

language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

especificar diversos tipos de operaciones en éstas. Una de sus características es el

manejo del álgebra y el cálculo relacionallo que permiterealizarconsultas con el fin de

recuperar -de manera sencilla- información de interés de una base de datos, así como

también hacer cambios sobre ella. Es un lenguaje de cuarta generación (4GL).

6.7.1. ORIGENES Y EVOLUCION

Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970

E. F. Codd propone el modelo relacional y asociado a éste un sublenguaje de acceso a

los datos basado en el cálculo de predicados.

Los laboratorios de IBM se basaron en estas ideas para definir el lenguaje SEQUEL

(Structured English QUEry Language) que después pasaría ser ampliamente

implementado por el sistema de gestión de bases de datos experimental System R,

desarrollado en 1977 también por IBM. Pero realmente fue Oracle quien lo introdujo

por primera vez en 1979 en un programa comercial.

El SEQUEL fue el predecesor de SQL, siendo éste una versión evolucionada del

primero. El SQL pasó a ser el lenguaje por excelencia de los diversos sistemas de

gestión de bases de datos relacionales surgidos en los años siguientes y es por fin

estandarizado en 1986 por el ANSI, dando lo que dio lugar a la primera versión estándar

de este lenguaje, el "SQL-86" o "SQL1". Un año después el estándar fue también

adoptado por la ISO.

Pero este primer estándar no cubrió todas las necesidades de los desarrolladores.

Así que en 1992 se lanzó un nuevo estándar ampliado y revisado del SQL llamado

"SQL-92" o "SQL2". Actualmente el SQL es el estándar de facto de la gran mayoría de

los SGBD comerciales.

6.7.2. CARACTERISITICAS GENERALES

El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y

potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos

últimos.

Sistema de Gestión Académica Teothokos – SAGAT

- 87 -

CODIFICACIÓN DEL SISTEMA

Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su

fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros

individuales, permite una alta productividad en codificación y la orientación a objetos.

De esta forma una sola sentencia puede equivaler a uno o más programas que se

utilizarían en un lenguaje de bajo nivel orientado a registros.

Optimización

Como ya se ha mencionado, y suele ser común en los lenguajes de acceso a bases

de datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es

lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece

explícitamente un orden de ejecución.

El orden de ejecución interno de una sentencia puede afectar gravemente a la

eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una

optimización antes de su ejecución.

Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza

la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el

acceso indexado o una rápida actualización de la información. La optimización difiere

sensiblemente en cada motor de base de datos y depende de muchos factores.

6.8. APACHE

El servidor HTTP Apache es un servidor web HTTP de código abierto, para

plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que

implementa el protocolo HTTP/1.1 y la noción de sitio virtual.

Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del

popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se

debe a que Behelendorf quería que tuviese la connotación de algo que es firme y

enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se

convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era

que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros

ingenieros de internet.

Además Apache consistía solamente en un conjunto de parches a aplicar al servidor

de NCSA. En inglés, a patchy server (un servidor "parcheado") suena igual que Apache

Server. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de

la Apache Software Foundation.

6.8.1. CARACTERISITICAS

Apache presenta entre otras características altamente configurables, bases de datos

de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz

gráfica que ayude en su configuración.

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo

pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas

se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios

Sistema de Gestión Académica Teothokos – SAGAT

- 88 -

CODIFICACIÓN DEL SISTEMA

locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP

como módulo de Apache.

Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la

World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente

de implantación a Apache, o que utilizarán características propias de este servidor web.

Apache es el componente de servidor web en la popular plataforma de

aplicaciones LAMP, junto a MySQL y los lenguajes de

programación PHP/Perl/Python (y ahora también Ruby).

Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a

disposición en una forma segura y confiable. Un ejemplo es al momento de compartir

archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache

instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de

documentos de Apache, desde donde pueden ser compartidos.

Los programadores de aplicaciones web a veces utilizan una versión local de

Apache con el fin de pre visualizar y probar código mientras éste es desarrollado.

Sistema de Gestión Académica Teothokos – SAGAT

- 89 -

CONCLUSIONES

CONCLUSIONES

Con la elaboración de este sistema, se ha logrado facilitar los procesos de gestión

académica del centro, así como también el acceso a la información del mismo.

Ahora a través del sistema al personal del centro le tomará menos trabajo y tiempo

ingresar la información de los alumnos, los docentes y otros datos académicos.

Se logró cumplir con cada una de las funciones requeridas para el sistema, así como

diseñar una interfaz amigable y de fácil manejo para los usuarios comunes.

Y por último consideramos que el sistema fomentará el uso de más sistemas

automatizados, por las bondades de estos proveen, o incluso incentivará a la mejora del

mismo dado que la manera a como fue desarrollado permite una fácil actualización.

Sistema de Gestión Académica Teothokos – SAGAT

- 90 -

RECOMENDACIONES

RECOMENDACIONES

Capacitar al personal del centro en el uso del sistema.

Instruir a los usuarios del sistema sobre la importancia de no compartir o permitir

que su clave de acceso al sistema sea del conocimiento de ajenos.

Mantener una constante actualización de la información, como lo es el retiro de

alumnos, bajas de docentes o bajas de asignaturas, a manera de permitir que los

datos sean consistentes.

Realizar respaldos y restauración de la base de datos de manera periódica (se

recomienda hacerlo cada tres meses).

Que el administrador haga cambios periódicos de las claves de los usuarios, para

evitar posibles violaciones al sistema.

Eliminar información referente a noticias antiguas e imágenes que no se usen más,

para evitar datos innecesarios.

Sistema de Gestión Académica Teothokos – SAGAT

- 91 -

BIBLIOGRAFÍA

BIBLIOGRAFÍA

Internet:

http://es.wikipedia.org

Libros:

Creación De Un Portal Con Php Y Mysql. 3ª Edición.

Editorial Ra-Ma

PAVON PUERTAS, JACOBO

Tecnología Y Diseño De Bases De Datos.

Editorial Ra-Ma

PIATTINI VELTHUIS, MARIO G ; MARCOS MARTINEZ, ESPERANZA ;

CALERO MUÑOZ, CORAL ; VELA SÁNCHEZ, BELÉN

Manual Imprescindible de PHP5.

Editorial: © EDICIONES ANA YA MULTIMEDIA (GRUPO ANAYA, S.A.),

2004

Luis Miguel Cabezas Granado

Programación Orientada a Objetos para PHP5. Edición julio 2009

Bajo licencia de Creative Commons. (http://creativecommons.org/licenses/by-

nc/3.0/)

Enrique Place.

PHP y MySQL para Dummies. 2da Edición.

Janet Valade

Sistemas de Bases de Datos, Conceptos Fundamentales. 2da Edición.

Editado: Addison – Wesley Iberoamericana

Ramez Elmasri, Shamkant B.Navathe.

Fundamentos de Sistemas de Bases de Datos. 5ta Edición.

Editado: Pearson Addison Wesley

Ramez Elmasri, Shamkant B.Navathe.

Fundamentos de Bases de Datos. 5ta Edición.

Editado: McGRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U

Abraham Silberschatz, Henry F. Korth, S. Sudarshan.

Ingeniería del Software un Enfoque Practico. 5ta Edición.

Editado: McGRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U

Roger S. Pressman

Sistema de Gestión Académica Teothokos – SAGAT

- 92 -

BIBLIOGRAFÍA

Manual de PHP. Publicado 08-07-2002

Bajo licencia: Copyright © 1997, 1998, 1999, 2000, 2001, 2002 por el Grupo de

documentación de PHP por Stig Sæther Bakken, Alexander Aulbach, Egon

Schmid, Jim Winstead, Lars Torben Wilson, Rasmus Lerdorf, Andrei Zmievski,

y Jouni Ahto.

Los secretos de PHP y MySQL. Numero 30

Bajo Licencia: Copyright © KnowWare E.U.R.L.

Johann – Christian Hanke

PHP 5. Numero 28

Bajo Licencia: Copyright © KnowWare E.U.R.L.

Johann – Christian Hanke

MySQL 5.0 Reference Manual. Documento generado el: 2008-05-03 (revisión:

502)

Bajo Licencia: Copyright 1997-2007 MySQL AB

Curso completo de HTML

Bajo Licencia: GNU. Copyright Jorge Ferrer, Rodrigo Garcia y Victor García.

Jorge Ferrer, Víctor García, Rodrigo García

Introducción a CSS. Versión mayo 2009

Bajo Licencia: Creative Commons (http://creativecommons.org/licenses/by-nc-

nd/3.0/deed.es)

Javier Eguíluz Pérez

Introducción a JavaScript. Versión marzo 2009

Bajo Licencia: Creative Commons (http://creativecommons.org/licenses/by-nc-

nd/3.0/deed.es)

Javier Eguíluz Pérez

Desarrollo Web con PHP y MySQL. 3ra Edición

Editorial: © EDICIONES ANA YA MULTIMEDIA (GRUPO ANAYA, S.A.),

2005

Luke Welling, Laura Thomson.

IEEE Std 610.12-1990. Software Engineering Standards Committee of the IEEE

Computer Society

IEEE Std 830-1998. Software Engineering Standards Committee of the IEEE

Computer Society

Sistema de Gestión Académica Teothokos – SAGAT

- 93 -

ANEXOS

ANEXOS

Página de inicio

Página de inicio de sesión

Sistema de Gestión Académica Teothokos – SAGAT

- 94 -

ANEXOS

Lista de asignaturas

Lista de docentes

Sistema de Gestión Académica Teothokos – SAGAT

- 95 -

ANEXOS

Lista de estudiantes