You are on page 1of 98

1. Introduccin.

La Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social tiene la necesidad que al delegado se le informe de la situacin de la misma as como las subdelegaciones y departamentos que la componen, el trabajo se intensifica al tener que manejar los datos no solo a nivel ciudad sino a nivel estado, comprendiendo todos los municipios con los que cuenta el estado de Puebla. Cada una de las unidades mdicas que conforman la Delegacin Estatal de Puebla cuenta con departamentos similares entre s, en los que se procesa informacin sensible que refleja la situacin actual de cada una de las unidades mostrando su nivel de cumplimiento y compromiso con las funciones institucionales. La informacin conjunta de todos los aspectos que cada departamento con el que cuente cada unidad debe observar y cumplir se conocen como indicadores situacionales de la Delegacin Estatal de Puebla, los cuales deben ser capturados, almacenados y procesados para la generacin de informes que reflejen la situacin actual de Delegacin. cada una de las unidades que conforman la

2. Justificacin.
Debido al problema de manejo de informacin en la Delegacin se ha propuesto una WebApp que lleva por nombre Tablero Delegacional para Toma de Decisiones. Con esta WebApp se conoce la situacin de cada departamento as como todos los movimientos que se llevan a cabo en cada uno de ellos. Como antes se ha mencionado se lleva un manejo a nivel estado por lo cual la informacin es presentada de lo general a lo particular.

Es decir la delegacin se descompone en las subdelegaciones con las que cuenta, las cuales se encuentran en diferentes puntos del estado de Puebla; tanto de la delegacin como de las subdelegaciones se desglosa mas informacin pero ahora a nivel de unidades mdicas y al final por departamentos (ver Figura 1).

Delegacin Estatal Puebla


Figura 1. Estado en el que el sistema desglosa la informacin, de lo general a lo particular.

Subdelegaciones

Unidades

Departamentos

3. Objetivos.
3.1 Objetivo general.
Disear y desarrollar una WebApp que permita procesar toda la informacin referente a los diferentes departamentos que constituyen cada una de las unidades de la Delegacin Estatal Puebla del Instituto Mexicano del Seguro Social, tal informacin conjunta constituye los indicadores situacionales de la delegacin.

3.2 Objetivos especficos.


Anlisis de requerimientos. Diseo y creacin de la WebApp. Pruebas de la WebApp en el servidor que alojar al mismo.

Desarrollo de mdulos que permitan al usuario final capturar y consultar la informacin concerniente a cada uno de los departamentos que conforman la unidad a la que pertenece.

Definicin de roles de usuario y privilegios de acceso a la WebApp, para garantizar la integridad y confiabilidad de la informacin que ser almacenada, procesada y reflejada en la situacin de la delegacin.

Desarrollo de mdulos que permitan obtener informacin precisa sobre la situacin actual de la delegacin, de lo general a lo particular.

4. Caracterizacin del rea en que particip.


La Coordinacin Delegacional de Informtica es el rea en la que se desarrolla este proyecto, situada en la segunda planta del edificio de la Delegacin Estatal Puebla del Instituto Mexicano del Seguro Social, ubicada en Calle 4 Norte 2005 2 Piso Colonia Centro, C.P. 72000 en Puebla, Puebla, con telfono 2-42-35-27. La Coordinacin Delegacional de Informtica se divide principalmente en tres secciones: Soporte Tcnico, rea de Proceso y rea de Consulta. La ubicacin asignada para el desarrollo de esta WebApp fueron dos cubculos localizados en el rea de Proceso. Dichos cubculos cuentan con las instalaciones propicias para el manejo de equipo de cmputo con acceso a la red inalmbrica de la institucin con el fin de hacer consultas de aprendizaje a los recursos de los lenguajes utilizados. Otra parte importante en el desarrollo de esta WebApp es el referente a la zona de servidores, a la cual se nos permiti el acceso y los permisos necesarios para poder trabajar con uno de los servidores institucionales en el que ser alojada la WebApp.

Ambas localizaciones en las que se lleva a cabo el desarrollo de la WebApp cuentan con ventilacin e iluminacin muy favorables para trabajar, adems de que el rea de servidores cuenta con los sistemas adecuados de enfriamiento para poder mantener en un estado ptimo toda la infraestructura perteneciente a la institucin. Las personas con las que se tiene contacto da a da, as como las que estn a cargo de esta WebApp como asesores son personas muy agradables con las que se puede entablar una conversacin amena, agradable y respetuosa, gente muy preparada y sobre todo compaeros ya que algunos de ellos son egresados de nuestro querido Instituto Tecnolgico de Puebla.

5. Problemas a resolver, priorizndolos.


La Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social no cuenta con un sistema automatizado para controlar y monitorear la situacin real de cada uno de los departamentos de las diferentes unidades que la conforman, actualmente la informacin generada por cada departamento es registrada en hojas de clculo de Excel, lo que provoca: Incongruencias y alteracin en la veracidad de la informacin. Falta de informacin al no guardar la misma durante lapsos prolongados de tiempo. Manipulacin incorrecta de la informacin al no contar con un mecanismo de seguridad para proteger la misma. Resultados alterados y por consiguiente no confiables al interpretar la situacin real de la delegacin. Falta de unicidad en los formatos empleados en cada unidad, ya que cada una de ellas realiza el formato que se ajuste a sus necesidades de presentacin de informacin sin considerar algn formato institucional. Problemas graves al intentar procesar la informacin de cada una de las unidades para conformar la situacin real de la Delegacin.

Incongruencias en la definicin y adaptacin de conceptos al procesar la informacin a nivel de unidades.

Aunado a lo anterior, el proceso para conocer los resultados que arrojan la situacin actual de la Delegacin es lento, tedioso y propenso a errores al ser procesada la informacin de forma completamente manual.

6. Alcances y limitaciones.
6.1 Alcances.

La WebApp ser alojada en un servidor institucional. La WebApp estar funcionando para todos los departamentos de la delegacin de forma simultnea. Se podr consultar la informacin de cada uno de los departamentos para la delegacin o desglosar la informacin por unidades mdicas. Creacin y definicin especfica de permisos para nuevos usuarios de la WebApp. Manejo de perfiles y roles de usuario para accesar a la WebApp. Generacin automtica de opciones y perfiles de navegacin para los diferentes tipos de usuarios de la WebApp. Agrupacin de la informacin situacional de la delegacin mejorando su entendimiento y facilidad de interpretacin.

6.2 Limitaciones.

La informacin referente a cada departamento puede no ser capturada a tiempo por los usuarios finales provocando la alteracin de resultados en la creacin del panorama actual de la delegacin.

Manejo incorrecto de inicio de sesin de usuarios si no se activa el Agente SQL Server despus de reiniciar el servidor o recuperarse de un fallo.

7. Fundamento terico.
7.1 Modelo de Ingeniera de Software.
La ingeniera web, debe su desarrollo al crecimiento que est teniendo la Web, est ocasionando un impacto en la sociedad y el nuevo manejo que se le est dando a la informacin en las diferentes reas en que se presenta. La Ingeniera Web incluye nuevos enfoques disciplinados, metodologas, herramientas, tcnicas, guas y patrones donde tuvieran en cuenta aspectos cientficos de este nuevo medio para cubrir los requisitos nicos de las aplicaciones web. Utilizando las tcnicas y principios de la Ingeniera Web podemos controlar el desarrollo de las aplicaciones Web, mejorando la calidad, mantenimiento y disminuyendo los riesgos. Como las aplicaciones basadas en la Web estn creciendo, se debe mejorar los medios de gestin y la metodologa a usar. La ingeniera Web establece y utiliza principios cientficos, de ingeniera y gestin, y con enfoques sistemticos y disciplinados del xito y desarrollo, empleo y mantenimiento de sistemas y aplicaciones basados en la Web de alta calidad.

7.1.1 Definicin de Ingeniera Web (IWeb).


Proceso utilizado para crear, implantar y mantener aplicaciones web (WebApps) de alta calidad.

La ingeniera Web est relacionada con el establecimiento y utilizacin de principios cientficos, de ingeniera y gestin, y con enfoques sistemticos y disciplinados del xito y desarrollo, empleo y mantenimiento de sistemas y aplicaciones basados en el Web de alta calidad. Es importante porque las aplicaciones web se integran cada vez ms en las estrategias de negocios de las organizaciones grandes y pequeas. Es necesario que estas aplicaciones sean prcticas, confiables y adaptables.

7.1.2 Caractersticas de una WebApp.


Intensidad de red. Una WebApp reside en una red y debe satisfacer las necesidades de una variada comunidad de clientes. Una WebApp puede residir en internet, intranet o extranet. Concurrencia. Un gran nmero de usuarios puede tener acceso a la WebApp al mismo tiempo. Carga impredecible. El nmero de usuarios de la WebApp puede variar da a da, as que debe tener acceso a la aplicacin independientemente del nmero de usuarios que accedan a ella. Desempeo. La WebApp no debe tardar en cargar, para que el usuario pueda trabajar de manera optimizada. Disponibilidad. Los usuarios de las WebApps populares con frecuencia demandan acceso a una que est disponible los siete das de la semana, las 24 horas, los 365 das del ao. Gobernada por los datos. La funcin primordial de muchas WebApps es usar hipermedia para presentar contenido de texto, grficos, audio y video al usuario final. Adems, por lo general, las WebApps se utilizan para tener acceso a informacin que existe en base de datos que originalmente no eran parte integral del ambiente basado en web.

Sensibilidad al contenido. La calidad y naturaleza esttica del contenido sigue siendo un importante determinante de la calidad de una WebApp. Evolucin Continua. Las aplicaciones Web evolucionan de manera continua. No es raro que algunas WebApps se actualicen sobre una agenda minuto a minuto, o que el contenido sea calculado de manera independiente para cada solicitud. Inmediatez. Todo aquello a lo que se quiere acceso se debe tener una respuesta inmediata. Todos los servicios web deben ser rpidos y alcanzables. Seguridad. Con la finalidad de proteger el contenido confidencial y ofrecer modos seguros de transmisin de datos, se deben implementar fuertes medidas de seguridad a lo largo de la infraestructura que sustenta una WebApp y dentro de la aplicacin misma. Esttica. Un arte innegable de la apariencia de una WebApp es su presentacin y la disposicin de sus elementos. Cuando una aplicacin se disea para comercializar o vender productos o ideas, la esttica puede tener tanto que ver con el xito como el diseo tcnico. Estos atributos generales se aplican a todas las WebApps, pero con diferentes grados de influencia. Caractersticas como inmediatez y evolucin y crecimiento continuos, nos llevan a un proceso incremental y evolutivo, que permite que el usuario se involucre activamente, facilitando el desarrollo de productos que se ajustan mucho lo que ste busca y necesita. Segn Pressman, las actividades que formaran parte del marco de trabajo incluiran las tareas abajo enumeradas. Dichas tareas seran aplicables a cualquier aplicacin Web, independientemente del tamao y complejidad de la misma. Las actividades que forman parte del proceso son: formulacin, planificacin anlisis, modelizacin, generacin de pginas, test y evaluacin del cliente.

La Formulacin identifica objetivos y establece el alcance de la primera entrega. La Planificacin genera la estimacin del coste general del proyecto, la evaluacin de riesgos y el calendario del desarrollo y fechas de entrega. El Anlisis especifica los requerimientos e identifica el contenido. La Modelizacin se compone de dos secuencias paralelas de tareas. Una consiste en el diseo y produccin del contenido que forma parte de la aplicacin. La otra, en el diseo de la arquitectura, navegacin e interfaz de usuario.

7.1.3 Estratos de la Ingeniera Web (IWeb).


El desarrollo de aplicaciones Web incorpora mtodos de proceso especializados, mtodos de ingeniera de software adaptados a caractersticas de desarrollo de las aplicaciones Web y un conjunto de importantes tecnologas que permitan un correcto desarrollo de las mismas. Los procesos, mtodos y tecnologas (herramientas) proporcionan un enfoque en estratos de la IWeb que es conceptualmente idntico a los estratos de la ingeniera de software.

7.1.3.1 Proceso.
Los modelos de procesos Web adoptan la filosofa de desarrollo gil. El desarrollo gil enfatiza un enfoque de desarrollo riguroso que incorpora rpidos ciclos de desarrollo.

7.1.3.2 Mtodos.
Los mtodos de la IWeb abarcan un conjunto de labores tcnicas que permiten al ingeniero Web comprender, caracterizar y luego construir una aplicacin Web de alta calidad.

