Вы находитесь на странице: 1из 104

INSTITUTO TECNOLGICO DE CELAYA

Mdulo de Programa de Trabajo anual y Programa operativo anual


MEMORIA DE RESIDENCIA PROFESIONAL 11/01/2010 - 19/05/2010 INSTITUTO TECNOLGICO DE CELAYA

ASESOR EXTERNO: JOS GUILLERMO FIERRO MENDOZA

PRESENTA Jos Antonio Ortiz Corona 05032003

ASESOR INTERNO: ING. JOS GUILLERMO RODRGUEZ VILLAFAA REVISOR: ING. ZULMA G. ALAMOS VILLANUEVA REVISOR: ING. JOS BENIGNO MOLINA CASTRO

CELAYA, GUANAJUATO

AGOSTO 2010

Tabla de contenido INTRODUCCIN ............................................................................................................ 4 1. CAPTULO MARCO DE REFERENCIA .................................................................. 6 1.1. SITUACIN HISTRICA, SOCIAL, POLTICA, ECONMICA Y CULTURAL .......................... 6 1.2. LEMA Y ESCUDO ................................................................................................... 7 1.3. FILOSOFA INSTITUCIONAL ..................................................................................... 8 1.3.1. Principios ..................................................................................................... 8 1.3.2. Creencias .................................................................................................... 9 1.3.3. Cdigo de tica ........................................................................................... 9 1.3.4. Objetivo ..................................................................................................... 10 1.3.5. Misin: ....................................................................................................... 10 1.3.6. Visin ......................................................................................................... 11 1.3.7. Polticas de Calidad ................................................................................... 11 1.3.8. Caracterizacin de la empresa .................................................................. 11 1.4. EL CENTRO DE CMPUTO DEL INSTITUTO TECNOLGICO DE CELAYA ...................... 12 1.4.1. rea de desarrollo de software .................................................................. 13 1.4.2. En forma interna: ....................................................................................... 14 1.4.3. En forma externa: ...................................................................................... 14 1.4.4. Coordinador del rea de desarrollo ........................................................... 15 1.4.5. Analistas y Programadores........................................................................ 15 2. JUSTIFICACIN DEL PROYECTO........................................................................ 17 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. PROGRAMA DE TRABAJO ANUAL(PTA) Y PROGRAMA OPERATIVO ANUAL(POA) ...... 17 OBJETIVOS GENERALES ...................................................................................... 18 OBJETIVOS ESPECFICOS .................................................................................... 18 PROBLEMAS A RESOLVER .................................................................................... 18 ALCANCES ......................................................................................................... 19 LIMITACIONES DEL SISTEMA ................................................................................. 19

3. CAPTULO MARCO TERICO ............................................................................. 20 3.1. APLICACIN WEB ................................................................................................ 20 3.1.1. Antecedentes Web .................................................................................... 20 3.1.2. El Servidor Web ......................................................................................... 20 3.2. SERVIDOR W EB APACHE ..................................................................................... 22 3.2.1. Qu es el Servidor Apache...................................................................... 22 3.2.2. Caractersticas de Apache......................................................................... 23 3.3. POSTGRESQL ..................................................................................................... 23 3.3.1. Qu es PostgreSQL? .............................................................................. 23 3.3.2. Caractersticas de PostgreSQL ................................................................. 24
1

3.4. APACHE TOMCAT ................................................................................................ 25 3.4.1. Qu es Tomcat? ...................................................................................... 25 3.4.2. Dnde puedo descargar Tomcat? ........................................................... 25 3.4.3. Cules son los servlets?,Cules son las pginas JSP? ........................ 25 3.5. IREPORT ......................................................................................................... 26 3.5.1. Qu es iReport? ...................................................................................... 26 3.5.2. Caractersticas de iReport ......................................................................... 27 3.6. JAVASCRIPT (JQUERY Y JQUERY UI) ................................................................... 28 3.6.1. Qu es Jquery? ....................................................................................... 28 3.6.2. Ventajas en usar Jquery ............................................................................ 28 3.7. QU ES JQUERY UI? ........................................................................................ 28 3.7.1. Ventajas en usar JQuery UI ....................................................................... 29 3.8. PHP .................................................................................................................. 29 3.8.1. Qu es PHP? .......................................................................................... 29 3.8.2. Qu se puede hacer con PHP? ............................................................... 30 3.8.3. Ventajas de PHP ....................................................................................... 31 3.8.4. Ventajas adicionales de PHP .................................................................... 31 3.9. SYMFONY........................................................................................................... 33 3.9.1. Symfony en pocas palabras ...................................................................... 33 3.9.2. Caractersticas de Symfony ....................................................................... 34 3.9.3. Entorno de desarrollo y herramientas ........................................................ 35 3.9.4. Quin ha desarrollado Symfony y por qu motivo? ................................. 36 3.9.5. Conceptos bsicos .................................................................................... 38 3.9.6. Programacin Orientada a Objetos (OOP) ................................................ 38 3.9.7. Mtodos mgicos ...................................................................................... 38 3.9.8. PEAR (PHP Extension and Application Repository) .................................. 39 3.9.9. Mapeo de Objetos a Bases de datos (ORM) ............................................. 40 3.9.10. Desarrollo rpido de aplicaciones (RAD) ................................................... 43 3.9.11. YAML ......................................................................................................... 45 3.9.12. Resumen Symfony .................................................................................... 48 3.10. EL PATRN MVC ................................................................................................ 48 3.10.1. Las capas de la arquitectura MVC ............................................................. 49 3.10.2. Programacin simple ................................................................................. 49 3.10.3. Separando la presentacin ........................................................................ 51 3.11. DOCTRINE .......................................................................................................... 54 3.11.1. Qu es Doctrine? .................................................................................... 54 3.11.2. Qu es un ORM? .................................................................................... 54 3.11.3. Informacin Bsica ................................................................................... 55 3.12. Razones para utilizar Symfony ..................................................................... 55 3.13. LINUX DEBIAN .................................................................................................... 57

3.13.1. Qu es Debian? ...................................................................................... 57 4. DESCRIPCIN DE LAS ACTIVIDADES REALIZADAS ......................................... 59 4.1. ANLISIS DEL SISTEMA ........................................................................................ 59 4.1.1. El procedimiento del Programa de Trabajo Anual ..................................... 60 4.1.2. Programa Operacin Anual ....................................................................... 63 4.1.2.1 El procedimiento del Programa Operativo Anual ........................................ 63 4.1.3. Diagrama de caso de uso PTA ................................................................. 65 4.1.4. Diagrama de caso de uso POA ................................................................. 66 4.2. PLANTEAMIENTO DEL PROBLEMA .......................................................................... 66 4.2.1. Anlisis de las herramientas de desarrollo ................................................ 67 4.3. ANLISIS DE REQUERIMIENTOS ............................................................................ 68 4.3.1. Capacitacin para el uso de las herramientas de desarrollo ..................... 69 4.4. ANLISIS DE DISEO Y DESARROLLO DE LA BASE DE DATOS .................................... 69 4.5. DESARROLLO DE LA INTERFAZ DEL USUARIO .......................................................... 72 4.5.1. Validacin del sistema ............................................................................... 74 4.5.2. Prueba del sistema .................................................................................... 74 4.6. DETECCIN Y CORRECCIN DE ERRORES.............................................................. 75 5. CONCLUSIN ........................................................................................................ 76 6. REFERENCIAS DE INTERNET ............................................................................. 78 7. ANEXOS ................................................................................................................. 79

Introduccin
Actualmente es necesario tener un sistema que permita organizar y estructurar la informacin, teniendo efectos favorables para la empresa o institucin que lo realice, simplificar el trabajo diario de los usuarios permitiendo tener un mejor rendimiento y diminucin de fallas al realizarlo, haciendo este de vital importancia, es por este motivo que es necesario que forme parte de una estructura integral de una institucin educativa de excelencia, como es el Instituto tecnolgico de Celaya. Para que una institucin responda a las necesidades e intereses de su entorn, se necesita que desarrolle un proceso de planeacin constante, que permita ofrecer programas educativos pertinentes al sector productivo y con altos estndares de

calidad. En el Instituto Tecnolgico de Celaya se atiene de un proceso de planeacin constante, que permita ofrecer programas educativos pertinentes al sector productivo y con altos estndares de calidad. En el Instituto Tecnolgico de Celaya se atiende un proceso de planeacin estratgica operado cada 6 aos y que tuvo como producto principal el Programa Institucional de Innovacin y Desarrollo (PIID) 2001-2006, y un proceso de planeacin operativo anual ejecutado, cuyo resultado final es el Programa Operativo Anual (POA) y el Programa de Trabajo Anual (PTA). El programa de Trabajo Anual (PTA) tiene como propsito contar con un documento normativo de corto plazo donde se programan las metas de forma anualizada y las actividades se realizan mensualmente. A dicha programacin se le debe dar seguimiento, el cual consiste en adaptar las metas del PIID a las necesidades del tecnolgico, para lograr la meta es necesario crear varias acciones y asignar los departamentitos involucrados en estas. El Programa Operativo Anual (POA) es una herramienta que nos permite convertir los lineamientos generales de la planeacin de las actividades, en objetivos y metas concretas a desarrollar en el corto plazo, as como conocer el nivel de aprovechamiento de los recursos asignados, a fin de ejercer los recursos captados a travs de ingresos propios y los asignados al gasto de operacin de la Institucin, para elevar la calidad en los Servicios Educativos.

El presente proyecto tiene como objetivo crear una aplicacin web la cual permitir la facilidad de captura de los procesos de PTA y POA, a los jefes de departamento y al personal administrativo de planeacin, el cual contara con una interfaz intuitiva.

1.

CAPTULO MARCO DE REFERENCIA

1.1. Situacin histrica, social, poltica, econmica y cultural


El Instituto Tecnolgico de Celaya, nace el lunes 14 de abril de 1958, como un Centro de Segunda Enseanza, Capacitacin Tcnica para Trabajadores y Preparatoria Tcnica Especializada. A partir de entonces y hasta la fecha ha evolucionado tanto en el perfil de servicios educativos como en la infraestructura. En 1962 inician los programas de Educacin Superior impartiendo la carrera de Ingeniera Industrial en diversas especialidades. En 1970 se desincorporan los estudios de secundaria y en 1984 los de bachillerato. La primera Maestra que fue la Ingeniera Qumica, inicio en 1980, en 1986 la de Ingeniera Mecnica, 1993 la de Ingeniera Administrativa y en 1994 la de Ingeniera Industrial. El primer programa de Doctorado inicia en 1989 y es el nico que hasta la fecha se ofrece en el rea de Ingeniera Qumica.

Imagen 1. 1: Instituto Tecnolgico de Celaya

En materia de instalaciones fsicas y equipamiento de laboratorios y talleres, ha sido notable el paulatino avance hasta llegar a cubrir casi en su totalidad 13 hectreas con aulas, laboratorios instalaciones diversas en un ambiente de hermosas reas verdes.
6

Ahora el Tecnolgico goza de un reconocido prestigio a nivel nacional, por la calidad de enseanza que se imparte, la investigacin y divulgacin del quehacer cientfico y la alta capacidad de su planta de profesores-investigadores. Consciente de los cambios que la comunidad nacional e internacional han generado en el Estado, y tomando como base el estudio Guanajuato Siglo XXI, se ha realizado un nuevo diagnstico del entorno a fin de redefinir las acciones que se deben emprender para una vez ms dar respuesta al compromiso que tiene el Instituto Tecnolgico de Celaya y a travs de ello promover su desarrollo como centro de educacin tecnolgica superior de excelencia.

1.2. Lema y Escudo


En 1958 las autoridades del Instituto Tecnolgico de Celaya convocaron a la comunidad tecnolgica para definir lema y escudo del Tecnolgico, resultando triunfador del concurso el lema La Tcnica por un Mxico mejor, propuesto por el alumno Fernando Mendoza Ochoa, alumno con la credencial No. 320 del primer ao grupo D de Subprofesional en la especialidad de Equipo Agrcola. En el concurso para seleccionar el Escudo del Tecnolgico, el diseado por el Prof. Luis Sony Filoteo Ruiz fue el ganador.

Imagen 1. 2: Escudo del ITC.

Est constituido por una Torre Hidrulica (Bola del Agua de Celaya), un engrane color gris, un rayo elctrico color rojo y las siglas de la Institucin ITC en color verde. Para su diseo se tomaron dos aspectos bsicos: 1. El aspecto regional que est representado por la torre hidrulica, conocida en la mayor parte del pas como La bola de Agua de Celaya, tiene como caracterstica principal el haber sido ensamblada mediante la tcnica Antigua del remache. 2. El aspecto institucional esta simbolizado por el engrane y el rayo elctrico, que representa el carcter tcnico del plantel educativo.

1.3.

Filosofa Institucional

El Instituto Tecnolgico de Celaya es una institucin de educacin superior pblica federal, pertenece al sistema Nacional de Institutos Tecnolgicos, realiza docencia, investigacin y vinculacin, como funciones sustantivas, que aseguran la formacin integral de profesionistas a nivel licenciatura y postgrado, con vocacin de servicio y capaces de transformar el entorno, tecnolgica, y cientfica, econmica y socialmente.

1.3.1. Principios
La filosofa educativa del instituto se basa en el artculo 3 constitucional y en la ley General de Educacin. Entender por educacin el proceso de la humanizacin individual y colectiva que conduce a una mejor calidad de vida. La humanizacin consiste en propiciar el desarrollo armnico de las potencialidades fsicas, intelectuales, emocionales y axiolgicas. Para el instituto cada persona es un fin en s misma, es autmata pero al mismo tiempo independiente, es inacabada pero en continuo proceso de desarrollo; es inmanente pero al mismo tiempo busca trascender a lo largo de su vida.

El instituto desea constituirse en una sociedad ms participativa, ms justa, ms equitativa, tolerante e incluyente que propicie el proceso de humanizacin para todos.

El instituto entiende que la tecnologa es un pilar fundamental en el desarrollo de una sociedad.

1.3.2. Creencias
El instituto cree en la vida, la convivencia y la justicia. En la educacin. En nuestro pas y en los mexicanos. En el futuro que nosotros preparamos. En la colaboracin. En la fortaleza de los vnculos familiares. En nuestra comunidad educativa. En el trabajo en equipo. En nuestras tradiciones populares. En nuestra historia y nuestra cultura como preludio de nuestro futuro; en la conciencia moral, la responsabilidad y la libertad de las personas.

1.3.3. Cdigo de tica


