UNIVERSIDAD MAYOR DE SAN ANDRES FACULTAD DE CIENCIAS PURAS Y NATURALES CARRERA DE INFORMATICA
PROYECTO DE GRADO
“SISTEMA DE MONITOREO Y CONTROL PARA EL PROGRAMA TOMANDO DECISIONES – SAVE THE CHILDREN”
PARA OPTAR AL TITULO DE LICENCIATURA EN INFORMATICA MENCION: INGENIERIA DE SISTEMAS INFORMATICOS
POSTULANTE : LADY GONZALES QUISPE TUTOR
: Lic. EFRAIN SILVA SANCHEZ
REVISOR
: Lic. CARLOS MULLISACA CHOQUE
LA PAZ – BOLIVIA 2006
1
Dedicatoria:
A mis queridos papás Domingo y Pacesa. A mis hermanos Fanny, Mery, Nelly, Iván, Renán y Rosmy.
2
Agradecimientos A nuestro Dios Todopoderoso que con su amor y poder siempre está a nuestro lado, gracias Dios por haberme permitido concluir con esta etapa de mi vida. Al Lic. Efraín Silva Sánchez, por sus consejos y por guiarme a lo largo del desarrollo de este Proyecto de Grado. Al Lic. Carlos Mullisaca Choque, por brindarme su apoyo y su comprensión en todo aspecto. A Jason Ryer y Seth Hammock por haber supervisado este trabajo, por aportar con sus conocimientos, gracias por su sencillez, por su paciencia y apoyo incondicional. A mis queridos papás Domingo Gonzales y Pacesa Quispe de Gonzales por sus valiosos consejos, por apoyarme en todo momento y por darme siempre el empuje y el ánimo para que pueda concluir mis estudios. A mis hermanos Fanny, Mery, Nelly, Iván, Renán, Rosmy, a toda mi querida familia porque siempre están dispuestos a apoyarme en todo momento. A Gustavito, Jhonny, Yovana, Rubén, Marcelo, Juan porque me incentivaron de alguna manera u otra a continuar con mis estudios y a culminar el mismo.
3
RESUMEN Con el avanzar de los tiempos, la tecnología siempre ha presentado diferentes opciones para contribuir en el continuo aprendizaje e incorporar nuevos recursos en los ambientes de enseñanza.
Es una herramienta automática, dinámica y de fácil manejo que sirve de apoyo al proceso de capacitación de los adolescentes (alumnos) haciendo uso de las tecnologías informáticas aplicadas al área educativa. Brindando capacitación en el manejo de la computadora para incrementar el alfabetismo tecnológico accediendo así a mejores oportunidades de vida.
El “SISTEMA DE MONITOREO Y CONTROL PARA EL PROGRAMA TOMANDO DECISIONES – SAVE THE CHILDREN” fue desarrollado con el fin de contribuir con
los objetivos planteados, teniendo como propósito descubrir fortalezas y/o debilidades para establecer líneas de acción,
tomar decisiones de carácter
estratégico.
Se ve la necesidad de que el Sistema desarrollado sirva como puerta de entrada a un conjunto de recursos existentes en Save the Children, con el objetivo de brindar un servicio de difusión de información que permita crear un nuevo canal de aprendizaje
Es a través de los capítulos que se pretende explicar todos los detalles con respecto a la definición de los objetivos del sistema, la definición de un marco de trabajo basado en métodos y procesos recomendados (Craig, Larman), método de ingeniería de software orientado a objetos, herramienta UML (Lenguaje
de
Modelado Unificado).
4
INDICE CAPITULO 1 INTRODUCCION
1.1
INTRODUCCION
1
1.2
ANTECEDENTES
2
1.3
PLANTEAMIENTO DEL PROBLEMA
2
1.4
OBJETIVOS
3
1.4.1. OBJETIVO GENERAL
3
1.4.2. OBJETIVOS ESPECÍFICOS
3
JUSTIFICACION
4
1.5.1
JUSTIFICACION ECONOMICA
4
1.5.2
JUSTIFICACION TECNICA
4
1.5.3
JUSTIFICACION SOCIAL
4
1.5.4
JUSTIFICACION OPERACIONAL
4
1.5
1.6
METODOLOGIA A APLICAR
5
1.7
ALCANCES
5
CAPITULO 2 MARCO TEORICO
2.1 CONCEPT OS Y TERMINOS WEB
7
2.1.1
INTERNET
7
2.1.2
INTRANET
7
2.1.3
WORLD WIDE WEB (WWW)
7
2.1.4
PAGINA WEB
8
2.1.5
SITIO WEB
8
2.1.6
HTML
9
2.2 EDUCACIO N EN LINEA / E-LEARNING
9
2.3 METODOL OGÍA Y TECNICAS A UTILIZAR
10
2.3.1
INGENIERIA DEL SOFTWARE ORIENTADO A OBJETOS
10
2.3.2
EL PARADIGMA ORIENTADO A OBJETOS
11
5
2.4
2.3.3
MODELO LINEAL SECUENCIAL
12
2.3.4
MODELO DE ANALISIS
12
2.3.5
PLANIFICACION TEMPORAL Y GRAFICOS DE TIEMPO
12
2.3.6
INGENIERIA DEL SOFTWARE.
12
2.3.7
ARQUITECTURA CLIENTE / SERVIDOR
13
METRICAS DEL SOFTWARE
13
2.4.1
CALIDAD DEL SOFTWARE
14
2.4.2
ESTRUCTURA PARA LAS METRICAS DEL SOFTWARE
14
2.4.3
FACTORES DE CALIDAD ISO 9126
16
2.4.4
METRICAS ORIENTADAS A LA FUNCION: PUNTO 17 FUNCION
2.5
LENGUAJE DE MODELAMIENTO UNIFICADO (UML) 2.5.1
DIAGRAMAS
DE
ESTRUCTURAS
ESTATICAS
19 Y 19
DINAMICAS DEL UML
2.6
2.5.2
MODELO DE CLASES
19
2.5.3
DIAGRAMA DE CASOS DE USO
20
2.5.4
DIAGRAMA DE SECUENCIA
23
2.5.5
DIAGRAMA DE COLABORACION
23
2.5.6
DIAGRAMA DE ESTADOS
24
TECNOLOGIAS WEB
24
2.6.1
APACHE
24
2.6.2
PHP
24
2.6.3
MYSQL
26
CAPITULO 3 DISEÑO Y DESARROLLO DEL SISTEMA DE MONITOREO Y CONTROL
3.1
ANALISIS INSTITUCIONAL “SAVE THE CHILDREN”
3.2
PROYECTO
TICS
EN
EL
“PROGRAMA
27
TOMANDO 32
DECISIONES”
3.3
ESPECIFICACION DE LOS REQUERIMIENTOS
35
3.3.1
FUNCIONES DEL SISTEMA
37
3.3.2
IDENTIFICACION DE ACTORES Y CASOS DE USO
39
6
3.3.3
3.4
CASOS DE USO DE ALTO NIVEL
39
FASE DE CONSTRUCCION: ANALISIS
49
3.4.1
CONSTRUCCION DEL MODELO CONCEPTUAL
46
3.4.2
CONSTRUCCION DEL DIAGRAMA DE SECUENCIA DEL 46 SISTEMA
3.5
FASE DE CONSTRUCCION: DISEÑO
51
3.6
DIAGRAMA DE COLABORACION
52
3.7
DIAGRAMAS DE CLASES
52
3.8
TABLAS DEL SISTEMA
53
3.9
FASE DE IMPLEMENTACION
54
3.9.1
54
DISEÑO INTERFAZ DEL SISTEMA
3.10 REQUERIMIENTOS DEL SISTEMA
58
3.10.1 REQUERIMIENTOS DE HARDWARE
58
3.10.2 REQUERIMIENTOS DE SOFTWARE
58
CAPITULO 4 PRUEBAS Y EVALUACION DEL SISTEMA
4.1
MEDIDAS DE CALIDAD
60
4.2
CALIDAD DEL SOFTWARE
60
4.3
MÉTRICAS DE CALIDAD
60
4.4
FUNCIONALIDAD
61
4.4.1
61
PUNTO DE FUNCION
4.5
CONFIABILIDAD
68
4.6
PRUEBA DE SOFTWARE
69
4.7
LA MANTENIBILIDAD
69
4.8
SEGURIDAD DEL SISTEMA
70
4.9
ASPECTOS PREVENTIVOS
70
4.10 PORTABILIDAD
CONCLUSIONES
70
72
7
RECOMENDACIONES
73
BIBLIOGRAFIA
74
ANEXOS
75
8
Capítulo 1 INTRODUCCION En este capítulo se da a conocer algunos antecedentes que dieron origen al inicio del presente Proyecto de Grado, así también se define y analiza los problemas a encarar, objetivos y metas a alcanzar. 1.4 INTRODUCCION La constante capacitación es un requerimiento de las sociedades actuales. Con todas las presiones de día a día, utilizar Internet para capacitarnos no es una moda sino una herramienta que nos facilitará esta constante actualización. Con el avanzar de los tiempos, la tecnología siempre ha presentado diferentes opciones para compartir información, desde material impreso, radioconferencias, teleconferencias, videos e incluso CD-ROMs apoyados por correspondencia postal y llamadas telefónicas. Con Internet se ha dado un nuevo paso en el tema de la educación en línea convirtiéndola en una experiencia virtual. E-Learning es la forma de designar a este tipo de educación que se brinda a través de Internet. Los Sistemas Informáticos ocupan un lugar especial dentro de una organización ya que hacen posible la funcionalidad de las oficinas, nos ayudan a poner en marcha mecanismos de control y seguimiento, lo que constituye una forma de resolver problemas. Asimismo, las Bases de Datos, Redes Informáticas y fundamentalmente el Internet facilitan el acceso a la información permitiendo además la comunicación sin barreras en cuanto a distancias geográficas se refiere. El presente proyecto de grado considera como contexto de trabajo a “SAVE THE CHILDREN”, que al ser una organización que tiene por misión crear cambios positivos y duraderos en la vida de los niños y niñas menos favorecidos(as) y sus familias, a través de proyectos sostenibles con participación de la comunidad, 1
maneja grandes volúmenes de información acerca de las actividades de las personas que participan en estos programas, siendo este el motivo por el cual es necesario la implementación de un Sistema de Monitoreo y Control. Entendiendo por Monitoreo como un proceso continuo de recolección y análisis de datos cualitativos y cuantitativos, con base en los objetivos planteados en un programa o proyecto, que tiene como propósito descubrir fortalezas y/o debilidades para
establecer
líneas
de
acción,
permitiendo
brindar
correcciones
y
reorientaciones técnicas en la ejecución. Y el Control un conjunto de principios y normas que garantizan la adecuación entre datos, proceso e información, a fin de que los informes obtenidos reúnan las características demandadas por sus usuarios. 1.5 ANTECEDENTES SAVE THE CHILDREN Bolivia viene trabajando en el área de capacitación integral de adolescentes desde hace 8 años y ha desarrollado un amplio inventario de material educativo especializado. En la ciudad de Oruro ha operado por 5 años en el Centro de Capacitación Juvenil "Punchay Wasi" (La Casa del Amanecer) por el que pasaron mas de 2000 adolescentes de ambos sexos adquiriendo competencias referidas a Salud Sexual y Reproductiva, en complementación a la Educación Formal, Orientación Vocacional, la cual tiene componentes en educación de Tecnologías de Información y Comunicación (TICs). El programa completo de capacitación se denomina "Tomando Decisiones" y últimamente se ha extendido a la ciudad de El Alto donde, desde hace 3 años se está implementando con el añadido de un componente de oportunidades económicas para responder a la demanda de formación laboral de los jóvenes.
2
1.6 PLANTEAMIENTO DEL PROBLEMA El PROGRAMA TOMANDO DECISIONES en Save the Children no cuenta con un Sistema Informático mediante el cual se pueda realizar el monitoreo, seguimiento adecuado a cada uno de los participantes. Por otro lado la información dispersa dificulta su integración para emitir informes, realizar consultas, reportes, etc. Por lo tanto el problema es que actualmente el Programa Tomando Decisiones no cuenta con un Sistema de Información que permita agilizar el registro, evaluación, control y seguimiento a cada uno de los participantes. El cual facilite además las consultas, reportes y estadísticas. En consecuencia para resolver esta problemática se considera desarrollar un Sistema de monitoreo y control que permita verificar sistemáticamente que las actividades o procesos planificados se llevan a cabo según lo esperado, si se está progresando en el logro de los resultados planificados y además brinde información, informes y estadísticas de manera eficaz y oportuna. 1.4 OBJETIVOS 1.4.1. Objetivo General Desarrollar un Sistema de Monitoreo y Control para el Programa Tomando Decisiones en Save the Children que permita manejar información precisa y oportuna para la toma de decisiones. 1.4.2. Objetivos Específicos • Analizar la operativa actual tanto de registro, evaluación y avance de los participantes para así plantear una operativa adecuada para resolver los problemas existentes. • Diseñar una Base de datos de acuerdo a los requerimientos y al análisis efectuado. 3
• Diseñar módulos de inscripción, asistencia, actividades, consultas, reportes y estadísticas. • Brindar a usuarios internos y externos información acerca de los resultados de las evaluaciones de una manera accesible mediante consultas y reportes. • Implementar y definir políticas de seguridad para el acceso al sistema de información y para el resguardo de la información. 1.5 JUSTIFICACIÓN 1.5.5 Justificación Económica El
sistema
automatizado
de
monitoreo,
aparte
de
ahorrar
tiempo,
es
económicamente justificable puesto que se aprovechara las inversiones realizadas en cuanto a equipos computacionales, redes, etc. 1.5.6 Justificación Técnica La modernización en el manejo de la información es indispensable para poder mejorar la eficiencia de las actividades que se realizan. Save the Children cuenta con los recursos necesarios para implementar el sistema de Información que se plantea como solución a los problemas detectados. Ya que cuenta con equipos computacionales de distintas características como ser: computadoras, cableado de red, etc. 1.5.7 Justificación Social Desde el punto de vista social también se justifica, siendo los participantes (adolescentes) usuarios externos los más beneficiados ya que permitirá agilizar las actividades, y mediante el módulo de consultas ellos también podrán hacer un seguimiento de su avance personal.
4
1.5.8 Justificación Operacional De manera operativa el actual sistema analizado que se desarrolla manualmente presenta deficiencias, este mecanismo puede ser mejorado con el nuevo sistema. Beneficiando así en gran manera al personal del programa como a cada uno de los participantes. 1. 6 METODOLOGIA A APLICAR Durante el desarrollo del sistema utilizaremos el ciclo de vida del desarrollo de sistemas. La metodología a usar para el análisis y diseño es la Metodología Orientado a Objetos por las alternativas propuestas. De manera específica se hará uso de UML (Lenguaje Unificado para la construcción de modelos). UML introduce nuevos diagramas que representa una visión dinámica del sistema. En cuanto al diseño utilizaremos una metodología de Diseño General y Detallado, poniendo énfasis en el almacenamiento de los datos con los siguientes objetivos. °
Integridad de datos
°
Disponibilidad de datos
°
Recuperación eficiente de los datos
Para el desarrollo del software se utilizará los métodos y técnicas de programación PHP, lenguaje de programación usado generalmente para la creación de contenido para sitios web. Para la evaluación del proyecto haremos uso de la matriz del Marco Lógico.
5
1.7 ALCANCES El presente trabajo contempla el Análisis, Diseño e implementación del Sistema de Monitoreo y Control Vía Web. Los alcances del sistema a nivel operativo y de sistema son: •
Mejorar el control y seguimiento del avance de los alumnos.
•
Manejo de datos de los talleres a nivel de alumnos y resultados.
•
Documentación del sistema.
•
Elaboración de reportes de alumnos, notas, datos y resultados de los talleres.
•
Elaboración de manuales de usuario en los diferentes módulos del sistema (software).
•
Información compartida.
La realización de distintos módulos como ser: Módulos de inscripción, asistencia, actividades, consultas, reportes, estadísticas, y la puesta en marcha del nuevo sistema en Save The Children.
6
Capítulo 2 MARCO TEORICO En este capítulo daremos a conocer fundamentos teóricos para la realización del presente proyecto. Definiremos conceptos, estableceremos metodología, técnicas y herramientas adecuadas a usar en el desarrollo del Sistema Informático. 2.4 CONCEPT OS Y TERMINOS WEB 2.4.1 Internet Internet es el conjunto de redes de computadoras que se encuentran interconectadas alrededor del mundo. A través de Internet podemos realizar muchas actividades como enviar correo electrónico, leer noticias en línea, publicar y descargar archivos en servidores de almacenamiento e incluso realizar negocios. Su uso se popularizó a partir de la creación de la World Wide Web (www). Actualmente es un espacio público utilizado por millones de personas en todo el mundo como herramienta de comunicación e información. 2.4.2 Intranet Es una red privada dentro de una compañía u organización que utiliza el mismo tipo de software usado en el Internet público, pero que es sólo para uso interno, muchas veces este término se usa para referirse al componente más visible y popular, que es el sitio web interno. Las intranets se construyen sobre las mismas bases, protocolos y tecnologías sobre las que está construida Internet. 2.4.3 World Wide Web (WWW) La World Wide Web (del inglés, Telaraña Mundial), la Web o WWW, es un sistema de hipertexto que funciona sobre Internet. Para ver la información se utiliza una aplicación llamada navegador web para extraer elementos de información
7
(llamados "documentos" o "páginas web") de los servidores web (o "sitios") y mostrarlos en la pantalla del usuario. Es un sistema de intercambio de información capaz de manipular varios tipos de medios, basado en el protocolo HTTP. La característica principal del Worl Wide es que los diferentes sitios, identificados por un URL único, pueden referirse de forma cruzada por elementos de texto "activo" conocidos como hipervínculos o enlaces. El World Wide Web es una de las bases de Internet. El www responde a un modelo “cliente servidor”. Se trata de un paradigma de división del trabajo informático en el que las tareas se reparten entre un número de clientes que efectúan peticiones de servicios de acuerdo con un protocolo, y un número de servidores que responden a estas peticiones. 2.4.4 Página Web Documento básico de la WWW, que utiliza el hipertexto como código fuente y además de contener texto, pueden contener otros elementos multimedia como ser imágenes, enlaces, sonidos, videos, etc. (incluyendo enlaces que permiten acceder a otras páginas). Una página de Web es un archivo escrito en lenguaje HTML, publicada a través de un servidor de Internet, que proporciona información o servicios, a determinada comunidad en el mundo, o a todo el mundo. 2.4.5 Sitio Web Es un conjunto de archivos electrónicos y páginas web referentes a un tema en particular, que incluye una página inicial de bienvenida, generalmente llamada home page, con un nombre de dominio y dirección en Internet específicos. Los sitios web pueden ser de diversos géneros, destacando los sitios de negocios, servicio, comercio electrónico en línea, imagen corporativa, entretenimiento y sitios informativos.
8
2.4.6 Html Siglas de "Hyper Text Markup Language" o "Lenguaje para marcado de hipertexto". Más claro aún, se trata de un lenguaje para estructurar documentos a partir de texto en World Wide Web. Este lenguaje se basa en tags (instrucciones que le dicen al texto como deben mostrarse) y atributos (parámetros que dan valor al tag). En el se construyen, guardan, y viajan las páginas en la WWW. Este formato permite la inclusión de vínculos o enlaces (hiper texto) entre los diferentes documentos (imágenes o texto) de una misma página, o entre páginas distintas. 2.5 EDUCACIO N EN LINEA / E-Learning La constante capacitación es un requerimiento de las sociedades actuales. Con todas las presiones de día a día, utilizar Internet para capacitarnos no es una moda sino una herramienta que nos facilitará esta constante actualización. Desde la revolución industrial, la educación a distancia surge para facilitar la especialización del personal. Y así con el avanzar de los tiempos, la tecnología siempre ha presentado diferentes opciones para compartir información, desde material impreso, radioconferencias, teleconferencias, videos e incluso CD-ROMs apoyados por correspondencia postal y llamadas telefónicas. Con Internet se ha dado un nuevo paso en el tema de la educación a distancia convirtiéndola en una experiencia virtual. E-Learning es la forma de designar a este tipo de educación que se brinda a través de Internet. En un entorno de e-Learning la entidad educativa debe proporcionar información ya sea de texto, multimedia, video o audio a través de un sitio web normalmente de acceso restringido. Al inicio se valida a cada usuario para ingresar y esto permite mantener reportes de sus avances en los ejercicios y material del curso. El soporte de parte de los instructores se da por medio de correo electrónico, chats de texto y vos, mensajeros, foros de discusión o incluso videoconferencias. Existe gran variedad de plataformas en el mercado que ofrecen todo este conjunto de
9
herramientas, dejando la libertad al instructor de organizarlas según su preferencia para el curso. Las ventajas principales que ofrece la educación virtual son la reducción de costos para dar cursos a más número de participantes que lo tradicional en un aula de clases, ahorro en seminarios y capacitación de empresas muy descentralizadas como los bancos y la flexibilidad de horarios, factor de suma importancia pues permite al estudiante calendarizar el curso de la mejor forma posible. Otra interesante ventaja es la interacción que los cursos generan despertando el interés del estudiante y ayudando a aquellos tímidos a ser de los más activos en clases por medio de foros de discusión y otros medios de participación. La variedad de programas educativos es inmensa, así que la recomendación va hacia analizar las diferentes opciones antes de decidirse por alguna en particular. Ver el peso de la institución que está detrás de cada curso o programa de estudios y las herramientas que utilizan para los cursos virtuales. Estamos viviendo el desarrollo de un nuevo estilo de enseñanza que facilitará que más personas sigan capacitándose. Es importante recalcar la importancia que las herramientas de e-Learning tienen para las instituciones educativas que ya tuvieron que dar su primer paso en un entorno donde la competencia se vuelve más globalizada y especializada. Y esto nos da mejores alternativas a los usuarios de Internet que podemos aprovechar para siempre estar a la vanguardia en educación, e-learning es una herramienta muy poderosa, que facilita la capacitación. Es importante reconocer que los profesionales en el campo que se labore deben estar al día en las actualizaciones y no
limitarse a la educación tradicional si no
que se debe buscar otras alternativas y estar al día en los avances tecnológicos. 2.7 METODOLOGÍA Y TÉCNICAS A UTILIZAR 2.7.1 Ingeniería del software Orientado a Objetos La ingeniería del software orientado a objetos sigue los mismos pasos de la ingeniería de software convencional, análisis, diseño, implementación y pruebas. 10
•
Análisis, consiste en la investigación del problema, su propósito es definir todas las clases que son relevantes al problema a resolver, las operaciones y atributos asociados a ellas, dentro del dominio del problema.
•
Diseño, transforma el modelo de análisis definiendo los objetos lógicos del software: abstracción, ocultamiento de información, independencia funcional y modularidad que finalmente serán implementados en un lenguaje de programación.
•
Implementación y pruebas, se implementan los componentes de diseño, para luego realizar las pruebas en niveles diferentes. 2.7.2 El Paradigma Orientado a Objetos
La orientación a objetos como medio para la generación de programas, tiene varias ventajas. Fomenta una metodología basada en componentes para el desarrollo de software, de manera que primero se genera un sistema mediante un conjunto de objetos, luego podrá ampliar el sistema agregándole funcionalidad a los componentes que ya había generado o agregándole nuevos componentes, y finalmente podrá volver a utilizar los objetos que generó para el sistema cuando cree uno nuevo, con lo cual reducirá sustancialmente el tiempo de desarrollo de un sistema. El software orientado a objetos es más fácil de mantener debido a que su estructura es inherentemente poco acoplada. Esto lleva a menores efectos colaterales cuando se debe hacer cambios y provoca menos frustración en el ingeniero del software y en el cliente. Además, los sistemas orientados a objetos son más fáciles de adaptar y más fácilmente escalables pueden crearse grandes sistemas ensamblando subsistemas reutilizables. [Pressman, 2003]. Para construir un sistema software es necesario conocer un lenguaje de programación, pero con eso no basta. Si se quiere que el sistema sea robusto y mantenible es necesario que el problema sea analizado y la solución sea
11
cuidadosamente diseñada. Se debe construir un proceso robusto, que incluya las actividades principales. 2.7.3 Modelo Lineal Secuencial Llamado “ciclo de vida básico” o “modelado en cascada” sugiere un enfoque sistemático, secuencial, para el desarrollo del software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento. El modelo lineal secuencial comprende las siguientes actividades: Ingeniería y modelado de Sistemas/Información, Análisis de los requisitos del software, Diseño, Generación de Código, Pruebas y mantenimiento. [Pressman, 2003]. 2.7.4 Modelo de Análisis El modelo de análisis debe lograr tres objetivos primarios: (1) describir lo que requiere el cliente, (2) establecer una base para la creación de un diseño de software, y (3) definir un conjunto de requisitos que se pueda validar una vez que se construye el software. 2.7.5 Planificación temporal y Gráficos de tiempo La planificación temporal de un proyecto se debería realizar con la ayuda de una herramienta como ser: gráficos de tiempo, para así poder mejorar la calendarización, si es necesario, y revisar el avance (seguimiento) una vez que el taller se realiza. 2.7.6 Ingeniería del Software. La Ingeniería del Software es una tecnología multicapa: proceso, métodos y herramientas. A fin de obtener software que sea fiable y que funcione eficientemente sobre máquinas reales. La ingeniería es el análisis, diseño, construcción, verificación, y gestión de entidades técnicas (o sociales) [Pressman, 2003].
12
2.7.7 Arquitectura Cliente / Servidor La arquitectura cliente/servidor tres capas, permite segmentar las aplicaciones de una manera sistemática y distribuida a lo largo de la red. La tecnología Cliente/Servidor (C/S) puede definirse como un conjunto de elementos de software y hardware, entre los cuales se destacan tres tecnologías: el Cliente, el Servidor y la Red. •
El Cliente, es el elemento encargado de interactuar directamente con el usuario final. El cliente maneja la presentación de los datos, realiza la captura y la validación de los mismos, genera consultas, ejecuta operaciones y recibe información precedente del Servidor o de otro cliente.
•
El Servidor, es el encargado de satisfacer los requerimientos del Cliente. Procesa las consultas del cliente, envía, recibe y almacena información, provee seguridad y control de acceso. Existen varias clases de servidores: de datos, de correo electrónico, de imágenes, de impresión, entre otros. Los servidores deben contar con elementos que gestionen los datos, esto se lleva acabo mediante un DBMS (Sistema Manejador de Base de Datos), que permita una transparencia de acceso, de distribución y de integridad a todas las transacciones de la base de datos.
•
La Red, es el elemento encargado de realizar la transmisión de los requerimientos del Cliente al Servidor y del Servidor al Cliente. También controla la transmisión de datos en los diferentes servidores que conformen el ambiente. La red debe proveer mucha seguridad de tal forma como si estuviera trabajando de una manera local. 2.8 MÉTRICAS DEL SOFTWARE
Tradicionalmente se emplean medidas para entender mejor los atributos de los modelos que se crean, pero fundamentalmente se emplean las medidas para valorar la calidad de los productos de ingeniería o los sistemas que se construyen.
13
Las métricas técnicas del software proporcionan una manera sistemática de valorar la calidad basándose en un conjunto de "reglas claramente definidas". Proporcionan al ingeniero del software una visión interna en el acto en lugar de una visión a posteriori, permitiéndole descubrir y corregir problemas potenciales antes que se convierta en defectos catastróficos. [Pressman, 2003]. 2.8.1 Calidad del Software Un software de alta calidad es una de las metas más importantes en el desarrollo de un producto software. La calidad del software hace hincapié en la concordancia con los requisitos funcionales y de rendimiento explícitamente establecido, los estándares de desarrollo explícitamente documentados y las características implícitas que se esperan de todo software desarrollado profesionalmente. [Pressman, 2003]. Esta definición hace énfasis en los siguientes tres puntos: •
Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad.
•
Unos estándares específicos definen un conjunto de criterios de desarrollo que guían la manera en que se hace la ingeniería del software. Si no se siguen los criterios, habrá seguramente poca calidad.
•
Existe un conjunto de requisitos implícitos que ha menudo no se nombran. Si el software cumple con sus requisitos explícitos pero falla en los implícitos, la calidad del software no será fiable.
La calidad del software es una compleja mezcla de factores que variarán a través de diferentes aplicaciones y según los clientes que las pidan. 2.8.2 Estructura para las métricas del Software La medición asigna números o símbolos a atributos de entidades en el mundo real. Para conseguirlo es necesario un modelo de medición que comprenda un conjunto consistente de reglas. [Pressman, 2003].
14
Existe la necesidad de medir y controlar la complejidad del software, es bastante difícil obtener un solo valor para representar una "métrica de calidad", sin embargo es posible desarrollar medidas de diferentes atributos internos del programa como ser: modularidad efectiva, independencia funcional y otros atributos. Estas métricas y medidas obtenidas pueden utilizarse como indicadores independientes de la calidad de los modelos de análisis y diseño. Los principios básicos de la medición, sugeridos por Roche, pueden caracterizarse mediante cinco actividades: •
Formulación. Obtención de medidas y métricas del software apropiadas para la representación del software en cuestión.
•
Colección. Mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas.
•
Análisis. Cálculo de las métricas y la aplicación de herramientas matemáticas.
•
Interpretación. Evaluación de los resultados de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la representación.
•
Realimentación. Recomendaciones obtenidas de la interpretación de métricas técnicas transmitidas al equipo software.
Ejiogu define un conjunto de atributos que deberían acompañar a las métricas efectivas del software. La métrica obtenida y las medidas que conducen a ello deberían ser: •
Simple y fácil de calcular.
•
Empírica e intuitivamente persuasiva.
•
Consistente y objetiva.
•
Consistente en el empleo de unidades y tamaños.
•
Independiente del lenguaje de programación.
•
Un eficaz mecanismo para la realimentación de calidad.
15
2.8.3 Factores de calidad ISO 9126 El estándar ISO 9126 ha sido el desarrollado en un intento de identificar los atributos clave de calidad para el software. El estándar identifica seis atributos clave de calidad [Pressman, 2003]. •
Funcionalidad
El grado en que el software satisface las necesidades indicadas por los siguientes subatributos: idoneidad, corrección, interoperatividad, conformidad y seguridad. •
Confiabilidad
Cantidad de tiempo que el software esta disponible para su uso. Esta referido por los siguientes subatributos: madures, tolerancia a fallos y facilidad de recuperación. •
Usabilidad
Grado en que el software es fácil de usar. Viene reflejado por lo siguientes subatributos: facilidad de comprensión, facilidad de aprendizaje y operatividad [Pressman, 2003]. •
Eficiencia
Grado en que el software hace óptimo el uso de los recursos del sistema. Esta indicado por los siguientes subatributos: tiempo de uso y recursos utilizados. •
Facilidad de mantenimiento
La facilidad con que una modificación puede ser realizada. Esta indicada por los siguientes subatributos: facilidad de análisis, facilidad de cambio, estabilidad y facilidad de prueba. •
Portabilidad
La facilidad con que el software puede ser llevado de un entorno a otro. Esta referido por los siguientes subatributos: 16
Facilidad de instalación, facilidad de ajuste, facilidad de adaptación al cambio. 2.8.4 Métricas Orientadas a la Función: Punto Función Las métricas del software orientadas a la función utilizan una medida de la funcionalidad entregada por la aplicación como valor de normalización. Ya que la funcionalidad no se puede medir directamente, se debe derivar indirectamente mediante otras medidas directas. [Pressman, 2003]. Las métricas orientadas a la función fueron propuestas por Albretch [ALB79], quien sugirió una medida llamada Punto de Función. Los puntos de función se derivan con una relación empírica según las medidas contables (directas) del dominio de información del software y las evaluaciones de la complejidad del software. Los puntos de función se calculan completando la tabla de la Figura 2.1. Se determinan cinco características de dominios de información y se proporciona las cuentas en la posición apropiada de la tabla.
Factor de ponderación Parámetros de medición
Cuenta
Simple
Medio
Complejo
Número de entradas de usuario
x
3
4
6
=
Número de salidas de usuario
x
4
5
7
=
Número de peticiones de usuario
x
3
4
6
=
Número de archivos
x
7
10
15
=
Número de interfaces externas
x
5
7
10
=
Cuenta Total
Figura 2.1
17
Los valores de los dominios de información se definen de la forma siguiente: •
Número de entradas de usuario. Se cuenta cada entrada de usuario que proporciona diferentes datos orientados a la aplicación. Las entradas se deberían diferenciar de las peticiones, las cuales se cuentan de forma separada.
•
Número de salidas de usuario. Se cuenta cada salida que proporciona al usuario información orientada a la aplicación. En este contexto la salida se refiere a informes, pantallas, mensajes de error, etc.
•
Número de peticiones de usuario. Una petición se define como una entrada interactiva que produce la generación de alguna respuesta del software inmediata en forma de salida interactiva.
•
Número de archivos. Se cuenta cada archivo maestro lógico (esto es, un grupo lógico de datos que puede ser parte de una gran base de datos o un archivo independiente).
•
Número de interfaces externas. Se cuentan todas las interfaces legibles por la máquina (por ejemplo: archivos de datos de cinta o disco) que se utilizan para transmitir información a otro sistema.
Una vez que se han recopilado los datos anteriores, a la cuenta se asocia un valor de complejidad. Para calcular puntos de función (PF), se utiliza la relación siguiente:
PF = cuenta total x [0.65 + 0.01 x Σ(Fi)] Donde: •
cuenta total es la suma de todas las entradas PF obtenidas en la Figura 2.1
•
0.65: representa la confiabilidad del proyecto, es un valor en porcentaje estándar, tomado de entre 1% y 100%. 18
•
0.01: es el error mínimo aceptable de la complejidad.
•
Fi (i=1 a 14) son los valores de ajuste de la complejidad. 2.9 LENGUAJE DE MODELAMIENTO UNIFICADO (UML)
El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reusables [Larman, 2000]. El UML es un lenguaje gráfico que permite modelar, construir, visualizar y documentar sistemas orientado a objetos. 2.9.1 Diagramas de Estructuras Estáticas y Dinámicas del UML •
Diagramas de Estructura Estática: Engloba tanto al Modelo Conceptual de la fase de Análisis como al diagrama de clases de la fase de Diseño. Ambos son distintos conceptualmente porque el primero modela elementos del dominio y el segundo presenta los elementos de la solución software. Sin embargo, ambos comparten la misma notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos.
•
Diagramas de Estructura Dinámica: Muestran el cambio progresivo. Entre ellos están los diagramas de: casos de uso, estados, secuencias, actividades y colaboraciones. 2.9.2 Modelo de Clases
Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento.
19
Un diagrama de clases esta compuesto por los siguientes elementos: •
Clase: atributos, métodos y visibilidad.
•
Relaciones: Herencia, Composición, Agregación, Asociación y Uso.
Clase Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.). En UML, una clase es representada por un rectángulo que posee tres divisiones: En donde: •
Superior: Contiene el nombre de la Clase
•
Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).
•
Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).
Figura 2.1 Representación de una clase
2.5.2. Diagrama de Casos de uso Un Diagrama de Casos de Uso muestra la relación entre los actores y los casos de uso del sistema. Representa la funcionalidad que ofrece el sistema en lo que se 20
refiere a su interacción externa. En el diagrama de casos de uso se representa también el sistema como una caja rectangular con el nombre en su interior. Los casos de uso están en el interior de la caja del sistema, y los actores fuera, y cada actor está unido a los casos de uso en los que participa mediante una línea [Larman, 2000]. Elementos que intervienen en un Diagrama de Casos de Uso: Los elementos que aparecen en un Diagrama de Casos de Uso son: actores, casos de uso y relaciones entre casos de uso. •
Actores
Un actor es algo con comportamiento, como una persona (identificada por un rol), un sistema informatizado u organización, y que realiza algún tipo de interacción con el sistema. Una definición previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.
Figura 2.2 Representación de un actor
•
Casos de Uso
Un caso de uso es una descripción de la secuencia de interacciones que se producen entre un actor y el sistema, cuando el actor usa el sistema para llevar a cabo una tarea específica. Expresa una unidad coherente de funcionalidad, y se
21
representa en el Diagrama de Casos de Uso mediante una elipse con el nombre del caso de uso en su interior. El nombre del caso de uso debe reflejar la tarea específica que el actor desea llevar a cabo usando el sistema. Un caso de uso es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.
Figura 2.3 Representación de caso de uso
•
Relaciones
Un caso de uso, en principio describe una tarea que tiene un sentido completo para el usuario. Sin embargo, en ocasiones es útil para describir una interacción con un alcance menor como caso de uso. Relaciones entre casos de uso: •
Asociación
Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple. •
Dependencia o Instanciación
Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada. •
Generalización
Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia
22
(<<extends>>). Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores). extends: (extiende) Se recomienda utilizar cuando un caso de uso es similar a otro (características). uses: (usa) Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica. Cuando un caso de uso utiliza a otro. De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde esta la duda clásica de usar o heredar. 2.9.3 Diagrama de Secuencia Muestra una interacción ordenada según la secuencia temporal de eventos. En particular, muestra los objetos participantes en la interacción y los mensajes que intercambian ordenados según su secuencia en el tiempo. El eje vertical representa el tiempo y en el eje horizontal se colocan los objetos y actores participantes en la interacción, sin un orden prefijado. Cada objeto o actor tiene una línea vertical y los mensajes se representan mediante flechas entre los distintos objetos. El tiempo fluye de arriba abajo. Se pueden colocar etiquetas (como restricciones de tiempo, descripciones de acciones, etc.) bien en el margen izquierdo o bien junto a las transiciones o activaciones a las que se refieren. Los diagramas de clases y los de objeto representan información estática. No obstante en un sistema funcional los objetos interactúan entre si, y tales interacciones suceden con el tiempo. El diagrama de secuencias UML muestra la mecánica de la interacción con base en tiempos. 2.9.4 Diagrama de Colaboración Muestra la interacción organizada basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos. A diferencia de los diagramas de secuencia, muestran la relación entre los roles de los objetos. La secuencia de los
23
mensajes y los flujos de ejecución concurrentes deben determinarse explícitamente mediante números de secuencia. 2.9.5 Diagrama de Estados Muestra la secuencia de estados por los que pasa un caso de uso o un objeto a lo largo de su vida, indicando que eventos hacen que se pase de un estado a otro y cuales son las respuestas y acciones que genera. 2.10 TECNOLOGIAS WEB 2.10.1 Apache Apache Web Server, es un servidor de páginas Web desarrollado por la Apache Sotfware Fundation, organización formada por miles de voluntarios que colaboran para la creación de software de libre distribución. Uno de los más populares servidores. Según algunas estimaciones es utilizado para hosting por más del 50% de los sitios web en todo el mundo. La versión original de Apache fue escrita para UNIX, pero nuevas versiones que funcionan con OS/2, Windows y otras plataformas. El servidor HTTP Apache es un servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etcétera), Windows y otras, que implementa el protocolo HTTP/1.1 (RFC 2616) y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. 2.10.2 Php PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en páginas HTML y ejecutado en el servidor.
24
Puede apreciarse que no es lo mismo que un script escrito en otro lenguaje de programación como Perl o C ++. En vez de escribir un programa con muchos comandos para crear una salida en HTML, escribimos el código HTML con cierto código PHP embebido (incluido) en el mismo, que producirá cierta salida (en nuestro ejemplo, producirá un texto). El código PHP se incluye entre etiquetas especiales de comienzo y final que nos permitirán entrar y salir del modo PHP. Lo que distingue a PHP de la tecnología Javascript, la cual se ejecuta en la máquina cliente, es que el código PHP es ejecutado en el servidor. Si tuviésemos un script similar al de nuestro ejemplo en nuestro servidor, el cliente solamente recibiría el resultado de su ejecución en el servidor, sin ninguna posibilidad de determinar qué código ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los archivos HTML con PHP. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas características avanzadas para los programadores profesionales. Existen tres campos en los que se usan scripts escritos en PHP. •
Scripts del lado del servidor. Este es el campo más tradicional y el principal
foco de trabajo. Se necesitan tres cosas para que esto funcione. El intérprete PHP (CGI ó módulo), un servidor web y un navegador. Es necesario correr el servidor web con PHP instalado. El resultado del programa PHP se puede obtener a través del navegador, conectándose con el servidor web. •
Scripts en la línea de comandos. Puede crear un script PHP y correrlo sin
ningún servidor web o navegador. Solamente necesita el intérprete 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 también pueden ser usados para tareas simples de procesamiento de texto. •
Escribir aplicaciones de interfaz gráfica. Probablemente PHP no sea el
lenguaje más apropiado para escribir aplicaciones gráficas, pero si se quiere utilizar
25
algunas características avanzadas en programas clientes, se puede utilizar PHPGTK para escribir dichos programas. También es posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal. 2.10.3 MySql MySql es un gestor de Bases de Datos multiusuario que gestiona bases de datos relacionales poniendo las tablas en ficheros diferenciados. Es muy criticado porque carece de muchos elementos vitales en bases de datos relacionales y no es posible lograr una integridad referencial verdadera. Es más utilizado en plataformas Linux aunque puede usarse en otras plataformas. Su uso en un servidor Web es gratuito salvo en los casos que se necesite el uso de aplicaciones especiales. Es gestor o administrador de Bases de datos existente en plataforma Linux, recomendable para desarrollos que necesiten manejar numerosos registros y sesiones simultáneas Estadísticas Urchin, Webalizer, Awstast programas de análisis de ficheros logs, que representan de forma gráfica la información que éstos contienen. MySQL es una de las bases de datos más populares desarrolladas bajo la filosofía de código abierto.
26
Capítulo 3 DISEÑO Y DESARROLLO DEL SISTEMA DE MONITOREO Y CONTROL El capítulo anterior nos sirvió para exponer todo el marco teórico que ahora se convierten en las bases para la construcción del Sistema, y así poder llegar a satisfacer los objetivos propuestos en el primer capítulo. El objetivo del presente capítulo es formalizar, después de una serie de procesos toda la estructura del Sistema de Monitoreo y Control considerando como contexto de trabajo a la agencia “SAVE THE CHILDREN”. 3.2 ANALISIS INSTITUCIONAL “SAVE THE CHILDREN” SAVE THE CHILDREN es una Organización Internacional de carácter no gubernamental sin fines de lucro y sin inclinación política ni religiosa, con personería jurídica de fecha 14 de agosto de 1962; expedida en Connecticut, Estados Unidos de América. Con capacidad suficiente para realizar actividades en Bolivia al haber cumplido con los procedimientos establecidos por el Ministerio de RR.EE. y Culto, otorgada mediante Resolución Ministerial No. 143/91. •
Objetivo de Save the Children - Bolivia.- Contribuir al desarrollo de los niños y niñas de Bolivia como individuos y ciudadanos productivos dentro de la sociedad.
•
Visión.- Todo niño (a) tiene derecho a la supervivencia, protección desarrollo y participación de acuerdo a la Convención de los derechos de los niños (as) de la NN.UU.
•
Misión.- Tiene por misión crear cambios positivos y duraderos en la vida de los niños y niñas menos favorecidos(as); y sus familias, a través de proyectos sostenibles con participación de la comunidad. 27
Entre los programas que realizan están los siguientes: o Salvando la vida de los recién nacidos. o Supervivencia Infantil o Educación primaria en escuelas de Oruro o Programa Adolescentes o Seguridad Alimentaria o Iniciativa Comunitaria de Desarrollo Yungas
Salvando la vida de los recién nacidos
[Fuente: Suplemento Save the Children, 2006] En Oruro, Potosí, La Paz y Cochabamba el Programa Salvando la vida de los recién nacidos trabaja en la reducción de la mortalidad de los recién nacidos, proveyendo educación a familias rurales y urbanas en los cuidados básicos a los recién nacidos. Se brinda educación en los signos de peligro durante el embarazo y el parto, incrementando el número de partos atendidos por proveedores de salud calificados, incrementando el porcentaje de visitas postnatales entre el primer y séptimo día después del parto. También se trabaja en la reducción de la tasa de mortalidad neonatal. Aproximadamente 1,742,754 de niños y madres son beneficiados con este programa cada año.
28
Supervivencia Infantil
[Fuente: Suplemento Save the Children, 2006] Este programa esta dirigido a la prevención de la mortalidad infantil, al estado nutricional de los niños y la mejora de las prácticas en salud infantil en varias áreas rurales del departamento de Oruro, trabajando con promotores de salud comunitarios para identificar adecuadamente los problemas de salud y trabajando para resolverlos conjuntamente con los Centros de Salud del Gobierno.También trabajamos mejorando el acceso a la inmunización, asegurando los cuidados pre y post natales, mejorando las prácticas nutricionales y estableciendo una estrecha relación entre los proveedores de salud gubernamentales y las comunidades.
Educación primaria en escuelas de Oruro
[Fuente: Suplemento Save the Children, 2006] Este programa trabaja en la reducción de tasas de deserción en las escuelas primarias e incrementando la capacidad de las escuelas para proveer calidad 29
educativa, mejorando el rendimiento estudiantil. Se trabaja en la reducción de las tasas de deserción proporcionando capacitación a los profesores, con equipos actualizados y ayudando a mejorar toda la infraestructura institucional. También se trabaja estrechamente con los padres de familia, alentándolos a ocuparse más en las actividades escolares de base. Este programa alcanza un promedio de 13,000 niños en 16 escuelas primarias y 3,700 profesores y padres de familia anualmente.
Programa Adolescentes
[Fuente: Suplemento Save the Children, 2006] Con un programa localizado en Oruro y otro en la ciudad de El Alto, este programa ofrece a los adolescentes potenciar sus capacidades y habilidades en sus vidas, además de la orientación vocacional. Los participantes toman decisiones informadas acerca de su educación vocacional y también sobre su salud reproductiva. El propósito de este programa es reducir los embarazos adolescentes. El programa de adolescentes alcanza un total de 5,310 adolescentes, profesores y proveedores de salud en Oruro y 5.000 en el Alto cada año .
30
Seguridad Alimentaria
[Fuente: Suplemento Save the Children, 2006] Nuestro Iniciativa Integrada de Seguridad Alimentaría esta dirigida a las causas inmediatas de mal nutrición de la niñez, mejorando el acceso de las familias a los alimentos, fortaleciendo sus prácticas en aproximadamente 225 comunidades rurales del altiplano y valles de las provincias Aroma, Loayza e Inquisivi. La meta es incrementar los ingresos de las familias relacionados con la agropecuaria y la producción de alimentos y fortalecer las capacidades individuales y comunitarias para un desarrollo sostenible. El componente de salud del programa de seguridad alimentaría incluye el monitoreo de crecimiento y lactancia suplementaria para las madres y niños menores de tres años. Adicionalmente mejoramos saneamiento e higiene, construcción de sistemas de agua potable e implementación de sistemas de saneamiento en aguas residuales en las comunidades. Se ayuda en la construcción de sistemas de irrigación y la construcción de tanques de agua para riego de las cosechas, además de elevar muros para prevenir las inundaciones. Todo contribuye a adicionar recursos de agua para incrementar la producción de cultivos y ganado. Los muros de contención previenen la erosión de tierras, asegurando que las cosechas no se pierdan. Mucha de la infraestructura del programa se lleva a cabo con los recursos de alimentos y provee a los miembros de la comunidad a cambio de su trabajo. Son beneficiarios directos 27,257 niños cada año. 31
•
Iniciativa Comunitaria de Desarrollo Yungas
[Fuente: Suplemento Save the Children, 2006] La Iniciativa comunitaria de Desarrollo Yungas trabaja en la mejora de la calidad de vida y producción agrícola en algunas comunidades de los Yungas y apoya en la educación y salud de los niños de esas comunidades. Se hace esto mediante la asistencia del gobierno municipal local proveyendo infraestructura básica. Este proyecto incluye infraestructura en escuelas y sistemas de agua potable. Un promedio de 10,000 personas participan y se benefician en este programa anualmente. 3.11
PROYECTO TICs EN EL “PROGRAMA TOMANDO DECISIONES”
[Fuente: Suplemento Save the Children, 2006] TIC (Tecnologías de la Información y la Comunicación). El proyecto TICs en el Programa Tomando Decisiones fue validada e implementada por Save the Children en municipios del departamento de La Paz como en el de Oruro. 32
En este programa, Save the Children está desarrollando un programa de TIC que capacita a los adolescentes en áreas menos favorecidos de Bolivia. Actualmente en La Paz, el programa TIC trabaja en CEMSE y Don Bosco, institutos de capacitación y educación en El Alto. El “Programa Tomando Decisiones” ofrece a los jóvenes adolescentes potenciar sus capacidades y habilidades en sus vidas, además de la orientación vocacional. Este programa quiere motivar a los y las adolescentes a un continuo aprendizaje, sensibilizarlos en el uso adecuado y responsable de la tecnología, potenciando sus habilidades, proporcionarles pautas practicas que les sirvan en el desarrollo de su autoformación e incentive su iniciativa y creatividad. La capacitación se las realiza mediante talleres donde se da una introducción a TIC para adolescentes. ¿Qué es un taller? Un taller es un espacio en el que un grupo de personas trabajan para conseguir algún producto. Así existen talleres artesanales que producen artesanías o talleres de costura que producen prendas de vestir. Por tanto un taller NO es una clase, un curso, o una conferencia. En el caso específico de este taller de introducción a TIC para adolescentes, se trata entonces de un grupo de participantes que se reúnen durante algún tiempo con el propósito de reconocer, producir o adquirir habilidades que sean útiles a sus vidas. Este grupo de personas requiere una guía que les proporcione elementos, ideas, herramientas o instrucciones sobre la mejor forma de alcanzar los objetivos que están buscando y por esto se hace necesaria la presencia conjunta de uno o dos facilitadores.
El taller tiene por objetivos: Realizar dinámicas, desarrollar actividades de composición, redacción y presentación para incentivar la creatividad e iniciativa de los adolescentes.
33
Mostrar avances y recursos tecnológicos para que los y las adolescentes formen un sentido crítico acerca de la tecnología y sus ventajas y desventajas que pueda tener esta. Desarrollar destrezas y habilidades de investigación para incentivar el uso de recursos tecnológicos al alcance. ¿Qué es un facilitador? Facilitador es exactamente lo que la palabra quiere decir, alguien que hace más fácil conseguir un objetivo. En el caso que nos corresponde, facilitador es la persona que ayuda a que las actividades del taller sean fáciles de hacer, es la persona que ayuda y guía a los participantes a alcanzar los objetivos trazados.
Lo importante es que un facilitador sea capaz de transmitir confianza, que conozca las dinámicas que le ofrece el taller y sobretodo que esté dispuesto a ser muy respetuoso de los valores y creencias de otras personas y que tenga una actitud también de aprendizaje, puesto que en el campo de la tecnología nunca se termina de aprender, siempre estamos en continuo avance. Situación Actual Actualmente en La Paz el programa TIC trabaja en CEMSE y Don Bosco, (institutos de capacitación y educación en el Alto). El Programa de Tomando Decisiones, quiere motivar a los y las adolescentes a un continuo aprendizaje, sensibilizarlos en el uso adecuado y responsable de la tecnología, potenciando sus habilidades, proporcionarles pautas prácticas que les sirvan en el desarrollo de su autoformación e incentive su iniciativa y creatividad.
Entre las actividades que deben realizar a diario el personal que trabaja en la institución específicamente en el programa Tomando Decisiones durante los talleres: •
Control de asistencia
•
Desarrollo del tema
•
Evaluación diaria
34
3.12
ESPECIFICACIÓN DE LOS REQUERIMIENTOS
Se comenzó con un estudio exhaustivo del problema para el reconocimiento de las actividades involucradas en el sistema. Panorama General La información generada por el Programa Tomando Decisiones en Save the Children es el elemento principal para el modelo de la aplicación Web. Es decir, que el Sistema de Monitoreo y Control involucre el proceso permanente para verificar sistemáticamente que las actividades o procesos planificados se llevan a cabo según lo esperado o que se está progresando en el logro de los resultados planificados. La idea es almacenar todos los datos de asistencia de los participantes y también los resultados de las evaluaciones de una manera accesible, fácil y sencilla. Facilitando al Programa Adolescentes monitorear la participación y avance de cada uno de los alumnos. ¿Cuál es el objetivo del monitoreo y el control? Monitorear y controlar son dos funciones relacionadas pero diferentes que ayudarán en la implementación del SISMYC, evaluando el avance hacia sus objetivos y ofreciendo supervisión para la implementación. •
Monitoreo - es la actividad mediante la cual, los resultados de la implementación del SISMYC son evaluados/medidos según criterios predefinidos y acordados. Los resultados del monitoreo serán informados a un mecanismo de control.
•
Control - es la actividad que requiere tener en cuenta los resultados del proceso de monitoreo.
Esta función permitirá generar decisiones/instrucciones de
carácter estratégico de alto nivel. Los resultados de los procesos de monitoreo y control serán dirigidos a los encargados y agentes sociales del programa Tomando Decisiones. Usuarios 35
El proceso de enseñanza y aprendizaje en el Programa Tomando Decisiones esta conformado por facilitadores y estudiantes. Los cuales interactúan en forma presencial en los talleres. o Estudiante.- Persona que participa en un taller de capacitación. o Facilitador (Profesor).- Persona que dicta el contenido de los temas dentro de los talleres. o Administrador.- Persona que realiza el monitoreo y control de los talleres de capacitación. •
Cronograma de Talleres.- Las fechas en que comienzan y terminan las capacitaciones.
•
Cronogramas de Avance de temas.- En este momento el avance de actividades es lineal es decir un tema después del otro.
Objetivos Creación de una interfaz que permita al administrador realizar la actualización de la información. Verificar la identidad del usuario al acceder a la parte privada del sistema. Crear una interfaz que permita a los facilitadores subir materiales y contenidos para el taller. Interactuar con el Sistema de Evaluación para hacer uso de los resultados de las evaluaciones y así poder generar reportes y obtener estadísticas. Desarrollar un calendario, servicio que permitirá la organización de los talleres y sus respectivas actividades.
36
3.12.1 Funciones del Sistema Se realizó una clasificación de gran parte de las actividades existentes en los talleres para lograr una mejor comprensión.
FUNCION Registrar Facilitador
Registrar Estudiantes
Registrar Talleres
Registrar Actividades
Iniciar Sesión
DETALLES Número de registros de facilitadores como máximo Número de registros de estudiantes como máximo Número de registros de talleres como máximo por gestión. Número de registros de actividades de los talleres como máximo Iniciando la sesión de capacitación
Figura 3.1 Tabla de funciones generales del Sistema
FUNCION
DETALLES
Publicación de Actividades
Muestra las fechas y las actividades a nivel
(Calendario Institucional)
institucional
Publicación de Actividades
Muestra las fechas y las actividades a nivel
(Calendario del Taller)
institucional
Información de los talleres Información de los contenidos de los talleres Identificación de Usuario
Muestra las fechas de inicio y término de los talleres Muestra los temas de cada uno de los talleres Los usuarios deben identificarse para tener acceso a los privilegios del sistema
37
Realizar controles
Controla la asistencia
Información de los facilitadores
Información de los estudiantes
Subir material del taller
Utilización del Buscador interno
Subir trabajos prácticos
Muestra información acerca de los facilitadores. Muestra información acerca de los estudiantes Contiene material del taller además de material extra para que el alumno pueda descargarlo Buscador diseñado para que los alumnos puedan realizar consultas sobre los materiales. Los estudiantes deben subir sus tareas hasta la fecha establecida por el facilitador Permanente monitoreo de las actividades,
Monitoreo y Control
seguimiento constante al alumno al tener un registro que muestra el avance que logro hasta ese momento. Reportes que indicarán: •
Cantidad de Alumnos que empezaron y culminaron el taller.
Reportes y Estadísticas
•
Nivel de aprendizaje.
•
Evaluación por Temas.
•
Etc.
Figura 3.2 Tabla de funciones específicas del Sistema
3.12.2 Identificación de actores y casos de uso Basándonos en las funciones identificadas en la sección anterior, se procede a definir los actores que interactúan con las funciones, los mismos que serán analizados para formar los casos de uso.
38
ACTOR
CASOS DE USO Actualiza información institucional
Administrador
Actualiza información del taller Registra a los Facilitadores Registra a los Estudiantes Brinda tipos de acceso Resultados de las evaluaciones Registra a los usuarios Elabora contenido del taller
Facilitador
Elabora los materiales Realiza las actividades de los temas Realiza evaluaciones Datos
Estudiante
Ver talleres Ver temas Lista de alumnos Realizar tareas Realizar pruebas Descarga la información Ver materiales Figura 3.3 Lista de Actores y Casos de uso
3.12.3 Casos de uso de alto nivel A continuación se describen las tablas que expresan los casos de uso que realizan los actores del sistema. CASO DE USO
REGISTRAR FACILITADOR
Actores
Administrador, facilitadores
Tipo
Primario
39
El administrador registra a los facilitadores con todos sus Descripción
datos personales, se le asigna el tipo de usuario facilitador y también se le asigna el código.
Figura 3.4 Caso de Uso de alto nivel: Registrar Facilitador
CASO DE USO
REGISTRAR ESTUDIANTE
Actores
Administrador, estudiante
Tipo
Primario El administrador registra a los estudiantes con todos sus datos
Descripción
personales, se le asigna el tipo de usuario estudiante y también se le asigna el código.
Figura 3.5 Caso de Uso de alto nivel: Registrar Estudiante
CASO DE USO
REGISTRAR ACTIVIDADES
Actores
Administrador, materias
Tipo
Primario
Descripción
El administrador registra las actividades de los talleres
Figura 3.6 Caso de Uso de alto nivel: Registrar Actividades
40
CASOS DE USO GENERAL DEL SISTEMA
Realizar controles
debe
Crea actividades
debe te xt
Modifica actividades
puede debe
Revisar Trabajos
FACILITADOR debe Emitir informes (nota final)
te xt
autorizar usuario
validar ADMINISTRADOR Consultar notas
puede te xt
ingresar al sistema
debe ESTUDIANTE
debe
ver actividad
puede Revisar Materiales extras
debe subir Trabajos
Figura 3.7 Diagrama de Casos de uso general del sistema
41
CASOS DE USO DEL ESTUDIANTE
Registrar Estudiante Datos Estudiante Perfil Estudiante Contraseña
Lista de facilitadores
Taller
Lista de alumnos
lista de trabajos practicos
te xt
calendario
ESTUDIANTE actividad
trabajos prácticos
Subir
Revisar materiales
Descargar
Notas
Consultar
Figura 3.8 Diagrama de Casos de uso del estudiante
42
DESCRIPCIÓN DE CASOS DE USO DEL ESTUDIANTE Caso de Uso: Registrar al estudiante Descripción:
Adición, modificación del estudiante.
Caso de Uso: Perfil estudiante Descripción:
El estudiante ingresa mediante su código y pasword
Caso de Uso: Taller Descripción:
El estudiante puede ver la lista de estudiantes, de facilitadores, y de los trabajos prácticos.
Caso de Uso: Calendario Descripción:
Puede ver calendario para subir tareas.
Caso de Uso: Actividad Descripción:
El estudiante puede acceder a una actividad en específico
Caso de Uso: Trabajos prácticos Descripción:
El estudiante sube sus practicas
Caso de Uso: Revisar materiales Descripción:
El estudiante puede acceder a los materiales del taller y descargar
Caso de Uso: Notas Descripción:
El estudiante puede revisar, consultar sus notas
43
CASOS DE USO DEL FACILITADOR
Registrar Facilitador Datos facilitador Perfil Facilitador Contraseña
Registrar taller
Taller
Dicta taller
te xt
Incluir material
FACILITADOR
Realizar controles
Asistencia
Dicta actividades
Realiza pruebas Revisa Tareas Realiza Calificacion Revisa Pruebas Agrega actividades
Figura 3.9 Diagrama de Casos de uso del facilitador
44
DESCRIPCIÓN DE CASOS DE USO DEL FACILITADOR Caso de Uso: Registro del Facilitador Descripción:
Adición, modificación de los datos del facilitador.
Caso de Uso: Perfil faciltador Descripción:
El facilitador ingresa mediante su código y pasword
Caso de Uso: Taller Descripción:
El facilitador puede ver el contenido del taller en cuanto actividades y modificar.
Caso de Uso: Realizar controles Descripción:
El facilitador realiza el control de asistencia.
Caso de Uso: Realiza pruebas Descripción:
Sube los trabajos a realizar de cada actividad.
Caso de Uso: Realiza Calificación Descripción:
Interactúa con el módulo de evaluación obteniendo las notas y adicionando a las notas de los trabajos prácticos.
Caso de Uso: Actividades Descripción:
Adiciona, modifica, elimina actividades.
45
3.13
FASE DE CONSTRUCCION: ANALISIS
3.13.1 CONSTRUCCION DEL MODELO CONCEPTUAL revisa
administra Administrador
dicta Talleres
Facilitador
TrabajosPracticos realiza
tiene desarrolla
tiene Estudiante
Actividades
realiza
tiene
Pruebas revisa Material
tiene
entrega NotaFinal
califica
Figura 3.10 Diagrama del Modelo conceptual
3.13.2 CONSTRUCCION DEL DIAGRAMA DE SECUENCIA DEL SISTEMA Un diagrama de secuencia muestra la interacción de los objetos ordenados en secuencia temporal. Muestra los objetos que se encuentran en el escenario y la secuencia de mensajes intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por el escenario.
46
A continuación se describe de manera gráfica los diagramas de secuencia del sistema definidos para cada caso de uso del sistema. Diagrama de secuencia: Ingreso al Sistema usuario
cuenta_usuario
sistema
clickIngresar: validar : si es nuevo ( ) si es antiguo ( ) si es alumno ( ) si es facilitador ( ) Acceso permitido:
si es administrador ( )
igura 3.11 Diagrama de Secuencia: Ingreso al Sistema
Diagrama de secuencia: Registrar usuario
usuario
cuenta_usuario
form_usuario
grabar
reg_usuario
clickRegistrarse : mostrar : ingresaDatos : guardar : validar : actualizar :
Figura 3.12 Diagrama de Secuencia: Registrar Usuario
47
Diagrama de secuencia: Modificar usuario
usuario
cuenta_usuario
form_usuario
grabar
reg_usuario
clickModificar : mostrar :
seleccionarUsuario ingresaNuevaInformación
grabar actualizar :
Figura 3.13 Diagrama de Secuencia: Modificar Usuario
Diagrama de secuencia: Registrar alumno
administrador
tipo_cuenta
frm_reg_alumno
grabar
T_alumno
tipo_cuenta : (alumno)
mostrar : ingresaDatos : guardar : validar : actualizar :
Figura 3.14 Diagrama de Secuencia: Registrar Alumno
48
Diagrama de secuencia: Modificar datos alumno
administrador
cuenta_alumno
frm_modif_alumno
nombres_alumno
datos_alumno
grabar
T_alumno
clickModificar : mostrar : seleccionar :
ingresarNuevaInformacion :
grabar :
actualizar :
Figura 3.15 Diagrama de Secuencia: Modificar datos Alumno
Diagrama de secuencia: Registrar facilitador/profesor
administrador
tipo_cuenta
frm_reg_facilitador
grabar
T_facilitador
tipo_cuenta : (facilitador)
mostrar : ingresaDatos : guardar : validar : actualizar :
Figura 3.16 Diagrama de Secuencia: Registrar Facilitador/profesor
49
Diagrama de secuencia: Modificar datos facilitador/profesor administrador
cuenta_facilitad
frm_modif_facilitad
nombres_facilitad
datos_facilita
grabar
T_facilitador
clickModificar : mostrar : seleccionar :
ingresarNuevaInformacion :
grabar :
actualizar :
Figura 3.17 Diagrama de Secuencia: Modificar datos Facilitador/profesor
Diagrama de secuencia: Registrar asistencia alumno
cuenta_alumno
form_ingreso
grabar
reg_asistencia
clickIngresar : mostrar :
ingresaCodigo : ingresaPasword
registrar actualizar :
Figura 3.18 Diagrama de Secuencia: Registrar Asistencia
50
Diagrama de secuencia: Registrar calificación
administrador
frm_reg_notas
seleccionAreas
seleccionAlumno
notas
grabar
T_notas
seleccionar :
mostrar : seleccionar : registrar alumno mostrar :
grabar : actualizar :
Figura 3.19 Diagrama de Secuencia: Registrar Calificación
3.14
FASE DE CONSTRUCCION: DISEÑO
Esta fase puede ser la más importante porque se da prioridad a los requerimientos y a las operaciones relacionadas con el sistema, el numero de iteración dependerá de la planificación de la construcción del mismo. Uno de los objetivos de esta fase es hallar una solución lógica a través de los fundamentos del paradigma orientado a objetos, su esencia es la elaboración de diagramas de interacción, que muestran gráficamente como los objetos se comunicaran entre ellos a fin de cumplir con los requerimientos. Para la elaboración de estos diagramas aplicaremos los principios de asignación de responsabilidades. [Larman, 1999]
51
3.15 DIAGRAMA DE COLABORACION
Administrador
Administrador
Persona 1. Crea ( tipoUsuario = registrarPersona)
Registrar(codigo, clave, nombre, apellidopat, apellidomat, tipodeusuario)
Usuario registrado
Facilitador 2. Crea ( tipoUsuario = registrarFacilitador)
3. Crea ( tipoUsuario = registrarEstudiante)
Administrador
Estudiante
Figura 3.20 Diagrama de colaboración: Registro de Usuario
3.16 DIAGRAMAS DE CLASES A partir de los diagramas de colaboración y del modelo conceptual se comienza con la especificación de las clases. En esta etapa se consideran los mensajes enviados entre objetos en el diagrama de colaboración para que sirvan como métodos propios de las clases.
Administrador codigo_admin pasword nombres apellido_pat apellido_mat tipo_usuario e_mail
Facilitador codigo_facilitador pasword nombres apellido_pat apellido_mat tipo_usuario e_mail
Estudiante codigo_estudiante pasword nombres apellido_pat apellido_mat tipo_usuario e_mail
52
Taller
Tema
Pruebas
codigo_taller fecha_inicio fecha_final contenido descripcion
codigo_tema contenido descripcion
codigo_prueba preguntas tipo_prueba respuestas puntaje
Trabajos_practicos
Calificaciones
codigo_tp descripcion
codigo_prueba codigo_estudiante codigo_tp
Figura 3.21 Atributos del sistema
3.17
TABLAS DEL SISTEMA
Las tablas que forman parte de la base de datos son las siguientes:
TABLA: Registro de Alumnos Alumno
TABLA: Registro de Facilitador Facilitador< cod_fac, ci_fac, nom_fac, pat_fac, mat_fac, telf_fac, dir_fac, foto_fac, fec_nac_fac, sexo_fac, profesion_fac >
TABLA: Registro de Taller Taller < cod_taller, descripción, fech_ini, fech_fin, capacidad, cod_act >
53
TABLA: Registro de Actividad Material < cod_act, cod_tall, descripcion >
TABLA: Registro de material Material < cod_mat, cod_act, descripcion >
TABLA: Privilegios Notas
TABLA: Registro Centralizador de Notas Notas
TABLA: Registro de asistencia Asistencia
3.18
FASE DE IMPLEMENTACION
3.18.1 Diseño interfaz del sistema La figura 3.01 nos muestra la pantalla principal del sistema. En la parte superior tenemos la zona de las opciones del sistema con información acerca de los talleres y además de la identificación de usuario. Si el usuario ya esta registrado podrá introducir su código y contraseña e ingresar al taller.
54
Figura 3.01 Pantalla principal del Sistema
La siguiente ventana nos muestra la interfaz de Inscripción de los nuevos estudiantes al taller. El administrador al tiempo de registrar al usuario le asigna un código y una contraseña mediante las cuales podrá acceder a diferentes privilegios del sistema.
Figura 3.02 Pantalla de Inscripción
55
La interfaz es muy simple e intuitiva, como se muestra en la Figura 3.03. Dispone de varias pestañas para realizar las posibles acciones:
Figura 3.03 Pantalla de Opciones del Estudiante
En un taller los estudiantes pueden acceder a los trabajos de todos los demás compañeros. Deben leerlos y emitir una calificación y un comentario sobre cada trabajo. Esta es una forma de enriquecer la actividad, permitiendo a cada estudiante advertir otros puntos de vista y otros enfoques del trabajo, así como recibir múltiple opiniones sobre su propia labor. El trabajo en el taller se organiza en una serie de etapas: envío de trabajos por el facilitador, las actividades realizadas por los estudiantes. Es el facilitador el que va haciendo progresar el taller de una fase a otra, lo que se reflejará en pequeños cambios en la interfaz de la página del taller.
56
La figura 3.04 muestra el desarrollo de una actividad, en ella como en las demás pueden observarse el nombre del alumno que esta siguiendo el proceso de capacitación y un botón que dice “Más información”, que le permitirá transportarse a otra pantalla dinámica y ampliar sus conocimientos.
Figura 3.04 Pantalla de Desarrollo de una actividad
Los estudiantes también pueden hacer un control personal. Como ser realizar un seguimiento de avance de temas, verificar sus evaluaciones, etc. Se puede obtener diferentes cuadros de estadísticas que permiten realizar un control ya sea de los facilitadores, talleres y estudiantes. Con esta información los responsables del Programa podrán realizar el monitoreo respectivo a los talleres de capacitación. 3.19 REQUERIMIENTOS DEL SISTEMA Dado que el sistema será desarrollado en PHP se requiere el siguiente requerimiento de hardware y software:
57
3.19.1 Requerimientos de hardware Para la implantación del sistema de Monitoreo y Control se tomo en cuenta los siguientes requerimientos en hardware: Terminales con características mínimas de: o El microprocesador de 133MHz o superior. o Monitor VGA de 800x600 o de resolución superior compatible con Microsoft Windows. o 64 MB de RAM para Windows 98 o superior. o Microsoft Windows 98 o posterior. o Espacio en disco duro de 3 Gigas. Un Servidor con características mínimas: o Procesador Pentium IV o Memoria cache 512 o Memoria RAM 512 Mb o HD 80 Gb o CD ROM 56x o Tarjeta incorporada Net 10/100 TX/PCT UTP 3.19.2 Requerimientos de software Para la implantación del sistema de Monitoreo y Control se tomo en cuenta los siguientes requerimientos en software:
58
o Servidor Apache, es un servidor de páginas Web desarrollado por la Apache Sotfware Fundation, organización formada por miles de voluntarios que colaboran para la creación de software de libre distribución. o PHP, (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en páginas HTML y ejecutado en el servidor. Lo que distingue a PHP de la tecnología Javascript, la cual se ejecuta en la máquina cliente, es que el código PHP es ejecutado en el servidor. o MySQL, es un gestor de Bases de Datos multiusuario que gestiona bases de datos relacionales poniendo las tablas en ficheros diferenciados. Es más utilizado en plataformas Linux aunque puede usarse en otras plataformas. Su uso en un servidor Web es gratuito salvo en los casos que se necesite el uso de aplicaciones especiales.
59
Capítulo 4 PRUEBAS Y EVALUACION DEL SISTEMA En este capítulo se consideran diferentes tipos de criterios de calidad elemental, escalas, valores y funciones para determinar la calidad global del producto. 4.10
MEDIDAS DE CALIDAD
Para determinar ciertas medidas que enmarquen al sistema sobre un conjunto de valores aceptables de calidad, nos remitimos a medir la calidad del sistema de manera directa, tomando en cuenta mediciones sobre el proceso mismo del desarrollo, es decir sobre el modelo de análisis, el modelo de diseño, utilizando las métricas técnicas. 4.11
CALIDAD DEL SOFTWARE
La calidad del software se define como: Concordancia con los requisitos y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente [Pressman 2003]. La calidad del software consiste en aquellos procedimientos, técnicas e instrumentos aplicados por entes capacitados para garantizar que un producto cumpla o supere un nivel mínimo aceptable para su comercialización, si es que así se lo ha planeado, lo que hasta el momento no se tiene estándares del software, no es lo mismo que las pruebas del sistema, estos son implícitos al momento de hacer las pruebas de integración final del sistema. 4.12
MÉTRICAS DE CALIDAD
Las métricas de calidad de software nos proporcionan una manera de medir la calidad, descubrir y corregir errores potenciales que llevarían al fracaso inminente de cualquier sistema.
60
Las medidas de software se pueden clasificar de dos maneras: medidas directas y medidas indirectas •
Las medidas Directas del proceso de la ingeniería de software incluyen en el costo y esfuerzo aplicado.
•
Las medidas Indirectas del proceso de la ingeniería de software incluye la funcionalidad, complejidad, eficiencia, fiabilidad y facilidad de mantenimiento. 4.13
FUNCIONALIDAD
4.13.1 Punto de función El punto de función es una métrica orientada a la función. Es una medida indirecta del software y del proceso por el cual se desarrolla. Se centra en la funcionalidad o utilidad del programa. Los puntos de función se calculan llenando los datos en la figura 4.1 para el cálculo se determinan cinco características de dominios de información: Factor de ponderación Parámetros de medición
Cuenta
Simple
Medio
Complejo
Número de entradas de usuario
x
3
4
6
=
Número de salidas de usuario
x
4
5
7
=
Número de peticiones de usuario
x
3
4
6
=
Número de archivos
x
7
10
15
=
Número de interfaces externas
x
5
7
10
=
Cuenta Total
Figura 4.01
61
Número de entradas de usuario. Se cuenta cada entrada de usuario que proporciona al software diferentes datos orientados a la aplicación. Las entradas deben diferenciar de las peticiones, estas pueden ser el inscribirse, ingreso de datos o control de flujo de la información, preparar un tema, etc. Dichas entradas se llevan a cabo mediante las siguientes interfaces. •
Pantalla de ingreso al sistema
•
Pantalla principal
•
Pantalla de registro o inscripción
•
Pantalla de elección de temas
•
Pantalla de evaluaciones
•
Pantalla de reportes
Número de salidas de usuario. Se cuenta cada salida que proporciona al usuario información orientada a la aplicación. Las salidas de usuario representan los informes, pantallas, mensajes de error. En nuestro caso tenemos como salidas: los mensajes de error que emite el sistema por ejemplo, cuando un alumno ingresa una contraseña errónea o cuando no esta registrado, las pantallas que muestran los resultados de exámenes revisados, mostrar la nota de evaluación. Se pueden ver en las siguientes interfaces: •
Pantalla de mensaje de error
•
Pantalla que muestra los temas
•
Pantalla de evaluación
•
Pantalla de notas
Número de peticiones de usuario. Una petición esta definida como una entrada interactiva que resulta de la generación de algún tipo de respuesta inmediata del software en forma de salida interactiva. Se cuenta por separado cada petición, en este caso una petición viene a ser: la consulta de notas del alumno, su avance y seguimiento, lo cual se observa por ejemplo en las siguientes interfaces. •
Pantalla de consulta de notas 62
•
Pantalla de avance y seguimiento
Número de archivos. Se cuenta cada archivo lógico maestro, es decir un grupo lógico de datos que pueden ser parte de una gran Base de Datos o un archivo independiente. •
Archivo Alumno
•
Archivo Temas
•
Archivo Avance
•
Archivo Notas
Número de interfases externas. Se cuenta todas las interfaces legibles por el ordenador que son utilizados para transmitir información a otro sistema. Tabla 4.1 Número de entradas de usuario
Pantalla para entrada de datos
7
Consulta seguida por una actualización
4
Aplicación de control de entrada de
1
usuario Total entradas
12
Complejidad
4
Tabla 4.2 Número de Salidas de usuario
Salida de datos por pantalla
5
Reportes impresos
6
Datos automáticos o transacciones de otras
1
aplicaciones Total de Salidas
12
Complejidad
5 Tabla 4.3 Peticiones de Usuario
63
Pantalla de ayuda de entrada y salida
1
Menú de selección en pantalla de entrada y salida
8
Consulta seguida por una actualización de entrada
2
Total de peticiones
11
Complejidad
4
Tabla 4.4 Número de Archivos
Tablas o archivos mantenidos por el usuario
7
Archivos lógicos internos generados o mantenidos por la
1
aplicación Archivos asequibles al usuario a través de llaves o parámetros. 1 Total Archivos
9
Complejidad
10
Tabla 4.5 Número de Interfaces externas
Disco
1
CD - ROM
1
Backup (copia de seguridad)
1
Impresora
1
Total archivos
4
Complejidad
7
64
Cuenta Total = 48 + 60 + 44 + 90 + 28 = 270 Tabla 4.6 Valor de ajuste de Complejidad de Punto de Función
Características del Sistemas
Significado Valor
1. ¿El sistema requiere copias de seguridad y recuperación fiables? Esencial
5
2. ¿Se requiere comunicación de datos?
Significativo
4
3. ¿Existen funciones de procesamiento distribuido?
Moderado
2
4. ¿Es crítico el rendimiento?
Incidental
1
5. ¿Se ejecutará el sistema en un entorno operativo existente y
Esencial
5
6. ¿Requiere el sistema entrada de datos es interactiva?
Esencial
5
7. ¿Requiere la entrada de datos interactiva que las transacciones de
Esencial
5
8. ¿Se actualizan los archivos maestros de forma interactiva?
Moderado
2
9. ¿Son complejas las entradas, las salidas, los archivos o las
Incidental
1
10. ¿Es complejo el procesamiento interno?
Incidental
1
11. ¿Se ha sido diseñado el software para ser reutilizable?
Esencial
5
12. ¿Están incluidas en el diseño la conversión y la instalación?
Significativo
4
13. ¿Se ha diseñado el sistema para soportar múltiples
Esencial
5
Esencial
5
fuertemente utilizado?
entrada se lleven a cabo sobre múltiples pantallas u operaciones?
peticiones?
instalaciones en diferentes organizaciones? 14. ¿Se ha diseñado la aplicación para facilitar los cambios y para ser fácilmente utilizado por el usuario?
65
Con los valores de ponderación de la tabla 4.6 tenemos los valores de ajuste de complejidad, entonces se tiene:
ΣFi = 50. Cuenta total: es el total de puntos de función sin ajustar. 0.01: es el error mínimo aceptable de la complejidad.
ΣFi: es la sumatoria de los factores de complejidad del proceso que pueda variar en el rango de: 0 ≤
ΣFi
≤ 70
i=1,...,14
Si los factores de complejidad de proceso no influyen en nada
ΣFi =0 y si influyen
mucho ΣFi =70. 0.65: es el pie de corrección. El valor 270 es la sumatoria de los resultados parciales que son los productos de las cuentas por el peso asignado (Simple, medio y complejo), y para realizar el análisis utilizamos el peso medio. Luego reemplazamos los datos en la relación de Punto de Función y se obtiene el siguiente resultado:
PF = 270 * [0.65 + (0.01 * 50)] = 310.5 ≈ 311
Haciendo un análisis con la escala de Punto de Función Tabla 4.7 se concluye que el sistema tiene la funcionalidad óptima.
66
Tabla 4.7 Escala de Punto de Función
Escala
Observación
PF > 300
Optima
200 > PF > 300
Buena
100 > PF > 200
Suficiente
PF < 100
Deficiente
Calculando el ajuste tenemos: El valor promedio de Fi(promedio calculado) = 50 Valor máximo de Fi(máximo) = 70 La cuenta total del factor de ponderaciones 270 Remplazando estos valores en la ecuación
PF(máximo) = 270 * [0.65 + (0.01 * 70)] = 365
Sacando el promedio de estos dos resultados tenemos:
Prom = 311 / 365 = 0.85
Entonces:
67
Funcionalidad = 0.85 * 100 = 85%
Por lo tanto se tiene un 85% de Funcionalidad. 4.14
CONFIABILIDAD
Según teorema la confiabilidad esta dado bajo los componentes del modelo del sistema donde a cada módulo se le denomina Ri(t). La confiabilidad esta dada por: R(t). La confiabilidad de los componentes: R1(t),R2(t),……………..,Rn(t). Donde: R(t) = P ( T > t). Donde T es el tiempo para fallar el sistema. Si tres módulos funcionan independientemente están conectados en serie y la i – esima componente tiene la confiabilidad. Confiabilidad del sistema completo: R(t) = R1(t) * R2(t) * R3(t) → R(t) = Min (R1(t),R2(t),R3(t)) R(t) = exp –w1t * exp –w2t * exp –w3t = e –(w1+w2+w3)t
La función de densidad de probabilidad de tiempo esta dado por : F(t) = (w1 + w2 + w3)e –(w1 + w2 + w3)t Función de distribución Donde w es un parámetro de medición W = 0.01 La confiabilidad del sistema esta dado por: 68
R(T) = e -0.01t Para un funcionamiento de 10 horas o después de 10 horas la probabilidad de que el sistema no falle esta dado por: e -0.01(10) = e -0.1 = 0.905 Entonces se tiene un 90% de probabilidad de que el sistema no falle. 4.15
PRUEBA DE SOFTWARE
Una estrategia de prueba de software integra las técnicas de casos de prueba en una serie de pasos que dan como resultado una correcta construcción del software. o Prueba de unidad. Esta prueba se realiza a cada uno de los módulos, ya que permite que cada módulo este libre de errores. o Prueba de integración. Una que sea integrado todos sus componentes se realizo la verificación para que el sistema funcione sin ningún problema. o Prueba de validación. Esta prueba es muy importante ya que se realizo la validación para verificar si el sistema satisface los requerimientos del usuario. o Prueba del sistema. Esta prueba del sistema se realizo en el lugar de actual funcionamiento. 4.16
LA MANTENIBILIDAD
Se centra en el cambio que va asociado a la corrección
de errores,
adaptaciones y a los cambios debido a las mejoras por los requisitos cambiantes del cliente. Corrección. Incluso cuando el sistema tiene garantías de calidad, es probable que se descubra defectos en el software. Por lo tanto el mantenimiento correctivo modifica el software para corregir los errores.
69
Adaptación. Una vez instalado el software no dura de forma permanente ya que puede que cambie su entorno original, entonces es necesario realizar el mantenimiento adaptativo para que el software se pueda adecuar a los cambios de su entorno externo. Mejora. A medida que se va utilizando el software, se va descubriendo los beneficios que producen. 4.17
SEGURIDAD DEL SISTEMA
La institución debe estar organizada de tal modo que facilite y favorezca la gestión de la seguridad informática. Y esto debe cumplirse con absoluto hermetismo. Es vital contar con personal sobre el que se pueda depositar confianza. 4.18
ASPECTOS PREVENTIVOS
Este apartado aborda los aspectos asociados al componente lógico del sistema: programas y datos. Para ello, se distingue entre las medidas para restringir y controlar el acceso y empleo de dichos recursos, los procedimientos para asegurar la fiabilidad del software (tanto operativo como de gestión) y los criterios a considerar para garantizar la integridad de la información. •
Control de acceso: Sistema de identificación, para poder ingresar al sistema solo se lo puede realizar ingresando la clave de acceso que solo lo saben la el estudiante y el administrador.
•
Software de base: Control de cambios y versiones, control de uso de programas de utilidad.
4.10
PORTABILIDAD
Es importante que un sistema pueda ser fácilmente implementado en una institución además de la versatilidad que debe presentar ante cualquier entorno que se presente.
70
El proyecto sistema de Monitoreo y Control vía Web para el programa adolescentes en Save the Children fue desarrollado en PHP, el cual es un lenguaje de programación capaz de implementarse tanto bajo plataformas Windows, esta versatilidad del lenguaje hace posible que el sistema desarrollado pueda también ser implementado en cualquier sistema operativo. Sin embargo, es necesario para su funcionamiento esté presente un servidor de aplicaciones y el gestor MySQL. La facilidad de instalación y configuración del sistema en cualquier entorno se debe a que no es necesario desarrollar un programa de instalación para el mismo, tan solo debe realizarse una copia de sus paginas Web en el sitio principal de la institución. Se debe copiar también la base de datos correspondientes en los talleres de capacitación donde se encuentra instalado el gestor MySQL.
71
CONCLUSIONES A la conclusión del presente trabajo se menciona acerca del cumplimiento con cada uno de los objetivos planteados al iniciar. Referente al objetivo principal del Proyecto Se desarrollo los módulos de Monitoreo y Control para los recursos que se maneja en el proyecto, a partir de estos datos el sistema permite observar y controlar los procesos. A través de las alertas e informes que el sistema proporciona se podrán realizar la toma de decisiones. Con referencia a los objetivos específicos mencionaremos a continuación: •
Cada uno de los módulos diseñados se los puede ver plasmados en el sistema.
•
La interfaz de usuario fue realizado de manera que sea familiar a cualquier usuario, mediante el uso de ventanas, botones, listas de despliegue y otros elementos.
•
Se diseñaron informes a partir de los requerimientos y la información almacenada en la base de datos las mismas que proporcionen información relevante y necesaria para la toma de decisiones.
•
Se dio uso a los recursos con los que contaba Save the Children como ser: equipos computacionales de distintas características como ser: computadoras, cableado de red, etc.
•
Mediante el análisis y diseño se obtuvo una estructura de base de datos estable y abierta a la adición de nuevos elementos en caso de requerimiento.
Con el presente trabajo se buscó satisfacer cada uno de los requerimientos del usuario, y brindarles una herramienta a la institución que colabore con el monitoreo, y control de los talleres del proyecto, cuyo diseño fue desarrollado con la metodología Orientada a Objetos por las ventajas que nos ofrece.
72
RECOMENDACIONES El Sistema de Monitoreo y Control es un sistema que permite el registro y seguimiento de los talleres y a través de esta información realizar el respectivo control y monitoreo de cada uno de los participantes y de las actividades, esto es una parte de lo que significa el ciclo de vida que tiene un proyecto social. El monitoreo a un proyecto no solo engloba la parte de seguimiento de sus recursos también implica realizar un seguimiento al ciclo de cada proyecto de manera general. Con la revisión del sistema y analizando los logros obtenidos se recomienda: •
Que la información almacenada en el sistema sea revisada periódicamente.
•
Para mayor resguardo de información el administrador del sistema debe realizar un seguimiento periódico de los accesos al sistema.
•
La realización de una biblioteca virtual.
Se recomienda para los próximos trabajos realizar el módulo de preparación y estudio de viabilidad de los proyectos, para realizar la observación directa sobre el impacto que causará al implementarse el proyecto social. Se puede también desarrollar el módulo de post evaluación de proyectos sociales, de esta formar tener un sistema integrado que permita el manejo y seguimiento al ciclo de vida de un proyecto social.
73
BIBLIOGRAFIA [1]
Graig, Larman, 1999 UML y Patrones, Prentice Hall Hispanoamérica S.A.
[2]
Senn
J., 1988: Análisis y Diseño de Sistemas de Información (Primera
Edición). 643 pags., McGRAW – HILL, Interamericana de México. [3]
Kendall K. y Kendall J., 1997: Análisis y Diseño de Sistemas (Tercera Edición). 913 pags., Prentice – Hall Hispanoamericana, S.A.
[4]
Pressman R., 2003: Ingeniería del Software: Un enfoque práctico (Quinta Edición), 601 pags, McGRAW – HILL Interamericana de España S.A.
[5]
Booch, G., 1996: Análisis y Diseño Orientado a Objetos con Aplicaciones, 2da. Edición, 638 pp., Addison Wesley/ Díaz De Santos, México.
[6] Farfán, Sulma & Mariscal, Maria, 1998: Modelo de un Sistema de Información Integral para el Colegio San Ignacio. UMSA Carrera de Informática. Bolivia. [7]
Torrez Soria, Julia, 2004: Sistema de Monitoreo y Control de Proyectos P.A.N. “Programa Nacional de Atención a Niñas y Niños menores de seis años”. UMSA Carrera de Informática. Bolivia.
[8]
Churata Choque, Patricia, 2005: Labor académica a traves de la web para “Isec La Paz”. UMSA Carrera de Informática. Bolivia.
[9]
Quisbert Apaza, Esperanza, 2006 Sistema tutor para enseñanza en lengua aymara. UMSA Carrera de Informática. Bolivia.
74
[10] Ortega, Luisa, 1998: Sistema de seguimiento Académico del colegio Instituto Americano. UMSA Carrera de Informática. Bolivia [11] Yujra, Gumercinda, 2000: Seguimiento académico dentro educativo fabril 18 de Mayo. UMSA carrera de Informática. Bolivia. [12] James, Martín & James, Odell, 1992: Análisis y Diseño Orientado a Objetos. Facultad de Ciencias de la UNAM. México [13] Korth, H., 1993: Fundamentos de Bases de Datos, 2da. Edicion, 739 pp, MacGraw Hill, México.
75
76
ARBOL DE PROBLEMAS Baja efectividad en el seguimiento de los talleres de capacitación
Pérdida de tiempo en la búsqueda, acceso, estado y respuestas a información
Respuestas inoportunas
Ineficiencia en el acceso
Falta de herramientas que agilicen el acceso y ubicación de información
Inadecuado registro y almacenamiento de la información actual e histórica
Dificultad de consulta a documentos de gestiones pasadas
Dificultad al emitir informes, reportes
Dificultad en la obtención de información de los talleres
Seguimiento innadecuado de los talleres
Registro innadecuado de los participantes
Proliferación de documentos
No existe un mecanismo para conocer el avance de los alumnos
Desconocimiento del logros y resultados de los talleres
0
ARBOL DE OBJETIVOS
Optimizar el Monitoreo y Control de los talleres del Programa Tomando Decisiones en "Save the Children" mediante un Sistema de Información
Diseñar un mecanismo que optimice registro y el acceso a la información
Brindar un mecanismo de fácil uso, que mejore la seguridad y el acceso a la información de los talleres
Diseñar una Base de Datos de acuerdo a los requerimientos del usuario
Desarrollar un mecanismo óptimo que haga un seguimiento al flujo de información de los talleres
Diseñar formatos de consultas que brinde información sobre el estado de los talleres
Brindar la información necesaria y requerida de manera eficaz y oportuna
Realizar un óptimo seguimiento a los alumnos
1
MARCO LOGICO Indicadores verificables objetivamente
Resumen narrativo de Objetivos
FIN seguimiento del taller en general y de Contribuir al descubrimiento de fortalezas y/o debilidades de los talleres los alumnos por medio de reportes y cuadros estadísticos y poder establecer líneas de acción, permitiendo brindar correcciones y reorientaciones técnicas en la ejecución. PROPOSITO Desarrollar un Sistema de Información que mejore el Monitoreo y control de los talleres del Programa Tomando Decisiones en "Save the Children"
COMPONENTES * Definición de la Base de Datos * Módulo de Registro * Módulo de consultas * Módulo de Reportes y Estadísticas
ACTIVIDADES 1. Estudio preliminar 2. Análisis del Sistema 3. Diseño del Sistema 4. Programación del Sistema 5. Validación y Pruebas 6. Implementación del Sistema 7. Evaluación
Medios de Verificación Encuestas a los usuarios del nuevo Sistema (personal de la institución, alumnos, facilitadores y público en general)
Supuestos Aceptación del directorio de la instutución y del personal.
Puesta en marcha el sistema de * Documentación del Proyecto de Grado Disponibilidad de personal requerido, información en un 90% para noviembre * Aval del Docente Tutor equipos, herramientas, etc. del 2006 * Aval del Docente Revisor * Certificación de la Institución
* Definición de la Base de Datos (diseño de la estructura), para septiembre del 2006. * Módulo de Registro, para octubre del 2006. * Módulo de consultas, para fines de octubre del 2006. * Módulo de Reportes y Estadísticas, para noviembre del 2006. 1. 2. 3. 4. 5. 6. 7.
3 semanas 30 6 semanas 600 5 semanas 900 10 semanas 1000 2 semanas 150 3 semanas 400 3 semanas 100
Total
3180 $
Cronograma de actividades Documentación Manual de Usuario Encuestas al personal de la institución * Encuestas a los alumnos de los talleres de capacitación.
* Contar con la colaboración de acceso a la información de la institución. * Disponer de herramientas de hardware y software necesarios. * Tener la aceptación de la empresa.
* * * *
* Tener la aceptación de la Institución * Disponer de herramientas de hardware y software necesarios. * El personal acepta el cambio * Se cuenta con el presupuesto necesario
* * * *
Control y seguimiento del proyecto Manual de Usuario Documentación del proyecto Informes realizados por los responsablese del Programa
Expresado en dólares.
2
ERROR: syntaxerror OFFENDING COMMAND: --nostringval-STACK: /Title () /Subject (D:20070117141440) /ModDate () /Keywords (PDFCREATOR Version 0.8.0) /Creator (D:20070117141440) /CreationDate (GQ) /Author -mark/