Los mtodos de la IWeb se pueden categorizar de la siguiente manera: Mtodos de comunicacin: Definen el enfoque con que se facilita la comunicacin entre: Mtodos de anlisis de requisitos: Proporcionan una base para comprender el contenido que se entregar a las WebApps, la funcin que proporcionar al usuario final y los modos de interaccin de cada clase de usuario requerir mientras ocurra la navegacin por medio de las WebApps. Mtodos de diseo: Abarcan una serie de tcnicas de diseo que abordan el contenido, la aplicacin y la arquitectura de informacin. Mtodos de pruebas: Incorporan revisiones tcnicas formales tanto de contenido y el modelo de diseo como de una amplia variedad de tcnicas de pruebas que abordan conflictos al nivel de componentes.

7.1.4 Proceso de la Ingeniera Web.


1. Comunicacin con el cliente. Se caracteriza por medio de dos grandes tareas: El anlisis del negocio: Define el contexto empresarial-organizativo para la WebApp, se define la integracin entre la WebApp y otras aplicaciones de negocios, bases de datos y funciones. La formulacin: Es una actividad de recopilacin de requisitos que involucra a todos los participantes. El intento es describir el problema de la WebApp habr de resolver con el aprovechamiento de la mejor informacin disponible. Adems, se intenta identificar reas de incertidumbre y donde ocurrirn cambios potenciales. 2. Planeacin. Se crea el plan de proyecto para el incremento de la WebApp. El plan consiste de una definicin de tareas y un calendario de plazos respecto al periodo proyectado para el desarrollo del incremento de la WebApp.

10

3. Modelado. Desarrollar anlisis rpidos y modelos de diseo que definan requisitos y al mismo tiempo representen una WebApp que los satisfar. 4. Construccin. Las herramientas y la tecnologa IWeb se aplican para construir la WebApp que se ha modelado. Una vez que se construye el incremento de WebApp, se dirige una serie de pruebas rpidas para asegurar que se descubran los errores en el diseo es decir: contenido arquitectura, interfaz, navegacin. 5. Despliegue. La WebApp se configura para su ambiente operativo, se entrega a los usuarios finales y luego comienza un periodo de evaluacin. La retroalimentacin acerca de la evaluacin se presenta al equipo de IWeb y el incremento se modifica conforme se requiera. A continuacin se muestra la Figura 2 para explicar grficamente el proceso de la ingeniera web. [1]

Figura 2. Proceso de la Ingeniera Web.

[1] Ingeniera del software Un enfoque prctico / Roger S. Pressman / Sexta edicin 11

7.2 Definicin de base de datos.


Se define una base de datos como una serie de datos organizados y relacionados entre s, los cuales son recolectados y explotados por los sistemas de informacin de una empresa o negocio en particular. Una base de datos es una abstraccin de una parte del mundo real. Entre las principales caractersticas de los sistemas de base de datos podemos mencionar:

Independencia lgica y fsica de los datos. Redundancia mnima. Acceso concurrente por parte de mltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditora. Respaldo y recuperacin. Acceso a travs de lenguajes de programacin estndar.

7.2.1 Sistema de Gestin de Base de Datos (SGBD).


Los Sistemas de Gestin de Base de Datos (en ingls DataBase Management System) son un tipo de software muy especfico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta.

12

7.2.2 Ventajas de las bases de datos.


Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de

almacenamiento, adems de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros estn integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos. Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato est almacenado una sola vez, cualquier actualizacin se debe realizar slo una vez, y est disponible para todos los usuarios inmediatamente. Si un dato est duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Comparticin de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estn autorizados. Mantenimiento de estndares: Gracias a la integracin es ms fcil respetar los estndares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e

13

internacionales. Estos estndares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estndares de documentacin, procedimientos de actualizacin y tambin reglas de acceso. Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. Mejora en la seguridad: La seguridad de la base de datos es la proteccin de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integracin de datos en los sistemas de bases de datos hace que stos sean ms vulnerables que en los sistemas de ficheros. Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicacin que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estndar que el programador necesita escribir en un sistema de ficheros. A nivel bsico, el SGBD proporciona todas las rutinas de manejo de ficheros tpicas de los programas de aplicacin.

14

El hecho de disponer de estas funciones permite al programador centrarse mejor en la funcin especfica requerida por los usuarios, sin tener que preocuparse de los detalles de implementacin de bajo nivel. Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicacin que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda informacin o se pierda la integridad. La mayora de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada da, y si se produce algn fallo, utilizar estas copias para restaurarlos.

15

En este caso, todo el trabajo realizado sobre los datos desde que se hizo la ltima copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

7.2.3 Desventajas de las bases de datos.


Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos. Costo del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir ms espacio de almacenamiento. Adems, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una mquina ms grande o una mquina que se dedique solamente al SGBD. Todo esto har que la implantacin de un sistema de bases de datos sea ms cara. Vulnerable a los fallos: El hecho de que todo est centralizado en el SGBD hace que el sistema sea ms vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup). [2]

7.2.4 Niveles ANSI/SPARC.


La arquitectura ANSI/SPARC, que data de 1975, define los niveles de abstraccin para un sistema de administracin de bases de datos:
[2] http://www.mae,lkstrosdelweb.com/principiantes/%C2%BFque-son-las-bases-de-datos/

16

Nivel interno (o fsico): define cmo se almacenan los datos y los mtodos de acceso. Nivel conceptual: tambin denominado modelo ER (modelo entidadrelacin) o MLD (modelo lgico de datos). Define cmo se organiza la informacin dentro de la base de datos.

Nivel externo: define las vistas del usuario.

7.2.5 Caractersticas de un DBMS.


La arquitectura de tres niveles definida por el modelo ANSI/SPARC mantiene los datos y el procesamiento separados. Hablando en general, un DBMS debe tener las siguientes caractersticas: Independencia fsica: El nivel fsico puede ser modificado

independientemente del nivel conceptual. Esto significa que el usuario no puede ver todos los componentes de hardware de la base de datos, que es simplemente una estructura transparente para representar la informacin almacenada. Independencia lgica: El nivel conceptual debe poder modificarse sin alterar el nivel fsico. En otras palabras, el administrador de la base de datos debe poder introducir mejoras sin afectar la experiencia de los usuarios. Facilidad de uso: Las personas que no estn familiarizadas con la base de datos deben poder describir su consulta sin hacer referencia a los componentes tcnicos de la base de datos. Acceso rpido: El sistema debe poder responder a las consultas lo ms rpido posible. Esto requiere algoritmos de bsqueda rpidos. Administracin centralizada: El DBMS debe permitirle al administrador manipular los datos, agregar elementos y verificar su integridad de manera centralizada. Redundancia controlada: El DBMS debe poder evitar la redundancia de datos siempre que sea posible, tanto para minimizar los errores como para prevenir el desperdicio de memoria.

17

Verificacin de integridad: Los datos deben ser internamente coherentes y, cuando algunos elementos hacen referencia a otros, estos ltimos deben estar presentes.

Uso compartido de datos: El DBMS debe permitir que mltiples usuarios accedan simultneamente a la base de datos. Seguridad de los datos: El DBMS debe poder administrar los derechos de acceso a los datos de cada usuario. [3]

7.2.6 Entidad.
Una entidad es una cosa u objeto en el mundo real que es distinguible de todos los dems objetos. Una entidad tiene un conjunto de propiedades, y los valores para algn conjunto de propiedades pueden identificar una entidad de forma unvoca.

Una entidad puede ser concreta, como una persona o un libro, o puede ser abstracta, como un prstamo, unas vacaciones o un concepto. Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. Los conjuntos de entidades no son necesariamente disjuntos.

7.2.7 Atributo.
Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. La designacin de un atributo para un conjunto de entidades expresa que la base de datos almacena informacin similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo.

Una relacin es una asociacin entre diferentes entidades. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo.
[3] http://es.kioskea.net/contents/bdd/bddansi.php3 18

7.2.8 Correspondencia de cardinalidades.


La correspondencia de cardinalidades, o razn de cardinalidad, expresa el nmero de entidades a las que otra entidad puede estar asociada va un conjunto de relaciones. La correspondencia de cardinalidades es la ms til describiendo conjuntos de relaciones binarias, aunque ocasionalmente contribuye a la descripcin de conjuntos de relaciones que implican ms de dos conjuntos de entidades.

Uno a uno. Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A. Uno a varios. Una entidad en A se asocia con cualquier nmero de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A

Varios a uno. Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier nmero de entidades (ninguna o varias) en A.

Varios a varios. Una entidad en A se asocia con cualquier nmero de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier nmero de entidades (ninguna o varias) en A.

La correspondencia de cardinalidades apropiada para un conjunto de relaciones particular depende obviamente de la situacin del mundo real que el conjunto de relaciones modela. [4]

7.3 Definicin modelo relacional.


El modelo relacional consiste en crear un esquema, de un conjunto de tablas que representan relaciones, entre los datos.
[4] Fundamentos y modelos de bases de datos/Adoracin de Miguel, Mario Piattini/ Segunda edicin 19

Estas tablas, pueden ser construidas de diversas maneras:

Creando un conjunto de tablas iniciales y aplicar operaciones de normalizacin hasta conseguir el esquema ms ptimo.

Convertir el diagrama e-r a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.

La primera tcnica fue de las primeras en existir y, como es de suponerse, la segunda al ser ms reciente es mucho ms conveniente en varios aspectos:

El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llame modelo conceptual.

Se podra pensar que es lo mismo porque finalmente hay que normalizar las tablas de todas formas, pero la ventaja de partir del modelo e-r es que la normalizacin es mnima por lo general.

Lo anterior tiene otra ventaja, an cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primera tcnica no es as. [5]

7.4 Herramientas y tecnologas.


Para poder realizar la WebApp se utilizaron los siguientes lenguajes de programacin: Microsoft SQL Server para gestionar la base de datos Visual Basic.Net para generar el cdigo de procesamiento. ASP.net que interacta con los dos lenguajes mencionados anteriormente y es la herramienta para el diseo de la interfaz de la WebApp.

[5] Fundamentos de Bases de Datos / Henry F. Korth / Cuarta edicin

20

7.4.1 Definicin de Microsoft SQL Server.


SQL Server es un conjunto de objetos eficientemente almacenados. Los objetos donde se almacena la informacin se denominan tablas, y stas a su vez estn compuestas de filas y columnas. En el centro de SQL Server est el motor de SQL Server, el cual procesa los comandos de la base de datos. Los procesos se ejecutan dentro del sistema operativo y entienden nicamente de conexiones y de sentencias SQL. SQL Server incluye herramientas para la administracin de los recursos que el ordenador nos proporciona y los gestiona para un mejor rendimiento de la base de datos.

Una buena instalacin y configuracin de SQL Server, y sobre todo una buena administracin de las herramientas que ste nos proporciona, lograr: Qu las consultas que se realicen mediante sentencias SQL obtengan un tiempo de respuesta ptimo. Qu la memoria y la CPU de la mquina estn aprovechadas al mximo.

Transact-SQL. Es el lenguaje que utiliza SQL Server para poder enviar peticiones tanto de consultas, inserciones, modificaciones, y de borrado a las tablas, as como otras peticiones que el usuario necesite sobre los datos. En definitiva, es un lenguaje que utiliza SQL Server para poder gestionar los datos que contienen las tablas.

El lenguaje estndar SQL (Structured Query Language) se emplea para los sistemas de bases de datos relacionales RDBMS (Relational Database Management System), es el estndar ANSI (American National Standards Institute). Tambin es utilizado por otros sistemas como: Oracle, Access, Sybase, etc.

21

Motores de SQL Server. Existen dos motores muy importantes en SQL Server: El motor relacional: Incluye los componentes necesarios para la consulta de datos. El motor de almacenaje: Gestiona el almacenaje fsico de los datos y la actualizacin de los datos en disco.

7.4.1.1 Arquitectura cliente/servidor.


SQL Server se encarga de administrar bases de datos relacionales basadas en la arquitectura cliente/servidor (RDBMS: Relational Database Management System). SQL Server utiliza la arquitectura cliente/servidor para coordinar el trabajo entre el equipo cliente y el equipo servidor. Dependiendo del tipo de aplicacin que se quiera programar depender la reparticin de la carga de trabajo entre el cliente y el servidor.

El equipo cliente se suele encargar de la parte lgica y de mostrar la informacin al usuario que realiza una peticin. El equipo servidor SQL Server, se encarga de administrar la base de datos, de gestionar los recursos del servidor. (CPU, memoria, etc.), y por supuesto de resolver y devolver en forma de solucin la peticin realizada por el cliente.