Bien comn: Por encima de los intereses personales. Integridad: Acciones y palabras honestas y dignas de credibilidad. Honradez: No usar en beneficio ilegitimo el cargo pblico. Imparcialidad: No conceder las preferencias ni privilegios indebidos a persona alguna. Justicia: Congruencia con la procuracin de respeto al estado de derecho. Transparencia: Garantizar el acceso a la informacin respetando la privacidad que corresponda

Rendicin de Cuentas: Eficacia y calidad en la gestin de la administracin. Entorno cultural y ecolgico: Respeto, defensa y preservacin del entorno cultural y ecolgico. Generosidad: Actual solidariamente frente a las personas desprotegidas y a quienes padecen pobreza y marginacin. Generosidad: Actual solidariamente frente a las personas desprotegidas y a quienes padecen pobreza y marginacin. Igualdad: Procurar paridad de oportunidades para todos. Respeto: Trato amable y tolerancia para todos. Liderazgo: Promocin y apoyos de todos estos compromisos, observando los principios morales que dan sustento a una sociedad exitosa.

1.3.4. Objetivo
El objetivo del Instituto consiste en llevar a cabo programas de docencia, investigacin y extensin en el contexto de la educacin superior a nivel licenciatura y posgrado, tendientes a alcanzar la excelencia educativa y lograr que el ITC sea un centro de educacin integral confiable a la sociedad y que coadyuve al desarrollo de la comunidad. El quehacer educativo se basa en tres funciones sustantivas: la DOCENCIA como medio para la adquisicin y prctica del conocimiento disciplinario, la INVESTIGACIN como fuente para explorar nuevas explicaciones y formas del dominio de los elementos de la naturaleza y de la generacin de nuevos conocimientos y la EXTENSIN como medio de vinculacin con la realidad. La PLANEACIN como rea de apoyo a las anteriores funciones sustantivas, tiene como objetivo determinar las demandas del medio ambiente de la Institucin y evaluar los desarrollos internos para dar respuesta adecuada a las necesidades percibidas. Finalmente, hay actividades de APOYO A LA DOCENCIA de carcter administrativo cuyo objetivo es proporcionar los requerimientos de operacin que soporten las reas sustantivas del quehacer institucional manteniendo funcionalidad y eficiencia en la organizacin.

1.3.5. Misin:

10

Formar personas ntegras, con amplio sentido crtico y de servicio a la sociedad, capaces de responder de manera efectiva y especfica a las necesidades del entorno, en la generacin y aplicacin del conocimiento.

1.3.6. Visin
Ser reconocidos en la red internacional de educacin tecnolgica superior por la excelencia en programas acadmicos, amplia aceptacin de egresados, slida formacin de alumnos, altos ndices de titulacin y graduacin; por generacin y transformacin del conocimiento, servicios oportunos y sistemas eficientes de administracin y gestin, liderazgo acadmico, tcnico, cientfico, cultural, deportivo, cvico y ecolgico, al servicio de Mxico.

1.3.7. Polticas de Calidad


El Instituto Tecnolgico de Celaya establece el compromiso de implementar todos sus procesos, orientndolos hacia la satisfaccin de sus clientes sustentada en la Calidad del Proceso Educativo, para cumplir con sus requisitos, mediante la eficacia de un Sistema de Gestin de la Calidad y de mejora continua, conforme a la norma ISO 9001:2008/NMX-CC-9001-IMNC-2008.

1.3.8. Caracterizacin de la empresa


Razn social: Instituto Tecnolgico de Celaya (ITC). Sector: Educativo. Organigrama: Imagen 1.3.

11

Imagen 1. 3: Organigrama Institucional.

1.4.

El centro de Cmputo del Instituto Tecnolgico de Celaya

El Centro de Cmputo es un departamento de servicio y su misin es proporcionar recursos y servicios en materia de informtica al Instituto Tecnolgico de Celaya.

12

Entre las funciones del Centro de Cmputo dentro del ITC se encuentran: Planear, coordinar, controlar y evaluar las actividades de desarrollo de sistemas y servicios de cmputo. Aplicar la estructura orgnica autorizada para el Centro de Cmputo y los procedimientos establecidos. Organizar, coordinar y controlar los servicios de almacenamiento, captura y procesamiento de informacin del instituto. Establecer y mantener actualizados los sistemas de capacitacin, validacin y explotacin de informacin del instituto. Coordinar el anlisis, diseo y programacin de sistemas de los procesos aprobados. Controlar la operacin, el mantenimiento y el buen funcionamiento de los equipos de cmputo. Realizar estudios de factibilidad sobre los equipos que se tienen o se desean adquirir con el objetivo de mantener actualizados en el instituto Disear y mantener actualizados los sistemas de informacin del instituto Establecer y mantener relaciones e intercambios con instituciones que manejan equipos de cmputo afines Coordinar las actividades del departamento con las dems reas de la Subdireccin de Servicios Administrativos Presentar reportes peridicos de las actividades desarrolladas en la

Subdireccin de Servicios Administrativos

1.4.1. rea de desarrollo de software


El rea de desarrollo del Centro de Computo del ITC, tiene definidas sus funciones para la creacin de sistemas de informacin, el mantenimiento de estos sistemas y la explotacin de los recursos computacionales con que cuenta el departamento, los que son orientados a la satisfaccin de necesidades de informacin tanto interna como externa que lo soliciten.

13

1.4.2. En forma interna:


Contribuyendo con el procesamiento de informacin actualizada para la toma de decisiones Mejorando y simplificando la funcin administrativa de las instituciones para la implementacin de sistemas de informacin. Proveer informacin gil y oportuna para el logro de los objetivos fijados por la planeacin Haciendo ms eficiente el desempeo de los distintos departamentos que hagan uso de los sistemas de informacin diseados. Promoviendo cursos tanto institucionales como externos, basados en los recursos computacionales, tcnicos y materiales existentes que provoque ingresos al departamento y al instituto. Proporcionando soporte tcnico a las carreras impartidas en la institucin que hagan uso de los recursos computacionales existentes.

1.4.3. En forma externa:


Con servicios dirigidos a instituciones y organismos privados y particulares que lo soliciten, orientndolos de acuerdo a las necesidades requeridas que pueden ser: Desarrollo de sistemas de informacin Capacitacin en el manejo tanto de sistemas de informacin, como en sistemas operativos. Mantenimiento a los sistemas creados, en dominio de los organismos e instituciones privadas y particulares. Cursos para la explotacin de paquetera especifica.

El personal integrante del rea de desarrollo debe estar constituida por: Coordinador de rea de desarrollo. Analista de Sistemas. Programadores.
14

1.4.4. Coordinador del rea de desarrollo


Una vez autorizada la generacin del sistema de informacin y acordado el tiempo aproximado de dicha realizacin, el coordinador del rea de desarrollo atrae la informacin suficiente sobre las necesidades a satisfacer (insumo bsico para la generacin del sistema de informacin), expuesta por cada uno de los departamentos solicitantes Lleva a cabo el anlisis de la informacin obtenida y se organiza con los fines de modularizarla y hacer posible su automatizacin. Tales mdulos de procesamiento de informacin deben ser delimitados por la funcin administrativa que controlan, para una mejor y ms clara explotacin, ya que cada mdulo, puede estar formado por una indeterminada cantidad de submodulos de procesamiento de informacin, como aplicaciones tenga la funcin administrativa que se procesa y que son parte integral del sistema. De la misma forma, las siguientes divisiones a partir de este punto llegaran a la profundidad del manejo de informacin por campos.

1.4.5. Analistas y Programadores


El anlisis y la programacin de los mdulos descritos son verdaderamente extensos, por lo que, la implantacin de un sistema de informacin debe ser meticulosamente tratado, y esto habla de la cantidad de tiempo y recursos tanto humanos, como materiales que estn implicados, pues una vez elaborada una parte de un submodulo debe ser probada, esto implica la generacin de archivos ficticios y consuma de ms tiempo. Cuando los sistemas de informacin son orientados a la satisfaccin institucional, se debe utilizar la metodologa institucional estandarizada, que involucra los lmites respecto a permisos de acceso a la informacin por cada departamento y por cada usuario.

15

No as cuando tales sistemas estn orientados a satisfacer las necesidades de organismos privados o particulares, que en cuyo caso sern estos los que propongan la metodologa adecuada en cada aplicacin. El mantenimiento de los sistemas de informacin generados en esta institucin y orientado a particulares, seguir la misma secuencia descrita para su realizacin.

16

2.

Justificacin del Proyecto

Hoy en da las actividades que realizan las computadoras y las aplicaciones con que cuentan son imprescindibles en cualquier organizacin y no solo porque simplifica el trabajo de las personas, si no porque se ahorran recursos, son ms rpidos y los errores son casi nulos.

2.1. Programa Anual(POA)

de

Trabajo

Anual(PTA)

y Programa

Operativo

Para responder a los cambios que se presentan en el ambiente de la institucin, tanto a nivel de usuarios como de las necesidades en las aplicaciones, se ha solicitado realizar una aplicacin web para el proceso PTA y POA. Actualmente existe una aplicacin de escritorio la cual cuenta con la siguiente problemtica. Insegura dado que para el acceso a la informacin se tiene que dejar un puerto abierto. Poco intuitiva en el modo de bsqueda de informacin as como de captura, dificultad en las actualizaciones del sistemas. Interfaz poco amigable para el usuario.

Para su funcionamiento es necesario cumplir con ms de un requisito que es: tener la maquina virtual de java, la cual si no se tiene s debe de descargar de la pgina oficial de java (www.java.com), el tiempo de descarga depender de la conexin de internet, otro requisito es tener la aplicacin en la computadora, si no es as se tiene que descargar. En caso de haber una actualizacin al sistema es necesaria volver a descargar la aplicacin y dependiendo de la tasa de transferencia de la red en horas pico se hace muy lento la descarga de la misma.
17

No forma parte del Sistema Integral de Informacin con el que cuenta el Instituto Tecnolgico de Celaya, ya que ese software fue proporcionado por la Direccin General de Educacin Superior Tecnolgica.

2.2.

Objetivos Generales

Brindar al Instituto Tecnolgico de Celaya una herramienta que permite planear, programar, presupuestar, ejecutar, controlar y reportar las actividades y acciones necesarias para el cumplimiento de los programas de desarrollo, con un enfoque integral.

2.3. Objetivos Especficos


Emitir los documentos para el cumplimiento de las normas de calidad establecidas, emitiendo los formatos oficiales, as como formatos diseados segn las necesidades ITC. Manejo de reglas que permitirn un mejor control de informacin. Un sistema que involucre a la Institucin en el proceso de Planeacin de una forma sencilla, gil, flexible e integral. Partir de las metas de los programas de desarrollo a mediano y largo plazo. Permitir establecer estrategias, programas y presupuestales acciones generales y particulares para el cumplimiento de las metas de los programas de desarrollo.

2.4.

Problemas a resolver
Actualizacin de herramientas de desarrollo. Se reducira el tiempo de respuesta a las solicitudes. Se reducira el tiempo que se tardan en generar los reportes. Se reducira el tiempo que se tarda en capturar la informacin. Se integrado como mdulo al Sistema Integral de Informacin. La interfaz sera mas intuitiva para facilitar su uso. Las bsquedas se realizaran en una forma adecuada y ordenada.

18

2.5. Alcances
Se integrar la aplicacin al sistema integral de informacin. Contara con una interfaz agradable e intuitiva. La accesibilidad de la aplicacin se har por medio de un navegador web. La informacin estar disponible en cualquier momento y desde cualquier lugar. El sistema tendr una buena aceptacin por parte de los usuarios ya que estos sern involucrados en el desarrollo de la aplicacin como concejales en la

creacin de la interfaz. Tendr un mejor control en la seguridad de la informacin, garantizando que la informacin que captura cada usuario sea la correcta . Facilitar el mantenimiento de la aplicacin por su forma de desarrollo. Facilitar la escalabilidad de la aplicacin,por la facilidad de agregar mdulos en el proyecto. Facilitar la obtencin de la informacin por medio de bsquedas ms inteligentes y agiles.

2.6. Limitaciones del sistema


Para dar mantenimiento al sistema, es necesario personal que tenga conocimiento en el software empleado como en este caso se utiliz el framework Symfony 1.4. Para visualizar los reportes es necesario contar con el programa Adobe Acrobat Reader en la maquina cliente, as como un navegaron. El servido deber contar con una versin de php mayor o igual a 5.2.4. Las versiones de Symfony pueden variar en diversas funciones, por lo que se sugiere leer la documentacin de la versin que se va utilizar en el proyecto.

Los nombres de las tablas y columnas de la base de datos debe de ser en


minsculas.

19

3.

Captulo Marco terico

3.1. Aplicacin web


Con la aparicin de una red tan compleja como lo es internet, ahora se tiene un incontable nmero de posibilidades en el acceso a la informacin desde diferentes lugares del mundo, inclusive fuera del mismo. Todo se convierte en un reto para los creadores de aplicaciones para que permitan hacer esto, ya que los avances en la tecnologa cada vez aumentan de una manera impresionante, haciendo una necesidad la creacin de aplicaciones ms rpidas, ligeras y robustas que permitan utilizar el Web. El campo para el Desarrollo de aplicaciones Web es: Muy amplio Evoluciona rpidamente Gran cantidad de tecnologas y alternativas

A continuacin se tratar de explicar a grandes rasgos la arquitectura de las aplicaciones Web.

3.1.1. Antecedentes Web


Tim Berners-Lee crea el primer navegador de que funcionara en modo texto y para UNIX. Dando lugar al lenguaje HyperText Markup Language o Lenguaje de Marcas de Hipertexto (HTML) y al protocolo HyperText Transfer Protocol o Protocolo de Transferencia de Hipertexto (HTTP).

3.1.2. El Servidor Web


Un servidor Web es un programa que est sobre el servidor que escucha las peticiones HTTP. Este protocolo pertenece a la capa de aplicacin en el modelo OSI. Su funcin

20

es transferir el hipertexto, pginas web o simplemente pginas HTML, no importando el tipo de peticin que realice el cliente, siempre devolver un resultado HTML. Este tipo de servidores siempre ser fundamental en el desarrollo de las aplicaciones del lado del servidor (server side applications), ya que se ejecutarn sobre l. En un servidor Web se deben identificar dos partes fundamentales, la parte de servidor de pginas y la otra el servidor de aplicaciones. Diremos que para definir la parte de servidor de pginas, nos referimos a cuando un cliente hace una peticin de una pgina esttica que no requiere el uso de una aplicacin. A diferencia de un servidor de pginas, el de aplicaciones requiere hacer una ejecucin del script relacionado con la peticin, para generar una pgina Web, que ser transmitida al cliente por el servidor de pginas.

CLIENTE

Peticin

Procesamiento?

NO

SI

Servidor de Pginas Generar Pgina Enva datos al usuario