Nota: La aplicacin cliente por lo general est instalada en equipos cliente que realizan peticiones a un servidor de datos SQL Server, se puede dar el caso de tener una aplicacin cliente instalada en el mismo equipo donde se encuentra el servidor de bases de datos, aunque no es lo normal, ni lo recomendable.

El sistema RDBMS se encarga de: Crear una estrategia de copias de seguridad. Crear planes de mantenimiento para el buen funcionamiento de la base de datos. [6]
[6] http://www.formaselect.com/curso/experto-en-sql-server-2000/Introduccion-a-SQL-Server%202000.pdf

22

7.4.2 Definicin de Visual Basic.Net.


Es un lenguaje orientado a objetos y eventos que soporta encapsulamiento, herencia y polimorfismo. Es una mejora a Visual Basic formando parte de Visual Studio y compartiendo el entorno de desarrollo con Microsoft Visual C++ .NET, Microsoft Visual C# .NET, etc.

7.4.2.1 Entorno de desarrollo.


El Entorno de Desarrollo recibe el nombre de Entorno de Desarrollo de Microsoft Visual Studio .NET. Este entorno es personalizable y contiene todas las herramientas necesarias para construir programas para Microsoft Windows. El Entorno de Desarrollo contiene mltiples ventanas y mltiples funcionalidades y es por consecuencia llamado un entorno de desarrollo integrado (integrated development environment IDE) (ver Figura 3). La ventana central es la ventana de diseo (Designer Window), la cual contiene el formulario a desarrollar. La caja de herramientas (ToolBox) se localiza de lado izquierdo (ver Figura 3a). En el extremo derecho tenemos la ventana de explorador de soluciones (Solution Explorer) (ver Figura 3b). La ventana de propiedades (Properties window) contiene tres partes: La parte superior contiene un combo box que muestra el nombre y la clase del objeto seleccionado. La parte media contiene la lista de propiedades del objeto seleccionado, de lado derecho contiene un conjunto de cajas para ver y editar el valor de la propiedad seleccionada.

23

La parte inferior es un cuadro descriptivo que proporciona una breve descripcin de la propiedad seleccionada (ver Figura 3c).

3b 3a

3c

Figura 3. Entorno de desarrollo de Visual Basic.Net

Figura 3b. Ventana de explorador de soluciones (Solution Explorer)

Figura 3a. Caja de herramientas (ToolBox) del entorno de desarrollo

24

Figura 3c. Ventana de propiedades (Properties window)

En Visual Basic .NET existen dos archivos: Un archivo de proyecto con extensin .vbproj, el cual contiene informacin especfica para una determinada tarea de programacin. Un archivo de solucin con extensin .sln, el cual contiene informacin relacionada con uno o ms proyectos. Este tipo de archivo puede administrar varios proyectos relacionados entre s y son similares a los archivos de grupos de proyecto con extensin .vbg en Visual Basic 6. Si la solucin tiene un nico proyecto, abrir el archivo de proyecto (.vbproj) o el archivo de solucin (.sln) tiene el mismo resultado, pero si la solucin es multiproyecto entonces deber abrir el archivo de solucin. Los formularios en Visual Basic .NET tienen la extensin .vb. Se mostrarn a manera de pestaas junto a la pgina de inicio, la vista de diseo y el cdigo del formulario.

25

7.4.2.2 .NET Framework.


Visual Studio .NET tiene una nueva herramienta que comparte con Visual Basic, Visual C++, Visual C#, etc. llamada .NET Framework que adems es una interfaz subyacente que forma parte del propio sistema operativo Windows. La estructura de .NET Framework es por Clases mismas que puede incorporar a sus proyectos a travs de la instruccin Imports. La declaracin de Imports debe ser a nivel de formulario (ver Cdigo 1).
Imports System.Math Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs)-Handles MyBase.Load txtOutput.Text += Sqrt(9) & vbNewLine Cdigo 1. Declaracin de Imports a nivel de formulario.

7.4.2.3 .NET.
La biblioteca de clases .NET es una biblioteca de clases incluida en el Microsoft .NET Framework y est diseada para ser la base sobre las cuales las aplicaciones .NET son construidas. La biblioteca .NET contiene un nmero considerable de clases con cdigo reutilizable, para ayudar a controlar esta complejidad .NET utiliza namespaces, colecciones de clases relacionadas (ver Cdigo 2).
Imports System.Data Imports System.Data.SqlClient

Cdigo 2. Uso de namespaces

7.4.2.4 Programacin orientada a eventos.


Visual Basic .NET soporta la Programacin Orientada a Eventos en la cual las aplicaciones reconocen y responden a eventos.

26

7.4.2.4.1 Evento.
Un evento es una accin o acontecimiento reconocido por algunos objetos para los cuales es necesario escribir el cdigo para responder a dicho evento. Los eventos pueden ocurrir como resultado de una accin del usuario (onClick), por invocacin a travs de cdigo o disparados por el sistema (Timer Tick Event) (ver Figura 4).

Figura 4. Ejemplo de evento generado al presionar un botn.

7.4.2.4.2 Manejador de eventos.


Un manejador de eventos contiene cdigo que responde a eventos particulares. Un desarrollador disea cuidadosamente sus aplicaciones determinando los controles disponibles para el usuario y los eventos apropiados asociados a estos controles, entonces, el desarrollador escribe el cdigo para integrar los eventos consistentes con el diseo de la aplicacin (ver Cdigo 3).
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub Cdigo 3. Manejo del evento clic de un botn.

7.4.2.5 Procedimientos.
Un procedimiento es un conjunto de sentencias que realizan una accin lgica. Existen tres tipos de procedimientos en Visual Basic .NET:

27

Event procedures/Event handler, procedimiento que contiene cdigo que es ejecutado en respuesta a un evento. Cuando el evento es disparado el cdigo dentro del manejador de eventos es ejecutado. Visual Basic .NET para los manejadores de eventos utiliza una convencin estndar la cual combina el nombre del objeto seguido de un guin bajo y el nombre del evento (ver Cdigo 4).
Private|Public Sub objeto_Evento(parmetros) handles Objeto.Evento sentencias End Sub

Cdigo 4. Procedimiento que se ejecuta en respuesta a un evento en Visual Basic.Net. La clusula Handles indica el tipo de procedimiento. La lista de parmetros indica el tipo de variables sobre las que trabaja dicho procedimiento.

Cada manejador de eventos provee dos parmetros, el primer parmetro llamado sender provee una referencia al objeto que dispara el evento, el segundo parmetro es un objeto cuyo tipo de dato depende del evento que es manejado. Ambos parmetros son pasados por valor. Si un parmetro es declarado por referencia ByRef el parmetro apunta al argumento actual. Por default los argumentos se pasan por valor ByVal el parmetro es una copia local del argumento. Sub procedures. Contiene cdigo que el desarrollador crea para realizar una accin lgica (ver Cdigo 5).
Private|Public Sub nombre_Procedimiento(parmetros) sentencias End Sub
Cdigo 5. Procedimiento creado por el desarrollador. La lista de parmetros es opcional.

28

Function procedures. Contiene cdigo que el desarrollador crea para realizar una accin lgica y regresa un valor, el valor que una funcin enva de regreso al programa que lo invoco es llamado valor de regreso. Para regresar un valor se utiliza la sentencia Return (ver Cdigo 6).
Private|Public Function nombre_Funcion(parmetros) as Tipo Sentencias Return valor End Function Cdigo 6. Procedimiento del tipo funcin. La lista de parmetros es opcional y se debe indicar el tipo de valor que regresar la funcin. La clusula Return es obligatoria.

7.4.2.6 mbito de las variables.


Cuando es declarada una variable tambin se define su mbito, el mbito de una variable es la regin de cdigo en la cual la variable se referencia directamente. Existen dos tipos de mbitos de las variables: 1. Local. Es una variable declarada dentro de un procedimiento y se destruye cuando el procedimiento termina de ejecutarse. 2. Modular. Es una variable declarada a nivel mdulo fuera de cualquier procedimiento y son declaradas en la parte superior del Editor de Cdigo arriba del primer procedimiento, este espacio es llamado Seccin de Declaraciones Generales (General Declaration Section) (ver Cdigo 7).

Partial Class _Default Inherits System.Web.UI.Page Dim variable_modular As float 'Declaracin de variable modular Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim variable_local As Integer 'Declaracin de variable local End Sub End Class Cdigo 7. Declaracin de variables modular y local en Visual Basic.Net

29

7.4.2.7 Constantes.
Una constante es aquella que almacena un valor que no es posible cambiar durante la ejecucin del programa. Se recomienda que el nombre de una constante sea escrito en su totalidad en maysculas (ver Cdigo 8).
Const PI As Double = 3.14159265 Cdigo 8. Declaracin de constantes.

Si desea que la constante est disponible para todos los formularios y mdulos de la aplicacin deber ser declarada en un mdulo y anteponer a su declaracin la palabra reservada Public (ver Cdigo 9).
REM Escribir en un Mdulo Public Const PI As Double = 3.14159265 Cdigo 9. Declaracin de una constante pblica.

7.4.2.8 Operadores.
La Tabla 1 muestra los operadores matemticos disponibles en Visual Basic .Net. Operador + * / Mod ^ & Suma Resta Multiplicacin Divisin Residuo (resto de la divisin entera) Exponenciacin (elevar a una potencia) Concatenacin de Cadenas
Tabla 1. Operadores aritmticos.

Descripcin

30

Un ejemplo del uso de operadores aritmticos se observa en el Cdigo 10.

Dim nInc As Integer For nInc = 1 To 10 If nInc Mod 2 = 0 Then txtOutput.Text += nInc & " es par " & vbNewLine Else txtOutput.Text += nInc & " no es par " & vbNewLine End If Next txtOutput.Text += "10/0 = " & CStr(10 / 0) Cdigo 10. Uso de operadores aritmticos

7.4.2.8.1 Operadores String.


El operador de concatenacin (&) String requiere operadores String y producen resultados String (ver Cdigo 11).
"update usuario set st_usua = 0 where id_usua = '" & bruker & "'", objConexion

Cdigo 11. Uso de operadores String

7.4.2.8.2 Operadores comparativos.


Los operadores Comparativos requieren operadores Comparativos (>, <,>=, <=, =, <>) y producen un resultado lgico (True o False) (ver Cdigo 12).
If TextBox2.Text <= 100 Then Sentencia End If Cdigo 12. Uso de operadores comparativos

31

7.4.2.8.3 Operadores lgicos.


Los operadores Lgicos requieren operadores Lgicos (NOT, AND, OR, XOR) y producen un resultado lgico (ver Cdigo 13).
If TextBox2.Text <= 100 And TextBox3.Text > 200 Then Sentencia End If Cdigo 13. Uso de operadores lgicos

7.4.2.8.4 Operadores abreviados.


Visual Basic .NET incorpora nuevos operadores abreviados que facilitan la escritura de cdigo (ver Cdigo 14).
x = x + 1 x += 1

Cdigo 14. Uso de operadores abreviados.

7.4.2.8.5 Precedencia de operadores.


A continuacin se muestra el orden de precedencia de los operadores en Visual Basic .NET (ver Tabla 2). Precedencia de operadores () ^ */ Mod +Tabla 2. Precedencia de operadores.

32

Un ejemplo de la precedencia de operadores se observa en el Cdigo 15.


Label4.Text = ((50+20)/20+3*2)-6 Cdigo 15. Ejemplo de precedencia de operadores.

7.4.2.9 Sentencias de control.


Visual Basic .NET incorpora 2 nuevos operadores lgicos para utilizarlos en las sentencias de control, a continuacin se mostrar la tabla de operadores lgicos anteriores y nuevos (ver Tabla 3). Operadores Lgicos Descripcin And Or Not Xor AndAlso OrElse Las 2 expresiones deben ser verdaderas Alguna de las 2 expresiones es verdadera Negacin del resultado de la expresin Si 1 y slo 1 de las expresiones es verdadera Si la primer y segunda condicin son verdaderas Si la primer o segunda condicin es verdadera
Tabla 3. Operadores lgicos.

Los nuevos operadores lgicos AndAlso y OrElse reciben el nombre de sistema de corto-circuito. Parece que el operador lgico AndAlso como OrElse nos ahorran escribir un If dentro de otro If/else y quiz evitar un error en tiempo de ejecucin (ver Cdigo 16).
Dim nCalificacion As Integer = 0 If nCalificacion < 0 OrElse nCalificacion / 0 Then MsgBox("Error de lgica") Else MsgBox("Continuar clculo") End If Cdigo16. Uso de operadores lgicos.

33

7.4.2.10 Depuracin, tipos de errores.