Servidor de Aplicacin

Ejecuta Programa o Script

Imagen 3. 1: Funcionamiento de un Servidor Web.

21

Las aplicaciones Web, tambin cuentan con dos partes, las tecnologas Lado del Servidor (Server-Side) y Lado del Cliente (Client- Side). Las tecnologas del Lado del Servidor son secciones de cdigo dentro de una pgina Web, que al ejecutarse lo hacen sobre el servidor, y solo pueden ser vistas desde el servidor. Est tecnologa proporciona soporte para el acceso a bases de datos, que es muy importante en cualquier aplicacin que implique un proceso. Las tecnologas del Lado del Cliente, son ejecutadas sobre la mquina del cliente dentro de su navegador web que es el encargado de interpretar este cdigo script. Estas dos partes nos dan como resultado una pgina dinmica o bien una aplicacin Web.

3.2. Servidor Web Apache 3.2.1. Qu es el Servidor Apache


El proyecto apache es un esfuerzo de desarrollo de software en colaboracin destinado a crear un servidor HTTP (servidor Web) robusto, potente, disponible en todas las plataformas, gratuito y con disponibilidad de su cdigo fuente. El proyecto es

administrado conjuntamente por un grupo de voluntarios en todo el mundo, con el uso de Internet y la web para comunicarse, planear y desarrollar el servidor y su documentacin. Estos voluntarios son conocidos como el Grupo Apache. Adems, cientos de usuarios han aportado ideas, cdigo y documentacin para el proyecto. Este texto describe de manera resumida la historia del Grupo Apache, reconociendo su labor y mencionar que cualquiera puede unirse a esta labor. Una de las principales caractersticas que presenta Apache es que funciona en plataformas virtuales muy utilizadas. Al principio, Apache se utilizaba para ser el primer servidor Web basado en Unix, pero esto ya no es verdad. Apache no solo funciona en la mayora (prcticamente en todas) de las versiones de Unix sino que, adems, funciona en Windows 2000/NT/9x y en muchos otros sistemas operativos de escritorio y de tipo servidor como son Amiga OS 3.x y OS/2.

22

3.2.2. Caractersticas de Apache


Apache es uno de los mejores servidores de Webs utilizados en la red internet desde hace mucho tiempo, nicamente le hace competencia un servidor de Microsoft, el IIS. Por lo que este servidor es uno de los mayores triunfos del software libre, que tanto gusta a los usuarios de LINUX. Apache es un servidor web flexible, rpido y eficiente, continuamente actualizado y adaptado a los nuevos protocolos (HTTP 1.1). Entre sus caractersticas destacan : Multiplataforma. Es un servidor de web conforme al protocolo HTTP/1.1. Modular: Puede ser adaptado a diferentes entornos y necesidades, con los diferentes mdulos de apoyo que proporciona, y con la API de programacin de mdulos, para el desarrollo de mdulos especficos. Basado en hilos en la versin 2.0. Incentiva la realimentacin de los usuarios, obteniendo nuevas ideas, informes de fallos y actualizaciones para la solucin de los mismos. Se desarrolla de forma abierta. Extensible: gracias a ser modular se han desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de programacin del lado del servidor.

3.3. Postgresql 3.3.1. Qu es PostgreSQL?


PostgreSQL es un sistema de base de datos de gestin de objeto-relacional (ORDBMS) basado en Postgres, versin 4.2, desarrollado en la Universidad de California en Berkeley del Departamento de Ciencias de la Computacin. Postgres fue pionera en muchos conceptos que slo estuvo disponible en algunos sistemas de bases de datos comerciales mucho ms tarde.

23

En 1986 otro equipo dirigido por Michael Stonebraker de Berkeley continu el desarrollo del cdigo de Ingres para crear un sistema de bases de datos objetorelacionales llamado Postgresql. En 1996, debido a un nuevo esfuerzo de cdigo abierto y a la incrementada funcionalidad del software, Postgresql fue renombrado a PostgreSQL, tras un breve tiempo como Postgres95. El proyecto PostgreSQL sigue actualmente un activo proceso de desarrollo a nivel mundial gracias a un equipo de desarrolladores y contribuidores de cdigo abierto. PostgreSQL est ampliamente considerado como el sistema de bases de datos de cdigo abierto ms avanzado del mundo. Posee muchas caractersticas que tradicionalmente slo se podan ver en productos comerciales de alto calibre.

3.3.2. Caractersticas de PostgreSQL


PostgreSQL proporciona un gran nmero de caractersticas que normalmente slo se encontraban en las bases de datos comerciales tales como DB2 u Oracle. La siguiente es una breve lista de algunas de esas caractersticas, a partir de PostgreSQL 7.1.x. DBMS Objeto-Relacional: PostgreSQL aproxima los datos a un modelo objetorelacional, y es capaz de manejar complejas rutinas y reglas. Ejemplos de su avanzada funcionalidad son consultas SQL declarativas, control de concurrencia, multi-versin, soporte multi-usuario, transacciones, optimizacin de consultas, herencia, y arrays (arreglos). Altamente Extensible: PostgreSQL soporta operadores, funciones mtodos de acceso y tipos de datos definidos por el usuario. Soporte SQL Comprensivo: PostgreSQL soporta la especificacin SQL99 e incluye caractersticas avanzadas tales como los joins (uniones) SQL92. Integridad Referencial: PostgreSQL soporta integridad referencial, la cual es utilizada para garantizar la validez de los datos de la base de datos.

24

API Flexible: La flexibilidad del API de PostgreSQL ha permitido a los vendedores proporcionar soporte al desarrollo fcilmente para el RDBMS PostgreSQL. Estas interfaces incluyen Object Pascal, Python, Perl, PHP, ODBC, Java/JDBC, Ruby, TCL, C/C++, y Pike. Lenguajes Procedurales: PostgreSQL tiene soporte para lenguajes procedurales internos, incluyendo un lenguaje nativo denominado PL/pgSQL. Este lenguaje es comparable al lenguaje procedural de Oracle, PL/SQL. Otra ventaja de PostgreSQL es su habilidad para usar Perl, Python, o TCL como lenguaje procedural embebido. Cliente/Servidor: PostgreSQL usa una arquitectura proceso-por-usuario

cliente/servidor. sta es similar al mtodo del Apache 1.3.x para manejar procesos. Hay un proceso maestro que se ramifica para proporcionar conexiones adicionales para cada cliente que intente conectar a PostgreSQL.

3.4. Apache tomcat 3.4.1. Qu es Tomcat?


Tomcat es la implementacin de referencia oficial de la especificacin Java Servlet 2.2 y JavaServer Pages 1.1 tecnologas. Desarrollado bajo la licencia Apache en un entorno abierto y participativo, que pretende ser una colaboracin del de su clase mejores desarrolladores de todo el mundo.

3.4.2. Dnde puedo descargar Tomcat?


En la pgina de descarga de Yakarta !

3.4.3. Cules son los servlets?,Cules son las pginas JSP?


En pocas palabras, los servlets Java son programas residentes en memoria, se ejecuta dentro de un contenedor de servlets (por ejemplo, Tomcat!). Debido a que son residentes en la memoria, que puede responder rpidamente a las solicitudes, ya que

25

no incurren en los gastos generales de la creacin de procesos y la limpieza posterior, a diferencia basada en secuencias de comandos CGI, por ejemplo, perl, etc Desde servlet sitio The Sun : "El Java Servlet API
TM

proporciona a los desarrolladores web con una, en

consonancia simple mecanismo para extender la funcionalidad de un servidor web y para acceder a los sistemas empresariales existentes. Un servlet casi se puede considerar como un applet que se ejecuta en el lado del servidor - sin cara ". "La tecnologa JSP es una extensin de la tecnologa servlet creado para apoyar creacin de pginas HTML y XML. Es ms fcil combinar la plantilla fija o esttica de datos con contenido dinmico." JSP es comparable a otras tecnologas como PHP y ASP, que combinan la programacin y secuencias de comandos con un lenguaje de marcado como HTML. La diferencia clave es el lenguaje de programacin de la opcin.. Por ejemplo, PHP usa una C / C + + / hbrida Java, ASP utiliza VBScript, y JSP utiliza toda la potencia del lenguaje de programacin Java. Ha habido muchas comparaciones de estas tecnologas, y cada uno tiene su lugar en la astucia de desarrolladores de la caja de herramientas.

3.5. IREPORT 3.5.1. Qu es iReport?


La herramienta iReport es un constructor / diseador de informes visual, poderoso, intuitivo y fcil de usar para JasperReports escrito en Java. Este instrumento permite que los usuarios corrijan visualmente informes complejos con cartas, imgenes, subinformes, etc. iReport est adems integrado con JFreeChart, una de la biblioteca grficas OpenSource ms difundida para Java. Los datos para imprimir pueden ser recuperados por varios caminos incluso mltiples uniones JDBC, TableModels, JavaBeans, XML, etc. iReport le permite a ingenieros que apenas estn aprendiendo

26

esta tecnologa acceder a las funciones de JasperReports as como tambin ayuda a usuarios capacitados a ahorrar mucho tiempo durante el desarrollo de reportes muy elaborados.

3.5.2. Caractersticas de iReport


La siguiente lista describe algunas de las caractersticas ms importantes de iReport: Soporte al 100% de etiquetas XML de JasperReports. Editor WYSIWYG para la creacin de reportes. Contiene herramientas

completas para dibujar rectngulos, lneas elipses, campos de texto, etiquetas, graficas, sub-reportes y cdigo de barras. Editor incorporado con acentu de sintaxis para expresiones escritas. Soporte par Unicode y lenguajes non-Latin ( Ruso, Chino, Japons, Coreano, etc.) Navegador para la estructura del documento Compilador, llenador, y exportador de reportes integrados. Soporte para todas las bases de datos accesibles para JDBC. Soporte virtual para todo tipo de fuente de datos. Asistente para crear informes de forma automtica Soporte para subreportes. Caracterstica de respaldo para archivos fuente. Soporte para plantillas de documentos. Soporte para fuentes TrueType Soporte para localizacin. Extensibilidad a travs de plug-ins. Soporte integrado para scriptlets. Soporte para grficas. Manejo de una librera de objetos estndares. (ej, nmero de pginas). Funcionalidades de Arrastrar y soltar. Deshacer/ repetir ilimitados.

27

Asistente para crear tablas de contingencia. Librera de Estilos. Sistema de acoplamiento.

3.6. JavaScript (Jquery y Jquery UI) 3.6.1. Qu es Jquery?


Jquery v1.4.2 es una rpida y concisa que simplifica la Biblioteca Javascript documento HTML que atraviesa, el control de eventos, animacin, y las interacciones Ajax para el desarrollo web rpido. JQuery est diseado para cambiar la forma en que escribes JavaScript.

3.6.2. Ventajas en usar Jquery


Existen varias soluciones similares que tambin funcionan muy bien, que bsicamente nos sirven para hacer lo mismo. Como es normal, cada uno de los frameworks tiene sus ventajas e inconvenientes, pero jQuery es un producto con una aceptacin por parte de los programadores muy buena y un grado de penetracin en el mercado muy amplio, lo que hace suponer que es una de las mejores opciones. Adems, es un producto serio, estable, bien documentado y con un gran equipo de desarrolladores a cargo de la mejora y actualizacin del framework. Otra cosa muy interesante es la dilatada comunidad de creadores de plugins o componentes, lo que hace fcil encontrar soluciones ya creadas en jQuery para implementar asuntos como interfaces de usuario, galeras, votaciones, efectos diversos, etc.

3.7. Qu es JQuery UI?


jQuery UI proporciona abstracciones de bajo nivel de interaccin y animacin, efectos avanzados y de alto nivel, los widgets temable, construido en la parte superior de la jQuery JavaScript Library, que puede utilizar para construir aplicaciones web altamente interactivas.

28

3.7.1. Ventajas en usar JQuery UI


Facilidad en la creacin de interfaces de alto nivel de interaccin y animacin, facilitando el uso de la aplicacin. Fcil implementacin en el desarrollo Gran ahorro de tiempo en el desarrollo Cuenta con una licencia GPL y MIT

3.8. PHP 3.8.1. Qu es PHP?


PHP, acrnimo de "PHP: Hypertext Preprocessor", es un lenguaje "Open Source" interpretado de alto nivel, especialmente pensado para desarrollos web y el cual puede ser incrustado en pginas HTML. La mayora de su sintaxis es similar a C, Java y Perl y es fcil de aprender. La meta de este lenguaje es permitir escribir a los creadores de pginas web, pginas dinmicas de una manera rpida y sencilla, aunque se puede hacer mucho ms con PHP. En lugar de usar muchos comandos para mostrar HTML, pginas PHP contienen HTML con cdigo incluido en el mismo que hace "algo" (en este caso, mostrar "Hola soy un script PHP!). El cdigo PHP est entre medio de etiquetas de comienzo y final especiales<? php y ?> que nos permitirn entrar y salir del "modo PHP". Lo que distingue a PHP de algo como Javascript del lado-cliente, es que el cdigo es ejecutado en el servidor, generando HTML y envindolo al cliente. El cliente recibir los resultados de ejecutar el script, sin ninguna posibilidad de determinar qu cdigo ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los archivos HTML con PHP y entonces no hay manera que los usuarios puedan saber que tienes debajo de la manga. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas caractersticas avanzadas para los programadores profesionales.

29

Aunque el desarrollo de PHP est centrado en programacin de scripts en ladoservidor, se puede utilizar para muchas otras cosas.

3.8.2. Qu se puede hacer con PHP?


PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o enviar y recibir cookies. Y esto no es todo, se puede hacer mucho ms. Existen principalmente tres campos en los que se usan scripts en PHP. Scripts del lado-servidor. Este es el campo ms tradicional y el principal foco de trabajo. Se necesitan tres cosas para que esto funcione. El intrprete PHP (CGI mdulo), un servidor web y un navegador. Es necesario hacer funcionar el servidor, con PHP instalado. El resultado del programa PHP se puede obtener a travs del navegador, conectndose con el servidor web. Consultar la seccin Instrucciones de instalacin para ms informacin. Scripts en la lnea de comandos. Puede crear un script PHP y correrlo sin necesidad de un servidor web o navegador. Solamente necesita el intrprete PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts ejecutados regularmente desde cron (en *nix o Linux) o el Planificador de tareas (en Windows). Estos scripts tambin pueden ser usados para tareas simples de procesamiento de texto. Consultar la seccin Usos de PHP en la lnea de comandos para ms informacin. Escribir aplicaciones de interfaz grfica. Probablemente PHP no sea el lenguaje ms apropiado para escribir aplicaciones grficas, pero si conoce bien PHP, y quisiera utilizar algunas caractersticas avanzadas en programas clientes, puede utilizar PHP-GTK para escribir dichos programas. Tambin es posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensin de PHP, no disponible en la distribucin principal. Si est interesado en PHP-GTK, puedes visitar las pginas web del proyecto.

30

3.8.3. Ventajas de PHP


Las cuatro grandes caractersticas: Velocidad, estabilidad, seguridad y simplicidad. Velocidad: No solo la velocidad de ejecucin, la cual es importante, sino adems no crear demoras en la mquina. Por esta razn no debe requerir demasiados recursos de sistema. PHP se integra muy bien junto a otro software, especialmente bajo ambientes Unix, cuando se configura como mdulo de Apache, est listo para ser utilizado. Estabilidad: La velocidad no sirve de mucho si el sistema se cae cada cierta cantidad de ejecuciones. Ninguna aplicacin es 100% libre de bugs, pero teniendo de respaldo una increble comunidad de programadores y usuarios es mucho ms difcil para lo bugs sobrevivir. PHP utiliza su propio sistema de administracin de recursos y dispone de un sofisticado mtodo de manejo de variables, conformando un sistema robusto y estable. Seguridad: El sistema debe poseer protecciones contra ataques. PHP provee diferentes niveles de seguridad, estos pueden ser configurados desde el archivo .ini Simplicidad: Se les debe permitir a los programadores generar cdigo

productivamente en el menor tiempo posible. Usuarios con experiencia en C y C++ podrn utilizar PHP rpidamente. Otra caracterstica a tener en cuenta seria la conectividad. PHP dispone de una amplia gama de libreras, y agregarle extensiones es muy fcil. Esto le permite al PHP ser utilizado en muchas reas diferentes, tales como encriptado, grficos, XML y otras.

3.8.4. Ventajas adicionales de PHP


PHP corre en (casi) cualquier plataforma utilizando el mismo cdigo fuente, pudiendo ser compilado y ejecutado en algo as como 25 plataformas, incluyendo diferentes versiones de Unix, Windows

(95,98,NT,ME,2000,XP,bla,bla,bla) y Macs. Como en todos los sistemas se

31

utiliza el mismo cdigo base, los scripts pueden ser ejecutados de manera independiente al OS. La sintaxis de PHP es similar a la del C, por esto cualquiera con experiencia en lenguajes del estilo C podr entender rpidamente PHP. Entre los lenguajes del tipo C incluimos al Java y Javascript, de hecho mucha de la funcionalidad del PHP se la debe al C en funciones como fread() o srtlen(), as que muchos programadores se sentirn como en casa. PHP es completamente expandible. Est compuesto de un sistema principal (escrito por Zend), un conjunto de mdulos y una variedad de extensiones de cdigo. Muchas interfaces distintas para cada tipo de servidor. PHP actualmente se puede ejecutar bajo Apache, IIS, AOLServer, Roxen yTHTTPD. Otra alternativa es configurarlo como modulo CGI. Puede interactuar con muchos motores de bases de datos tales como MySQL, MS SQL, Oracle, Informix, PostgreSQL, y otros muchos. Siempre podrs disponer de ODBC para situaciones que lo requieran. Una gran variedad de mdulos cuando un programador PHP necesite una interfaz para una librera en particular, fcilmente podr crear una API para esta. Algunas de las que ya vienen implementadas permiten manejo de grficos, archivos PDF, Flash, Cybercash, calendarios, XML, IMAP, POP, etc. Rapidez. PHP generalmente es utilizado como modulo de Apache, lo que lo hace extremadamente veloz. Esta completamente escrito en C, as que se ejecuta rpidamente utilizando poca memoria. PHP es Open Source, lo cual significa que el usuario no depende de una compaa especfica para arreglar cosas que no funcionan, adems no ests forzado a pagar actualizaciones anuales para tener una versin que funcione.

32

3.9. Symfony 3.9.1. Symfony en pocas palabras


Un framework simplifica el desarrollo de una aplicacin mediante la automatizacin de algunos de los patrones utilizados para resolver las tareas comunes. Adems, un framework proporciona estructura al cdigo fuente, forzando al desarrollador a crear cdigo ms legible y ms fcil de mantener. Por ltimo, un framework facilita la programacin de aplicaciones, ya que encapsula operaciones complejas en instrucciones sencillas. Symfony es un completo framework diseado para optimizar, gracias a sus caractersticas, el desarrollo de las aplicaciones web. Para empezar, separa la lgica de negocio, la lgica de servidor y la presentacin de la aplicacin web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicacin web compleja. Adems, automatiza las tareas ms comunes, permitiendo al desarrollador dedicarse por completo a los aspectos especficos de cada aplicacin. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicacin web. Symfony est desarrollado completamente con PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrnico de primer nivel. Symfony es compatible con la mayora de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y SQL Server de Microsoft. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows. A continuacin se muestran algunas de sus caractersticas.

33

3.9.2. Caractersticas de Symfony


Symfony se dise para que se ajustara a los siguientes requisitos: Fcil de instalar y configurar en la mayora de plataformas (y con la garanta de que funciona correctamente en los sistemas Windows y *nix estndares). Independiente del sistema gestor de bases de datos. Sencillo de usar en la mayora de casos, pero lo suficientemente flexible como para adaptarse a los casos ms complejos. Basado en la premisa de convenir en vez de configurar, en la que el desarrollador solo debe configurar aquello que no es convencional. Sigue la mayora de mejores prcticas y patrones de diseo para la web. Preparado para aplicaciones empresariales y adaptable a las polticas y arquitecturas propias de cada empresa, adems de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo. Cdigo fcil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo. Fcil de extender, lo que permite su integracin con libreras desarrolladas por terceros. Automatizacin de caractersticas de proyectos web Symfony automatiza la mayora de elementos comunes de los proyectos web, como por ejemplo: La capa de internacionalizacin que incluye Symfony permite la traduccin de los datos y de la interfaz, as como la adaptacin local de los contenidos. La capa de presentacin utiliza plantillas y layouts que pueden ser creados por diseadores HTML sin ningn tipo de conocimiento del framework. Los helpers incluidos permiten minimizar el cdigo utilizado en la presentacin, ya que encapsulan grandes bloques de cdigo en llamadas simples a funciones.

34

Los formularios incluyen validacin automatizada y relleno automtico de datos (repopulation), lo que asegura la obtencin de datos correctos y mejora la experiencia de usuario.

Los datos incluyen mecanismos de escape que permiten una mejor proteccin contra los ataques producidos por datos corruptos. La gestin de la cach reduce el ancho de banda utilizado y la carga del servidor. La autenticacin y la gestin de credenciales simplifican la creacin de secciones restringidas y la gestin de la seguridad de usuario. El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las pginas como parte de la interfaz, adems de estar optimizadas para los buscadores.

El soporte de e-mail incluido y la gestin de APIs permiten a las aplicaciones web interactuar ms all de los navegadores. Los listados son ms fciles de utilizar debido a la paginacin automatizada, el filtrado y la ordenacin de datos. Los plugins, las factoras (patrn de diseo Factory) y los mixin permiten realizar extensiones a medida de Symfony. Las interacciones con Ajax son muy fciles de implementar mediante los helpers que permiten encapsular los efectos JavaScript compatibles con todos los navegadores en una nica lnea de cdigo.

3.9.3. Entorno de desarrollo y herramientas


Symfony puede ser completamente personalizado para cumplir con los requisitos de las empresas que disponen de sus propias polticas y reglas para la gestin de proyectos y la programacin de aplicaciones. Por defecto incorpora varios entornos de desarrollo diferentes e incluye varias herramientas que permiten automatizar las tareas ms comunes de la ingeniera del software:

35

Las herramientas que generan automticamente cdigo han sido diseadas para hacer prototipos de aplicaciones y para crear fcilmente la parte de gestin de las aplicaciones.

El framework de desarrollo de pruebas unitarias y funcionales proporciona las herramientas ideales para el desarrollo basado en pruebas (test-driven development).

La barra de depuracin web simplifica la depuracin de las aplicaciones, ya que muestra toda la informacin que los programadores necesitan sobre la pgina en la que estn trabajando.

La interfaz de lnea de comandos automatiza la instalacin de las aplicaciones entre servidores. Es posible realizar cambios en caliente de la configuracin (sin necesidad de reiniciar el servidor). El completo sistema de log permite a los administradores acceder hasta el ltimo detalle de las actividades que realiza la aplicacin.

3.9.4. Quin ha desarrollado Symfony y por qu motivo?


La primera versin de Symfony fue publicada en Octubre de 2005 por Fabien Potencier, fundador del proyecto y coautor de este libro. Fabien es el presidente de Sensio (http://www.sensio.com/), una empresa francesa de desarrollo de aplicaciones web conocida por sus innovaciones en este campo. En el ao 2003, Fabien realiz una investigacin sobre las herramientas de software libre disponibles para el desarrollo de aplicaciones web con PHP. Fabien lleg a la conclusin de que no exista ninguna herramienta con esas caractersticas. Despus del lanzamiento de la versin 5 de PHP, decidi que las herramientas disponibles haban alcanzado un grado de madurez suficiente como para integrarlas en un framework completo. Fabien emple un ao entero para desarrollar el ncleo de Symfony, basando su trabajo en el framework Mojavi (que tambin era un framework que segua el funcionamiento MVC), en la herramienta Propel para el mapeo de objetos

36

a bases de datos (conocido como ORM, de object-relational mapping) y en los helpers empleados por Ruby on Rails en sus plantillas. Fabien desarroll originalmente Symfony para utilizarlo en los proyectos de Sensio, ya que disponer de un framework efectivo es la mejor ayuda para el desarrollo eficiente y rpido de las aplicaciones. Adems, el desarrollo web se hace ms intuitivo y las aplicaciones resultantes son ms robustas y ms fciles de mantener. El framework se utiliz por primera vez en el desarrollo de un sitio de comercio electrnico para un vendedor de lencera y posteriormente se utiliz en otros proyectos. Despus de utilizar Symfony en algunos proyectos, Fabien decidi publicarlo bajo una licencia de software libre. Sus razones para liberar el proyecto fueron para donar su trabajo a la comunidad, aprovechar la respuesta de los usuarios, mostrar la experiencia de Sensio y porque considera que es divertido hacerlo. NOTA Por qu lo llamaron Symfony y no CualquierNombreFramework? Porque Fabien quera una nombre corto que tuviera una letra s (de Sensio) y una letra f (de framework), que fuera fcil de recordar y que no estuviera asociado a otra herramienta de desarrollo. Adems, no le gustan las maysculas. Symfony era muy parecido a lo que estaba buscando, aunque no es una palabra correcta en el idioma ingls (la palabra correcta es symphony), y adems estaba libre como nombre de proyecto. La otra alternativa era baguette. Para que Symfony fuera un proyecto de software libre exitoso, deba tener una documentacin amplia y en ingls, para aumentar la incorporacin de usuarios al proyecto. Fabien pidi a su compaero de trabajo Franois Zaninotto, el otro coautor de este libro, que investigara el cdigo fuente del programa y escribiera un libro sobre Symfony. Aunque el proceso fue arduo, cuando el proyecto se lanz pblicamente, la documentacin era suficiente como para atraer a muchos desarrolladores. El resto es historia.

37

3.9.5. Conceptos bsicos


Antes de empezar con Symfony, deberas conocer algunos conceptos bsicos. Puedes saltarte esta seccin si conoces el significado de OOP, ORM, RAD, DRY, KISS, TDD, YAML y PEAR.

3.9.6. Programacin Orientada a Objetos (OOP)


La programacin orientada a objetos (OOP, por sus siglas en ingls Object-oriented programming) no va a ser explicada en este captulo, ya que se necesitara un libro entero para ello. Como Symfony hace un uso continuo de los mecanismos orientados a objetos disponibles en PHP 5, es un requisito obligatorio el conocer la OOP antes de aprender Symfony. En la Wikipedia se explica la OOP de la siguiente manera: La idea de la programacin orientada a objetos es que una aplicacin se puede considerar como una coleccin de unidades individuales, llamadas objetos, que interactan entre s. Los programas tradicionales pueden considerarse como una coleccin de funciones o como una lista de instrucciones de programacin. PHP 5 incluye los conceptos de clase, objeto, mtodo, herencia y muchos otros propios de la programacin orientada a objetos. Aquellos que no estn familiarizados con estos conceptos, deberan consultar la documentacin oficial de PHP disponible en http://www.php.net/manual/es/language.oop5.basic.php.

3.9.7. Mtodos mgicos


Uno de los puntos fuertes de los objetos de PHP es la utilizacin de los mtodos mgicos. Este tipo de mtodos permiten redefinir el comportamiento de las clases sin modificar el cdigo externo. Con estos mtodos es posible que la sintaxis de PHP sea ms concisa y ms fcil de extender. Adems, estos mtodos son fciles de reconocer ya que sus nombres siempre empiezan con 2 guiones bajos seguidos (__).
38

Por ejemplo, al mostrar un objeto, PHP busca de forma implcita un mtodo llamado toString(), el cual permite comprobar si se ha creado una visualizacin personalizada. Como se muestra en el siguiente ejemplo. $miObjeto = new miClase(); echo $miObjeto; // Se busca el mtodo mgico echo $miObjeto->__toString(); Symfony utiliza los mtodos mgicos de PHP, por lo que deberas conocer su funcionamiento. La documentacin oficial de PHP tambin explica los mtodos mgicos

(http://www.php.net/manual/es/language.oop5.magic.php).

3.9.8. PEAR (PHP Extension and Application Repository)


PEAR es un framework y sistema de distribucin para componentes PHP reutilizables. PEAR permite descargar, instalar, actualizar y desinstalar scripts de PHP. Si se utiliza un paquete de PEAR, no es necesario decidir donde guardar los scripts, cmo hacer que se puedan utilizar o cmo extender la lnea de comandos (CLI). PEAR es un proyecto creado por la comunidad de usuarios de PHP, est desarrollado con PHP y se incluye en las distribuciones estndar de PHP. SUGERENCIA El sitio web de PEAR, http://pear.php.net/, incluye documentacin y muchos paquetes agrupados en categoras.

39

PEAR es el mtodo ms profesional para instalar libreras externas en PHP. Symfony aconseja el uso de PEAR para disponer de una instalacin nica y centralizada que pueda ser utilizada en varios proyectos. Los plugins de Symfony son paquetes de PEAR con una configuracin especial. El propio framework Symfony tambin est disponible como paquete de PEAR. Afortunadamente, no es necesario conocer la sintaxis de PEAR para utilizar Symfony. Lo nico necesario es entender su funcionamiento y tenerlo instalado. Para comprobar si PEAR est instalado en el sistema, se puede escribir lo siguiente en una lnea de comandos: > pear info pear El comando anterior muestra la versin de PEAR instalada en el sistema. El proyecto Symfony dispone de su propio repositorio PEAR, tambin llamado canal. Los canales de PEAR solamente se pueden utilizar a partir de la versin 1.4.0, por lo que es necesario actualizar PEAR si se dispone de una versin anterior. Para actualizar PEAR, se debe ejecutar el siguiente comando: > pear upgrade PEAR

3.9.9. Mapeo de Objetos a Bases de datos (ORM)


Las bases de datos siguen una estructura relacional. PHP 5 y Symfony por el contrario son orientados a objetos. Por este motivo, para acceder a la base de datos como si fuera orientada a objetos, es necesario una interfaz que traduzca la lgica de los objetos a la lgica relacional. Esta interfaz se denomina mapeo de objetos a bases de datos (ORM, de sus siglas en ingls object-relational mapping). Un ORM consiste en una serie de objetos que permiten acceder a los datos y que contienen en su interior cierta lgica de negocio.

40

Una de las ventajas de utilizar estas capas de abstraccin de objetos/relacional es que evita utilizar una sintaxis especfica de un sistema de bases de datos concreto. Esta capa transforma automticamente las llamadas a los objetos en consultas SQL optimizadas para el sistema gestor de bases de datos que se est utilizando en cada momento. De esta forma, es muy sencillo cambiar a otro sistema de bases de datos completamente diferente en mitad del desarrollo de un proyecto. Estas tcnicas son tiles por ejemplo cuando se debe desarrollar un prototipo rpido de una aplicacin y el cliente aun no ha decidido el sistema de bases de datos que ms le conviene. El prototipo se puede realizar utilizando SQLite y despus se puede cambiar fcilmente a MySQL, PostgreSQL u Oracle cuando el cliente se haya decidido. El cambio se puede realizar modificando solamente una lnea en un archivo de configuracin. La capa de abstraccin utilizada encapsula toda la lgica de los datos. El resto de la aplicacin no tiene que preocuparse por las consultas SQL y el cdigo SQL que se encarga del acceso a la base de datos es fcil de encontrar. Los desarrolladores especializados en la programacin con bases de datos pueden localizar fcilmente el cdigo. Utilizar objetos en vez de registros y clases en vez de tablas tiene otra ventaja: se pueden definir nuevos mtodos de acceso a las tablas. Por ejemplo, si se dispone de una tabla llamada Cliente con 2 campos, Nombre y Apellido, puede que sea necesario acceder directamente al nombre completo (NombreCompleto). Con la programacin orientada a objetos, este problema se resuelve aadiendo un nuevo mtodo de acceso a la clase Cliente de la siguiente forma: public function getNombreCompleto() { return $this->getNombre().' '.$this->getApellido(); }

41

Todas las funciones comunes de acceso a los datos y toda la lgica de negocio relacionada con los datos se puede mantener dentro de ese tipo de objetos. Por ejemplo, la siguiente clase CarritoCompra almacena los productos (que son objetos). Para obtener el precio total de los productos del carrito y as realizar el pago, se puede aadir un mtodo llamado getTotal() de la siguiente forma: public function getTotal() { $total = 0; foreach ($this->getProductos() as $producto) { $total += $producto->getPrecio() * $item->getCantidad(); } return $total; } Y eso es todo. Imagina cuanto te hubiera costado escribir una consulta SQL que hiciera lo mismo. Propel, que tambin es un proyecto de software libre, es una de las mejores capas de abstraccin de objetos/relacional disponibles en PHP 5. Propel est completamente integrado en Symfony.La documentacin de este ORM se encuentra en el sitio web de Propel.(http://propel.phpdb.org/trac/). Se pude usar otros como Doctrine que se ver ms adelante.

42

3.9.10.

Desarrollo rpido de aplicaciones (RAD)

Durante mucho tiempo, la programacin de aplicaciones web fue un tarea tediosa y muy lenta. Siguiendo los ciclos habituales de la ingeniera del software (como los propuestos por el Proceso Racional Unificado o Rational Unified Process) el desarrollo de una aplicacin web no puede comenzar hasta que se han establecido por escrito una serie de requisitos, se han creado los diagramas UML (Unified Modeling Language) y se ha producido abundante documentacin sobre el proyecto. Este modelo se vea favorecido por la baja velocidad de desarrollo, la falta de versatilidad de los lenguajes de programacin (antes de ejecutar el programa se debe construir, compilar y reiniciar) y sobre todo por el hecho de que los clientes no estaban dispuestos a adaptarse a otras metodologas. Hoy en da, las empresas reaccionan ms rpidamente y los clientes cambian de opinin constantemente durante el desarrollo de los proyectos. De este modo, los equipos de desarrollo deben adaptarse a esas necesidades y tienen que poder cambiar la estructura de una aplicacin de forma rpida. Afortunadamente, el uso de lenguajes de script como Perl y PHP permiten seguir otras estrategias de programacin, como RAD (desarrollo rpido de aplicaciones) y el desarrollo gil de software. Una de las ideas centrales de esta metodologa es que el desarrollo empieza lo antes posible para que el cliente pueda revisar un prototipo que funciona y pueda indicar el camino a seguir. A partir de ah, la aplicacin se desarrolla de forma iterativa, en la que cada nueva versin incorpora nuevas funcionalidades y se desarrolla en un breve espacio de tiempo. Las consecuencias de estas metodologas para el desarrollador son numerosas. El programador no debe pensar acerca de las versiones futuras al incluir una nueva funcionalidad. Los mtodos utilizados deben ser lo ms sencillos y directos posibles. Estas ideas se resumen en el principio denominado KISS: Haz las cosas sencillas, idiota! (Keep It Simple, Stupid)

43

Cuando se modifican los requisitos o cuando se aade una nueva funcionalidad, normalmente se debe reescribir parte del cdigo existente. Este proceso se llama refactorizacin y sucede a menudo durante el desarrollo de una aplicacin web. El cdigo suele moverse a otros lugares en funcin de su naturaleza. Los bloques de cdigo repetidos se refactorizan en un nico lugar, aplicando el principio DRY: No te repitas (Dont Repeat Yourself). Para asegurar que la aplicacin sigue funcionando correctamente a pesar de los cambios constantes, se necesita una serie de pruebas unitarias que puedan ser automatizadas. Si estn bien escritas, las pruebas unitarias permiten asegurar que nada ha dejado de funcionar despus de haber refactorizado parte del cdigo de la aplicacin. Algunas metodologas de desarrollo de aplicaciones obligan a escribir las pruebas antes que el propio cdigo, lo que se conoce como TDD: desarrollo basado en pruebas (test-driven development). NOTA Existen otros principios y hbitos relacionados con el desarrollo gil de aplicaciones. Una de las metodologas ms efectivas se conoce como XP: programacin extrema (Extreme Programming). La documentacin relacionada con XP puede ensearte mucho sobre el desarrollo rpido y efectivo de las aplicaciones. Una buena forma de empezar con XP son los libros escritos por Kent Beck en la editorial Addison-Wesley. Symfony es la herramienta ideal para el RAD. De hecho, el framework ha sido desarrollado por una empresa que aplica el RAD a sus propios proyectos. Por este motivo, aprender a utilizar Symfony no es como aprender un nuevo lenguaje de programacin, sino que consite en aprender a tomar las decisiones correctas para desarrollar las aplicaciones de forma ms efectiva. El sitio web del proyecto Symfony incluye un tutorial en el que se explica paso a paso el desarrollo de una aplicacin utilizando las tcnicas de desarrollo gil de aplicaciones.

44

La aplicacin se llama Askeet (http://www.symfony-project.org/askeet) y su lectura es muy recomendada para todos aquellos que quieran adentrarse en el desarrollo gil de aplicaciones.

3.9.11.

YAML

Segn el sitio web oficial de YAML (http://www.yaml.org/), YAML es un formato para serializar datos que es fcil de procesar por las mquinas, fcil de leer para las personas y fcil de interactuar con los lenguajes de script. Dicho de otra forma, YAML es un lenguaje muy sencillo que permite describir los datos como en XML, pero con una sintaxis mucho ms sencilla. YAML es un formato especialmente til para describir datos que pueden ser transformados en arrays simples y asociativos, como por ejemplo: $casa = array( 'familia' => array( 'apellido' => 'Garca', 'padres' => array('Antonio', 'Mara'), 'hijos' => array('Jose', 'Manuel', 'Carmen') ), 'direccion' => array( 'numero' => 34, 'calle' => 'Gran Va', 'ciudad' => 'Cualquiera', 'codigopostal' => '12345' )
45

); Este array de PHP se puede crear directamente procesando esta cadena de texto en formato YAML: casa: familia: apellido: Garca padres: - Antonio - Mara hijos: - Jose - Manuel - Carmen direccion: numero: 34 calle: Gran Va ciudad: Cualquiera codigopostal: "12345"

46

YAML utiliza la tabulacin para indicar su estructura, los elementos que forman una secuencia utilizan un guin medio y los pares clave/valor de los array asociativos se separan con dos puntos. YAML tambin dispone de una notacin resumida para describir la misma estructura con menos lneas: los arrays simples se definen con [] y los arrays asociativos se definen con {}. Por tanto, los datos YAML anteriores se pueden escribir de forma abreviada de la siguiente manera: casa: familia: { apellido: Garca, padres: [Antonio, Mara], hijos: [Jose, Manuel, Carmen] } direccion: { numero: 34, direccion: Gran Va, ciudad: Cualquiera, codigopostal: "12345" } YAML es el acrnimo de YAML Aint Markup Language (YAML No es un Lenguaje de Marcado) y se pronuncia yamel. El formato se lleva utilizando desde 2001 y existen utilidades para procesar YAML en una gran variedad de lenguajes de programacin. SUGERENCIA La especificacin completa del formato YAML se puede encontrar en

http://www.yaml.org/. Como se ha visto, YAML es mucho ms rpido de escribir que XML (ya que no hacen falta las etiquetas de cierre y el uso continuo de las comillas) y es mucho ms poderoso que los tradicionales archivos .ini (ya que estos ltimos no soportan la herencia y las estructuras complejas). Por este motivo, Symfony utiliza el formato YAML como el lenguaje preferido para almacenar su configuracin. Este libro contiene muchos archivos YAML, pero como es tan sencillo, probablemente no necesites aprender ms detalles de este formato.

47

3.9.12.

Resumen Symfony

Symfony es un framework para desarrollar aplicaciones web creadas con PHP 5. Aade una nueva capa por encima de PHP y proporciona herramientas que simplifican el desarrollo de las aplicaciones web complejas. Este libro contiene todos los detalles del funcionamiento de Symfony y para entenderlo, solamente es necesario estar familiarizado con los conceptos bsicos de la programacin moderna, sobre todo la programacin orientada a objetos (OOP), el mapeo de objetos a bases de datos (ORM) y el desarrollo rpido de aplicaciones (RAD). El nico requisito tcnico obligatorio es el conocimiento de PHP 5.

3.10. El patrn MVC


Symfony est basado en un patrn clsico del diseo web conocido como arquitectura MVC, que est formado por tres niveles: El modelo representa la informacin con la que trabaja la aplicacin, es decir, su lgica de negocio. La vista transforma el modelo en una pgina web que permite al usuario interactuar con ella. El controlador se encarga de procesar las interacciones del usuario y realiza los cambios apropiados en el modelo o en la vista. La imagen 3.2 ilustra el funcionamiento del patrn MVC. La arquitectura MVC separa la lgica de negocio (el modelo) y la presentacin (la vista) por lo que se consigue un mantenimiento ms sencillo de las aplicaciones. Si por ejemplo una misma aplicacin debe ejecutarse tanto en un navegador estndar como un navegador de un dispositivo mvil, solamente es necesario crear una vista nueva para cada dispositivo; manteniendo el controlador y el modelo original. El controlador se encarga de aislar al modelo y a la vista de los detalles del protocolo utilizado para las peticiones (HTTP, consola de comandos, email, etc.). El modelo se encarga de la

48

abstraccin de la lgica relacionada con los datos, haciendo que la vista y las acciones sean independientes de, por ejemplo, el tipo de gestor de bases de datos utilizado por la aplicacin.

Imagen 3. 2: El patrn MVC.

3.10.1.

Las capas de la arquitectura MVC

Para poder entender las ventajas de utilizar el patrn MVC, se va a transformar una aplicacin simple realizada con PHP en una aplicacin que sigue la arquitectura MVC. Un buen ejemplo para ilustrar esta explicacin es el de mostrar una lista con las ltimas entradas o artculos de un blog.

3.10.2.

Programacin simple

Utilizando solamente PHP normal y corriente, el script necesario para mostrar los artculos almacenados en una base de datos se muestra en el siguiente listado: Listado 2-1 - Un script simple <?php // Conectar con la base de datos y seleccionarla

49

$conexion = mysql_connect('localhost', 'miusuario', 'micontrasena'); mysql_select_db('blog_db', $conexion); // Ejecutar la consulta SQL $resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion); ?> <html> <head> <title>Listado de Artculos</title> </head> <body> <h1>Listado de Artculos</h1> <table> <tr><th>Fecha</th><th>Titulo</th></tr> <?php // Mostrar los resultados con HTML while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) { echo "\t<tr>\n"; printf("\t\t<td> %s </td>\n", $fila['fecha']); printf("\t\t<td> %s </td>\n", $fila['titulo']);

50

echo "\t</tr>\n"; } ?> </table> </body> </html> <?php // Cerrar la conexion mysql_close($conexion); ?> El script anterior es fcil de escribir y rpido de ejecutar, pero muy difcil de mantener y actualizar. Los principales problemas del cdigo anterior son: No existe proteccin frente a errores (qu ocurre si falla la conexin con la base de datos?). El cdigo HTML y el cdigo PHP estn mezclados en el mismo archivo e incluso en algunas partes estn entrelazados. El cdigo solo funciona si la base de datos es MySQL.

3.10.3.

Separando la presentacin

Las llamadas a echo y printf del listado 2-1 dificultan la lectura del cdigo. De hecho, modificar el cdigo HTML del script anterior para mejorar la presentacin es un folln debido a cmo est programado. As que el cdigo va a ser dividido en dos partes. En primer lugar, el cdigo PHP puro con toda la lgica de negocio se incluye en el script del controlador, como se muestra en el listado 2-2.

51

Listado 2-2 - La parte del controlador, en index.php <?php // Conectar con la base de datos y seleccionarla $conexion = mysql_connect('localhost', 'miusuario', 'micontrasena'); mysql_select_db('blog_db', $conexion); // Ejecutar la consulta SQL $resultado = mysql_query('SELECT fecha, titulo FROM articulo', $conexion); // Crear el array de elementos para la capa de la vista $articulos = array(); while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC)) { $articulos[] = $fila; } // Cerrar la conexin mysql_close($conexion); // Incluir la lgica de la vista require('vista.php'); ?> El cdigo HTML, que contiene cierto cdigo PHP a modo de plantilla, se almacena en el script de la vista, como se muestra en el listado 2-3.

52

Listado 2-3 - La parte de la vista, en vista.php <html> <head> <title>Listado de Artculos</title> </head> <body> <h1>Listado de Artculos</h1> <table> <tr><th>Fecha</th><th>Ttulo</th></tr> <?php foreach ($articulos as $articulo): ?> <tr> <td><?php echo $articulo['fecha'] ?></td> <td><?php echo $articulo['titulo'] ?></td> </tr> <?php endforeach; ?> </table> </body> </html> Una buena regla general para determinar si la parte de la vista est suficientemente limpia de cdigo es que debera contener una cantidad mnima de cdigo PHP, la

53

suficiente como para que un diseador HTML sin conocimientos de PHP pueda entenderla. Las instrucciones ms comunes en la parte de la vista suelen ser echo, if/else, foreach/endforeach y poco ms. Adems, no se deben incluir instrucciones PHP que generen etiquetas HTML. Toda la lgica se ha centralizado en el script del controlador, que solamente contiene cdigo PHP y ningn tipo de HTML. De hecho, y como puedes imaginar, el mismo controlador se puede reutilizar para otros tipos de presentaciones completamente diferentes, como por ejemplo un archivo PDF o una estructura de tipo XML.

3.11. Doctrine 3.11.1. Qu es Doctrine?

La doctrina es un objeto mapeo relacional (ORM) para PHP 5.2.3 + sobre una capa de abstraccin de base de datos de gran alcance (DBAL). Uno de sus principales caractersticas es la posibilidad de escribir consultas de base de datos en un objeto de propiedad orientada dialecto SQL llamada Doctrine (Lenguaje de consulta DQL), inspirado en hiberna HQL. Esto proporciona a los desarrolladores una poderosa alternativa a SQL que mantiene la flexibilidad, sin necesidad de la duplicacin de cdigo innecesario.

3.11.2.

Qu es un ORM?

Mapeo objeto relacional es una tcnica utilizada en los lenguajes de programacin cuando se trata de bases de datos para la traduccin de los tipos de datos incompatibles en bases de datos relacionales. Bsicamente, esto permite que tengamos una base de datos "objeto virtual", que puede ser utilizado desde el lenguaje de programacin. Muchos de los paquetes libres y comerciales que autorizan a esto, pero a veces los desarrolladores optaron por crear uno por su cuenta, ORM

54

3.11.3.

Informacin Bsica

La doctrina es una herramienta para el mapeo objeto-relacional en PHP. Se sienta en la cima de PHP Data Objects (PDO) y se divide en dos capas principales, la DBAL y el ORM. La imagen de abajo muestra cmo las capas de trabajo Doctrina juntos.

Object-Relational Mapping API. El puente entre el modelo relacional y el modelo de objetos / modelo de dominio

Doctrine ORM
Completa base de datos de la abstraccin de la API

Doctrine DBAL Bsico entre la Base de datos DBAL

PDO
Imagen 3. 3: Funcionamiento de Doctrine.

El DBAL (Capa de abstraccin de base de datos) se complete y se extiende la abstraccin de bases de datos de base y en la independencia que ya estn cubiertos por la PDO. La biblioteca se puede utilizar DBAL independiente, si lo nico que

queremos es una capa de abstraccin de base de datos de gran alcance en la parte superior de la DOP. La capa ORM depende de la DBAL y por lo tanto, cuando se carga el paquete ORM la DBAL ya est incluido.

3.12. Razones para utilizar Symfony


Escalable Symfony es infinitamente escalable si se disponen de los recursos necesarios. Yahoo! utiliza Symfony para programar aplicaciones con 200 millones de usuarios. Probado Symfony ha sido probado con xito durante aos en varias aplicaciones gigantescas (Yahoo! Answers, Dailymotion, delicious) y en otros miles de sitios pequeos y medianos.

55

Soporte Symfony sigue una poltica de tipo LTS (long term support), por la que las versiones estables se mantienen durante 3 aos sin cambios pero con una continua correccin de errores. Licencia Symfony se publica bajo licencia MIT, con la que puedes desarrollar aplicaciones web comerciales, gratuitas y/o de software libre. Seguro Symfony permite controlar hasta el ltimo acceso a la informacin e incluye por defecto proteccin contra ataques XSS y CSRF. Cdigo Desde su primera versin Symfony ha sido creado slo para PHP 5, para obtener el mximo rendimiento de PHP y aprovechar todas sus caractersticas. Compromiso Los creadores de Symfony no viven del framework, sino de las aplicaciones que desarrollan con l, por lo que les interesa como aspectos como el rendimiento, la buena documentacin y el soporte muy largo. Documentado Symfony es el framework mejor documentado, ya que ha publicado cinco libros gratuitos de calidad y siempre actualizados. Adems, toda la documentacin est traducida al espaol. Calidad Su cdigo fuente incluye ms de 9.000 pruebas unitarias y funcionales. Internacionalizacin Symfony est traducido a ms de 40 idiomas e incluye todas las herramientas necesarias para que traduzcas fcilmente tus aplicaciones.

56

3.13. Linux Debian 3.13.1. Qu es Debian?


El Proyecto Debian es una asociacin de personas que han hecho causa comn para crear un sistema operativo (SO) libre. Este sistema operativo que hemos creado se llama Debian GNU/Linux, o simplemente Debian para acortar. Un sistema operativo es un conjunto de programas y utilidades bsicas que hacen que su computadora funcione. El centro de un sistema operativo es el ncleo (N. del T.: kernel). El ncleo es el programa ms importante en la computadora, realiza todo el trabajo bsico y le permite ejecutar otros programas. Los sistemas Debian actualmente usan el ncleo de Linux. Linux es una pieza de software creada en un principio por Linus Torvalds y soportada por miles de programadores a lo largo del mundo. Sin embargo, se est trabajando para ofrecer Debian con otros ncleos, en especial con el Hurd. El Hurd es una coleccin de servidores que se ejecutan sobre un microncleo (como Mach) para implementar las distintas funcionalidades. El Hurd es software libre producido por el proyecto GNU. Una gran parte de las herramientas bsicas que completan el sistema operativo, vienen del proyecto GNU; de ah los nombres: GNU/Linux y GNU/Hurd. Estas herramientas tambin son libres. Desde luego, lo que la gente quiere es el software de aplicacin: herramientas que los ayuden a realizar lo que necesiten hacer, desde editar documentos, ejecutar aplicaciones de negocios hasta divertirse con juegos y escribir ms software. Debian viene con ms de 25000 paquetes (software precompilado y empaquetado en un formato amigable para una instalacin sencilla en su mquina) todos ellos de forma gratuita.

57

Es un poco como una torre. En la base est el ncleo. Encima se encuentran todas las herramientas bsicas. Despus est todo el software que usted ejecuta en su computadora. En la cima de la torre se encuentra Debian organizando y encajando todo cuidadosamente para que todo el sistema trabaje junto.

58

4. 4.1.

Descripcin de las actividades realizadas Anlisis del Sistema


requerimientos del

Se analiz el proceso minuciosamente para poder obtener los

sistema que en la actualidad se necesita con el fin de comenzar a desarrollar los mdulos, as como conocer cules eran las entradas y salidas, formulando una medida viable, escalable y prctica para que estos procesos se lleven de la mejor manera. En esta actividad se llev a cabo el anlisis de requerimientos del sistema, teniendo constantes reuniones con el personal del Departamento de planeacin del ITC entre los que se encuentran la Jefa de este departamento, la Licenciada Gutirrez Moreno, Salvador Perez Juana Imelda

responsable del PTA y Humberto Placencia

Aguado responsable del POA. En estas reuniones se llevaron varios requerimientos del sistema los cuales son: 1.-El tiempos de desarrollo y terminacin. 2.- Formatos que llevaran el sistema. 3.- Los contenidos que tendr este. Para la observacin del sistema se recibieron diferente documentacin la cual permiti tener un conocimiento claro del continuacin. El proceso de planeacin tiene diferentes etapas las cuales estn en lazada, en este proyecto solo se hizo el anlisis de dos procesos los cuales son: el Programa de trabajo Anual (PTA) y el Programa Operativo Anual (POA) a continuacin se mencionara en qu consiste cada uno de estos y cul es su relacin. El Programa de Trabajo Anual tiene como propsito Contar con un documento normativo de corto plazo donde se programan las metas de forma anualizada y las proceso de planeacin como se muestra a

59

actividades se realizan mensualmente, a dicha programacin debe drsele seguimiento y la evaluacin correspondiente en el cumplimiento de las metas, con la finalidad de elevar la calidad en el Servicio Educativo.

4.1.1. El procedimiento del Programa de Trabajo Anual


El procedimiento del Programa de Trabajo Anual es el siguiente : 1. EL Director del Instituto Tecnolgico o Centro.-Recibe solicitud por parte de la DGEST ,y da instrucciones al Subdirector de Planeacin y Vinculacin sobre las estrategias para la formulacin del Programa de Trabajo. 2. Subdirector de Planeacin y Vinculacin.- Convoca a reunin de trabajo a los directivos y jefes de departamento, divisin o centro, para dar a conocer las normas, lineamientos y el mecanismo de trabajo para la elaboracin del PTA 3. Subdirectores y Jefes de Departamento.- Elabora el PTA del Departamento, Divisin o Centro a su cargo, acordando las metas con el Director de rea afn de la DGEST. Despus de su elaboracin enva el PTA para su anlisis y aprobacin correspondiente al Jefe del Departamento de Planeacin,

Programacin y Presupuestacin para su revisin. 4. Departamento de Planeacin, Programacin y Presupuestacin.- Recibe, revisa e integra al PTA del plantel. Si procede lo validad e integra, sino procede lo regresa con las observaciones pertinentes de acuerdo a los lineamientos establecidos, para su correccin. 5. Subdirector de Planeacin y Vinculacin. Recibe y analiza el PTA del Instituto Tecnolgico o Centro y prepara su envo a la DGEST. 6. Director del Inst. Tecnolgico o Centro.- Firma el PTA del Instituto Tecnolgico o Centro y lo enva para su revisin y autorizacin a la DGEST. 7. Director del Instituto Tecnolgico o Centro.-Recibe autorizacin del PTA del

Instituto Tecnolgico o Centro.Da instrucciones al Subdirector de Planeacin y Vinculacin para comunicar el documento final y establecer estrategias de cumplimiento, Evaluacin y Seguimiento de las metas del PTA.

60

8. Departamento de Planeacin, Programacin y Presupuestacin analiza el seguimiento y evaluacin. Si procede, realiza una reunin para establecer estrategias para la mejora continua, si no procede, a realizar una reunin para establecer estrategias para el cumplimiento y reforzamiento de las metas con el Director, Subdirectores y Jefes de departamento.

61

El

siguiente

diagrama

muestra

el

procedimiento

anteriormente

descrito.
2

Estrategias para la formulacin del Programa de Trabajo

Dar a conocer las normas, lineamientos y el mecanismo de trabajo para la elaboracin del PTA

Departamento de Planeacin, Programacin y Presupuestacin. Recibe, revisa e integra al PTA del plantel.
5

Se Elabora el PTA del Departamento de acordando las metas.

Analiza el PTA del Instituto Tecnolgico y prepara su envo a la DGEST.

Director del Inst. Tecnolgico. Firma el PTA del Instituto Tecnolgico y lo enva para su revisin y autorizacin a la DGEST

8
Director del Instituto Tecnolgico o Centro.-Recibe autorizacin del PTA del Instituto Tecnolgico o Centro.Da instrucciones al Subdirector de Planeacin y Vinculacin para comunicar el documento final y establecer estrategias de cumplimiento, Evaluacin y Seguimiento de las metas del PTA

7
Si procede, realiza una reunin para establecer estrategias para la mejora continua, si no procede, a realizar una reunin para establecer estrategias para el cumplimiento y reforzamiento de las metas con el Director, Subdirectores y Jefes de departamento

Diagrama 4. 1: Diagrama del procedimiento del PTA.

62

4.1.2. Programa Operacin Anual


El programa Operacin Anual consiste establecer lineamientos para la elaboracin con el propsito de sistematizar y orientar las actividades que se desarrollan en el Organizacin, a fin de ejercer los recursos captados a travs de ingresos propios y los asignados al gasto de operacin de la Institucin, para elevar la calidad en los Servicios Educativos.

4.1.2.1 El procedimiento del Programa Operativo Anual


El procedimiento del Programa Operativo Anual es el siguiente: 1. El director recibe solicitud por parte de la DGEST y da instrucciones al Subdirector de Planeacin y Vinculacin sobre las estrategias para la formulacin del POA en base a las metas del PTA y PIID de la Institucin. 2. El Subdirector de Planeacin y Vinculacin da instrucciones al jefe del Departamento de Planeacin, Programacin, y Presupuestacin de las estrategias para elaboracin del POA y realiza reunin con directivos y jefes de departamento para dar a conocer las normas, y lineamiento para la formulacin del POA en base a las metas del PTA y PIID de la institucin. 3. Los Directivos y jefes de Departamento determinan las necesidades del rea o departamento de su responsabilidad y elabora el POA en los formatos correspondientes. Someten a revisin con el jefe inmediato superior el POA de sus rea o departamento y recaba su visto bueno. Entregan al jefe del Departamento de Planeacin, Programacin y Presupuestacin el POA de su rea. 4. El Departamento de Planeacin, Programacin y presupuestacin recibe los POA de cada departamento responsable, los revisa y procesa la informacin proporcionada. Si procede, integra el POA y lo presenta al Subdirector de Planeacin y Vinculacin, si no procede, regresa al departamento responsable las observaciones correspondientes.

63

5. La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis. 6. El Director firma y enva oficio del POA,solicitando su autorizacin ante la DGEST. 7. El Departamento de planeacin, Programacin y Presupuestacin una vez autorizado el POA, informa el monto autorizado a cada uno de los departamentos.

Diagrama del Programa Operativo Anual

El director recibe solicitud por parte de la DGEST y da instrucciones al Subdirector de Planeacin y Vinculacin sobre las estrategias para la formulacin del POA en base a las metas del PTA y PIID de la Institucin.

El Subdirector de Planeacin y Vinculacin da instrucciones al jefe del Departamento de Planeacin, Programacin, y Presupuestacin de las estrategias para elaboracin del POA y realiza reunin con directivos y jefes de departamento para dar a conocer las normas, y lineamiento para la formulacin del POA en base a las metas del PTA y PIID de la institucin.

3
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director ,convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.

4
Los Directivos y jefes de Departamento determinan las necesidades del rea o departamento de su responsabilidad y elabora el POA en los formatos correspondientes. Someten a revisin con el jefe inmediato superior el POA de su rea o su departamento y recaba su visto bueno. Entregan al jefe del Departamento de Planeacin ,Programacin y Presupuestacin el POA de su rea.

5
El Director firma y enva oficio del POA, solicitando su autorizacin ante la DGEST.

6
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.

7
La Subdireccin de Planeacin y Vinculacin con previo acuerdo del Director, convoca a reunin a Directivos y Jefes de Departamento para presentar el POA para su anlisis.

Diagrama 4. 2: Diagrama del Proceso de POA.

64

La relacin que tiene el PTA y POA es que el PTA se elabora el plan de trabajo el cual est constituido por las metas que se desean cumplir una vez realizado, en el POA se asignaran acciones para poder llevar a cabo las metas.

4.1.3. Diagrama de caso de uso PTA


En el Diagrama 4.3 muestra las funciones del personal encargado del PTA.
Accin Actor
El cargado del PTA

AAAAAAAAA

Captura de las metas Institucionales

Captura del programa trabajo anual

Diagrama 4. 3: Diagrama de Casos de Uso para el PTA.

65

4.1.4. Diagrama de caso de uso POA


En el Diagrama 4.4 muestra las diferentes acciones que el personal encargado del POA y Jefes de Departamento realizan.
Accin
Actor Actor

En cargado del POA

Selecciona tiempo de captura

Jefes de Departamento

Capturar acciones y Asignar acciones al departamento

Capturar insumos, unidades y partidas

Capturar POA de su Departamento

Diagrama 4. 4: Diagrama de Casos de Uso para el POA.

4.2.

Planteamiento del problema

Se analizo los problemas diversos de la aplicacin actual los cuales se muestran en la justificacin del proyecto los cuales son los siguientes: Insegura dado que para el acceso a la informacin se tiene que dejar un puerto abierto. Poco intuitiva en el modo de bsqueda de informacin as como de captura, dificultad en las actualizaciones del sistemas. Interfaz poco amigable para el usuario.

66

Para su funcionamiento es necesario cumplir con ms de un requisito que es: tener la maquina virtual de java, la cual si no se tiene s debe de descargar de la pgina oficial de java (www.java.com), el tiempo de descarga depender de la conexin de internet, otro requisito es tener la aplicacin en la computadora, si no es as se tiene que descargar. En caso de haber una actualizacin tambin es necesaria volver a descargar la aplicacin No forma parte del Sistema Integral de Informacin.

4.2.1. Anlisis de las herramientas de desarrollo


Una vez que se cont con toda esta informacin, se procedi a hacer una justificacin de las herramientas para el desarrollo del sistema propuesto, pues stas eran un estndar en la construccin de cualquier mdulo del SII. Se utilizara PHP, como lenguaje de programacin orientado a web. Pues es un lenguaje multiplataforma y sencillo de aprender, adems como ya se menciono es un estndar. Para la parte de manejo de informacin, se justifica el hecho de utilizar un manejador de bases de datos como lo es PostgreSQL. Puesto que proporciona un gran nmero de caractersticas que normalmente slo se encontraban en las bases de datos comerciales y este manejador es de distribucin libre, lo cual proporciona una ventaja extra sobre los dems. Dentro del sistema tambin se realizaran reportes, estos reportes se queran en un formato PDF, para lo cual se contaba con IReport, que permite crear documentos con esta extensin de manera rpida y sencilla, ofreciendo caractersticas muy similares a cualquier software privativo que tenga este fin, como Ireport est desarrollado en java por lo cual es necesario de un servidor de apache tomcat el cual permita interpretarlo y como resultado obtener el pdf.

67

Puesto que la aplicacin se propuso para trabajar en un entorno Web, debido a ello era necesario contar con un servidor, se opt por utilizar Apache puesto que es robusto, potente, disponible en todas las plataformas, gratuito y con disponibilidad de su cdigo fuente, ofreciendo por mucho mejores ventajas que sus rivales como IIS u otros, adems de que tambin es un estndar de desarrollo para el SII. Para Sistema Operativo, solo se contaba con dos opciones puesto que las mquinas que utilizaramos solo soportaban Microsoft Windows y GNU/Linux. Se opt por seleccionar el uso de GNU/Linux por contar con ms seguridad, menor concurrencia en la aparicin de virus, rapidez que proporciona a PHP, etc. Se utiliz Symfony es un framework para la creacin de aplicaciones PHP y la forma ms sencilla de aumentar la productividad y calidad esta. Symfony ha sido probado con xito en algunos de los sitios web ms grandes del mundo. Las ventajas que se puede observar a primera vista es que este framework permite separar la lgica de negocio, la lgica de servidor y la presentacin de la aplicacin web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicacin web compleja. Adems, automatiza las tareas ms comunes, permitiendo al desarrollador dedicarse por completo a los aspectos especficos de cada aplicacin. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicacin web. Para mejorar la interaccin de la interfaz se opto por utilizar Jquery UI, el cual permitir tener una interfaz amigable para los usuarios finales.

4.3. Anlisis de requerimientos


Los requerimientos encontrados para el mdulo a desarrollar, son que el servidor contara con Apache, apache tomcat , Php, Linux, postgresql , symfony. Los requerimientos para el usuario, no son muy complejos ya que una computadora normalmente cuenta con un navegador de internet el cual permitir acceder a la aplicacin.
68

4.3.1. Capacitacin para el uso de las herramientas de desarrollo


Una de las actividades ms laboriosas, cuando se est descubriendo nuevas herramientas como en este caso son: IReport y Symfony lo cual Ireport fue uno de los ms fciles en entender y dominar gracias a su herramienta para crear los pdf la hace ser muy fcil de adaptarse y desarrollar utilizando sntesis de sql para realizar las consultas y obtener los datos necesarios en los reportes, por otra parte Symfony se tuvo que adquirir nuevo conocimiento aparte del conocimiento del lenguaje de php, como fueron los archivos yam y los ORM (mapeo objeto relacional) as como el estilo de arquitectura de software MVC que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos explicados en el Marco Terico.

4.4.

Anlisis de diseo y desarrollo de la base de datos

Al ser est un mdulo que se incorporar al Sistema Integral de Informacin (SII), ya se cuenta con parte de la estructura de la base de datos para la elaboracin del PTA y POA, sin embargo an haba que agregarle algunos campos requeridos para completar la estructura. A continuacin se presentar el conjunto de tablas previamente existentes, ms adelante se mostrar a detalle la estructura de cada una de ellas y cmo se relacionaron con las nuevas tablas as como tambin se har mencin de los campos y tablas nuevos.

69

Diagrama 4. 5: Diagrama Entidad-Relacion.

Para ver el diccionario de la base de datos ir al Anexo A Tablas que se Modificaron. Tabla Insumo_accion_departamento ver Tabla 4.1

Tabla 4. 1: Insumo_accion_departamento.

Columnas agregadas a la tabla Insumo_accion_departamento

70

Nombre de la columna Ao_Captura Tabla Accion_departamento ver Tabla 4.2

Tipo Integer

Tabla 4. 2: Accion_departamento.

Columnas agregadas a la tabla Accion_departamento

Nombre de la columna tope_presupuestal Tabla insumo ver Tabla 4.3

Tipo Numeric(9,2)

Tabla 4. 3: insumo

71

Columnas agregadas a la tabla insumo

Nombre de la columna Sede PeriodoInicial PeriodoFinal Ao Creacin de la tabla

Tipo Varchar(200) Date Date integer

APOA_insumo_accion_departamento ver Tabla 4.4

Tabla 4. 4: APOA_insumo_accion_departamento

4.5.

Desarrollo de la interfaz del usuario

Antes de iniciar la programacin o diseo de interfaces, se defini cmo se realizara el acceso, tomando en cuenta que existe el sistema integral de informacin, permitiendo un acceso a las personas que elaboran en el ITC. La interfaz de acceso que se

muestra a continuacin es solo una validacin de usuario y contrasea los cuales se asignan al ingresar al ITC.

72

Imagen 4. 1: Pagina de acceso al SII.

Una vez que se ha entrado al SII se pueden observar una serie de opciones, dependiendo del usuario que entre. En la figura siguiente se muestra un ejemplo del men para un usuario, esto solo con el fin de dar una idea clara de donde se encontrar ubicada la liga para entrar al sistema de PTA_POA.

Imagen 4. 2: Menu del SII.

Para el desarrollo de la interfaz se tomaron en cuenta las necesidades de la PTA y POA, los cuales tienen como objetivo de ser intuitiva y a la visin de los usuarios agradable. La interfaz consta de un men el cual tendr diferentes opciones, dependiendo del tipo de usuario que quiera acceder.

73

Imagen 4. 3: Interfaz de Usuario del Sistema PTA-POA.

Los colores de la interfaz fueron seleccionados con el objetivo que fueran un medio de trabajo agradable al usuario.

4.5.1. Validacin del sistema


Se validaron los formularios por medio del lenguaje del lado del servidor PHP y del lado del cliente javascript, lo cual permite una integridad de informacin la cual evita tener errores en la captura.

4.5.2. Prueba del sistema


Para la prueba del sistema se analizaron varios puntos que se determinaron importantes que son los siguientes: Integridad y consistencia en los datos

Verificar que la informacin que se mostrara fuera la correcta as como la captura de esta. Seguridad o Symfony ya tiene contemplado los siguientes ataques: Inyeccin de sql

74

Cross-site scripting (XSS) es un tipo de inseguridad informtica o agujero de seguridad basado en la explotacin de vulnerabilidades del sistema de validacin de HTML incrustado

CSRF (del ingls Cross-site request forgery o falsificacin de peticin en sitios cruzados) es un tipo de exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confa. Esta vulnerabilidad es conocida tambin por otros nombres como XSRF, enlace hostil, ataque de un click, cabalgamiento de sesin, y ataque automtico.

Despus se realizaron iteraciones con el sistema, tratando de emular el uso que se le dara. Las iteraciones se realizaron cinco veces por cada mdulo existente. En base a los resultados arrojados por estos dos puntos anteriores, se observaron los valores de prueba y se decidi modificar el cdigo y nuevamente validar y probar los puntos ms dbiles. Este proceso result recursivo por un tiempo pues se realizaron muchas pruebas y correcciones, puesto que el tiempo con el que se contaba, reduca considerablemente los tiempos contemplados para otras actividades. Nota: las validaciones se hicieron localmente, cuando se integro en el sistema del Instituto Tecnologico de Celaya se realizaron las mismas pruebas para ver el funcionamiento adecuado en lnea.

4.6. Deteccin y correccin de errores


Este punto estuvo basado en las pruebas del sistema ya que en base a ellas se encontraron errores que pasaron desapercibidos a primera instancia. Como errores ortogrficos, o que el tipo de cuadro de texto no era el correcto, etc.

75

5.

Conclusin

Durante mi estancia en las residencias profesionales, puse en prctica gran parte de mis conocimientos que adquir en el Tecnolgico de Celaya as como las habilidades de autodidacta para el manejo de un framework Symfony. El desarrollo de la aplicacin en Web fue un proceso de dedicacin y esfuerzo para su elaboracin, permitiendo tener un panorama ms amplio de las herramientas que actualmente se usan en un habiente laboral, haciendo este un constante actualizacin en conocimiento. Tambin pude observar mediante la prctica, que el desarrollo de sistemas no es solo programar, sino que es toda una metodologa que se debe seguir para tener resultados favorables, esto es desde el anlisis pertinente, as como el diseo e documentacin, y pruebas del mismo. Como nota. Despus de terminar este proyecto, me siento ms seguro de m, ya que esto me va a ayudar en mi vida profesional que apenas comienza.

6. Inconvenientes o problemas
En el sistema del PTA y POA, est funcionando de acuerdo a las expectativas que se optaron que el sistema tuviera, aunque estos estn en constante cambio debido a las nuevas solicitudes que enva la DGEST para la captura del PTA y POA, o a formas ms sencillas que se encuentren para facilitar el llenado de los mismos. Otro inconveniente es que es un sistema que puede cambiar cada seis aos con la llegada de un nuevo presidente de la repblica, ya que ste asigna metas que deben cumplir en su periodo, o cambiar el mtodo de asignacin de las mismas.

76

7. Elaboracin del manual de instalacin y de operacin


Se realiz un documento el cual contiene los pasos necesarios para la instalacin del sistema ver anexo B, as como el manual de usuario el cual permite tener una visin clara de las operaciones que puede realizar el sistema ver el anexo A.

77

6.

Referencias de Internet

Manual y Referencia de PHP. http://www.php.net (junio 2009) Manual y Referencia de Apache. http://www.apache.org/ (junio 2009) Manual y Referencia de PostgreSQL. http://www.postgresql.org/ (junio 2009) Manual y Referencia de Symfony http://www.symfony-project.org/doc/1_4/ (junio 2009) Manual y Referencia de Doctrine http://www.doctrine-project.org/projects/orm(junio 2009) Manual y referencia de apache Tomcat http://tomcat.apache.org/ (junio 2009) Manual y referencia de IReport http://jasperforge.org/plugins/mwiki/index.php/Ireport (junio 2009) Manual y referencia de Debian http://www.debian.org/index.es.html( junio 2009)

78

7.

Anexos

Anexo A. Diccionario de la Base de datos Tabla: public.accion Columnas Nombre Tipo Not Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null accion cantidad_periodo1 cantidad_periodo2 Descripcin Conceptos ms especficos dentro de una actividad que facilitan el establecimiento de metas y sus unidades de medida. Varchar Integer Integer Yes Yes Yes Yes Unique P/K Def Val

Tabla: public.accion_departamento Columnas Nombre Tipo Not Null id_departamento Integer Not Unique P/K Def Val

79

Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null Descripcin

Yes

Yes

Yes

Yes

Yes

Son las acciones que se le asigna a cada departamento la cual permitir cumplir las metas

Tabla: public.apoa_insumo_accion_departamento Columnas Nombre Tipo Not Null id_departamento Integer Not Null id_accion Integer Not Null id_meta_institucional Integer Not Null id_institucion Integer Not Null anio numeric(4,0) Not Null id_insumo Integer Not Null Yes Yes Yes Yes Yes Yes Unique P/K Def Val

80

Integer id_fuente_ingreso_capitulo cantidad_periodo1 precio_unitario cantidad_periodo2 justificacion Descripcin Ante proyecto planeacin anual operativo anual Integer numeric(9,2) Integer Varchar

Not Null Yes

Tabla: public.calendario_ejecucion Columnas Nombre Tipo Not Null id_mes id_meta_institucional id_institucion anio id_meta_nivel_jerarquico Descripcin Tiempo que duro en realizar una meta Integer Integer Integer numeric(4,0) Integer Not Null Not Null Not Null Not Null Not Null Unique P/K Yes Yes Yes Yes Yes Def Val

Tabla: public.capitulo Columnas Nombre id_capitulo capitulo Tipo integer char(4)


81

Not Null Unique P/K Not Yes Null Yes

Def Val

dsc_capitulo Descripcin

varchar(100)

Capitulo que tiene como asignado los conceptos

Tabla: public.concepto Columnas Nombre id_concepto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

id_capitulo concepto dsc_concepto Descripcin

integer char(4) varchar(200)

Tabla: public.departamento Columnas Nombre Tipo integer id_departamento departamento varchar(100) Descripcin Nombre del departamento Not Null Unique P/K Not Yes Null Yes Def Val

Tabla: public.departamento_institucion Columnas Nombre id_institucion Tipo integer Not Null Not Def Val Unique P/K

82

id_departamento Descripcin

integer

Null Not Null

Yes Yes

Enlace de las tablas de departamento con la institucin

Tabla: public.departamento_proceso_clave Columnas Nombre id_proceso_clave id_departamento Descripcin En lace de las tablas de proceso y departamento Tipo integer integer Not Null Def Val Unique P/K

Tabla: public.estado Columnas Nombre id_estado estado Descripcin Estados del pas Tipo integer char(70) Not Null Not Null Def Val Unique P/K Yes Yes

Tabla: public.estados_revisiones Columnas Nombre Tipo integer id_estado_revision Not Null Unique P/K Not Yes Null Yes Def Val

estado_revision

83

varchar(100) Descripcin Indica el estado de la revisin

Tabla: public.estructura_programatica Columnas Nombre Tipo Not Null Unique P/K Not Yes Null Yes Def Val

id_estructura_programatica integer grupo_funcional char(5) funcion char(5) subfuncion char(5) actividad_institucional char(5) programa_prioritario char(5) Descripcin Estructura del programa a seguir

Tabla: public.fuente_ingreso Columnas Nombre Tipo integer id_fuente_ingreso fuente_ingreso varchar(50) Descripcin Tipo de ingreso que recibe el tecnolgico Not Null Unique P/K Not Yes Null Yes Def Val

84

Tabla: public.fuente_ingreso_capitulo Columnas Not Null Unique P/K id_capitulo Not integer Null id_fuente_ingreso Not integer Null Not Yes id_fuente_ingreso_capitulo integer Null Yes Nombre Tipo Def Val

Descripcin En lace de la tabla de ingreso y capitulo

Tabla: public.indicador Columnas Nombre id_indicador indicador Descripcin Tipo integer varchar Not Null Unique P/K Not Yes Null Yes Def Val

Tabla: public.institucion Columnas Nombre id_institucion Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

integer id_tipo_institucion institucion varchar(100)

85

clave_institucion direccion telefono codigo_postal id_estado Descripcin Datos del instituto

char(5) varchar char(12) char(5) integer

Not Null

Tabla: public.insumo Columnas Nombre id_insumo id_unidad id_partida insumo precio_actual id_institucion Descripcin Nombre de los componentes, artculos, etc. Tipo integer integer integer varchar(200) numeric(15,2) integer Not Null Unique P/K Not Null Yes Def Val

Not Null

Yes

Tabla: public.insumo_accion_departamento Columnas Nombre id_departamento id_accion id_meta_institucional id_institucion Tipo integer integer integer integer Not Null Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes Yes

86

anio id_insumo id_fuente_ingreso_capitulo cantidad_periodo1 precio_unitario cantidad_periodo2 justificacion apoa_insumo Descripcin: Descripcin

numeric(4,0) integer integer integer numeric(9,2) integer varchar

Not Null Not Null Not Null

Yes Yes Yes

Tabla donde liga el insumo la accin y el departamento

Tabla: public.mes Columnas Nombre id_mes mes Descripcin Id Meses y nombre de meses Tipo integer varchar(50) Not Null Not Null Def Val Unique P/K Yes Yes

Tabla: public.meta_institucional Columnas Nombre Tipo integer id_meta_institucional Not Null Unique P/K Not Yes Null Yes Def Val

id_meta_piid id_indicador

integer integer
87

id_unidad_medida meta_institucional formula anio_vigencia Descripcin

integer varchar varchar(1024) numeric(4,0)

Meta de la institucin a cumplir

Tabla: public.meta_nivel_jerarquico Columnas Nombre id_meta_institucional id_institucion anio meta_nivel_jerarquico id_meta_nivel_jerarquico Descripcin Meta del nivel jerrquico Tipo integer integer numeric(4,0) varchar integer Not Null Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes

Yes

Tabla: public.meta_piid
Columnas Nombre id_meta_piid Tipo integer Not Null Not Null Def Val Unique Yes P/K Yes

meta_piid clave_meta_piid Descripcin

varchar char(5)

Me de PIID(Programa Institucional de Innovacin y Desarrollo)

88

Tabla: public.meta_proceso_clave Columnas Nombre id_meta_institucional id_proceso_clave Descripcin Tabla que liga la meta con proceso Tipo integer integer Not Null Not Null Not Null Def Val Unique P/K Yes Yes

Tabla: public.monto Columnas Nombre monto Descripcin (none) Tipo numeric Not Null Def Val Unique P/K

Tabla: public.partida Columnas Nombre id_partida id_concepto partida dsc_partida nombre Descripcin (none) Tipo integer integer char(4) varchar varchar(200) Not Null Unique P/K Not Yes Null Yes Def Val

89

Tabla: public.partida_departamento Columnas Nombre id_departamento id_partida Descripcin (none) Tipo integer integer Not Null Not Null Not Null Def Val Unique P/K Yes Yes

Tabla: public.periodo_captura Columnas Nombre Not Null Unique P/K id_periodo_captura Not Yes integer Null Yes Descripcin: anio Descripcin: fecha_inicio Descripcin: fecha_fin Descripcin: estatus Descripcin: Descripcin Se define el periodo de captura tanto del pta como del poa. Tipo Def Val

Serial para la llave primaria Not integer Null Ao de captura date Fecha de inicio de captuta tanto PTA como POA. date Fecha fin de captuta tanto PTA como POA. Not integer Null Estatus del periodo, 1 es el periodo que se est capturando actualmente.

Tabla: public.periodo_seguimiento

90

Columnas Nombre Tipo integer id_periodo_seguimiento Not Null Unique P/K Not Yes Null Yes Def Val

periodo_seguimiento anio Descripcin (none)

varchar(50) numeric(4,0)

Tabla: public.personal Columnas Nombre rfc id_puesto id_institucion id_departamento nombre apellidos id_personal password blocked super_user email Descripcin (none) Tipo varchar(13) integer integer integer varchar(70) varchar(70) integer varchar(254) integer smallint varchar(100) Not Null Unique P/K Not Yes Null Def Val

Not Null

Yes Yes

Tabla: public.proceso_clave Columnas

91

Nombre id_proceso_clave

Tipo integer

Not Null Unique P/K Not Yes Null Yes

Def Val

id_proceso_estrategico proceso_clave clave_proceso_clave id_estructura_programatica Descripcin

integer varchar(100) char(5) integer

Tabla: public.proceso_estrategico Columnas Nombre id_proceso_estrategico Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

proceso_estrategico varchar(50) char(5) clave_proceso_estrategico Descripcin (none)

Tabla: public.programa_trabajo_anual Columnas Nombre id_meta_institucional id_institucion anio Tipo integer integer numeric(4,0) Not Null Not Null Not Null Not Null Def Val Unique P/K Yes Yes Yes

92

id_periodo_seguimiento id_meta_institucional_previa id_institucion_previa anio_previa porcentaje_programado cantidad meta_institucional_adaptada Descripcin Programa anual de trabajo

integer integer integer numeric(4,0) integer integer varchar

Tabla: public.puesto Columnas Nombre id_puesto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

id_puesto_jefe_inmediato integer puesto varchar id_tipo_puesto integer Descripcin: Identificador del tipo de puesto. puesto_abreviado varchar Descripcin: Descripcin abreviada del puesto. puesto_firma varchar Descripcin: Descripcin del puesto como aparecer en la firma, esto en los formatos del pta y poa.

Tabla: public.puesto_meta_nivel_jerarquico Columnas Nombre id_puesto id_meta_institucional Tipo integer integer Not Null Not Null Not Def Val Unique P/K Yes

93

id_institucion anio id_meta_nivel_jerarquico Descripcin

integer numeric(4,0) integer

Null Not Null Not Null Not Null

Yes Yes Yes Yes

Puesto metas del nivel jerrquico

Tabla: public.revisiones_metas Columnas Nombre id_revisiones Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

ano id_revision_congruencia id_revision_dir_area id_meta_institucional id_institucion anio fecha_revision_director_area fecha_autorizacion_congruencia observaciones varchar(500) Descripcin Revisiones meta numeric(4,0) integer integer integer integer numeric(4,0) date date

Tabla: public.seguimiento_pta Columnas Nombre Tipo Not Null Def Val Unique P/K

94

porcentaje_alcanzado Descripcin Seguimiento del PTA

numeric(3,2)

Tabla: public.seguimiento_revision Columnas Nombre id_revision Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

ano id_revision_congruencia id_estado_revision id_institucion id_revision_dir_area fecha_revision_congruencia fecha_revision_dir_area observaciones_congruencia entregado fecha_entrega observacion_dir_area Descripcin Seguimiento de revisin

numeric(4,0) integer integer integer integer date date varchar boolean date varchar(1024)

Tabla: public.tipo_institucion Columnas Nombre Tipo integer id_tipo_institucion tipo_institucion varchar(100) Not Null Unique P/K Not Yes Null Yes Def Val

95

Descripcin Tipo de institucin

Tabla: public.tipo_puesto Columnas Nombre id_tipo_puesto Tipo integer Not Null Unique P/K Not Yes Null Yes Def Val

Identificador del tipo de puesto. Descripcin: tipo_puesto Not Null Descripcin del tipo de puesto. varchar

Descripcin: Descripcin Tipos de puestos dentro de las instituciones.

Tabla: public.unidad Columnas Nombre id_unidad unidad Descripcin Unidades Tipo integer varchar(50) Not Null Not Null Def Val Unique P/K Yes Yes

Tabla: public.unidad_medida Columnas Nombre Tipo Not Null Unique P/K Def Val

96

integer id_unidad_medida unidad_medida varchar Descripcin Unidad de medida

Not Null

Yes Yes

97

Anexo B Manual de Instalacin Tener instalado los siguientes servicios Apache2(apt-get install apache2) Php5.2.4 o superior Php cliente y pear (Apt-get install php5 php5-cli php-pear) Manejador de base de Datos Postgresql (apt-get install postgresql8) Puede descargar e instalar Libreras y extensiones pero no van hacer requeridas en este proyecto(PHP-XML PHP-XMLRPC) Instalar Symfony y Crear el proyecto, copear las carpetas necesarias para que el proyecto que se encuentra en la maquina local o maquina donde se desarroll el proyecto a continuacin se muestra como instalar y crear el proyecto. Instalar Symfony Descargar Symfony des de la pgina oficial http://www.symfony-project.org/installation

98

Imagen 1: Pgina de Descargas de Symfony.

En el proyecto se trabaj con la versin Symfony 1.4, por lo tal descargremos la versin 1.4 En la columna donde se encuentra la tabla podr ver que dice Download

Imagen 2: Opciones de descarga de Symfony.

Existen dos archivos que nos permite descargar (Source, Sandbox) y dos formas de compresin, para el proyecto utilizaremos Source y como nos encontramos en Linux podemos descargar el archivo que est en .tgz Una vez descargado lo descomprimimos en la carpeta que queramos que est instalado Symfony y le damos los permisos necesarios para que se ejecute de modo usuario no de modo administrador root y listo termino la instalacin de Symfony.

99

Crear un proyecto Una vez que ya instalo Symfony, nos ubicamos en la carpeta donde crearemos el proyecto y crear una carpeta esta carpeta contendr todos los archivos del proyecto as que hay que dar los permisos 744, una vez creado hay que introducirnos en la carpeta y poner el siguiente comando. $ php /ruta donde se encuentra el symfony que descomprimimos/data/bin/symfony generate:project nombre del proyecto Las letras rojas son carpetas que ya contiene el paquete que descargamos La letra azul es el nombre del archivo el cual nos va permitir ejecutar diferentes acciones como es generate:Project que nos permite generar el proyecto para mostrar todas las acciones que podemos realizar solo es de poner el siguiente cdigo. $ php /ruta donde se encuentra el symfony que descomprimimos/data/bin/symfony Una vez que ya creamos el proyecto hay que crear las aplicaciones y seleccionar la seguridad que nos proporciona Symfony. $ php symfony generate:app escaping-strategy=on csrf-secret=UniqueSecret nombre de la aplicacin Si se fija una vez que se cre el proyecto ya no es necesario poner toda la ruta donde se encontraba symfony porque cuando se cre el proyecto symfony crea un archivo .bat con el mismo nombre symfony el cual nos permitir trabajar de una manera ms sencilla. Ya tenemos el proyecto la aplicacin ahora hay que crear los mdulos en este caso como tenemos elaborado el proyecto en la maquina local o donde se desarroll el proyecto solo es de copear y pegar dentro del mdulo. Recuerde configurar la conexin a la base de datos y copear las clases del proyecto que se encuentran en lib y el esquema as como generar el modelo con el comando.

100

$ php symfony doctrine:build-model Recuerde configurar un virtual host que apunte el directorio web si no, puede controlar el acceso por medio de .htaccess que lo direccione a la carpeta web y que prohba el acceso a las dems carpetas.

101

Anexo C Manual de Manual de operacin La aplicacin cuenta con un men el cual le permitir realizar diferentes acciones tan slo dndole clic(ver Imagen 3)

Imagen 3: Men de la Aplicacin

Una vez seleccionada la accin le mostrara una tabla la cual contiene varios dibujos que muestran la accin que puede realizar como modificar y eliminar tambin en la parte superior con tiene varias imgenes las cuales tienen diferentes acciones como crear nuevo registro y poder filtrar y/o ordenar (ver Imagen 4).

Imagen 4.- Acciones

102

Formulario el cual permite insertar un registro. (ver Imagen 5).

Imagen 5.- Insertar Registro

Formulario que permite modificar un registro. (ver Imagen 6).

Imagen 6.- Modificar un registro

103

Вам также может понравиться