Existen 3 tipos bsicos de errores, los fciles de encontrar, solucionar y que no causan problemas de mantenimiento (sintaxis), los difciles de encontrar, solucionar y que causan problemas potenciales de mantenimiento (lgica): Errores de compilacin o de Sintaxis, son aquellos errores en los cuales la estructura sintctica definida por el lenguaje no concuerda con la escrita en una sentencia, es decir, ocurren cuando el cdigo escrito no sigue o viola las reglas del lenguaje, para ello Visual Studio reconoce un error de sintaxis subraya de azul el error y pasando por encima de este el mouse aparece un mensaje de error. Errores en tiempo de ejecucin, son todos aquellos errores no descubiertos por el compilador y que provocan una mal funcin del programa. Ahora en Visual Basic .NET un error en tiempo de ejecucin genera una excepcin, lo cual significa que esta situacin excepcional requiere de un manejo especial. Errores lgicos, son todos aquellos errores de tipo HumanWare, es decir, fallas en la forma de pensar de la persona y que trasciende al cdigo, este tipo de errores son los que consumen ms tiempo al tratar de hacer un programa libre de errores y son adems los errores ms difciles de corregir, por ser el resultado de una planificacin y razonamiento equivocados. Los errores lgicos son errores en el diseo o implementacin de la solucin que provocan un comportamiento incorrecto. La razn por la cual son los errores ms difciles de corregir es porque la mayora de los escenarios funciona sin problema, pero basta con que un escenario no se cumpla para hacer fallar el programa.

34

7.4.2.10.1 Error en tiempo de ejecucin.


Error inesperado del cual un programa en Visual Basic .NET no se puede recuperar, por no poderse completar una instruccin entonces Visual Basic .NET no tiene instrucciones precisas que ejecutar en estos casos cuando se genera el error. Para lidiar con los errores en tiempo de ejecucin Visual Basic tiene este nuevo mecanismo Try - Catch para controlar los errores, ya que este mecanismo atrapa el error definiendo las acciones a seguir cuando se identifica el error. Algo importante a analizar y disear es cuando y como integrar un mecanismo TryCatch. As que deber emplearse en aquellas situaciones susceptibles a error (ver Cdigo 17).
Try Sentencia(s) que pueden generar un error en tiempo de ejecucin Catch (el error se genero) sentencia(s) que definen las acciones a seguir ya que se genero el error Finally sentencia(s) que reestablecen las condiciones antes de generarse el error. End Try Cdigo 17. Estructura de Try-Catch

La palabra reservada Finally es opcional. El cdigo contenido dentro de un bloque Try recibe el nombre de cdigo protegido, porque evita la interrupcin del programa o aplicacin y ejecuta las instrucciones contenidas en Catch.

35

Para probar ms de una condicin de error en tiempo de ejecucin utilice la sentencia Catch When (ver Cdigo 18).
Try 'Evaluar expresin Catch When Err.Number = 13 'Ocurrio un error de tipo de datos, no coinciden los tipos Catch When Err.Number = 6 'Ocurrio un error en el control del ndice, desbordamiento Catch 'Controlar el error End Try Cdigo 18. Estructura de Catch When.

Por ltimo, este mecanismo al igual que las sentencias de control tiene una manera de salir del bloque ya sea este Try o Catch a travs del empleo de la instruccin Exit try, pero si contiene una sentencia Finally el cdigo contenido en esta si se ejecuta, nicamente aplica para Try y Catch pues el objetivo de Finally es precisamente el ejecutar pase lo que pase su contenido (ver Cdigo 19).
Try 'sentencia(s) que pueden generar un error en tiempo de ejecucin 'Bajo determinada condicin Exit try Catch '(el error se genero) 'sentencia(s) que definen las acciones a seguir ya que se genero el error 'Bajo determinada condicin Exit try Finally 'sentencia(s) que restablecen las condiciones antes de generarse el error. End Try Cdigo 19. Estructura de Finally.

36

7.4.3 Definicin ASP.NET y Web Forms.


Web Forms es un nuevo modelo de programacin para interfaces de usuario de Internet basado en ASP.NET que sustituye a WebClasses y el Diseador de Web Forms sustituye al Diseador de pginas DHTML. El Diseador de Web Forms es parte de Visual Studio .NET (tambin disponible para C# .NET). Web Forms es el componente de diseo de ASP.NET (plataforma de desarrollo Web para Microsoft rediseada a partir de cero basndose en .NET Framework), que permite crear y administrar interfaces de usuario de Internet o pginas web. Visual Studio soporta Web Forms para la creacin rpida y fcil de interfacesusuario para aplicaciones web ASP.NET, Web Forms combina la velocidad y facilidad de un entorno de Desarrollo Rpido de Aplicacines (RAD, Rapid Application Development) con el poder de la compilacin de los lenguajes de programacin. Cada Web Form est compuesta de dos archivos: Pgina Web Forms/User Interface Form (contiene pginas HTML y los controles para crear la interfaz de usuario .aspx) (ver Figura 5).

Figura 5. Pgina Web Forms/User Interface Form.

37

Archivo de cdigo correspondiente/Code-Behind (Mdulo de cdigo que contiene el cdigo que corresponde a la pgina Web Forms .aspx.vb) (ver Figura 6).

Figura 6. Archivo de cdigo correspondiente/Code-Behind.

En Visual Studio es posible ver los archivos ASPX y VB.NET como dos vistas de la misma pgina. El servidor web compilar ambos archivos y crea una nueva clase que contiene HTML esttico, controles-servidor ASP.NET y cdigo de la forma compilado en conjunto, la clase genera el HTML que enva al cliente cada vez que la pgina es requerida. Los Web Forms (requieren de .NET Framework en el servidor para ejecutarse en la mquina-servidor) son similares a Windows Forms (requieren de .NET Framework para ejecutarse en la mquina-cliente) pues ambos son event driven, es decir, que se puede responder a eventos que ocurren en los controles-servidor de la pgina HTML. Los manejadores de eventos para los controles-servidor son escritos en el cdigo detrs de la pgina utilizando sintaxis VB.NET. Una aplicacin Web puede contener mdulos de cdigo (.vb), documentos HTML (.htm/html), informacin de configuracin (Web.config) y (Global.asax), as como otros componentes.

38

Las aplicaciones ASP.NET contienen un archivo especial llamado Global.asax utilizado para establecer cualquier objeto global requerido por la aplicacin web. El archivo es compilado con la primera peticin a una pgina de la aplicacin web. Cuando este archivo es modificado, el archivo es recompilado y la aplicacin web reiniciara en la prxima peticin de una pgina. Para crear una aplicacin Web de ASP.NET se utilizan los controles de las secciones HTML o Web Forms de la caja de herramientas. Los controles Web Forms son controles de servidor, es decir, que se ejecutan y pueden ser programados en el servidor web. Los controles HTML son por default controles cliente, es decir, que se ejecutan en el navegador del usuario final, aunque es posible configurar estos controles HTML como controles de servidor dando el valor Server a su propiedad Runat. Los Controles HTML son los controles comunes utilizados en el HTML, los Controles Web Forms son ms potentes y poseen propiedades, mtodos y eventos. No es necesario que un usuario tenga la ltima versin del navegador ya que Visual Studio .NET contiene la propiedad targetSchema en el objeto DOCUMENT para especificar una versin del navegador y soporta Internet Explorer 3.02, 3.0, 5.0 y Navigator 4.0, por default tiene el valor de Internet Explorer 5.0, as que el valor seleccionado afecta el cdigo HTML generado y las funciones disponibles en Visual Studio. Si requiere crear una aplicacin Web en Visual Basic .NET, cree un proyecto Aplicacin Web ASP.NET (ASP.NET Web Application), tambin requiere de Windows 2000 o Windows XP Professional, IIS, Extensiones de FrontPage 2000 y bibliotecas .NET Framework, si tiene XP Home Edition no podr crear aplicaciones Web ASP.NET localmente, pero si podr crearlas si accede a un Servidor Web Remoto configurado adecuadamente.

39

Se recomienda instalar IIS y Extensiones Front Page antes de instalar .NET Framework y Visual Studio .NET, si trata de instalar IIS y Extensiones Front Page despus de .NET Framework deber repararlo pues .NET Framework registra las extensiones a travs de IIS.

7.4.3.1 Arquitectura Tres Capas (Three-Tier).


Aplicaciones sofisticadas que involucran bases de datos y son con frecuencia divididas en tres capas basadas en la particin lgica de servicios fundamentales (ver Tabla 4).
Capa de Presentacin/Presentation Layer, navegador en la mquina-cliente Capa de Aplicacin/Application Layer, servidor web IIS que contiene las pginas ASP.NET Capa de Datos/Data Layer, servidor de base de datos que contiene los archivos de base de datos y servicios ADO.NET Tabla 4. Arquitectura Tres Capas.

Las aplicaciones de tres capas protegen los recursos del servidor de base de datos reduciendo el nmero de conexiones actuales a la base de datos. Las conexiones al servidor de base de datos se realizan por las aplicaciones del servidor en lugar de ser realizadas por las mquinas cliente. Los usuarios no requieren de conexiones individuales o persistentes al servidor de base de datos, lo cual no slo protege los recursos de base de datos, tambin facilita el mantenimiento de cuentas y fortalece la seguridad de datos. Capa de Presentacin - Presentation Layer La Capa de Presentacin se ejecuta sobre la mquina del usuario (cliente) y provee de una interfaz de aplicacin, un cliente robusto realiza procesos significativos con menos carga en la capa de aplicacin, un cliente menos robusto tpicamente involucra un navegador (browser) que despliega HTML con procesos poco significativos y requiere de una mayor carga en la capa de aplicacin.

40

Capa de Aplicacin - Application Layer La Capa de Aplicacin provee varios mdulos y servicios que son esenciales para la solucin, incluyendo el procesamiento basado en las reglas de negocio. Si las reglas de negocio cambian solamente los servicios en la capa de aplicacin necesitan ser cambiados para implementar los cambios a travs del sistema. La Capa de Aplicacin tambin provee un mediador entre los manejadores de la capa de aplicacin y la capa de datos. Los requerimientos del usuario para los servicios de datos son manejados por la capa de aplicacin la cual puede reducir el nmero de conexiones a la base de datos, por ejemplo todos los usuarios pueden compartir una conexin entre la capa de aplicacin y la capa de datos, antes que cada usuario (cliente) requiera de una conexin de datos. Capa de Datos - Data Layer La Capa de Datos es la responsable de todos los accesos a la base de datos requeridos por la solucin, esta capa comnmente provee el soporte para agregar, eliminar, actualizar y recuperar informacin de la base de datos.

7.4.3.2 State Management.


p> HTTP es un protocolo stateless (sin estado), es decir, cada peticin de una nueva pgina web es procesada sin ningn conocimiento de peticiones de pginas previas. State Management (administracin de estados) se refiere a las tcnicas en las cuales los desarrolladores mantienen el estado de una aplicacin web a travs de mltiples peticiones de pginas.

41

7.4.3.3 Tcnicas de administracin de estados. En ASP.NET existen varias opciones para que los desarrolladores mantengan el estado de un sitio web, algunas de ellas involucran mantener informacin en la mquina-cliente, otras en la mquina-servidor.

7.4.3.3.1 Del lado cliente.


Existen varias Tcnicas de Administracin de Estados del Lado del Cliente (ClientSide State Management Techniques) disponibles en ASP.NET, las cuales involucran almacenamiento de informacin en la mquina-cliente, un usuario puede manipular la informacin la cual puede resultar en un estado incorrecto y crear un compromiso potencial de seguridad, por ello que la administracin de estados de lado del cliente debera ser limitado a aplicaciones no criticas o seguras y soluciones intranet.

7.4.3.3.1.1 View State.


Una pgina web es re-creada en cada peticin, sin esfuerzos de administracin de estados, toda la informacin asociada con la pgina y los controles en las pginas podran perderse. ASP.NET provee una facilidad llamada View State (estado de vista) que representa el estado de la pgina cuando fue procesada en el servidor. Cuando la pgina es enviada de regreso al servidor ASP.NET utiliza el View State para recuperar la informacin apropiada en la pgina. El View State es visible en el cdigo HTML siendo un asunto potencial de seguridad.

7.4.3.3.1.2 Query String.


Un Query String (Cadena de Consulta) es informacin que se agrega al final del URL. Un Query String tpicamente comienzan con el caracter? seguido de informacin especfica para la aplicacin. Un Query String puede ser utilizado para intercambiar datos entre el cliente y el servidor, de una pgina a otra.
42

Un Query String no es seguro porque la informacin es visible en el navegador, adems que la mayora de los navegadores tienen una longitud mxima de 255 caracteres para el URL, lo cual limita la informacin que puede ser enviada utilizando un Query String (ver Cdigo 20).
Dim id As Integer = Request.QueryString("id") Cdigo 20. Uso de Query String.

7.4.3.3.1.3 Cookies.
Una Cookie es un texto pequeo almacenado en la mquina-cliente, es decir, un archivo de texto y no un programa o plug-in, el navegador anexa la Cookie en cada nueva peticin HTTP antes que enviarla al servidor para que los datos puedan ser ledos y respondidos apropiadamente. La informacin almacenada en una Cookie puede ser expuesta y por lo tanto no es lo mejor para mantener informacin, adems los usuarios podran deshabilitar la opcin en sus navegadores para no utilizar Cookies, entonces la aplicacin no debera ser dependiente de un dato en la Cookie (ver Cdigo 21).
Dim galleta As New HttpCookie("bruker") galleta.Value = TextBox3.Text 'galleta.Expires = DateTime.Now.AddMinutes(20) galleta.Expires = DateTime.Now.AddDays(1) Response.Cookies.Add(galleta) Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString Cdigo 21. Uso de Cookies

7.4.3.3.2 Del lado servidor.


Existen tambin varias Tcnicas de Administracin de Estados del Lado del Servidor (Server-Side State Management Techniques) disponibles en ASP.NET. Ya que las opciones del lado del servidor almacenan informacin fuera del alcance

43

del cliente la informacin es ms segura. Los estados de administracin del lado del servidor deberan ser incluidos en todas las aplicaciones que requieran soluciones seguras.

7.4.3.3.2.1 Application State.


Application State (Estado de Aplicacin), es la suma de todos los archivos, pginas y cdigo que reside en el servidor. Cuando se ejecuta una aplicacin web, ASP.NET mantiene informacin referente a la aplicacin en el Application State, el cual es creado la primer vez que un cliente hace una peticin de un URL dentro de la aplicacin ASP.NET, el Application State se mantiene en la memoria del servidor hasta que un servidor web se apaga o hasta que la aplicacin se modifique. El Application State permite a los desarrolladores crear variables de aplicacin (application variables) que pueden establecerse y leerse a travs de la duracin de vida de la aplicacin. Una variable de aplicacin se compone de la palabra reservada Application seguido entre parntesis (y comillas) del nombre de la variable, por ejemplo: Application("UsuariosConectados"), estas variables se crean automticamente en la primer referencia. Las variables de aplicacin son de mbitos globales y pueden ser usadas desde cualquier pgina de la aplicacin web y sus valores son independientes de un usuario especfico.

7.4.3.3.2.2 Session State.


Una sesin es el perodo de tiempo que un nico navegador interacta con la aplicacin web, cada vez que un nuevo navegador invoca una aplicacin web, una nueva sesin es creada para el navegador. Cuando una nueva sesin es creada, ASP.NET mantiene informacin referente a la sesin en el Session State. El Session State permite a los desarrolladores crear variables de que pueden establecerse y leerse a travs de la duracin de vida de la sesin. Las variables de sesin se componen de la palabra reservada Session seguido entre parntesis (y

44

comillas) del nombre de la variable, por ejemplo: Session("User"), las variables de sesin pueden ser accedidas desde cualquier pgina de la aplicacin web por cada peticin a la aplicacin. Las sesiones y sus variables expiran despus de veinte minutos de inactividad. Si el navegador hace una peticin despus del tiempo de expiracin (20 minutos) la aplicacin web crea una nueva sesin para el navegador.

7.4.3.3.2.3 Database Support.


Los datos almacenados en las variables de aplicacin y sesin podran perderse, si la aplicacin es interrumpida, para sobrevivir a estas interrupciones, el estado de informacin debera ser almacenado en la base de datos. Mantener un estado de informacin en la base de datos es tambin til cuando la informacin a ser almacenada es significativa en tamao, la dimensin del procesamiento y almacenamiento puede ser cargado en la capa de datos permitiendo mejorar el desempeo de la capa de aplicacin. Para una aplicacin web profesional es muy comn mantener un estado de informacin en la base de datos relacional por las siguientes razones:

Seguridad, la informacin del usuario almacenada en la base de datos es un nivel extra eliminado de las capa de presentacin, haciendo que los datos sean menos disponibles para uso indebido. Si la base de datos contiene informacin importante puede ser protegida a travs de un usuario y contrasea para evitar accesos no deseados.

Consultas, el almacenamiento de datos en la base de datos da a la aplicacin el poder y funcionalidad de la base de datos en general, incluyendo la habilidad para consultar informacin especfica.
45

Capacidad, las bases de datos son especialmente buenas para mantener cantidades grandes de informacin y los servicios de datos pueden fraccionarse a la capa de datos que reside en uno o ms servidores de datos, permitiendo a la aplicacin web evitar la disminucin del desempeo.

Extraccin de Datos, teniendo la capacidad de base de datos una aplicacin, podra mantener referencias sobre cuntas veces el usuario ha visitado la aplicacin web. [7]

8.

Procedimientos

descripcin

de

las

actividades

realizadas.
Para el desarrollo de la WebApp se utiliz el modelo IWeb descrito en el punto

7.1.4 Proceso de la Ingeniera Web (ver Figura 2).


Siguiendo el proceso del modelo IWeb se realizaron las siguientes etapas: 1. Comunicacin con el cliente. Dentro de la comunicacin con el cliente, durante el anlisis del negocio se identific a la Coordinacin Delegacional de Informtica como una de las unidades que constituyen a la Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social, la Coordinacin se constituye como un organismo pblico de servicios encargada de resolver gran cantidad de trmites administrativos y las necesidades de informacin referentes a la Delegacin Estatal de Puebla. La Coordinacin Delegacional de Informtica cuenta con servidores de datos, FTP y bases de datos dedicadas al manejo y mantenimiento de los diferentes sistemas con los que cuenta, la WebApp desarrollada se integra en uno de dichos servidores con sistemas actualmente en lnea.
[7] http://www.canalvisualbasic.net/manual-net/vb-net/ 46

La WebApp se constituye como la solucin a una necesidad de procesamiento de informacin de la Coordinacin Delegacional de Informtica que permite conocer de forma precisa la situacin real de la Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social. Durante el proceso de formulacin se llevaron a cabo entrevistas con el Lic. Jefte De Jess Espinosa Vera Coordinador Delegacional de Informtica para conocer las necesidades reales de la Delegacin Estatal de Puebla, dichas entrevistas arrojaron la informacin necesaria para determinar que la solucin ptima para las necesidades identificadas era la creacin de una WebApp. La Lic. Yadira Estrada Izucar Controladora de Sistemas Interactivos, asesor externo y responsable del proyecto, particip en la formulacin de la WebApp indicando la forma en la que se procesan los diferentes indicadores de cada uno de los departamentos de la Delegacin Estatal de Puebla. A continuacin se muestra la entrevista realizada al Lic. Jefte De Jess Espinosa Vera y a la Lic. Yadira Estrada Izucar durante el proceso de comunicacin con el cliente. 1. Qu tipo de informacin procesar la WebApp? 2. Qu procesamiento o tratamiento se le dar a dicha informacin? 3. Cul es el volumen de informacin estimado que procesar la WebApp? 4. Cul es la infraestructura disponible para la manipulacin de la WebApp? 5. Qu herramientas se tienen disponibles para el desarrollo de la WebApp? 6. Cul es el nmero aproximado de usuarios que tendr la WebApp? 7. A qu tipo de usuarios estar destinada la WebApp? 8. Cul sera el propsito general de la WebApp? 9. Qu tipo de resultados espera obtener con la WebApp?

47

10. Actualmente informacin?

existe

algn

mecanismo

para

procesar

dicha

11. Describa brevemente el proceso que sigue la informacin y que debe ser automatizado. La informacin obtenida mediante las entrevistas indic que exista una gran posibilidad de que se realizaran cambios posteriores sobre la WebApp. 2. Planeacin. Una vez que se obtuvo y analiz la informacin necesaria para el desarrollo de la WebApp, mediante la realizacin de las entrevistas, se estableci el calendario de actividades y diagrama de Gantt, los cuales se muestran en las Figuras 7 y 7a respectivamente. 3. Modelado. Para el desarrollo de la WebApp se inici con la creacin de una representacin grfica de cmo se llevara a cabo el proceso de manejo de informacin proveniente desde las diferentes unidades que conforman la Delegacin Estatal de Puebla (ver Figura 8). Como se puede apreciar en la Figura 8, cada Unidad Mdica que constituye la Delegacin Estatal de Puebla cuenta con sus propios departamentos, los cuales generan informacin referente a su situacin actual, cada Unidad Mdica debe enviar la informacin de cada uno de sus departamentos a la Delegacin Estatal de Puebla y la WebApp debe encargarse de almacenar, procesar y mostrar los resultados del procesamiento de dicha informacin para cada uno de los departamentos que la constituyen.

48

Figura 7. Calendario de actividades.

49

Figura 7a. Diagrama de Gantt.

50

Figura 8. Representacin grfica del manejo de informacin de la Delegacin Estatal de Puebla.

51

Posteriormente se diseo el diagrama conceptual de la base de datos que se us para la WebApp, a continuacin se describen los pasos a seguir para dicho proceso. 1. Identificar las entidades.

TIPO_UNIDAD DEPARTAMENTO

SUBTIPO_UNIDAD USUARIO INDICADOR

UNIDAD

2. Identificar los atributos de las entidades.

TIPO_UNIDAD identificador_tipo nombre_tipo

SUBTIPO_UNIDAD identificador_subtipo nombre_subtipo nivel_subtipo

UNIDAD identificador_unidad nombre_unidad

DEPARTAMENTO identificador_departamento nombre_departamento

USUARIO identificador_usuario password_usuario matricula_usuario apellido_paterno_usuario apellido_materno_usuario nombre_usuario unidad_usuario area_usuario status_usuario permisos_usuario hora_login_usuario accesos_usuario

INDICADOR identificador_indicador referencia_indicador valor1 valor2 mes fecha

52

3. Identificar atributos opcionales y mandatorios.

TIPO_UNIDAD *identificador_tipo *nombre_tipo

SUBTIPO_UNIDAD *identificador_subtipo *nombre_subtipo *nivel_subtipo

UNIDAD *identificador_unidad *nombre_unidad

DEPARTAMENTO USUARIO *identificador_departamento *nombre_departamento *identificador_usuario *password_usuario *matricula_usuario *apellido_paterno_usuario *apellido_materno_usuario *nombre_usuario *unidad_usuario *area_usuario *status_usuario *permisos_usuario *hora_login_usuario *accesos_usuario

INDICADOR *identificador_indicador *referencia_indicador *valor1_indicador valor2_indicador *mes_indicador *fecha_indicador

4. Determinar el identificador nico.

TIPO_UNIDAD #*identificador_tipo *nombre_tipo

SUBTIPO_UNIDAD #*identificador_subtipo *nombre_subtipo *nivel_subtipo

UNIDAD #*identificador_unidad *nombre_unidad

53

DEPARTAMENTO USUARIO #*identificador_departamento *nombre_departamento #*identificador_usuario *password_usuario *matricula_usuario *apellido_paterno_usuario *apellido_materno_usuario *nombre_usuario *unidad_usuario *area_usuario *status_usuario *permisos_usuario *hora_login_usuario *accesos_usuario

INDICADOR #*identificador_indicador *referencia_indicador *valor1_indicador valor2_indicador *mes_indicador *fecha_indicador

5. Determinar las relaciones.

6. Solucionar relaciones muchos a muchos. No existen relaciones muchos a muchos.

54

La Figura 9 muestra el diagrama conceptual inicial de la base de datos que incluye una tabla de procesamiento para la generacin de anlisis.

Figura 9. Diagrama conceptual inicial de la base de datos.

La Figura 10 muestra el diagrama conceptual final de la base de datos sin la tabla de procesamiento anlisis, ya que esta no es necesaria al no almacenar informacin, dicha base de datos es la utilizada por la WebApp.

Figura 10. Diagrama conceptual final de la base de datos.

55

Finalmente, se disearon las estructuras o modelos de cmo sera la interfaz grfica de usuario. En base a los estndares del Instituto Mexicano del Seguro Social, las aplicaciones deben contar con un banner institucional, el cual se permiti disear libremente y que deba contener logo, nombre y slogan oficial del IMSS, as como el logo de vivir mejor, adems todas las interfaces de la WebApp deban ser diseadas con los colores institucionales (verde y blanco). Con base en los requerimientos analizados se idearon tres diseos de interfaces pertenecientes a las reas genricas que constituyen la WebApp, dichas reas se describen a continuacin. Se realiz el diseo rpido de la interfaz de login y autenticacin de usuarios y se identificaron las reas que constituyen dicha interfaz como puede observarse en la Figura 11.

Figura 11. Diseo de la interfaz de login y autenticacin de usuarios.

56

El banner institucional que se diseo para ser utilizado en las interfaces de la WebApp se muestra en la Figura 12.

Figura 12. Banner institucional diseado para la WebApp.

El segundo diseo rpido que se cre fue el de la interfaz de captura de datos para la informacin proveniente de los diferentes departamentos y unidades que constituyen la Delegacin Estatal de Puebla, de la misma forma que en el diseo de la interfaz de login la Figura 13 muestra las reas que constituyen esta interfaz.

Figura 13. Diseo de la interfaz de captura de datos.

57

El tercer y ltimo diseo rpido que se cre es el correspondiente a la interfaz de anlisis de informacin, dicha interfaz as como las reas que la constituyen se muestran en la Figura 14.

Figura 14. Diseo de la interfaz de anlisis de informacin.

NOTA: Los colores utilizados para describir y mostrar las diferentes reas en los diseos rpidos de las interfaces antes mencionadas slo sirven para denotar las secciones de la interfaz, pero no constituyen los colores utilizados en la WebApp.

58

4. Construccin. Una vez revisados y aceptados los modelos o prototipos para la WebApp, se desarrollaron y programaron las diferentes interfaces y secciones que la conforman. Se inicia con la creacin del WebForm que contendr la interfaz de login o inicio de sesin de la WebApp (ver Figura 15).

Figura 15. Creacin del WebForm de login.

Se copia el banner y el logo de vivir mejor al directorio en el que fue creada la WebApp (ver Figura 16) para poder utilizarlos posteriormente.

Figura 16. Agregacin de banner y logo de vivir mejor al directorio de la WebApp.

59

Desde el explorador de soluciones (ver Figura 17a) se arrastra el banner para agregarlo al WebForm de login, posteriormente se selecciona dicho banner y se configuran sus propiedades (ver Figura 17b) como es style que incluye la posicin y el tamao del mismo.

17a

17b

Figura 17. Insercin y configuracin del banner en el WebForm de login.

Para insertar el logo de vivir mejor se siguen los mismos pasos utilizados para insertar el banner en el WebForm de login, la Figura 18 muestra ambos elementos ya configurados en el WebForm.

Figura 18. Banner y logo de vivir mejor en el WebForm de login.

60

Los pasos descritos para insertar el banner y el logo de vivir mejor son los mismos para las diferentes pginas de la WebApp por lo que ya no se mencionarn en la construccin de las siguientes interfaces. El siguiente paso es crear el rea de procesamiento para el WebForm de login. Se arrastra un Panel del cuadro de herramientas (ver Figura 19a) y se configuran sus propiedades BackColor = Green, Height = 173px y Width = 350px (ver Figura 19b).

19a

19b

Figura 19. Creacin y configuracin del elemento Panel.

A continuacin, se arrastran tres Label del cuadro de herramientas (ver Figura 20a), el primer Label ser utilizado para resaltar el ttulo de Inicio de Sesin configurando sus propiedades BackColor = White, Height = 20px, Width = 336px, Font = Arial, Size = Smaller, Bold = True y ForeColor = Green. Los siguientes dos Label sern utilizados como etiquetas para Nombre de Usuario y Contrasea respectivamente, se configuran las propiedades de ambos con Font = Arial, Size = Smaller, Bold = True, ForeColor = White. Finalmente se arrastran dos TextBox del cuadro de herramientas (ver Figura 20b) y se configuran sus propiedades Width = 148px y TextMode = Password para el TextBox dedicado a la contrasea (ver Figura 20c).
61

20b 20a

20c

Figura 20. Creacin y configuracin de los elementos Label y TextBox.

Para continuar se inserta el rea de botones, acciones y navegacin. Se arrastra un elemento Button del cuadro de herramientas (ver Figura 21a) y se configuran sus propiedades BackColor = DarkGreen, BorderColor = YellowGreen, Font = Arial, Size = Smaller, Bold = True, Fore color = White, Text = Iniciar Sesin (ver Figura 21b).

21a

21b

Figura 21. Creacin y configuracin del elemento Button.

62

Por ltimo se coloca el rea de mensajes, para dicha rea se arrastra nuevamente un Label del cuadro de herramientas y se configuran sus propiedades Font = Arial, Size = Smaller, Bold = True, ForeColor = Red, Visible = False. El Label ser manipulado desde el cdigo segn se cumplan distintas condiciones de acuerdo a las acciones del usuario. La Figura 22 muestra el resultado final de la construccin de la interfaz de login para los usuarios.

Figura 22. Interfaz de login terminada.

Hasta ahora se ha mostrado la ubicacin de los elementos Panel, Label y TextBox en el cuadro de herramientas, para futuras menciones de dichos elementos slo se mencionar su configuracin debido a que ya se conoce su origen. A continuacin se muestra el cdigo fuente de la pgina de login.

63

Imports System.Data Imports System.Data.SqlClient Partial Class _Default Inherits System.Web.UI.Page Dim conexion As String = "Data Source=(local);Initial Catalog=indicadores;Integrated Security=True" Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim objConexion As New SqlConnection(conexion) Dim contra As String If TextBox3.Text = "root" Then contra = TextBox4.Text Else contra = CIF(TextBox4.Text) End If objConexion.Open() Dim SentenciaSql As New SqlCommand("select count(*) from usuario where id_usua= '" & TextBox3.Text & "' and ps_usua = '" & contra & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() myReader.Read() Dim conta As Integer = myReader.GetValue(0) objConexion.Close() If TextBox3.Text = "" Or TextBox4.Text = "" Then Label2.Text = ("Los datos para iniciar sesin no estn completos.") Label2.Visible = True Else If conta = 0 Then Label2.Text = ("Los datos de la cuenta no son vlidos") Label2.Visible = True Else ' bruker es usuario en noruego Dim galleta As New HttpCookie("bruker") galleta.Value = TextBox3.Text galleta.Expires = DateTime.Now.AddMinutes(30) Response.Cookies.Add(galleta) objConexion.Open() Dim estado As New SqlCommand("update usuario set st_usua = 1, hl_usua = '" & Format(Now, "HH:mm") & "' where id_usua = '" & TextBox3.Text & "'", objConexion) 'declarar para insertar el texto en sql estado.ExecuteNonQuery() objConexion.Close() Response.Redirect("MPrincipal.aspx", False) End If End If Catch ex As Exception End Try End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

64

Label2.Visible = False End Sub Private Function CIF(ByVal cadena As String) As String Dim i As Integer = 0 Dim cadcif As String = "" Dim valor As Integer = 0 For i = 0 To cadena.Length - 1 valor = Asc(cadena.Substring(i, 1)) valor = (valor * 100) / 120 If valor <= 33 Then valor = valor * 2 End If cadcif += Chr(valor) Next Return cadcif End Function End Class

Tambin se desarrollo una interfaz para las principales funciones de la WebApp, las cuales son captura y anlisis, dichas funciones se unificaron an cuando la informacin proveniente de cada departamento (sus indicadores) vara

demasiado, pero grficamente se trat de unificar lo ms posible. Para desarrollar la interfaz de captura se crea un nuevo WebForm como se observ en la Figura 15 y se anexa el banner y el logo de vivir mejor como se observ en la Figura 17 y 18 respectivamente de la interfaz de login. A continuacin se arrastra un Label para el titulo del WebForm que indica el nombre del indicador que ser capturado y se configuran sus propiedades Font = Arial, Size = Smaller, Bold = True, ForeColor = Green. Despus se inserta la cantidad de Label necesarios para la captura de cada indicador, ya que como se mencion antes, no todos los departamentos manejan la misma informacin, la propiedad Text vara de forma similar pero todos comparten las mismas propiedades Font = Arial, Size = Smaller, Bold = False, ForeColor = Black. La Figura 23 muestra la interfaz de captura de datos construida hasta el momento.

65

Figura 23. Interfaz de captura de datos construida hasta el momento.

Despus se arrastra el elemento DropDownList del cuadro de herramientas (ver Figura 24a). Para configurar dicho elemento se da clic en la pestaa que aparece en la parte superior derecha del mismo, aparecern las tareas del elemento y se elige la opcin editar elementos. Posteriormente aparece el editor de la coleccin ListItem (ver Figura 24b), en este caso se crea la lista de elementos con los nombres de los meses del ao. En la propiedad Text se escribe el nombre del mes y en la propiedad Value se otorga un valor, en este caso Value = 1 para el Text = Enero y as sucesivamente para los dems meses del ao (ver Figura 24c).

66

24a 24b

24c

Figura 24. Creacin y configuracin del elemento DropDownList.

Posteriormente se arrastra el nmero de TextBox, del cuadro de herramientas, necesarios para la captura del indicador que se est procesando, en este caso se utilizan dos, las propiedades de dichos TextBox se mantienen por defecto. Para el rea de botones se establece el elemento Button, tal y como se mostr en la Figura 21, que llevar a cabo la accin de guardar los datos capturados (ver Figura 25a). Para el rea de mensajes se establece un elemento Label (ver Figura 25b) que mostrar los mensajes de confirmacin o error al usuario, dicho elemento se maneja desde cdigo de programacin y sus propiedades son las asignadas por defecto.

67

25a

25b

Figura 25. Creacin y configuracin del rea de botones y mensajes.

Finalmente dentro del rea de navegacin se incluye el elemento HyperLink, que servir para redireccionar al Men Principal, este elemento se arrastra tambin desde el cuadro de herramientas (ver Figura 26a) y se configuran sus propiedades Font = Arial, Bold = True, Size = Smaller, ForeColor = Green Text= Regresar y la propiedad NavigateUrl = ~/MPrincipal.aspx que es el nombre del WebForm que contiene el men principal (ver Figura 26b).

26a

26b

Figura 26. Creacin y configuracin del elemento Hyperlink.

68

La Figura 27 muestra el resultado final de la construccin de la interfaz de captura de datos.

Figura 27. Interfaz de captura de datos terminada.

A continuacin se muestra el cdigo fuente de la pgina de captura de datos mostrada en la Figura 27.
Imports System.Data Imports System.Data.SqlClient Partial Class juridicos_trascendente Inherits System.Web.UI.Page Dim conexion As String = "Data Source=(local);Initial Catalog=indicadores;Integrated Security=True" Dim unidad As String = "" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label3.Visible = False Try Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString Dim objConexion As New SqlConnection(conexion) objConexion.Open() Dim SentenciaSql As New SqlCommand("select pe_usua,un_usua from usuario where id_usua = '" & bruker & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader()

69

myReader.Read() Dim privilegios As String = myReader.GetValue(0) unidad = myReader.GetValue(1) objConexion.Close() If privilegios <> "root" Then If privilegios.Substring(7, 1) <> "1" Then Response.Redirect("..\permisos.aspx", False) Else If unidad <> "Delegacin Puebla" Then Response.Redirect("..\permisos.aspx", False) End If End If End If Catch ex As Exception Response.Redirect("..\Default.aspx", False) End Try End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString If TextBox1.Text = "" Or TextBox2.Text = "" Then Label3.Text = "Los campos de registro se encuentran vacos" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True Else If IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text) Then Dim reci As Integer = TextBox1.Text Dim favo As Integer = TextBox2.Text If favo <= reci Then Dim objConexion As New SqlConnection(conexion) objConexion.Open() Dim SentenciaSql As New SqlCommand("select count(*) from trascendentes where uni_tra = '" & unidad & "' and mes_tra =" & DropDownList1.Text & " and substring(fec_tra,7,4) = '" & Format(Now, "yyyy") & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() myReader.Read() Dim existe As Integer = myReader.GetValue(0) objConexion.Close() If existe <> 0 Then objConexion.Open() Dim inserta As New SqlCommand("update trascendentes set rec_tra = '" & reci & "', fav_tra = " & favo & " where uni_tra = '" & unidad & "' and mes_tra =" & DropDownList1.Text & " and substring(fec_tra,7,4) = '" & Format(Now, "yyyy") & "'", objConexion) 'declarar para insertar el texto en sql inserta.ExecuteNonQuery() objConexion.Close() Else objConexion.Open()

70

Dim inserta As New SqlCommand("insert into trascendentes (uni_tra, mes_tra, rec_tra, fav_tra, fec_tra) values ('" & unidad & "'," & DropDownList1.Text & ",'" & reci & "','" & favo & "','" & Format(Now, "dd/MM/yyyy") & "')", objConexion) 'declarar para insertar el texto en sql inserta.ExecuteNonQuery() objConexion.Close() End If TextBox1.Text = "" TextBox2.Text = "" Label3.Text = "Informacin Almacenada Exitosamente" Label3.ForeColor = Drawing.Color.Green Label3.Visible = True Else Label3.Text = "Los laudos favorables son mayores a los laudos recibidos en el mes" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True End If Else Label3.Text = "Los datos que insert no son vlidos" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True End If End If Catch ex As Exception Response.Redirect("..\Default.aspx", False) End Try End Sub End Class

Para la interfaz de anlisis se crea un nuevo WebForm como se observ en la Figura 15 y se anexa el banner y el logo de vivir mejor como se observ en las Figuras 17 y 18 respectivamente. Esta interfaz utiliza elementos como Label (ver Figura 20), Button (ver Figura 21), DropDownList (ver Figura 24) e Hyperlink (ver Figura 26) por lo que no se mencionarn su ubicacin ni su configuracin. Se arrastra un Label al WebForm para colocar el ttulo del anlisis, posteriormente se arrastra el elemento SqlDataSource desde el cuadro de herramientas (ver Figura 28a) y se configuran sus propiedades ConnectionString = Data Source=(local);Initial Catalog=indicadores;Integrated Security=True y SelectQuery = select distinct substring(fec_inc,7,4) as anios from inconformidad order by substring(fec_inc,7,4) (ver Figura 28b).
71

Se arrastra un segundo SqlDataSource y se asignan las mismas propiedades que al primero, slo se cambia la propiedad SelectQuery por un procedimiento almacenado de la base de datos.

28a

28b

Figura 28. Creacin y configuracin del elemento SqlDataSource.

Posteriormente se arrastra un Label y un DropdownList, se presiona en la pestaa superior del mismo y se selecciona Elegir origen de datos (ver Figura 29a), en la pantalla emergente se selecciona el primer SqlDataSource (ver Figura 29b) para que los elementos del DropDownList se generen con los aos disponibles para la generacin de anlisis, por ltimo se presiona el botn aceptar (ver Figura 29c). Para finalizar se arrastra un Button, un Hyperlink y el elemento GridView del cuadro de herramientas (ver Figura 30a), se presiona en la pestaa superior del mismo y en el apartado Elegir origen de datos se selecciona el SqlDataSource2 que contiene la informacin del anlisis para dicho indicador (ver Figura 30b)

72

29a 29b

29c

Figura 29. Configuracin de DropDownList con SqlDataSource como origen de datos.

30a

30b

Figura 30. Creacin y configuracin del elemento GridView.

Despus de elegir el origen de datos del GridView se configuran su propiedades AutoGenerateColumns = False, BackColor = White, BorderColor = DarkGreen, BorderStyle = None, BorderWidth = 1px, CaptionAlign = Right, Font = Arial,Medium, GridLines = None, HorizontalAlign = Left, Visible = False y Width = 433px concluyendo as la construccin de la interfaz de anlisis.
73

A continuacin se muestra el cdigo fuente de la pgina de anlisis mostrada en la Figura 30.


Imports System.Data Imports System.Data.SqlClient Partial Class ana Inherits System.Web.UI.Page Dim conexion As String = "Data Source=(local);Initial Catalog=indicadores;Integrated Security=True" Dim objConexion As New SqlConnection(conexion) Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load objConexion.Open() Dim limpia As New SqlCommand("delete from analisis_inconformidad", objConexion) 'declarar para insertar el texto en sql limpia.ExecuteNonQuery() objConexion.Close() Try Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString objConexion.Open() Dim SentenciaSql As New SqlCommand("select pe_usua from usuario where id_usua = '" & bruker & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() myReader.Read() Dim privilegios As String = myReader.GetValue(0) objConexion.Close() If privilegios <> "root" Then If privilegios.Substring(11, 1) <> "1" Then Response.Redirect("..\permisos.aspx", False) End If End If Try Dim actual As String = Format(Now, "yyyy") inserta("ret_inc", "rem_inc", 1, "Recursos resueltos", actual) objConexion.Open() Dim inant As New SqlCommand("insert into analisis_inconformidad (con,mes) values ('','')", objConexion) inant.ExecuteNonQuery() objConexion.Close() inserta("rcr_inc", "iem_inc", 2, "Recursos ingresados", actual) GridView2.DataBind() GridView2.Visible = True Catch ex As Exception End Try Catch ex As Exception Response.Redirect("..\MPrincipal.aspx", False)

74

End Try End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click objConexion.Open() Dim limpia As New SqlCommand("delete from analisis_inconformidad", objConexion) 'declarar para insertar el texto en sql limpia.ExecuteNonQuery() objConexion.Close() inserta("ret_inc", "rem_inc", 1, "Recursos resueltos", DropDownList1.Text) objConexion.Open() Dim inant As New SqlCommand("insert into analisis_inconformidad (con,mes) values ('','')", objConexion) inant.ExecuteNonQuery() objConexion.Close() inserta("rcr_inc", "iem_inc", 2, "Recursos ingresados", DropDownList1.Text) GridView2.DataBind() GridView2.Visible = True End Sub Private Sub inserta(ByVal campo1 As String, ByVal campo2 As String, ByVal tab As Integer, ByVal concepto As String, ByVal anio As String) objConexion.Open() Dim SentenciaSql As New SqlCommand("select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 & ",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) as porce, mes_inc from inconformidad where substring(fec_inc,7,4) = '" & anio & "' group by mes_inc order by mes_inc", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() Dim meses(13) As Single Dim i As Integer While myReader.Read() Try meses(myReader.GetValue(1)) = myReader.GetValue(0) Catch ex As Exception meses(myReader.GetValue(1)) = 0 End Try End While objConexion.Close() Dim anterior As Single = Single.Parse(anio) - 1 Dim actual As Single objConexion.Open() Dim anios As New SqlCommand("select (select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 & ",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) from inconformidad where substring(fec_inc,7,4) = '" & anterior & "'),(select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 &

75

",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) from inconformidad where substring(fec_inc,7,4) = '" & anio & "')", objConexion) Dim leeanios As SqlDataReader leeanios = anios.ExecuteReader() leeanios.Read() Try anterior = leeanios.GetValue(0) Catch ex As Exception anterior = 0 End Try Try actual = leeanios.GetValue(1) Catch ex As Exception actual = 0 End Try objConexion.Close() Dim mes_nom(13) As String mes_nom(1) = "Enero" mes_nom(2) = "Febrero" mes_nom(3) = "Marzo" mes_nom(4) = "Abril" mes_nom(5) = "Mayo" mes_nom(6) = "Junio" mes_nom(7) = "Julio" mes_nom(8) = "Agosto" mes_nom(9) = "Septiembre" mes_nom(10) = "Octubre" mes_nom(11) = "Noviembre" mes_nom(12) = "Diciembre" For i = 1 To 12 objConexion.Open() If i = 1 Then Dim inser As New SqlCommand("insert into analisis_inconformidad (con,ano,mon,mes,por,tab) values ('" & concepto & "', '" & anio & "'," & i & ",'" & mes_nom(i) & "','" & meses(i) & "'," & tab & ")", objConexion) inser.ExecuteNonQuery() Else Dim inser As New SqlCommand("insert into analisis_inconformidad (ano,mon,mes,por,tab) values ('" & anio & "'," & i & ",'" & mes_nom(i) & "','" & meses(i) & "'," & tab & ")", objConexion) inser.ExecuteNonQuery() End If objConexion.Close() Next objConexion.Open() Dim inant As New SqlCommand("insert into analisis_inconformidad (con,mes,tab) values ('Promedio Ao Anterior','" & anterior & "'," & tab & ")", objConexion) inant.ExecuteNonQuery() objConexion.Close() End Class

76

5. Despliegue. Una vez terminada la WebApp se traslado al servidor institucional, el cual aloja a la misma. La WebApp fue entregada a la Lic. Yadira Estrada Izucar y al Lic. Jefte De Jess Espinosa Vera, para su evaluacin iniciando as el proceso de retroalimentacin. Retroalimentacin Durante la revisin de la WebApp fueron sealados una serie de cambios tanto a nivel de interfaz como a nivel de programacin. Nivel de interfaz. El banner de la WebApp se tuvo que hacer ms pequeo y debido a eso cambio su diseo. La fuente y formato de la WebApp se tuvo que hacer ms pequea para los anlisis. Permitiendo que sean visibles a primera vista an en resoluciones bajas de monitor. La presentacin de los anlisis tuvo que cambiarse de posicin, en vez de desplegarse de forma vertical se deban desplegar horizontalmente, logrando que sea ms agradable a la vista del usuario y que el ancho de la pantalla sea mejor aprovechado. Se quit el logo de vivir mejor, para mejorar la vista de la WebApp. Los colores de los anlisis se cambiaron de verde a blanco. Nivel de programacin. Se desarroll un men principal en el que fuera ms fcil tener acceso a la informacin y a los departamentos a los que el usuario tenga privilegios.

77

Se cre un panorama general Delegacional por departamentos, en el que se muestre la informacin de cada indicador de cada departamento de forma sintetizada para el usuario y que permita desglosar dicha informacin por niveles. Se recodificaron las secciones de cdigo donde se utilizaban mtodos que manipulaban resultados con punto decimal ya que el servidor institucional que aloja la WebApp se encuentra configurado en ingls. Se increment la seguridad en la WebApp y se asignaron privilegios y permisos de accesos as como roles de usuario, adems se desarroll un mecanismo de cierre de sesin para cada usuario de la WebApp. Se desarrollaron los anlisis con un nivel de profundidad de varios niveles, permitiendo al usuario poder visualizar la informacin de lo general a lo particular, esto es mostrando la situacin delegacional al principio permitiendo al usuario desglosar dicha informacin, si as lo requiere, por las unidades que constituyen la Delegacin Estatal de Puebla en cada uno de sus departamentos. Una vez terminadas las mejoras antes mencionadas en la retroalimentacin la WebApp fue entregada y aceptada por la Lic. Yadira Estrada Izucar y el Lic. Jefte De Jess Espinosa Vera logrando el incremento de la misma y terminando la versin final de la WebApp.

9. Resultados, planos, grficas, prototipos y programas.


Despus de realizar el incremento de la WebApp se liber la versin final de esta, a continuacin se muestran los requerimientos de hardware y software, el proceso de instalacin y configuracin ambos necesarios para que la WebApp pueda funcionar y la versin final de la misma.

78

Requerimientos de Hardware para el funcionamiento de la WebApp. Servidor Web con soporte de conexiones mltiples, disco duro de 40 GB, memoria RAM de 512 MB y tarjeta de red 10/100 Mb como mnimo. Red de computadoras con acceso al servidor web.

Requerimientos de Software para el funcionamiento de la WebApp. Sistema operativo Microsoft Windows Server 2000 con IIS activado y configurado correctamente. SQL Server 2000 configurado para ser utilizado con el usuario ASP.NET. .Net Framework. Internet Explorer 6.0 o superior.

Instalacin y configuracin de la WebApp. La WebApp completa se encuentra contenida en un directorio llamado indicadores, el cual es el que debe ser transportado y direccionado para su posterior utilizacin. A continuacin se describen los pasos necesarios para la correcta configuracin de la WebApp. 1. Contando con el directorio indicadores en un medio extrable, se debe copiar dicho directorio a la ubicacin fsica del servidor en el que se alojar la WebApp (ver Figura 31).

79

Figura 31. Ubicacin fsica del directorio que contiene la WebApp.

2. Se debe iniciar el Administrador de Internet Information Services (IIS) y crear un nuevo sitio Web predeterminado direccionndolo al directorio indicadores que se copi anteriormente. La Figura 32 muestra como se debe ver el sitio indicadores al ser configurado.

Figura 32. Sitio indicadores despus de ser configurado.

80

3. Se ha terminado de configurar el sitio indicadores, utilizando el Administrador corporativo de SQL Server debe crearse una nueva base de datos con el nombre indicadores. Se debe desplegar la pestana Bases de datos, clic derecho y seleccionar Nueva Base de Datos, se proporciona el nombre de la base de datos (indicadores) y se aceptan los cambios. La Figura 33 muestra la base de datos creada.

Figura 33. Base de datos indicadores despus de ser creada.

4. Se debe seleccionar la base de datos creada en el paso anterior (indicadores) y seleccionar la pestaa Usuarios para poder configurar los permisos y accesos a la misma. Se debe agregar al usuario ASPNET y se le deben conceder los permisos de public, db_owner, db_datareader y db_datawriter marcando dichas casillas como muestra la Figura 34, por ltimo se deben aceptar los cambios. Con esto se ha logrado configurar al usuario ASPNET, dicho usuario es el utilizado por la WebApp para la manipulacin de la base de datos.

81

Figura 34. Configuracin del usuario ASPNET en la base de datos indicadores.

5. Por ltimo se deben crear las tablas de la base de datos, se debe seleccionar, en la barra de Men, Herramientas y Analizador de Consultas SQL, se abrir una nueva pantalla direccionando a la base de datos indicadores (ver Figura 35), todos los cambios que se llevan a cabo en esta pantalla afectaran a dicha base de datos.

En el rea en blanco que muestra la Figura 35 se debe colocar el cdigo referente a la creacin de las tablas que conforman la base de datos, una vez que se coloque el cdigo basta con presionar F5 para ejecutar las sentencias Transact-SQL, si existiera algn error se mostrara por pantalla. Con estos pasos se logr instalar y configurar la WebApp en el servidor institucional que actualmente aloja a la misma y sobre el cual se encuentra trabajando.

82

Figura 35. Vista del Analizador de consultas SQL direccionando a la base de datos indicadores.

Manipulacin de la versin final de la WebApp. La WebApp se encuentra alojada en uno de los servidores institucionales de la Delegacin Estatal de Puebla con direccin IP 11.1.22.3 de su red interna. Para poder accesar a la WebApp slo es necesario introducir la siguiente direccin web en el navegador: http://11.1.22.3/indicadores/Default.aspx. Una vez que se ha escrito dicha direccin en el navegador se mostrar la ventana de inicio de sesin o login (ver Figura 36), se debe introducir la informacin requerida, un nombre de usuario vlido (previamente creado) y la contrasea del mismo.

83

Figura 36. Pantalla de inicio de sesin o login.

Al proporcionar los datos de inicio de sesin se mostrar el Men Principal, el cual mostrar las opciones y los accesos a las secciones de la WebApp a las que se tenga permisos para accesar. La Figura 37 muestra el Men Principal para un usuario con acceso a todos los departamentos, pero sin privilegios administrativos.

Figura 37. Men Principal desplegado para un usuario sin privilegios administrativos.

84

La Figura 38 muestra el Men Principal para un usuario con acceso a todos los departamentos y con privilegios administrativos.

Figura 38. Men Principal desplegado para un usuario con privilegios administrativos.

Las opciones desplegadas en el Men Principal de cada usuario definen las reas o tareas que este puede realizar, la Figura 39 muestra el Men Principal de un usuario con todos los privilegios y permisos totales sobre la WebApp, incluidos privilegios administrativos, acceso a todos los departamentos y permisos de captura, anlisis delegacional y anlisis por unidad.

Figura 39. Men Principal mostrado a un usuario con permisos y privilegios totales.

85

Una vez que el usuario ha iniciado sesin correctamente ya puede empezar a trabajar. La seccin izquierda del men muestra los departamentos a los cuales tiene acceso (ver Figura 40a). Al seleccionar un departamento se mostrar en la parte de la derecha los indicadores de dicho departamento (ver Figura 40b), y al seleccionar un indicador se mostrar en la parte inferior del men las acciones que puede realizar sobre dicho indicador (captura, anlisis y anlisis por unidad) (ver Figura 40c).

40a

40b

40c

Figura 40. Secciones del Men Principal.

Genricamente, cada indicador de cada uno de los departamentos cuentan con las secciones de captura de datos, anlisis delegacional de informacin y anlisis de informacin por unidad. Dependiendo el indicador se deber capturar la informacin informacin. A pesar de que cada departamento cuenta con sus propios indicadores los procesos de captura de datos y generacin de anlisis son similares an cuando para cada uno de ellos se capture y procese informacin completamente diferente. referente al mismo y los anlisis se generarn en base a dicha

86

Como se ha mencionado las opciones para cada indicador se encontrarn habilitadas en el Men Principal del usuario siempre y cuando cuente con los permisos necesarios para dicha opcin. La Figura 41 muestra el acceso al proceso de captura de datos para un indicador previamente seleccionado.

Figura 41. Opcin de captura de datos para un indicador previamente seleccionado.

Cuando la opcin de captura de datos es seleccionada se mostrar en pantalla la pgina que permite capturar la informacin referente a dicho indicador. Las Figuras 42 y 43 muestran pginas de captura de datos.

Figura 42. Captura de datos para un indicador del departamento de Prestaciones Mdicas.

87

Figura 43. Captura de datos para un indicador del departamento de Planeacin y Finanzas.

En las pginas de captura de datos se debe seleccionar el mes del ao en curso para el que es capturada la informacin (ver Figura 44a), capturar la informacin requerida (ver Figura 44b), y por ltimo presionar el botn Guardar para almacenar la informacin del indicador referente al mes seleccionado (ver Figura 44c).

44a

44b

44c
Figura 44. Secciones de las pginas de captura de datos.

88

La Figura 45 muestra el acceso al proceso de anlisis por unidad para un indicador previamente seleccionado.

Figura 45. Opcin de anlisis por unidad para un indicador previamente seleccionado.

Cuando la opcin de anlisis por unidad es seleccionada se mostrar en pantalla la pgina que permite visualizar el anlisis del indicador seleccionado para la unidad a la que pertenezca el usuario (ver Figura 46).

Figura 46. Pgina de anlisis por unidad para un indicador del departamento de Servicios de Personal.

Las pginas de anlisis por unidad, al momento de ser cargadas, muestran el anlisis de dicho indicador en el ao en curso para la unidad a la que pertenece el

89

usuario, sin embargo, es posible seleccionar el ao para el que desea generar el anlisis en cuestin. La Figura 47 muestra el acceso al proceso de anlisis para un indicador previamente seleccionado.

Figura 47. Opcin de anlisis para un indicador previamente seleccionado.

Cuando la opcin de anlisis es seleccionada se mostrar en pantalla la pgina que permite visualizar el anlisis delegacional del indicador seleccionado para el ao en curso (ver Figura 48).

Figura 48. Pgina de anlisis para un indicador del departamento de C y A al DH.

90

En las pginas de anlisis es posible seleccionar el ao para generar el anlisis delegacional del indicador en el periodo seleccionado (ver Figura 49a), en la parte derecha de la pgina se despliega el anlisis por mes con su porcentaje situacional correspondiente (ver Figura 49b), dichos porcentajes son enlaces para conocer la situacin del indicador pero ahora para cada una de las unidades que componen la Delegacin Estatal de Puebla. Para generar el anlisis de un ao determinado se debe seleccionar el ao en cuestin y presionar el botn Generar Anlisis (ver Figura 49c).

49a 49c

49b

Figura 49. Secciones de las pginas de anlisis.

Al seleccionar y presionar alguno de los enlaces que se muestran en la Figura 49b automticamente se mostrar en pantalla el anlisis por unidad del indicador seleccionado en el mes y ao seleccionados. La Figura 50 muestra el anlisis por unidad para el indicador Supervisin trimestral a espacios y condiciones para resguardo de bienes enajenados del departamento de Afiliacin y Cobranza para el periodo Febrero 2009.

91

Figura 50. Pgina de anlisis por unidad derivado del anlisis delegacional para un indicador del departamento de Afiliacin y Cobranza.

Por ltimo sern descritas las opciones superiores del Men Principal, las cuales sern habilitadas de acuerdo a los permisos y privilegios de cada usuario, excepto la opcin de Cerrar Sesin, la cual se encuentra disponible para todos los usuarios de la WebApp. La opcin Situacin Actual Delegacional del Men Principal proporciona un anlisis por departamentos de la Delegacin Estatal de Puebla (ver Figura 51), muestra el porcentaje de cumplimiento del perodo anterior (ao pasado) y la situacin actual (ao en curso o perodo actual) de cada uno de los indicadores que son monitoreados en cada departamento, adems cada valor del perodo actual es un enlace al anlisis delegacional de dicho indicador (ver Figura 51a) y basta con presionar dicho enlace para ser redireccionado al anlisis delegacional en cuestin.

92

51a

Figura 51. Pgina de Situacin Actual Delegacional.

93

La opcin Registro del Men Principal sirve para dar de alta a nuevos usuarios de la WebApp pero se necesitan permisos administrativos para poder realizar dicha tarea, al seleccionar dicha opcin se mostrar la pgina de Registro de usuarios (ver Figura 52).

52a
Figura 52. Pgina de Registro de Usuarios.

Como puede observarse en la Figura 52 se debe introducir la informacin referente al nuevo usuario, sus datos de cuenta, datos personales y contractuales, unidad a la que pertenece, as como los permisos y reas a las que puede accesar. Al crear a un nuevo usuario, este tendr como mximo los mismos permisos y privilegios de acceso que el usuario que lo est creando, es decir, si el usuario slo cuenta con permisos de captura y creacin de usuarios, el nuevo usuario slo podr tener dichos permisos ms no los permisos referentes a los anlisis por unidad y delegacional.

94

Al terminar de introducir los datos del nuevo usuario se debe presionar el botn Crear Usuario (ver Figura 52a) para que este quede registrado en la WebApp. La ltima opcin del Men Principal es Cerrar Sesin la cual, al ser presionada, muestra la pgina de cierre de sesin de trabajo (ver Figura 53) la cual muestra un pequeo mensaje informativo y las opciones de Cerrar Sesin (ver Figura 53a) y Continuar Trabajando (Ver Figura 53b), las cuales describen a la perfeccin sus funciones.

53a

53b

Figura 53. Pgina de Cierre de sesin.

Es muy importante que los usuarios cierren su sesin mediante este mecanismo, ya que de esta forma se garantiza un manejo seguro de cuentas y se evitan problemas de suplantacin de usuarios y mal manejo de informacin. Adicional a lo anterior la WebApp cuenta con un mecanismo de cierre de sesin automtico tras 30 minutos de actividad, despus de ese tiempo el usuario debe iniciar sesin nuevamente logrando que cuando la estacin de trabajo se deje sola no se le d un uso indebido a la cuenta de usuario de la WebApp.

95

Genricamente los enlaces definidos como Regresar en toda la WebApp redireccionan al Men Principal y los enlaces Regresar que se encuentran en los anlisis por unidades derivados de anlisis delegacionales redireccionan a dicho anlisis delegacional.

10. Conclusiones y recomendaciones.


Conclusiones. Con el desarrollo e implementacin de la WebApp se logr cubrir las necesidades de informacin que tena la Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social. Se logr automatizar el proceso de control y monitoreo de los indicadores delegacionales, permitiendo almacenar, de forma confiable, dicha informacin y conocer la situacin real delegacional. As mismo, con la implementacin y puesta en marcha de la WebApp se logr unificar los criterios a evaluar para conformar los indicadores de cada uno de los departamentos de la Delegacin Estatal de Puebla y mediante su aplicacin se logra detectar las unidades que presentan ms requerimientos de recursos o que consumen ms recursos as como posibles anomalas en las mismas. Recomendaciones. La WebApp cumple satisfactoriamente los objetivos para los que fue planteada, sin embargo se recomienda realizar las siguientes actividades con fines de mantenimiento e integridad de la WebApp: Realizar respaldos continuos de la base de datos debido al volumen de informacin que esta recibe da a da.

96

Vigilar que el Agente SQL Server se encuentre activo y funcionando correctamente, sobre todo despus de que el servidor se recupere de un fallo o se reinicie.

Crear en los usuarios de la WebApp la buena costumbre de Cerrar Sesin y no slo cerrar el navegador, ya que de esta forma la WebApp garantiza la integridad y el buen de sus cuentas de usuario.

11. Referencias bibliogrficas y virtuales.


Ingeniera del Software Un enfoque prctico Roger S. Pressman Sexta Edicin Mc Graw Hill

Fundamentos y modelos de Bases de Datos Adoracin de Miguel Mario Piattini Segunda Edicin Alfaomega Ra-Ma

Fundamentos de Bases de Datos Abraham Silbertschatz, Henry F. Korth, S. Sudarshan Quinta Edicin Mc Graw Hill

http://www.formaselect.com/curso/experto-en-sql-server-2000/Introducciona-SQL-Server%202000.pdf

http://www.canalvisualbasic.net/manual-net/vb-net/

97

http://es.kioskea.net/contents/bdd/bddansi.php3

http://www.mae,lkstrosdelweb.com/principiantes/%C2%BFque-son-lasbases-de-datos/

http://anamaigua.blogspot.com/2009/06/ingenieria-web.html

98

You might also like