Sistema de Gestión de Requerimientos de Información para GCIF
Transcription
Sistema de Gestión de Requerimientos de Información para GCIF
IMPLEMENTACIÓN DE UN SISTEMA DE GESTIÓN DE REQUERIMIENTOS DE INFORMACIÓN PARA LA GERENCIA DEL CENTRO DE INFORMACIÓN FINANCIERA DEL BANCO DE BOGOTÁ TULIO ARMANDO NIÑO BALLESTEROS JUAN CARLOS LOZANO RAMÍREZ FERLEYN ANDRÉS DUARTE UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS BOGOTÁ D. C. 2007 IMPLEMENTACIÓN DE UN SISTEMA DE GESTIÓN DE REQUERIMIENTOS DE INFORMACIÓN PARA LA GERENCIA DEL CENTRO DE INFORMACIÓN FINANCIERA DEL BANCO DE BOGOTÁ TULIO ARMANDO NIÑO BALLESTEROS JUAN CARLOS LOZANO RAMÍREZ FERLEYN ANDRÉS DUARTE Proyecto de Grado como requisito para optar al Título de Ingeniero de Sistemas Sandra Lucía Guañarita Fernández UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS BOGOTÁ D. C. 2007 Nota de Aceptación: ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ _________________________________ FIRMA _________________________________ FIRMA _________________________________ FIRMA Bogotá D. C., 26 de mayo de 2007 DEDICATORIA Queremos dedicarle este logro a Dios, por permitirnos llegar a este punto y a nuestros padres, por su motivación y apoyo. AGRADECIMIENTOS Queremos agradecer a todas las personas que nos apoyaron y guiaron durante el desarrollo del proyecto; agradecemos su conocimientos, pero lo más importante… su fé. ayuda, su comprensión, sus ABSTRACT El término WorkFlow surgió en los años 80 para resolver las necesidades que tenían muchas empresas con respecto al movimiento de sus documentos dentro de las compañías. En aquel momento el término WorkFlow fue asociado a productos de gestión de imágenes (todo el mundo quería eliminar el papel y se produjo el boom del escaneado de documentos). Pero estos productos de entonces requerían un hardware y un software propietario, algo muy distinto a lo que ocurre ahora, que las herramientas de WorkFlow son abiertas e integradoras de cualquier producto. The term WorkFlow arose in years 80 to solve the necessities that had many companies with respect to the movement of their documents within the companies. At that time the term WorkFlow was associated to products of management of images (everybody wanted to eliminate the paper and the boom of the document scanned one took place). But these products of then required a hardware and a propietary software, something very different from which it happens now, that the tools of WorkFlow are opened and integrating of any product. CONTENIDO Pág. LISTA DE TABLAS...............................................................................................................9 LISTA DE FIGURAS ..........................................................................................................10 LISTA DE ANEXOS ...........................................................................................................12 INTRODUCCIÓN................................................................................................................13 1. PLANTEAMIENTO DEL PROBLEMA ..................................................................15 1.1. ANTECEDENTES.................................................................................................15 1.2. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA.........................................17 1.3. JUSTIFICACIÓN...................................................................................................17 1.4. OBJETIVOS DE LA INVESTIGACIÓN .................................................................18 1.4.1. OBJETIVO GENERAL..........................................................................................18 1.4.2. OBJETIVOS ESPECÍFICOS ................................................................................19 1.5. ALCANCES Y LIMITACIONES DEL PROYECTO ...............................................19 1.5.1. ALCANCES ..........................................................................................................19 1.5.2. LIMITACIONES ....................................................................................................20 2. MARCO DE REFERENCIA ..................................................................................21 2.1. MARCO CONCEPTUAL.......................................................................................21 2.2. MARCO LEGAL O NORMATIVO .........................................................................22 2.3. MARCO TEÓRICO ...............................................................................................27 3. METODOLOGÍA ...................................................................................................41 3.1. HIPÓTESIS...........................................................................................................41 3.2. VARIABLES..........................................................................................................41 3.2.1. VARIABLES INDEPENDIENTES .........................................................................41 3.2.2. VARIABLES DEPENDIENTES.............................................................................41 4. DESARROLLO INGENIERIL...............................................................................42 4.1. ANÁLISIS..............................................................................................................42 4.1.1. ANÁLISIS SISTEMA ACTUAL..............................................................................42 4.1.2. ANÁLISIS SOLUCIÓN PROPUESTA...................................................................46 4.1.3. ESPECIFICACIÓN DE REQUERIMIENTOS........................................................54 -7- 4.2. DISEÑO ................................................................................................................55 4.2.1. DIAGRAMA DE CLASES .....................................................................................57 4.2.2. DISEÑO CONCEPTUAL DE LA BASE DE DATOS .............................................58 4.2.3. DISEÑO FÍSICO DE LA BASE DE DATOS..........................................................60 4.2.4. DICCIONARIO DE LA BASE DE DATOS ............................................................62 4.2.5. DICCIONARIO DE RELACIONES DE LA BASE DE DATOS ..............................63 4.2.6. TABLAS ESTRUCTURALES DEL WORKFLOW .................................................63 4.2.7. DICCIONARIO DE PROCEDIMIENTOS ALMACENADOS .................................65 4.3. IMPLEMENTACIÓN .............................................................................................68 4.3.1. INTERFAZ DE USUARIO.....................................................................................74 4.3.2. MAPA DEL SITIO .................................................................................................86 4.3.3. ESQUEMA DE PRUEBAS....................................................................................88 5. CONCLUSIONES .................................................................................................92 6. BIBLIOGRAFÍA.....................................................................................................94 -8- LISTA DE TABLAS Pág. TABLA 1. DICCIONARIO DE LA BASE DE DATOS..........................................................62 TABLA 2. DICCIONARIO DE RELACIONES DE LA BASE DE DATOS............................63 TABLA 3. TABLA ESTRUCTURAL DE ESTADO ..............................................................63 TABLA 4. TABLA ESTRUCTURAL DE ROL......................................................................63 TABLA 5. TABLA ESTRUCTURAL DE ESTADOEVENTO................................................64 TABLA 6. TABLA ESTRUCTURAL DE EVENTO ..............................................................64 TABLA 7. TABLA ESTRUCTURAL DE TIPOARCHIVOADJUNTO ...................................64 TABLA 8. DICCIONARIO DE PROCEDIMIENTOS ALMACENADOS...............................65 -9- LISTA DE FIGURAS Pág. FIGURA 1. DIAGRAMA DE CONTEXTO SISTEMA ACTUAL...........................................44 FIGURA 2. DIAGRAMA NIVEL 1 SISTEMA ACTUAL .......................................................45 FIGURA 3. DIAGRAMA DE FLUJO SISTEMA PROPUESTO ...........................................48 FIGURA 4. CAPAS DEL APLICATIVO WEB .....................................................................49 FIGURA 5. MODELO CLIENTE – SERVIDOR EN MV ......................................................50 FIGURA 6. CASOS DE USO: ADMINISTRADOR .............................................................52 FIGURA 7. CASOS DE USO: ANALISTA ..........................................................................53 FIGURA 8. CASOS DE USO: USUARIO ...........................................................................53 FIGURA 9. PROTOTIPO – WEB INICIO SESIÓN .............................................................56 FIGURA 10. PROTOTIPO – WEB CREAR SOLICITUD....................................................56 FIGURA 11. PROTOTIPO – WEB CONSULTAR SOLICITUD ..........................................56 FIGURA 12. PROTOTIPO – WEB DESCARGAR ARCHIVOS ..........................................57 FIGURA 13. DIAGRAMA DE CLASES...............................................................................57 FIGURA 14. DISEÑO CONCEPTUAL BD (ENTIDADES Y ATRIBUTO CLAVE) ..............58 FIGURA 15. DIAGRAMA DE LA BASE DE DATOS ..........................................................60 FIGURA 16. FLUJO DE TRABAJO APLICATIVO WEB.....................................................69 FIGURA 17. FINAL – WEB INICIO SESIÓN NO AUTORIZADO .......................................74 FIGURA 18. FINAL – WEB MENSAJE DE ALERTAS .......................................................74 FIGURA 19. FINAL – WEB CREAR SOLICITUD...............................................................75 FIGURA 20. FINAL – WEB CONSULTAR SOLICITUD .....................................................76 FIGURA 21. FINAL – WEB VER DETALLES DE SOLICITUD...........................................76 FIGURA 22. FINAL – WEB VER HISTORIAL DE SOLICITUDES .....................................77 FIGURA 23. FINAL – WEB DE DESCARGA DE ARCHIVOS ADJUNTOS .......................78 FIGURA 24. FINAL – WEB INTERFAZ DE DESCARGA...................................................78 FIGURA 25. FINAL – WEB DE REPORTES......................................................................79 FIGURA 26. FINAL – WEB ARCHIVOS ADJUNTOS ........................................................79 FIGURA 27. FINAL – WEB ÁREA......................................................................................80 FIGURA 28. FINAL – WEB ESTADO EVENTO .................................................................80 - 10 - FIGURA 29. FINAL – WEB EVENTOS ..............................................................................81 FIGURA 30. FINAL – WEB HISTORIAL SOLICITUD ........................................................82 FIGURA 31. FINAL – WEB ROL ........................................................................................82 FIGURA 32. FINAL – WEB SOLICITUD ............................................................................83 FIGURA 33. FINAL – WEB TIPO ARCHIVO ADJUNTO....................................................83 FIGURA 34. FINAL – WEB USUARIO ...............................................................................84 FIGURA 35. FINAL – WEB WORKFLOW ..........................................................................84 FIGURA 36. FINAL – WEB AYUDA ...................................................................................85 FIGURA 37. MAPA DEL SITIO ADMINISTRADOR ...........................................................86 FIGURA 38. MAPA DEL SITIO ANALISTA ........................................................................87 FIGURA 39. MAPA DEL SITIO USUARIO .........................................................................87 - 11 - LISTA DE ANEXOS Pág. ANEXO A. CARTA DE AUTORIZACIÓN DEL BANCO DE BOGOTÁ ...............................96 ANEXO B. FORMATO DE ENTREVISTA ..........................................................................98 ANEXO C. MANUAL TÉCNICO .......................................................................................100 - 12 - INTRODUCCIÓN Se podría definir un proceso como una serie de actividades, en las que varias entidades (personas, máquinas, etc.) colaboran para conseguir un objetivo concreto. Por ejemplo, un proceso típico en una empresa podría consistir en el conjunto de actividades necesarias para responder a una solicitud de compra por parte de un cliente (negociación de precios y fechas de envío, facturación, envío de los bienes al cliente, etc.) El proceso puede ser visto también como una cadena de actividades coherentes que resulta en la creación de valor (ya sea material o inmaterial) para alguien. Un proceso de negocio es un tipo especial de proceso que describe, desde un punto de vista orientado al mercado, las actividades de una organización. El principal objetivo de los procesos de negocio es satisfacer necesidades de los clientes. El modelado de procesos de negocio resulta útil en una gran variedad de situaciones, que pueden ser clasificadas en tres grupos: descripción del proceso, análisis del proceso e implementación del proceso. Actualmente se utilizan diversas técnicas de modelado, como diagramas de actividad de UML y otros lenguajes, fundamentalmente gráficos y formales. Un concepto relacionado con el de proceso de negocio es el de workflow. Se define workflow como la automatización de un proceso de negocio, total o parcial, durante la cual se pasan documentos, información o tareas de un participante a otro para realizar una acción, de acuerdo con un conjunto de reglas de procedimiento. Estas reglas se establecen en la definición del proceso. - 13 - Esta automatización la suele llevar a cabo un sistema de gestión de workflow, que es un sistema que define, crea y gestiona la ejecución de workflows mediante la ejecución de software en una o más máquinas, siendo capaz de interpretar la definición del proceso, interactuar con los participantes del workflow y cuando así se requiera, ejecutar otras herramientas y aplicaciones. Las técnicas de modelado de procesos de negocio son muy importantes en un sistema de workflow, ya que permiten definir formalmente procesos, de tal forma que puedan ser interpretados y ejecutados correctamente por el sistema de gestión de workflow. Además, una parte de los participantes en un sistema de workflow serán máquinas (en general, aplicaciones), y el resto, humanos. Para facilitar la participación de humanos en el sistema, éste debe proporcionar las interfaces de usuario adecuadas. - 14 - 1. PLANTEAMIENTO DEL PROBLEMA 1.1. ANTECEDENTES En la década de los 80 las empresas aplicaron tecnologías de la información a la automatización de los procesos administrativos y de gestión. Las grandes preocupaciones de aquellos años eran el control de los costes operativos, la mejora de la productividad y el logro de servicios más competitivos 1 . En cambio, en el momento actual, el interés de muchas empresas, al menos de las más innovadoras, se centra en el rediseño de los procesos de trabajo y de información con el fin de mejorar la rentabilidad y hacerlos más eficaces. Para lograr estos objetivos, muchas organizaciones empresariales están incorporando mecanismos de workflow que enlazan los procesos de negocio con los sistemas de información con el fin de conseguir: • Trabajar sin papeles. • Saber cuánto cuesta cada proceso de trabajo. • Reducir el tiempo empleado en cada una de las tareas. • Aprovechar el “conocimiento” de la organización. Sin embargo, para que una organización implante con éxito un sistema de workflow necesita cumplir unos requisitos básicos. En primer lugar debe contar con una sólida infraestructura de ordenadores, redes, servidores, bases de datos y correo electrónico, es decir, debe tener una madurez tecnológica. 1 Información extraída de la revista Pc World publicada en noviembre de 2003 - 15 - En segundo lugar, sus responsables deben estar sensibilizados respecto al valor de la información y familiarizados con la circulación de la información electrónica. El tercer requisito está relacionado con la aceptación del sistema por parte de los usuarios, que en muchas ocasiones ven en él más inconvenientes que ventajas al relacionarlo con un controlador o un reestructurador de la plantilla de la empresa más que con un guía. Otro elemento importante a tener en cuenta es que, a diferencia de otras, el workflow no es una herramienta informática que se entrega al departamento de sistemas de información para que la aplique sin más. La implantación de workflow debe considerarse más como un proyecto de gestión que como uno informático, lo que supone un esfuerzo de análisis previo de la situación de la organización, de manera que se estudie la circulación de los documentos, su naturaleza y tratamiento, así como la asignación de normas y tareas y el orden de ejecución. Por tanto, para que la herramienta de workflow pueda guiar y controlar en cada uno de los procesos de trabajo y de información, es necesario que previamente se haga el diseño de los mismos, y es aquí donde está una de las claves del éxito del workflow, en el trabajo previo de análisis de la organización y de sus procesos, y que en la mayoría de las ocasiones suele requerir consultoría. Si bien es cierto que esta tecnología ha despertado gran interés entre las grandes empresas, éstas deben ser conscientes de que su implantación supone un período relativamente largo y complejo que requiere no sólo el convencimiento y apoyo de la alta dirección, sino además la aceptación de ciertos cambios por parte de los usuarios implicados. - 16 - 1.2. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA La Gerencia Centro de Información Financiera del Banco de Bogotá tiene la misión de entregar información oportuna y de calidad a todos los usuarios internos que la requieran, actualmente no existe una manera adecuada de administrar la gestión que realiza el GCIF en el Banco. En el proceso de control y seguimiento se han detectado alteraciones en las solicitudes, generando conflictos entre los usuarios y el GCIF. ¿Cómo implementar una solución a nivel aplicativo que permita gestionar los procesos de entrega de información realizada por el GCIF del Banco de Bogotá? 1.3. JUSTIFICACIÓN Proporcionar al GCIF una solución que se ajuste a la organización a nivel de infraestructura, implementación, mantenimiento y por supuesto satisfaciendo las necesidades de la entidad, permitiendo a los usuarios internos realizar solicitudes de información fácilmente, para obtener resultados en menor tiempo al que se esta trabajando actualmente. A continuación se describen los beneficios que ofrece el aplicativo: • Herramienta desarrollada a la medida: Aplicación que se ajuste a las necesidades y a la infraestructura tecnológica de la Entidad Banco de Bogotá. • Generación de consecutivos que permitan el control y seguimiento: Se busca ofrecer controles para la realización de auditorias y garantizar el - 17 - correspondiente seguimiento por parte del Usuario o Administrador sobre las solicitudes. • Mejora en los tiempos de respuesta: Gracias a la obtención de consecutivos y generación de alertas por parte del aplicativo se garantiza tiempos de respuesta más cortos. • Generación de informes y estadísticas de acuerdo a las necesidades del GCIF: Con la información consolidada en una base de datos, la generación de reportes personalizados es más fácil. • Entorno amigable y moderno para el usuario: La interfaz gráfica desarrollada con tecnología de punta, ofrece al usuario facilidad en la creación y seguimiento de solicitudes de información. • Sólida administración del GCIF: Información de calidad en una base de datos robusta que se ajusta a la entidad, y una interfaz realizando la gestión de GCIF. 1.4. OBJETIVOS DE LA INVESTIGACIÓN 1.4.1. Objetivo General Desarrollar un sistema de gestión de requerimientos de información para la Gerencia del Centro de Información Financiera del Banco de Bogotá. - 18 - 1.4.2. Objetivos Específicos Analizar el proceso actual de gestión de solicitudes para establecer sus necesidades e identificar las falencias, con el fin de determinar los requerimientos. Diseñar la base de datos y la interfaz de usuario. Implementar la base de datos y los formularios web en ambiente Cliente – Servidor, para simular un escenario de trabajo acorde al real. Realizar un esquema de pruebas basados en el escenario de trabajo, planteando diferentes situaciones que se podrían presentar eventualmente en el escenario real. 1.5. ALCANCES Y LIMITACIONES DEL PROYECTO 1.5.1. Alcances El Sistema Gestión de Requerimientos de Información para la Gerencia Centro de Información Financiera ofrece una herramienta capaz de registrar y controlar los requerimientos realizados por los usuarios, brindando a la Gerencia poder de análisis para la toma de decisiones. Se hará entrega al finalizar este proyecto de: • Un aplicativo para la administración, recepción y seguimiento de solicitudes de información con el Manual del Usuario vinculado en formato de videos. - 19 - • 1.5.2. Manual Técnico. Limitaciones El Banco de Bogotá posee una infraestructura tecnológica basada en arquitectura ASP.NET, igualmente la Gerencia Centro de Información Financiera cuenta con un servidor propio con motor de base de datos de Microsoft SQL Server 2000. Por otra parte la decisión de implantación depende del Banco, toda vez que la Gerencia de Sistemas debe realizar una serie de análisis e identificar como el sistema afecta el entorno de trabajo actual. - 20 - 2. MARCO DE REFERENCIA 2.1. MARCO CONCEPTUAL Es preciso determinar que se entiende por un concepto, para poder aplicarlo y evitar confusiones a las que podrían llevar a otras interpretaciones teóricas. Este apartado busca definir y, se espera, aclarar los conceptos elementales del proyecto. La búsqueda de la eficiencia viene acompañada de cambios y/o mejoras en la tecnología que soporta los procesos de negocios. La implementación de soluciones sin duda requiere de un esfuerzo importante para poner en funcionamiento la aplicación métodos, medidas, ya que no solo se debe trabajar en el flanco de hacer definiciones en el plano de procesos, tablas y organización; sino que también, se debe interactuar con la organización. Dentro de una organización todas las áreas tienen como función realizar actividades afines para alcanzar un objetivo que busque el crecimiento de ella, trabajando de forma sincronizada con las otras áreas, áreas dinámicamente relacionadas entre sí, como un sistema. Hoy en día la información es el elemento más importante al interior de una organización, ya que ésta es el conjunto de elementos (datos, códigos, investigaciones, experiencias) que permiten la toma de decisiones sobre las situaciones que se presentan en cualquier medio; a partir de establecer relaciones entre los elementos y el problema o situación dada. - 21 - Durante el desarrollo de aplicaciones web que cumplan con el objetivo de la compañía es común que aparezcan bugs o errores que hacen que el desarrollador intervenga para erradicar dichos bugs. Para un buen desarrollo hay que tener en cuenta diferentes modelos o arquitecturas de software y analizar cada una de las capas que nos ofrecen estas arquitecturas. Una vez adoptado la arquitectura que mejor resultados nos pueda generar, debemos seguir una metodología secuencial para así dar cumplimiento a todos los objetivos propuestos, esta metodología debe estar involucrada en todos los procesos que hacen parte de este sistema El usuario es parte primordial dentro del proceso de desarrollo, sobre todo cuando se diseña un sistema con procesos síncronos ya que estos dependen de un acontecimiento externo, generalmente un usuario para así continuar con el proceso. 2.2. MARCO LEGAL O NORMATIVO Un elemento crítico para el éxito y supervivencia de las organizaciones, es la administración efectiva de la información y definición de nuevas alternativas que le permitan mantenerse dentro del medio en constante cambio. Como punto de apoyo básico a estos cambios, se encuentra el desarrollo de proyectos que genera las nuevas aplicaciones necesarias para soportar el Plan Estratégico que definen las organizaciones, los cuales requieren de una adecuada administración de los recursos disponibles. - 22 - Es importante tener en cuenta la normatividad que tiene el Banco de Bogotá, respecto al desarrollo de software (aplicaciones) y su respectiva entrega. POLÍTICAS PARA EL DESARROLLO DE PROYECTOS EN EL BANCO DE BOGOTÁ • Para dar inicio al desarrollo de un proyecto, debe haber un requerimiento escrito del área usuaria interesada, una evaluación del impacto del mismo (alternativas de solución, recursos requeridos, tiempo requerido, impacto en el plan de trabajo de la División). • Todo proyecto debe tener un Líder Técnico, un Líder Usuario, un Gerente de Proyecto y un equipo de trabajo. • Todo proyecto debe contar con la siguiente documentación: Etapa Documentación Requerimiento Planificación Objetivo Alcance e impacto Cronograma Relación de interfaces Definición de requerimientos Requerimientos de controles funcionales Recomendaciones sobre seguridades, perfiles y privilegios Diseño conceptual o funcional del proyecto Diseño Diseño físico / lógico o diseño técnico detallado Control de cambios (al diseño inicial) Pruebas Documentación Plan de pruebas Manuales técnicos del producto Manuales de usuario del producto - 23 - • Las actividades de ingeniería de software posteriores a su instalación o mantenimiento, deben preverse con anticipación, es decir, el desarrollo del software debe facilitar su propio mantenimiento garantizando que no se degrade como resultado de este proceso. Por lo tanto, el software construido debe propender por: • Ser modular y de codificación simple. • Ser parametrizable. • Estar perfectamente documentado. • Tener registros de pruebas. POLÍTICAS PARA ENTREGA DE APLICACIONES OBJETIVOS • Establecer un marco general de referencia metodológico que permita identificar los requisitos para la realización de Cambios en las diferentes plataformas que se administran. • Ayudar a garantizar el correcto funcionamiento del sistema, mediante la disminución de los errores de operación de la aplicación y la definición de acciones a tomar en caso de mensajes de error. • Facilitar el desarrollo de versiones de una aplicación. • Permitir a la División de Sistemas y de Operaciones, tener una documentación estándar. - 24 - • Facilitar la consulta de información relacionada con aplicaciones desarrolladas. • Ayudar a la capacitación de los funcionarios de la División y a los usuarios del sistema. NORMAS GENERALES • Cualquier sistema realizado por la División de Sistemas y de Operaciones, Sistemas Corporativos o contratado su desarrollo externamente por el Banco de Bogotá, deberá estar soportado por los manuales de usuario, operación, control y técnico y deberá cumplir con los estándares definidos. • El líder del Proyecto o líder técnico o funcional para el caso de requerimientos, es el encargado de llevar el cambio, al Comité de Cambios de la División de Sistemas y Operaciones, donde se autoriza la fecha final para la realización del mismo. • Para los paquetes adquiridos por el Banco y que tengan unos estándares preestablecidos debe continuarse con los mismos, en caso contrario, utilizar los mencionados en este capítulo. • El Líder del proyecto, debe asegurar como parte de la planeación, que se cuenta con los recursos necesarios para la realización exitosa del plan, en lo que tiene que ver con recursos de hardware, software o espacio adicional de almacenamiento que se deba conseguir si el que existe en ambiente de Producción no es suficiente, tramitando las aprobaciones y - 25 - compras que se requieran por intermedio de la Gerencia de Investigación y Desarrollo. • Toda modificación realizada a un sistema deberá documentarse tanto en los programas fuentes como en los manuales ya existentes y éstos deberán ser enviados a las diferentes áreas usuarias. • La Gerencia de Tecnología procede a realizar una revisión de los cambios enviados, emite sus comentarios y recomendaciones necesarias, que den lugar a mejoras. Si el cambio da lugar a correcciones, no se debe continuar con el proceso de instalación. • Cuando un proceso ejecutado en el área de Procesamiento tenga alguna implicación en los Centros de Operaciones, las Gerencias de Desarrollo deben generar un(os) instructivo(s) y enviarlo(s) a la Sección de Soporte Técnico para coordinar su distribución. • La entrega de nuevas aplicaciones y actualizaciones debe ir con Acta de Entrega respectiva. • Las actualizaciones de nuevas versiones, no deben efectuarse los días lunes, después de festivo, fin de mes, quincena o fin de año, ya que la oportunidad de la entrega de la información a las oficinas y clientes se pueden ver afectadas por errores en el cambio de los programas instalados. • Buscando prestar un buen soporte en producción, la entrega de nuevas aplicaciones debe integrar un plan de capacitación. - 26 - MANUALES Y PLANILLAS Para ejecutar una aplicación en el ambiente de Producción deben entregarse previamente los siguientes manuales y planillas (ó la actualización de los mismos): • Planillas de Operación: Dirigido a los funcionarios del centro de cómputo. Deben generarse dos copias para el área de Procesamiento y Centro de Cómputo. • Manual de Control: Dirigido a los funcionarios encargados de realizar el cuadre de las aplicaciones y verificar su correcto funcionamiento. Deben generarse dos copias para el área de Procesamiento. • Manual del Usuario: Dirigido al área usuaria de la aplicación. • Manual Técnico: Dirigido a las Gerencias de Desarrollo y Tecnología. Los manuales deben contener en parte inferior izquierda de la última línea la fecha de realización o modificación según sea el caso, en formato: MES (alfabético) Día/Año. 2.3. MARCO TEÓRICO Para el óptimo desarrollo de un aplicativo que solucione el problema que tiene la Gerencia Centro de Información Financiera del Banco de Bogotá en el proceso de gestión de requerimientos de información, debemos plantear una base teórica fundamentada en la versatilidad que nos proporcionan las aplicaciones web en el marco presentado por el mismo. - 27 - UML El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación. UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas en los cuales modelar sistemas. • Diagramas de Casos de Uso para modelar los procesos 'business'. • Diagramas de Secuencia para modelar el paso de mensajes entre objetos. • Diagramas de Colaboración para modelar interacciones entre objetos. • Diagramas de Estado para modelar el comportamiento de los objetos en el sistema. • Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones. • Diagramas de Clases para modelar la estructura estática de las clases en el sistema. • Diagramas de Objetos para modelar la estructura estática de los objetos en el sistema. - 28 - • Diagramas de Componentes para modelar componentes. • Diagramas de Implementación para modelar la distribución del sistema. UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares. En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de semántica y notación estándares. UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG llama a este documento OMG UML versión 1.1. Aplicaciones Web Una aplicación web es una interface entre un formulario diseñado específicamente para cubrir con las necesidades de un negocio y su información, como pueden ser sistemas administrativos, inventarios, facturación, cuentas por cobrar, productos, etc. (la información puede ser de dominio público o restringida a ciertas personas a través de un nombre de usuario y contraseña) con el objetivo de que cualquier persona pueda consultarla e interactuar con ella desde Internet. - 29 - En ingeniería de software una aplicación web es aquella que los usuarios usan accediendo a un servidor web a través de internet o de una intranet. Las aplicaciones web son populares debido a la practicidad del navegador web como cliente ligero. La habilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. En los primeros tiempos de la computación cliente - servidor, cada aplicación tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser instalados separadamente en cada estación de trabajo de los usuarios. Una mejora al servidor, como parte de la aplicación, requería típicamente una mejora de los clientes instalados en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y disminuyendo la eficiencia del personal. En contraste, las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, soportado por navegadores web comunes como HTML (acrónimo inglés de HyperText Markup Language), lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas web o XHTML (acrónimo inglés de eXtensible Hypertext Markup Language), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web. XHTML es la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas. Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario. Generalmente cada página web individual es enviada al cliente como - 30 - un documento estático, pero la secuencia de páginas provee de una experiencia interactiva. Las aplicaciones web como ya se mencionó, vienen acompañadas de unos beneficios entre los cuales se pueden mencionar 2 : 1. Compatibilidad multiplataforma: Las aplicaciones web tienen un camino mucho más sencillo para la compatibilidad multiplataforma que las aplicaciones de software descargables. Varias tecnologías incluyendo Java, Flash, ASP y Ajax permiten un desarrollo efectivo de programas soportando todos los sistemas operativos principales. 2. Actualización: Las aplicaciones basadas en web están siempre actualizadas con el último lanzamiento sin requerir que el usuario tome acciones pro activas, y sin necesitar llamar la atención del usuario o interferir con sus hábitos de trabajo con la esperanza de que va a iniciar nuevas descargas y procedimientos de instalación (algunas veces imposible cuando usted está trabajando dentro de grandes organizaciones). 3. Inmediatez de acceso: Las aplicaciones basadas en web no necesitan ser descargadas, instaladas y configuradas. Usted accede a su cuenta online y están listas para trabajar sin importar cuál es su configuración o su hardware. 4. Facilidad de prueba: Finalmente no habrá más obstáculos para permitir pruebas sencillas y efectivas de herramientas y aplicaciones antes de cargar su tarjeta de crédito. Actualmente, especialmente cuando hablamos de software costoso, hay todavía una gran cantidad de funcionalidades y 2 Información extraída de www.informaticamilenium.com.mx/Paginas/espanol/desarrollo_sistemas_web.htm - 31 - pequeños detalles que no pueden ser totalmente probados descubiertos antes de comprometer dinero en alguna compra total. 5. Menos requerimientos de memoria: Las aplicaciones basadas en web tienen muchas más razonables demandas de memoria RAM de parte del usuario final que los programas instalados localmente. Al residir y correr en los servidores del proveedor, a esas aplicaciones basadas en web usa en muchos casos la memoria de las computadoras que ellos corren, dejando más espacio para correr múltiples aplicaciones del mismo tiempo sin incurrir en frustrantes deterioros en el rendimiento. 6. Menos Bugs: Las aplicaciones basadas en web deberían ser menos propensas a colgarse y crear problemas técnicos debido a software o conflictos de hardware con otras aplicaciones existentes, protocolos o software personal interno. Con aplicaciones basadas en web, todos utilizan la misma versión, y todos los bugs pueden ser corregido tan pronto como son descubiertos. Esta es la razón por la cual las aplicaciones basadas en web deberían tener mucho menos bugs que el software de escritorio descargable tradicional. 7. Precio: Las aplicaciones basadas en web no requieren la infraestructura de distribución, soporte técnico y marketing requerido por el software descargable tradicional. Esto permite que las aplicaciones online cuesten una fracción de sus contrapartes descargables si no totalmente gratuitas, mientras que ofrecen componentes adicionales y servicios premium como una opción. 8. Los datos también van online: Por supuesto con el desplazamiento de las aplicaciones locales a aquellas basadas en web también los datos que creamos y accedemos van a necesitar experimentar profundos cambios. - 32 - 9. Múltiples usuarios concurrentes: Las aplicaciones basadas en web pueden realmente ser utilizada por múltiples usuarios al mismo tiempo. No hay más necesidad de compartir pantallas o enviar instantáneas cuando múltiples usuarios pueden ver e incluso editar el mismo documento de manera conjunta. Las compañías de conferencia web y colaboración online están involucradas algunas transformaciones claves y los usuarios necesitan explorar que significa realmente trabajar efectivamente y co - editar documentos juntos. 10. Los datos son más seguros: Si bien la ruptura de discos no va a desaparecer, es probable que los usuarios escuchen mucho menos del tema. A medida que las compañías se hagan cargo del almacenamiento de los datos del usuario, granjas de almacenamiento de datos redundantes, altamente fiables, serán la norma más que la excepción, y los usuarios van a tener mucho menos riesgo de perder sus datos debido a una ruptura de disco impredecible o a un virus de la computadora. Las compañías que provee aplicaciones basadas en web van a brindar amplios servicios de resguardo de datos ya sea como una parte integral del servicio básico o como una opción paga. Usted puede imaginar que si una compañía comercial pierde los datos de la gente será puesta de rodillas (financieramente) en cuestión de días. 11. Desarrollar aplicaciones en el lenguaje que usted quiera: Una vez que las aplicaciones han sido separadas de computadoras locales y sistemas operativos específicos esa pueden también ser escritas en prácticamente cualquier lenguaje de programación. Ya que las aplicaciones web son esencialmente una colección de programas más que un simple programa, ellas podrían ser escritas en cualquier lenguaje de programación que esté por ahí. Mientras que para software escritorio usted está limitado a usar el - 33 - mismo lenguaje que el sistema operativo subyacente este no es el caso cuando la aplicación de software es independiente del sistema operativo. Microsoft .NET Frameworks Win Forms es el espacio de nombre de .NET Framework destinado a la programación de la IU del cliente de Windows. Comparte los mismos principios de diseño que el paquete ASP+ IU, conocido como Web Forms, pero las clases y las implementaciones son completamente diferentes. No existen clases que se transformen por arte de magia entre la API de Microsoft Win32 y los componentes Web. Sin embargo, como ocurre en todas las aplicaciones de .NET Framework, la coherencia constituye una prioridad. El objetivo principal de los desarrolladores de Win Forms es sentirse cómodos escribiendo código en Web Forms y el de los desarrolladores de Web Forms, sentirse cómodos escribiendo código en Win Forms. Por ejemplo, los dos espacios de nombre tendrán una clase Button que contendrá texto, un evento OnClick predeterminado y las propiedades ForeColor, BackColor y Font. AJAX Framework.Net AJAX parece ser la palabra de moda en el mundo del desarrollo de aplicaciones Web, AJAX no es una tecnología, sino la unión de varias tecnologías que juntas pueden lograr cosas realmente impresionantes. Hace un tiempo AJAX parece ser la palabra de moda en el “mundo” del desarrollo de aplicaciones Web; de hecho muchos lo escuchan nombrar pero pocos saben que es realmente y, menos aún, saben en donde buscar información clara sobre que es esta nueva “maravilla” de la tecnología que Jesse James Garret publicó en un artículo en Inglés excelente que vale la pena traducir por completo. - 34 - Por qué es tan interesante AJAX? Porque en realidad AJAX no es una tecnología, sino la unión de varias tecnologías que juntas pueden lograr cosas realmente impresionantes como GoogleMaps, Gmail el Outlook Web Access o algunas otras aplicaciones muy conocidas. AJAX, en resumen, es el acrónimo para Asynchronous JavaScript + XML y el concepto es: Cargar y renderizar una página, luego mantenerse en esa página mientras scripts y rutinas van al servidor buscando, en background, los datos que son usados para actualizar la página solo re-renderizando la página y mostrando u ocultando porciones de la misma. Microsoft Windows Workflow Foundation (WWF) Es un framework extensible para desarrollar soluciones de workflow sobre la plataforma Windows. Como parte del próximo Microsoft WinFX, Windows Workflow Foundation provee una API y herramientas para el desarrollo y la ejecución de aplicaciones basadas en workflow. Windows Workflow Foundation provee un único modelo unificado para crear soluciones de punta a punta que abarcan categorías de aplicaciones, incluyendo workflows tanto humanos como de sistemas. Un workflow es un modelo de proceso humano o de sistema que es definido como un mapa de actividades. Una actividad es un paso en un workflow y es la unidad de ejecución. El mapa de actividades expresa reglas, acciones, estados y sus relaciones. Diseñadas las secuencias de actividades, un workflow de Windows Workflow Foundation es, entonces, compilado en un assembly .NET, y es ejecutado sobre el runtime del workflow y el CLR (Common Language Runtime). - 35 - Esta tecnología de WWF complementa al Framework .NET con un grupo de componentes basados en workflows que brindan a los desarrolladores la habilidad de definirlos, compilarlos, instanciarlos, depurarlos y rastrearlos. Esta tecnología será parte de WinFX junto con Windows Presentation Foundation (Avalon) y Windows Communication Foundation (Indigo). Usando Windows Workflow Foundation (WWF), los desarrolladores pueden incorporar conceptos tales como scheduling, coordinación de tareas y escalabilidad en sus aplicaciones existentes sin costo alguno. WWF provee la plataforma base donde se pueden desarrollar aplicaciones con muchos procesos. Dentro de Microsoft Visual Studio 2005, y luego de instalar el runtime de WinFX y el pack de WWF, se encontrarán algunas capacidades muy interesantes, tales como el diseñador visual, Visual Studio Workflow Templates y depurador visual, lo cual ayuda a desarrollar aplicaciones ricas en workflows. Estos workflows se desarrollan usando XML y un archivo code-behind sólo en C# o VB.NET. Una librería workflow, cuando se compila, requiere una aplicación que la contenga (aplicación Host) para ejecutarse. Las aplicaciones Host pueden ser de consola (exe), Servicios Windows, módulos http o aplicaciones de servidor, como SharePoint Services. Otros productos como Microsoft BizTalk Server planean usar la plataforma WWF en futuros lanzamientos. - 36 - Estructura Aunque muchas variaciones son posibles, una aplicación web está comúnmente estructurada como una aplicación de tres capas 3 . En su forma más común, el navegador web es la primera capa, un motor usando alguna tecnología web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa de en medio, y una base de datos como última capa. El navegador web manda peticiones a la capa media, que la entrega valiéndose de consultas y actualizaciones a la base de datos generando una interfaz de usuario. Al presentar cada uno de los diferentes elementos mencionados anteriormente y basándonos que hoy en día la gran mayoría de los aplicativos esta dirigido al manejo web podemos encontrar que se realiza un diseño de tres capas. • Capa de datos • Capa de negocio • Capa de presentación Al conectarse al aplicativo se está utilizando un diseño de tres capaz, • Al enviar o llenar un formulario de solicitud (Presentación) • Verificación de la información y manejo de la misma por parte del aplicativo (Negocio) • Almacenamiento de la información enviada (Datos) 3 Para obtener más información acerca de la estructura web aplicada al proyecto de solicitudes consultar: http://msdn2.microsoft.com/en-us/library/ms978496.aspx - 37 - CAPA DE DATOS La capa de datos esta compuesta por los siguientes elementos: • Bases de datos • Tablas • Procedimientos almacenados • Componentes de datos Se utilizaron las siguientes tecnologías Microsoft: • SQL 2000 • ADO .NET • Componentes VISUAL VB , C# • XML • Procedimientos almacenados • Framework 2.0 • Windows Workflow Foundation CAPA DE NEGOCIOS Compuesta por los siguientes elementos que permiten establecer que se va a hacer con la información, y estos son: • Reglas del negocio • Validaciones • Flujos y procesos • Cálculos - 38 - Se utilizaron las siguientes tecnologías Microsoft para trabajarlas: • Lenguajes de componentes VB y c# • Componentes locales • Componentes Web • Comunicación entre componentes, a través de XML • Framework 2.0 • Windows Workflow Foundation • Webservices Mediante los Webservices se logró la publicación de las reglas de negocio de nuestro aplicativo en un servidor web y es la mejor manera de comunicación entre componentes. CAPA DE PRESENTACION Es la forma como se presenta el aplicativo al usuario o la interfaz de usuario, básicamente es la manera de garantizar que el usuario tenga acceso al aplicativo y a la información, se considera básicamente en tres puntos. • Formularios • Informes • Respuestas al usuario Se utilizaron las siguientes tecnologías Microsoft para la realización de esta capa: • ASP .NET • ASP - 39 - • XML, XSL • Framework 2.0 • Windows Workflow Foundation - 40 - 3. METODOLOGÍA 3.1. HIPÓTESIS El Sistema de Gestión de Requerimientos de Información para la Gerencia Centro de Información Financiera del Banco de Bogotá, es una aplicación que coadyuva en la optimización de los procesos realizados al interior del GCIF proporcionando menor tiempo de respuesta, un control de la información generada y un seguimiento al desempeño del centro. 3.2. VARIABLES 3.2.1. Variables Independientes • El número de usuarios en el Sistema. • Arquitectura del Sistema. 3.2.2. Variables Dependientes • Porcentaje de satisfacción de los usuarios. • Reducción de tiempo en el desarrollo de los procesos del GCIF. - 41 - 4. DESARROLLO INGENIERIL 4.1. Análisis El tipo de información que suministra GCIF se puede referir a productos bancarios, clientes, cifras presupuestales, cifras estadísticas, transacciones, etc, ya sea por total Banco, unidad de negocio u oficina ó centros de Dirección General (Gerencia Contabilidad, Gerencia de Mercadeo, Gerencia Banca Corporativa, etc). GCIF se divide en tres secciones las cuales se denominan Sección Administrativa, Sección de Producción y Sección de Desarrollo, esta última es la encargada de gestionar las solicitudes de información que se realizan diariamente por los usuarios internos del Banco. 4.1.1. Análisis Sistema Actual A continuación se describe el proceso actual establecido en GCIF para realizar la gestión de solicitudes de información: El usuario remite un correo electrónico al Jefe de la Sección de Desarrollo, donde manifiesta el tipo de información y la estructura en la cual la requiere. Ej: El analista x de la Gerencia de Mercadeo solicita información de las cuentas de ahorros aperturadas en la Oficina Unicentro durante el mes de enero de 2007. Se requiere fecha de apertura, tipo de identificación, identificación, nombre del cliente y saldo inicial. - 42 - El Jefe de la Sección de Desarrollo radica la solicitud en un archivo de Microsoft Excel el cual cumple la función de Base de Datos almacenando información como la fecha de la solicitud, nombre de quien solicita, área a la que pertenece, fecha de respuesta y a la vez se le asigna un consecutivo. Igualmente el Jefe analiza dicha solicitud y determina si esta le atañe a GCIF. Si la solicitud le corresponde a GCIF, el Jefe reenvía el correo electrónico del usuario a uno de los analistas, asignándoselo para que éste se haga responsable de suministrar información de calidad en los tiempos requeridos por el usuario. Si la solicitud no le corresponde a GCIF, el Jefe responde el correo electrónico al usuario indicándole las causas por las cuales no se proporciona información. Los analistas deben extraer la información de los aplicativos del Banco, basándose en los parámetros requeridos por el usuario, ellos no están autorizados para enviar más ó menos de lo que el usuario esta solicitando. Los analistas generan la información en archivos planos o en archivos de Microsoft Excel, dependiendo del tamaño de la misma, adjuntando al correo electrónico y reenviando al usuario interesado con copia al Jefe de la Sección de Desarrollo. Cabe señalar que no siempre se remite la información completa ya sea por la complejidad del proceso que se debe realizar por el tiempo que dispone el analista, entonces se procede a remitir al usuario parciales de la información. El Jefe de la Sección de Desarrollo al recibir el correo electrónico procede a dar por terminada la solicitud y de acuerdo al consecutivo dado inicialmente ubica el - 43 - requerimiento en el control que maneja en Microsoft Excel y lo cierra colocando una “bandera” en el registro correspondiente. Semanalmente el Jefe de la Sección de Desarrollo realiza filtros en el archivo control de Microsoft Excel, para establecer la gestión que se desarrolló durante la semana y presentar las estadísticas los días viernes al gerente de GCFI, donde evalúan las falencias que se presentaron durante la semana con el fin de encontrar soluciones y posteriormente ser mas eficaces. Figura 1. Diagrama de contexto sistema actual Elaborado en Microsoft Visio 2003 - 44 - Figura 2. Diagrama nivel 1 sistema actual Elaborado en Microsoft Visio 2003 - 45 - 4.1.2. Análisis Solución Propuesta A continuación se describe el proceso propuesto para realizar la gestión de solicitudes de información: El usuario al requerir información financiera deberá entrar a la intranet del Banco y hacer clic sobre el link que lo llevará a la aplicación. Esta no le solicitará el nombre de usuario y contraseña toda vez que esta información se extrae de Active Directory al momento de entrar a intranet. El usuario al realizar una solicitud debe diligenciar un Text Box explicando lo que necesita y colocar una bandera la cual indica la prioridad que se le debe dar a dicha solicitud. La aplicación al recibir un nuevo registro (una solicitud de información), remite automáticamente un correo electrónico al Administrador en el cual se detalla la fecha de la solicitud, nombre del usuario que requiere información (Active Directory), nombre del área a la que pertenece el usuario (Active Directory) y prioridad, permitiendo al Administrador analizar y determinar si esta le atañe al GCIF. Si la solicitud le corresponde a GCIF, el Administrador podrá asignársela a uno de sus Analistas y agregarle una descripción si este lo cree necesario. Si la solicitud no le corresponde a GCIF, el Administrador podrá responder al usuario indicándole las causas por las cuales no se proporciona información. La aplicación remitirá un correo electrónico al Analista que el Administrador haya seleccionado, donde se indica los detalles anteriormente mencionados más la descripción y prioridad dadas por el Administrador. - 46 - El Analista al recibir el correo electrónico extraerá la información solicitada accesando a las aplicaciones del Banco, basándose en los parámetros requeridos por el usuario generará la información en archivos planos o en archivos de Microsoft Excel, dependiendo del tamaño de la misma. En el correo electrónico remitido a los Analistas se encuentra un link, el cual al hacer clic abrirá un formulario web para que el Analista adjunte los archivos que contienen la información requerida y determine si la solicitud pasa de un estado Pendiente a un estado Terminado ó Parcial , posteriormente la aplicación enviará automáticamente al usuario un correo electrónico informando que su solicitud ha sido tramitada y la ubicación de los archivos generados, igualmente enviará copia al Administrador para que éste quede enterado del estado de la solicitud. El Administrador podrá generar los siguientes reportes, para establecer la gestión que se desarrolló durante la semana y presentarlos de forma rápida y apropiada al Gerente de GCIF: • Informe pendientes, parciales y terminados entre un rango de fechas. • Informe de solicitudes radicadas por áreas del Banco. • Informe que suministre la cantidad de días que se utilizaron para responder cada solicitud entre un rango de fechas. - 47 - Figura 3. Diagrama de flujo sistema propuesto Elaborado en Microsoft Visio 2003 Usuario Diagrama de Flujo Sistema Propuesto ESTADO INICIAL SOLICITUD CREAR SOLICITUD Administrador REASIGNAR SOLICITUD ASIGNAR/ RECHAZAR CASO 1 CASO 2 ESTADO INICIAL ASIGNAR ASIGNAR SOLICITUD ASIGNAR SOLICITUD CASO 3 SOLICITUD ASIGNADA/ REASIGNADA CERRAR SOLICITUD RECHAZAR FIN Analista CASO 1: RECHAZAR ASIGNACION ESTADO INICIAL ACTUALIZAR SOLICITUD SOLICITUD COMPLETAR SOLICITUD CASO 2 CASO 3 - 48 - Figura 4. Capas del Aplicativo Web Extraído de www.MSDN2.Microsoft.com El aplicativo de Gestión de Solicitudes esta diseñado bajo tres capas: Capa de Datos: Esta estructurada en SQL Server 2000, la cual se conecta con los formularios Web a través de Datasets permitiendo consultar, agregar y modificar información. Capa de Procesos: Esta estructurada en Windows Workflow Foundation, permitiendo realizar procesos de manera secuencial, es decir, requiriendo la intervención del usuario para pasar de un estado a otro. - 49 - Capa de Presentación: Esta desarrollada en Visual Studio 2005, suministrando diferentes herramientas para el desarrollo del aplicativo, igualmente mejorando la web con efectos visuales los cuales se obtienen con AJAX 1.0 Figura 5. Modelo Cliente – Servidor en MV Elaborado en Microsoft Visio 2003 La solución propuesta se basa en un modelo Cliente – Servidor el cual es una relación entre procesos corriendo en máquinas separadas, así: Presentación Distribuida: • Se distribuye la interfaz entre el cliente y la plataforma servidora. • La aplicación y los datos están ambos en el servidor. • El PC del usuario se aprovecha solo para mejorar la interfaz gráfica. - 50 - Presentación Remota: • La interfaz para el usuario esta completamente en el cliente. • La aplicación y los datos están en el servidor. Lógica Distribuida: • La interfaz esta en el cliente. • La base de datos esta en el servidor. • La lógica de la aplicación esta distribuida entre el cliente y el servidor. Administración de Datos Remota: • En el cliente residen tanto la interfaz como los procesos de la aplicación. • Las bases de datos están en el servidor. • Es lo que comúnmente imaginamos como aplicación cliente servidor Base de Datos Distribuida: • La interfaz, los procesos de la aplicación y parte de los datos de la base de datos están en cliente. • El resto de los datos están en el servidor. - 51 - La solución propuesta consta de tres actores (Administrador, Analista y Usuario) los cuales se describen a continuación por medio de casos de uso representados en UML Versión 1.0: Figura 6. Casos de Uso: Administrador Elaborado en Microsoft Visio 2003 - 52 - Figura 7. Casos de Uso: Analista Elaborado en Microsoft Visio 2003 Figura 8. Casos de Uso: Usuario Elaborado en Microsoft Visio 2003 - 53 - 4.1.3. Especificación de requerimientos Requerimientos funcionales del software: El sistema debe permitir al Usuario interno ingresar, consultar y cancelar solicitudes. El sistema debe permitir al Administrador asignar, consultar, cerrar, reabrir, reasignar y rechazar solicitudes. El sistema debe permitir a los Analistas consultar, actualizar, terminar y rechazar solicitudes. El sistema debe permitir adjuntar la información generada en archivos planos. El sistema debe permitir la generación de informes. Detalle de requerimientos: Se requiere desarrollar formas para que el Usuario pueda ingresar, consultar y cancelar solicitudes de información. Se requiere desarrollar formas para que el Administrador pueda asignar, consultar, cerrar, reabrir, reasignar y rechazar solicitudes de información. Se requiere desarrollar formas para que los Analistas puedan consultar, actualizar, terminar y rechazar solicitudes de información. Se requiere desarrollar una forma para que los Analistas adjunten archivos planos. - 54 - Se requiere de los siguientes reportes: • Informe para el Administrador de pendientes, parciales y terminados entre un rango de fechas. • Informe para el Administrador de solicitudes radicadas por áreas del Banco. • Informe para Analistas de solicitudes pendientes. 4.2. Diseño Para desarrollar la aplicación de solicitudes se realizó una entrevista a diferentes usuarios de GCIF, donde dieron a conocer diferentes puntos de vista acerca de la gestión que esta Gerencia tiene como misión (Ver Anexo B). Inicialmente para el desarrollo del aplicativo se generó un prototipo con las formas más importantes las cuales como mínimo, la versión final debería contener. A continuación se presentan los diferentes formularios que componen el aplicativo en su versión prototipo: - 55 - Figura 9. Prototipo – Web inicio sesión Al iniciar muestra el una aplicativo pantalla de acceso para que el usuario ingrese su usuario nombre y de respectiva contraseña. Figura 10. Prototipo – Web crear solicitud Formulario de Usuario. Permite al usuario realizar las solicitudes de información seleccionando el nivel de importancia, para posteriormente que GCIF gestione. Figura 11. Prototipo – Web consultar solicitud Formulario Analista de y Usuario, Administrador. Permite realizar consultas de las solicitudes de acuerdo al estado Cancelada, etc). - 56 - (Pendiente, Reasignada, Figura 12. Prototipo – Web descargar archivos Formulario Permite de Usuario. descargar los archivos que GCIF genera como parte de la solución a la solicitud de información. 4.2.1. Diagrama de Clases Figura 13. Diagrama de Clases Elaborado en Microsoft Visual Studio 2005 - 57 - 4.2.2. Diseño Conceptual de la Base de Datos Figura 14. Diseño conceptual BD (Entidades y Atributo Clave) Elaborado en Microsoft Visio 2003 Nombre IdTipoArchivo ArchivosAdjuntos IdRol Número Username Identificación Puede poseer IdEstado E-mail Descripción Rol Pertenece Usuario Procesa Id Solicitud Fecha Inicio IdSolicitud Id Pertenece Posee Historial IdEstado Nombre Id Nombre Area IdUsuario Id Estado Fecha Cambio Estado Estado Nombre Puede poseer Id Id Eventos Existe EstadoEvento En la creación del modelo entidad relación, se debe determinar cuales son las entidades y cuales los atributos, así mismo, la relación entre cada una de las diferentes entidades. Esta tarea prácticamente determina como es el diseño de la base de datos. El esquema conceptual requiere entonces el uso que de cada una de las entidades se realice dentro de la organización. Esto nos lleva a determinar cuales son los datos necesarios en la base de datos y así mismo - 58 - nos comienza a ayudar a identificar la determinar la dependencia funcional. Para conocer este elemento es necesario conocer a fondo y a detalle cada uno de los pasos que se utilizan para el manejo y el acceso a la información es por eso que se afirma que la dependencia funcional esta es dada por las restricciones de la realidad. Por eso al analizar varios casos del esquema conceptual se encuentra que: • El usuario en diferentes etapas y al colocar una solicitud el aplicativo o un usuario le puede informar del estado, de los avances, de la culminación, de la aceptación o rechazo de una solicitud. • Un administrador puede recibir esta solicitud y asignarla, cancelarla y comentarla. • Un analista puede aceptar o no la solicitud, procesarla, informar los avances. • Y nuevamente el administrador o el usuario pueden determinar el estado de la misma solicitud. Analizando detalladamente se encuentra que la dependencia funcional dentro de cada uno de los actores de la base de datos, exige que exista una transitividad, ya que encontramos que la creación de entidades débiles en esta base de datos en algunos momentos por el mismo diseño de la base de datos y por la tecnología de WWF que se está utilizando es bastante complejo, para lograr mantener la instancia y la independencia de cada una de ellas. Es importante aclarar que las dependencias funcionales nos pueden llevar a otras realidades que no estaban dentro del diseño inicial pero que pueden afectar o no el comportamiento de la base de datos y pueden generar entidades débiles o entidades fuertes. - 59 - 4.2.3. Diseño Físico de la Base de Datos Figura 15. Diagrama de la Base de Datos Elaborado en Microsoft SQL Server 2000 En el desarrollo de la base de datos se tomaron en cuenta diferentes conceptos que son los que permiten que este diseño sea el ideal para el funcionamiento del aplicativo. Partiendo inicialmente del concepto del workflow en el cual cada una de las solicitudes que se realicen en este aplicativo son tratadas como una instancia independiente y que la información que este allí almacenada, gracias a la - 60 - serialización y deserialización de la información nos va a permitir un ahorro en almacenamiento. Así mismo encontramos como basado en la dependencia funcional encontramos que el historial del trabajo depende de la instancia de la solicitud que se quiera analizar y no de los tipos de solicitud o los estados que pueda llegar a tener una solicitud. La tabla workflow es aquella sobre la que básicamente funciona el GCIF, ya que en esta se almacena cada una de las solicitudes dentro de la instancia y nos va a garantizar que la información va a estar completa para consulta, acceder, trabajar o cerrar en cualquier momento sin importar cuanto tiempo estuvo inactiva una solicitud. En el campo de la seguridad ningún usuario requiere de roles dentro de la base de datos, ya que el aplicativo utiliza El aplicativo Web accede a la base de datos por medio de un usuario denominado Solicitudesuser el cual posee permisos de propietario de la base de datos (Owner), es decir, los usuarios al ingresar al aplicativo ingresan con la seguridad de Windows pero el aplicativo internamente accede a la base de datos, lo cual ofrece un ciento por ciento de confidencialidad e integridad a las tablas, toda vez que los usuarios no accedan físicamente a la Base de Datos a realizar operación alguna. - 61 - 4.2.4. Diccionario de la Base de Datos Tabla 1. Diccionario de la base de datos No. Nombre de la Tabla Tipo de Llave PK 1 Area PK 2 Eventos PK 3 Rol PK 4 5 Estado EstadoEvento 9 11 Varchar 50 Descripcion Varchar 100 Id Int 4 Nombre Varchar 50 Descripcion Varchar 100 Id Int 4 Nombre Varchar 50 Descripcion Varchar 100 Id Int 50 PK Id Int FK IdEstado Int 4 FK IdEvento Int 4 IdTipoUsuarioPermitido Int 4 Id Int 4 Nombre Varchar 50 Descripcion Varchar 100 Id Int 4 FK IdRol Int 4 Workflow IdArea Int 4 UserName Varchar 50 Password Varchar 50 dpto Varchar 50 50 Email Varchar RecibeNotificacionesDe Bit 1 EsClienteWindows Bit 1 Id Int 4 Guid Nvarchar 50 WorkflowSerializado Image 16 1 EstaBloqueado Bit PK Id Int 4 FK IdWorkflow Int 4 FK IdUsuarioAutor Int 4 FK IdUsuarioAsignado Int 4 FK IdEstado Int 4 Descripcion Solicitud Text 16 ContieneArchivosAdjuntos Bit 1 Solicitud ArcivosAdjuntos Observaciones Aquí se almacena la informacion referente a las areas de GCIF Guarda los eventos o acciones que pueden realizar los usuarios (Crear, Cancelar, Asignar, Rechazar y Aprobar Solicitud). ♦ Aquí se almacena la informacion referente a los roles (Administrador, Analista,Usuario) involucrados en el proceso de solicitudes del Banco de Bogota ♦ Almacena los diferentes estado en los que puede estar una solicitud 4 PK Usuario Nulo? 4 100 TipoArchivoAdjunto HistoriaSolicitud Nombre Varchar PK 10 4 Varchar PK 8 Tamaño Descripcion FK 7 Tipo de Datos Int Nombre PK 6 Nombre del Campo Id FechaInicio DateTime 8 DiasVencimiento Int 4 PosiblesEstadosSiguientes Varchar 255 PosiblesEventosDisponibles Varchar 255 Id Int 4 IdSolicitud Int 4 IdTipoArchivoAdjunto Int 4 ArchivoAdjunto Image 16 50 NombreArchivo Varchar PK Id Int 4 FK IdSolicitud Int 4 FK IdEstado Int 4 FK IdUsuario Int 4 FechaCambioEstado DateTime 8 - 62 - Guarda la asignación de los eventos que cada usuario puede realizar dentro de la aplicación (Crear, Cancelar, Asignar, Rechazar y Aprobar Solicitud). Almacena informacion referente al tipo del archivo adjunto ♦ ♦ ♦ En esta tabla se almacena la informacion mas relevante de los Usuarios que hacen parte del proceso de solicitudes, dichos usuarios no necesariamente deben existir en el Directorio Activo, toda vez que se cuenta con autenticación mixta (SQL y Windows). Es la tabla encargada de gestionar las solicitudes por medio de Id's automáticos que esta asigna ♦ ♦ En esta tabla se realiza el almacenamiento de la información correspondiente al proceso de cada solicutud. ♦ ♦ Aquí se almacena la informacion referente al Archivo adjunto ♦ ♦ Aquí se encuentra el consolidado de las solicitudes realizadas al GCIF 4.2.5. Diccionario de Relaciones de la Base de Datos Tabla 2. Diccionario de relaciones de la Base de Datos Claves Principales (PK) No. Tabla Campo 1 Area Id 1 --- 2 Eventos Id 1 --- 3 Estado Id 1 --- 4 Rol Id 1 --- 5 TipoArchivoAdjunto Id 1 --- 6 Workflow Id 1 --- 7 Usuario Id 1 --- 8 Estado Id 1 --- 9 Solicitud Id 1 --- 10 Solicitud Id 1 --- 4.2.6. Claves Secundarias (FK) TIPO DE RELACION ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ Tabla Usuario Campo IdArea EstadoEvento IdEvento EstadoEvento IdEstado Usuario IdRol ArchivosAdjuntos IdTipoArchivoAdjunto Solicitud IdWorkflow Solicitud IdUsuarioAutor Solicitud IdEstado ArchivosAdjuntos IdSolicitud HistorialSolicitud IdSolicitud Tablas Estructurales del WorkFlow Tabla 3. Tabla Estructural de Estado No 1 Estado Descripción Asignada Sucede al estar asignada 2 Cerrada Estado Final de la solicitud 3 Creada Sucede al crear una solicitud 4 En Curso Sucede al estar en proceso de solución 5 Pendiente Asignacion Sucede al esperar asignacion 6 Pendiente Cancelacion Sucede al esperar cancelación 7 Pendiente Reasignacion Sucede al esperar reasignacion 8 Solicitud Cancelada Sucede al aprobar la cancelación de la solicitud 9 Solicitud Completada Sucede al completar la solicitud Tabla 4. Tabla Estructural de Rol No Rol Descripción 1 Administrador Usuario administrador de la aplicación 2 Analista Usuario administrador de la aplicación 3 Usuario Usuario que crea la solicitud - 63 - Tabla 5. Tabla Estructural de EstadoEvento No Estado Evento Descripción 1 Creada Crear Solicitud Usuario 2 Estado Raiz Cancelar Solicitud Usuario 3 Estado Raiz Cancelar Solicitud Administrador 4 Estado Raiz Cancelar Solicitud Analista 5 Pendiente Asignacion Asignar Solicitud Administrador 6 Pendiente Cancelacion Aprobar Cancelacion Administrador 7 Pendiente Cancelacion Rechazar Cancelacion Administrador 8 Pendiente Reasignacion Reasignar Solicitud Administrador Asignacion Analista 9 Asignada Rechazar 10 Asignada Aceptar Asignacion Analista 11 En Curso Actualizar Analista 12 En Curso Completar Analista 13 Solicitud Completada Cerrar Solicitud Administrador 14 Solicitud Cancelada Cerrar Solicitud Administrador Tabla 6. Tabla Estructural de Evento No 1 Eventos Aceptar Asignacion Descripción Ocurre al aceptar la asignación de una solicitud 2 Actualizar Ocurre al actualizar el estado de una solicitud 3 Aprobar Cancelacion Evento para aprobar la cancelación una solicitud 4 Asignar Solicitud Evento para asignar una solicitud 5 Cancelar Solicitud Ocurre al aceptar la cancelación de una solicitud 6 Cerrar Solicitud Ocurre al cerrar una solicitud 7 Completar Ocurre al completar una solicitud 8 Crear Solicitud Evento para crear una solicitud Evento para reasignar una solicitud 9 Reasignar Solicitud 10 Rechazar Asignacion Ocurre al rechazar la asignación de una solicitud 11 Rechazar Cancelacion Ocurre cuando se rechaza una cancelación Tabla 7. Tabla Estructural de TipoArchivoAdjunto No Rol Descripción 1 Al Actualizar Ocurre cuando se adjunta un archivo en la actualización de la solicitud 2 Al Cerrar Ocurre cuando se adjunta un archivo en la finalización de la solicitud 3 Al Crear Ocurre cuando se adjunta un archivo en la creación de la solicitud - 64 - 4.2.7. Diccionario de Procedimientos Almacenados Para optimizar la aplicación de solicitudes los eventos que esta realiza a la base de datos (crear, modificar, eliminar, consultar, etc), no se incorporaron dentro del código de la aplicación sino que se explotó al máximo las funcionalidades de los Procedimientos Almacenados que posee SQL Server, de esta manera se mejora el rendimiento y se da una mejor administración en los recursos del sistema. Tabla 8. Diccionario de procedimientos almacenados No. 1 Nombre del Procedimiento Almacenado Observaciones 3 ArchivosAdjuntos_Get_List Elimina un registro en la tabla de ArchivosAdjuntos Busca registros en la tabla ArchivosAdjuntos partiendo de parámetros de nulidad Obtiene todos los registros de la tabla ArchivosAdjuntos 4 ArchivosAdjuntos_GetById Seleccionar los registros de la tabla ArchivosAdjuntos a través del Id 2 5 6 7 ArchivosAdjuntos_delete ArchivosAdjuntos_Find Seleccionar los registros de la tabla ArchivosAdjuntos a través de la llave foranea IdSolicitud ArchivosAdjuntos_GetByIdTipoArchivoAdju Seleccionar los registros de la tabla ArchivosAdjuntos a través de la llave nto foranea IdTipoArchivoAdjunto ArchivosAdjuntos_GetByIdSolicitud ArchivosAdjuntos_GetPaged Obtiene los registros de la tabla ArchivosAdjuntos haciendo un idexado y verificando los parámetros que existan en el procedimiento 8 ArchivosAdjuntos_Insert Inserta un registro en la tabla de ArchivosAdjuntos 9 ArchivosAdjuntos_Update Actualiza un registro en la tabla de ArchivosAdjuntos 10 Area_Delete Elimina un registro en la tabla de Area 11 Area_Find Busca registros en la tabla Area partiendo de parámetros de nulidad 12 Area_Get_List Obtiene todos los registros de la tabla Area 13 Area_GetById Seleccionar los registros de la tabla de Area a través del Id Seleccionar los registros de la tabla de Area a través del Nombre Obtiene los registros de la tabla Area haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla de Area 14 Area_GetByNombre 15 Area_GetPaged 16 Area_Insert 17 Area_Update Actualiza un registro en la tabla de Area 18 Estado_Delete Elimina un registro en la tabla de Estado 19 Estado_Find Busca registros en la tabla Estado partiendo de parámetros de nulidad 20 Estado_Get_List Obtiene todos los registros de la tabla Estado 21 Estado_GetByEstado Seleccionar los registros de la tabla Estado a través del campo Estado 22 Estado_GetById 23 24 Seleccionar los registros de la tabla Estado a través del campo Id Seleccionar los registros de la tabla Estado partiendo de una validación Estado_GetByidEventoFromEstadoEvento respecto al campo IdEvento de la tabla EstadoEvento Estado_GetByidTipoUsuarioPermitidoFrom Seleccionar los registros de la tabla Estado partiendo de una validación EstadoEvento respecto al campo IdTipoUsuarioPermitido de la tabla EstadoEvento - 65 - No. Nombre del Procedimiento Almacenado Observaciones 25 Estado_GetPaged 26 Estado_Insert Obtiene los registros de la tabla Estado haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla de Estado 27 Estado_Update Actualiza un registro en la tabla de Estado 28 EstadoEvento_Delete 29 EstadoEvento_Find 30 EstadoEvento_Get_List Elimina un registro en la tabla de EstadoEvento Busca registros en la tabla EstadoEvento partiendo de parámetros de nulidad Obtiene todos los registros de la tabla EstadoEvento 31 EstadoEvento_GetById 37 Seleccionar los registros de la tabla EstadoEventos a través del Id Seleccionar los registros de la tabla EstadoEvento a través de la llave EstadoEvento_GetByIdEstado foranea IdEstado EstadoEvento_GetByIdEstadoIdEventoIdTi Selecciona los registros de la tabla de EstadoEvento por medio de un índice poUsuarioPermitido Seleccionar los registros de la tabla EstadoEvento a través de la llave EstadoEvento_GetByIdEvento foranea IdEvento EstadoEvento_GetByIdTipoUsuarioPermiti Seleccionar los registros de la tabla EstadoEvento a través del campo do IdTipoUsuarioPermitido Obtiene los registros de la tabla EstadoEvento haciendo un idexado y EstadoEvento_GetPaged verificando los parámetros que existan en el procedimiento EstadoEvento_Insert Inserta un registro en la tabla EstadoEvento 38 EstadoEvento_Update Actualiza un registro en la tabla EstadoEvento 39 Eventos_Delete Elimina un registro en la tabla de Eventos 40 Eventos_Find Busca registros en la tabla Eventos partiendo de parámetros de nulidad 41 Eventos_Get_List Obtiene todos los registros de la tabla Eventos 42 Eventos_GetById 43 Eventos_GetByidEstadoFromEstadoEvento Seleccionar los registros de la tabla Eventos a través del Id Seleccionar los registros de la tabla Eventos partiendo de una validación respecto al campo IdEstado de la tabla EstadoEvento 44 Eventos_GetByidTipoUsuarioPermitidoFro Seleccionar los registros de la tabla Eventos partiendo de una validación mEstadoEvento respecto al campo IdTipoUsuarioPermitido de la tabla EstadoEvento 45 Eventos_GetByNombre 46 Eventos_GetPaged 47 Eventos_Insert Obtiene los registros de la tabla Eventos haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla Eventos 48 Eventos_Update Actualiza un registro en la tabla Eventos 49 HistorialSolicitud_Delete 50 HistorialSolicitud_Find 51 HistorialSolicitud_Get_List Elimina un registro en la tabla de HistorialSolicitud Busca registros en la tabla HistorialSolicitud partiendo de parámetros de nulidad Obtiene todos los registros de la tabla HIstorialSolicitud 52 HistorialSolicitud_GetById 53 HistorialSolicitud_GetByIdSolicitud 54 HistorialSolicitud_GetPaged 55 HistorialSolicitud_Insert Inserta un registro en la tabla HistorialSolicitud 56 HistorialSolicitud_Update Actualiza un registro en la tabla HistorialSolicitud 32 33 34 35 36 Seleccionar los registros de la tabla Eventos a través del campo Nombre Seleccionar los registros de la tabla HIstorialSolicitud a través del Id Seleccionar los registros de la tabla HistorialSolicitud a través de la llave foranea IdSolicitud Obtiene los registros de la tabla HistorialSolicitud haciendo un idexado y verificando los parámetros que existan en el procedimiento - 66 - No. Nombre del Procedimiento Almacenado Observaciones 57 Rol_Delete Elimina un registro en la tabla de Rol 58 Rol_Find Busca registros en la tabla Rol partiendo de parámetros de nulidad 59 Rol_Get_List Obtiene todos los registros de la tabla Rol 60 Rol_GetById 61 Rol_GetByidEstadoFromEstadoEvento 62 Rol_GetByidEventoFromEstadoEvento 63 Rol_GetByNombre 64 Rol_GetPaged 65 Rol_Insert Seleccionar los registros de la tabla Rol a través del Id Seleccionar los registros de la tabla Rol partiendo de una validación respecto al campo IdEstado de la tabla EstadoEvento Seleccionar los registros de la tabla Rol partiendo de una validación respecto al campo IdEvento de la tabla EstadoEvento Seleccionar los registros de la tabla Rol a través del campo Nombre Obtiene los registros de la tabla Rol haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla Rol 66 Rol_Update Actualiza un registro en la tabla Rol 67 Solicitud_Delete Elimina un registro en la tabla de Solicitud 68 Solicitud_Find Busca registros en la tabla Solicitud partiendo de parámetros de nulidad 69 Solicitud_Get_List Obtiene todos los registros de la tabla Solicitud 70 Solicitud_GetById 71 Solicitud_GetByIdEstado 72 Solicitud_GetByIdUsuarioAsignado 73 Solicitud_GetByIdUsuarioAutor 74 Solicitud_GetByIdWorkflow 75 Solicitud_GetPaged 76 Solicitud_Insert Seleccionar los registros de la tabla Solicitud a través del Id Seleccionar los registros de la tabla Solicitud a través de la llave foranea IdEstado Seleccionar los registros de la tabla Solicitud a través de la llave foranea IdUsuarioAsignado Seleccionar los registros de la tabla Solicitud a través de la llave foranea IdUsuarioAutor Seleccionar los registros de la tabla Solicitud a través de la llave foranea IdWorkflow Obtiene los registros de la tabla Solicitud haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla Solicitud 77 Solicitud_Update Actualiza un registro en la tabla Solicitud 78 TipoArchivoAdjunto_Delete 79 TipoArchivoAdjunto_Find 80 TipoArchivoAdjunto_Get_List Elimina un registro en la tabla de TipoArchivoAdjunto Busca registros en la tabla TipoArchivoAdjunto partiendo de parámetros de nulidad Obtiene todos los registros de la tabla TipoArchivoAdjunto 81 TipoArchivoAdjunto_GetById Seleccionar los registros de la tabla TipoArchivoAdjunto a través del Id 82 TipoArchivoAdjunto_GetByNombre Seleccionar los registros de la tabla TipoArchivoAdjunto a través del campo Nombre 83 TipoArchivoAdjunto_GetPaged Obtiene los registros de la tabla TipoArchivoAdjunto haciendo un idexado y verificando los parámetros que existan en el procedimiento 84 TipoArchivoAdjunto_Insert Inserta un registro en la tabla TipoArchivoAdjunto 85 TipoArchivoAdjunto_Update Actualiza un registro en la tabla TipoArchivoAdjunto 86 Usuario_Delete Elimina un registro en la tabla de Usuario 87 Usuario_Find Busca registros en la tabla Usuario partiendo de parámetros de nulidad 88 Usuario_Get_List Obtiene todos los registros de la tabla Usuario - 67 - 4.3. No. Nombre del Procedimiento Almacenado 89 Usuario_GetById 90 Usuario_GetByIdArea 91 Usuario_GetByIdRol 92 Usuario_GetPaged 93 Usuario_Insert Observaciones Seleccionar los registros de la tabla Usuario a través del Id Seleccionar los registros de la tabla Usuario a través de la llave foranea IdArea Seleccionar los registros de la tabla Usuario a través de la llave foranea IdRol Obtiene los registros de la tabla Usuario haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla Usuario 94 Usuario_Update Actualiza un registro en la tabla Usuario 95 Workflow_Delete Elimina un registro en la tabla de Workflow 96 Workflow_Find Busca registros en la tabla Workflow partiendo de parámetros de nulidad 97 Workflow_Get_List Obtiene todos los registros de la tabla Workflow 98 Workflow_GetById 99 Workflow_GetPaged 100 Workflow_Insert Seleccionar los registros de la tabla Workflow a través del Id Obtiene los registros de la tabla Workflow haciendo un idexado y verificando los parámetros que existan en el procedimiento Inserta un registro en la tabla Workflow 101 Workflow_Update Actualiza un registro en la tabla Workflow Implementación La aplicación de solicitudes se desarrolló con la herramienta Windows Workflow Foundation que es el modelo de programación de Microsoft que permite crear aplicaciones con funcionalidad de workflow. Las actividades son los elementos que componen los flujos de trabajo. Las soluciones de flujo de trabajo se crean generando actividades en el diseñador de Visual Studio 2005. Al igual que los controles de servidor de ASP.NET y los controles de Windows Forms, las actividades de flujo de trabajo constituyen la esencia de la solución y forman la principal base de herramientas de desarrollo. Windows Workflow Foundation incluye una serie de actividades para cubrir la mayoría de las necesidades habituales. Inicialmente con las herramientas de Windows Workflow Foundation se elaboró el flujo de trabajo, estableciendo cada uno de los estados y puntos donde el flujo se debe detener para que el usuario realice intervención manual, igualmente se - 68 - parametrizó cada uno de los estados para que el sistema administre automáticamente cada uno de los posibles eventos futuros. Figura 16. Flujo de Trabajo Aplicativo Web Elaborado en Microsoft Visual Studio 2005 Posteriormente Visual Studio 2005 genera automáticamente un archivo denominado web.config el cual guarda las configuraciones del aplicativo web, este archivo se programa en lenguaje XML, así: Configuración del Correo Electrónico: <mailConfiguration> Indica si se habilita la función de Correo Electrónico <add key="activarAlertaCorreo" value="true"/> - 69 - <add key="requiereAutenticacion" value="true"/> Correo Electrónico asignado al aplicativo: <add key="mailFrom" value="[email protected]"/> Nombre del servidor del Correo Electrónico: <add key="servidorCorreo" value="BANBOGOTA.NET"/> Nombre del usuario del Correo Electrónico asignado al aplicativo: <add key="usuarioCorreo" value="[email protected]"/> Contraseña del Correo Electrónico asignado al aplicativo: <add key="passwordCorreo" value="Abcdef1234"/> Personalización de los textos remitidos a todos los actores de acuerdo al evento: <add key="solCreadaAdmon" value="Señor Administrador: Se encuentra disponible una nueva solicitud:"/> <add key="solCreadaUsuario" value="Señor Usuario: Su Solicitud ha sido creada exitosamente:"/> <add key="solAsignadaAdmon" value="Señor Usuario: Su Solicitud ha sido asignada"/> <add key="solAsignadaAnalista" value="Señor Analista: Una nueva solicitud ha sido asignada a su cuenta, por favor revise el sistema."/> <add key="solCanceladaAdmon" value="Señor Administrador: Una Solicitud se encuentra esperando por cancelación"/> <add key="solCanceladaUsuario" value="Señor Usuario: Su Solicitud ha recibido una petición de cancelación"/> <add key="solPendienteAsignacionAdmon" value="Señor Administrador: Una solicitud se encuentra pendiente de asignación."/> <add key="solPendienteAsignacionUsuario" value="Señor Usuario: Una solicitud fue rechazada la solicitud de cancelación"/> <add key="solCompletadaAdmon" value="Señor Administrador: Una solicitud ha sido completada exitosamente y espera cierre."/> <add key="solCompletadaUsuario" value="Señor Usuario: Su Solicitud ha sido completada exitosamente"/> <add key="solCompletadaAnalista" value="Señor Analista: Una solicitud fue completada exitosamente"/> <add key="solCerradaAdmon" value="Señor Administrador: Una solicitud fue cerrada con exito."/> <add key="solCerradaUsuario" value="Señor Usuario: Una solicitud ha sido cerrada exitosamente"/> - 70 - <add key="solCerradaAnalista" value="Señor Analista: Una solicitud ha sido completada exitosamente"/> <add key="solEnCursoUsuario" value="Señor Usuario: Su Solicitud ha sido asignada y aceptada exitosamente"/> <add key="solEnCursoAnalista" value="Señor Analista: Una Solicitud ha sido completada exitosamente"/> <add key="solPendienteReasignacionUsuario" value="Señor Administrador: Una Solicitud esta esperando reasignacion"/> <add key="solPendienteReasignacionAnalista" value="Señor Usuario: Una Solicitud espera reasignacion"/> </mailConfiguration> Configuración ActiveDirectory: <activeDirectoryConfiguration> Extrae del directorio activo el nombre del usuario que accede al aplicativo <add key="EquivalenteLogin" value="name"/> Extrae del directorio activo el nombre del departamento al que pertenece el usuario que accede al aplicativo <add key="EquivalenteDepto" value="Department"/> Extrae del directorio activo el Correo Electrónico del usuario que accede al aplicativo <add key="EquivalenteEMail" value="mail"/> Nombre del Servidor de Dominio <add key="DirectorioBusquedaUsuarios"value="LDAP://BANBOGOTA.NET"/> </activeDirectoryConfiguration> Configuración Días de Notificaciones: <commonConfiguration> Determina desde cuantos días empieza a enviar notificaciones de solicitudes vencidas <add key="maximoDiasVencimiento" value="5"/> </commonConfiguration> - 71 - Configuración de la Conexión a la Base de Datos: <connectionStrings> Establece el nombre del servidor donde se aloja la base de datos, el nombre de la base de datos, nombre de usuario en la base de datos y la respectiva contraseña <add name="Solicitudes.Data.ConnectionString" connectionString="data source=.;database=Solicitudes2000;user id=solicitudesuser;password=123456;Connect Timeout=30"/> </connectionStrings> Configuración del Usuario Default: Nombre y contraseña del usuario Administrador del Servidor donde se instala el aplicativo <identity impersonate="true" userName="Administrador" password="123456789"/> Una vez establecido el archivo de configuración se procede a desarrollar la página maestra (MasterPage), la cual se denominó admin.master, en ella esta elaborado el formato visual del aplicativo web (tipo de letra, color de fondo, etc), este tipo de página sirve para anidar varios formularios sin tener que diseñar el formato en cada uno de ellos. Una vez establecidos los formularios que se alojarían en MasterPage se procede a generar el mapa del sitio, el cual nos permite navegar de una página a otra a través de un control denominado SiteMapDataSource que requiere como fuente un archivo en lenguaje XML denominado Web.SiteMap, así: <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode url=""title="Home"description=""> <siteMapNode url="~/Admin/Default.aspx"title="Admin Home"description="Site Administrador"> <siteMapNode url="~/Admin/ArchivosAdjuntos.aspx"title="Archivos Adjuntos" description=""/> <siteMapNode url="~/Admin/Area.aspx"title="Area"description=""/> <siteMapNode url="~/Admin/Estado.aspx"title="Estado"description=""/> - 72 - <siteMapNode url="~/Admin/EstadoEvento.aspx"title="Estado Evento" description=""/> <siteMapNode url="~/Admin/Eventos.aspx"title="Eventos"description=""/> <siteMapNode url="~/Admin/HistorialSolicitud.aspx"title="Historial Solicitud"description=""/> <siteMapNode url="~/Admin/Rol.aspx"title="Rol"description=""/> <siteMapNode url="~/Admin/Solicitud.aspx"title="Solicitud" description=""/> <siteMapNode url="~/Admin/TipoArchivoAdjunto.aspx"title="Tipo Archivo Adjunto"description=""/> <siteMapNode url="~/Admin/Usuario.aspx"title="Usuario"description=""/> <siteMapNode url="~/Admin/Workflow.aspx"title="Workflow"description=""/> </siteMapNode> <siteMapNode url="~/Default.aspx"title="Solicitudes Home"description="Site Solicitudes"> <siteMapNode url="~/Solicitudes/CrearSolicitud.aspx"title="Crear Solicitud"description=""></siteMapNode> <siteMapNode url="~/Solicitudes/ConsultarSolicitudes.aspx" title="Consultar Solicitudes"description=""></siteMapNode> <siteMapNode url="~/Solicitudes/Reportes/default.aspx"title="Reportes" description=""></siteMapNode> </siteMapNode > <siteMapNode url="~/ayudas.aspx" title="Ayuda" description="Site Ayudas"> </siteMapNode > </siteMapNode > </siteMap> - 73 - 4.3.1. Interfaz de Usuario A continuación se presentan los diferentes formularios que componen el aplicativo en su versión final: Figura 17. Final – Web inicio sesión no autorizado El formulario web se muestra cuando un usuario intenta acceder sintener conexión al directorio activo del servidor de dominio, toda vez que el sistema valida el usuario y contraseña al ingresar a la intranet. Figura 18. Final – Web mensaje de alertas Al iniciar, el aplicativo muestra un mensaje informativo con la cantidad de solicitudes que se encuentran pendientes para cada usuario. - 74 - Para actualizar los días de vencimiento de las solicitudes se creó un JOB en SQL Server el cual funciona así: diasVencimiento=diasVencimiento-1 Esta operación la realiza todos los días a las 12:00 am Figura 19. Final – Web crear solicitud Formulario de Administrador y Usuario. Está disponible para realizar solicitudes de información, tiene la opción de adjuntar archivos de cualquier tipo y tamaño, igualmente de asignar la cantidad de días para que GCIF suministre la información. - 75 - Figura 20. Final – Web consultar solicitud Formulario de Administrador, Analista y Usuario. Permite ver las solicitudes que se encuentran es estado Pendiente Asignación y Pendiente Reasignación, igualmente muestra los archivos adjuntos correspondientes al requerimiento. Figura 21. Final – Web ver detalles de solicitud - 76 - Formulario de Administrador y Usuario. Muestra detalles de la solicitud realizada por un usuario (los posibles estados y eventos, fecha de creación, Analista asignado, etc.). En este formulario se puede observar una de las características de AJAX, ya que trae un formulario en forma Modal y apaga el fondo del explorador web. Figura 22. Final – Web ver historial de solicitudes Formulario de Administrador y Usuario. Muestra el historial de la solicitud dentro de la cadena del workflow. En este formulario se puede observar una de las características de AJAX, ya que trae un formulario en forma Modal y apaga el fondo del explorador web. - 77 - Figura 23. Final – Web de descarga de archivos adjuntos Formulario que permite realizar la descarga de los archivos adjuntos. Figura 24. Final – Web interfaz de descarga Cuadro de diálogo que permite abrir o guardar los archivos adjuntos. - 78 - Figura 25. Final – Web de reportes Formulario de Administrador que permite seleccionar e imprimir los reportes. Tiene la opción de generar información de acuerdo a un rango de fechas. Figura 26. Final – Web archivos adjuntos Formulario de Administrador. Permite parametrizar en que evento se debe realizar - 79 - el attachment de archivos. Figura 27. Final – Web área Formulario de Administrador. Permite personalizar las distintas áreas que componen GCIF. Figura 28. Final – Web estado evento - 80 - Formulario de Administrador. Permite asignar a cada usuario los eventos que pueden realizar dentro de la aplicación (Crear, Cancelar, Asignar, Rechazar y Aprobar Solicitud). Figura 29. Final – Web eventos Formulario de Administrador. Permite crear y modificar los eventos que pueden realizar los usuarios (Crear, Cancelar, Asignar, Rechazar y Aprobar Solicitud). - 81 - Figura 30. Final – Web historial solicitud Formulario de Administrador. Permite ver todas las solicitudes terminadas y modificarlas si es necesario. Figura 31. Final – Web rol Formulario de Administrador. Permite la creación y modificación de roles dentro de la aplicación. - 82 - Figura 32. Final – Web solicitud Formulario de Administrador. Permite ver todas las solicitudes en estado pendiente y asignarlas a los Analistas. Figura 33. Final – Web tipo archivo adjunto Formulario de Administrador. Permite parametrizar en que momento se adjuntan archivos. - 83 - Figura 34. Final – Web usuario Formulario de Administrador. Permite parametrizar los usuarios que tienen un acceso diferente a Usuario en la aplicación. Figura 35. Final – Web Workflow Formulario de Administrador. Permite ver todos los códigos asignados a las solicitudes. - 84 - Figura 36. Final – Web Ayuda Formulario de Administrador, Analista y usuario. Permite ver las ayudas del aplicativo en una ventana de Windows Media. - 85 - 4.3.2. Mapa del Sitio En un aplicativo web es importante conocer las diferentes rutas que el usuario puede tomar de acuerdo al rol que tenga asignado. Para el proyecto de workflow de solicitudes se manejan tres roles diferentes (Administrador, Analista y Usuario) cada uno cuenta con diferentes opciones de navegación, las cuales se presentan a continuación: Figura 37. Mapa del Sitio Administrador Elaborado en Microsoft Visio 2003 - 86 - Figura 38. Mapa del Sitio Analista Elaborado en Microsoft Visio 2003 Figura 39. Mapa del Sitio Usuario Elaborado en Microsoft Visio 2003 Crear Solicitud Solicitudes Home Consultar Solicitudes Detalles e Historial de Solicitud Página de Ayudas Videos de Ayuda Mensaje de Alerta Ayuda - 87 - 4.3.3. Esquema de Pruebas Propósito: • Comprobar la eficiencia del sistema frente a la administración de las solicitudes de información realizadas al GCIF. • Probar diferentes situaciones para validar el comportamiento del sistema. Prerrequisitos: • El usuario que intenta acceder al aplicativo debe tener una cuenta de usuario en el directorio activo. Datos de Prueba: • Esta el usuario como un usuario autenticado o es un usuario desconocido para el dominio. • Si es un usuario desconocido debe presentar las respectivas credenciales para acceder al aplicativo. • Después de garantizar su identidad se establece cual de los roles corresponde el usuario. • Verificar los diferentes roles que puede tomar un usuario y las diferentes acciones que puede realizar dependiendo del rol que tenga asignado. • Verificar que el usuario, el analista y el administrador estén al día con los diferentes requerimientos y los estados de cada evento. - 88 - • Determinar los diferentes estados que puede tener un requerimiento y el control que se tiene sobre cada requerimiento. Pasos: • Se inició con un usuario desde una máquina que no pertenece al dominio y solicita identificación. • Se inicia con un usuario autenticado y el aplicativo es accesado. • Una vez en el aplicativo, si el usuario ha creado solicitudes anteriormente saldrá una notificación de las solicitudes pendientes próximas a vencer, al darle aceptar se accede a las solicitudes pendientes, en el caso de darle cancelar se accede al panel de usuario. Si el usuario no tiene solicitudes muestra el panel del usuario. • Una vez en el panel el usuario puede crear una solicitud, consultar las solicitudes propias y solicitar la cancelación de una solicitud. • Para esta prueba se crea una solicitud, en donde se requiere adjuntar un archivo con la información requerida y con un plazo de entrega de 10 días, al momento de ingresar el numero de los días se realizo la prueba de ingresar 0 días y arrojo un mensaje que informaba que era un valor invalido, un valor de 1 a 60. • Una vez creada la solicitud se asigno un identificador para la solicitud y se genero un correo electrónico notificando que la solicitud fue creada satisfactoriamente. - 89 - • Posteriormente se dispuso consultar la solicitud, ya realizada la consulta se realizaron pruebas con los filtros dando resultados satisfactorios. • En este momento se realizo cambio de usuario ingresando al sistema como administrador. • Respecto a la solicitud el administrador puede asignar la solicitud a un analista o puede cancelarla. • Se realizo la asignación de la solicitud, comprobando que las solicitud si fuera asignada correctamente y sin perdida de información a un usuario del GCIF. • También se realizaron pruebas sobre Admin Home. Se editaron valores de Área, donde se creo un área llamada Producción. • Posteriormente se realizo el cambio de usuario a Analista para poder seguir el flujo de la solicitud. • El analista puede tomar la decisión de aceptar o rechazar la asignación. • Se procedió a probar que el analista aceptara la asignación y el usuario es notificado de quien quedo a cargo de su requerimiento. • Se procedió a rechazar una asignación por parte del analista siendo vista por el administrador. • Se aceptó una cancelación o rechazo por parte del administrador. - 90 - • Se terminó un requerimiento y fue cerrado por parte del analista, se le notifica al administrador y al usuario. Debido a que la información que va a ser administrada por el aplicativo Web es de carácter confidencial la Gerencia Centro de Información Financiera no permitió la realización de pruebas que implicaran tener dos sistemas paralelos para realizar la gestión de las solicitudes de información por no estar incluidas en los procesos internos del Banco de Bogotá. - 91 - 5. CONCLUSIONES La nueva generación de tecnología workflow se apoya en organizaciones tecnológicamente maduras en las que se comparte la información y se aprovecha el conocimiento de sus empleados, organizaciones con una estructura horizontal donde existen pocas jerarquías y pocos niveles gerenciales. Los estudios de prospectiva más recientes sobre incorporación de tecnologías a las empresas señalan que la última generación del workflow va a revolucionar la forma de interactuar de éstas con sus clientes: workflow en entorno web. De hecho, la Workflow Management Coalition está trabajando en la elaboración de estándares y protocolos como Swap (Simple workflow access protocol), basados en http, para conseguir la gestión de procesos de negocio en el entorno internet, una trayectoria similar a la que han seguido las aplicaciones de groupware con respecto a las intranets con tecnología web. Una de las principales razones por las que escasean casos de aplicación de este tipo de sistemas se encuentra en la problemática de su implantación, que viene dada por la complejidad misma de diseño y definición de procesos. Esto supone un freno para muchas compañías, que se sienten abrumadas por el trabajo previo que requiere dicha implantación y que en la mayoría de las ocasiones debe solicitar ayuda externa en forma de consultoría. Esta tecnología permite saber y conocer el orden lógico como se ejecutan los requerimientos de información y las relaciones que existen entre ellos, lo que va a facilitar determinar el flujo del sistema, el flujo humano y el flujo de los documentos y de la información. - 92 - Windows Workflow Foundation permitió conocer todo el flujo de la información y escribirla en un código lo que permitió crear una interacción entre el sistema y el usuario, en la cual hay procesos que realiza el sistema y otros el usuario, adicionalmente está tecnología permite una mejor integración del aplicativo con los procesos y servicios Windows mediante la utilización de webforms, web services, etc. Adicionalmente al utilizar el concepto de serialización y deserialización de información, se pudo comprobar que la capacidad de almacenamiento y rendimiento de la Base de Datos se optimizó ya que los datos se almacenan en forma binaria. En el Banco de Bogota para la solicitud de información financiera no existía hasta el presente aplicativo, uno que permitiera de manera rápida y certera saber en que estado se encontraba una determinada solicitud y así mismo, se perdía mucho tiempo mientras se recolectaba la información. Una vez realizado el esquema de pruebas se pudo establecer que con el aplicativo de Gestión de Solicitudes se ofrece una herramienta que mejora los procedimientos para realizar solicitudes de información y reducir los tiempos de espera para el usuario. Gracias a la utilización de esta tecnología (workflow), en el momento que se implemente finalmente el Sistema de Gestión de Solicitudes (GCIF) va a facilitar a los usuarios conocer a ciencia cierta toda la información requerida de una solicitud en cualquier momento desde su inicio hasta el final de la misma. Con un aplicativo distribuido se obtiene un alto rendimiento en la red LAN, ofreciendo a todos los usuarios una herramienta eficaz y de fácil interacción con el usuario final. - 93 - 6. BIBLIOGRAFÍA • Banco de Bogotá. Metodología de desarrollo de proyectos DS Título III Capítulo 3. Enero 24 de 2002 • Banco de Bogotá. Políticas para la entrega de aplicaciones DS Titulo V Capitulo 2. Octubre 26 de 2005 • Banco de Bogotá. Metodología para la elaboración y actualización de manuales de operación AD Título V Capítulo 1. Septiembre 15 de 2006 • MSDN Microsoft Corporation. Designing Data Tier Components and Passing Data Through Tiers. [Artículo de internet]. http://msdn2.microsoft.com/en-us/library/ms978496.aspx [Consulta: 30 de abril de 2007]. • ASP.NET. AJAX 1.0. [Artículo de internet]. http://ajax.asp.net/default.aspx?tabid=47 [Consulta: 15 de abril de 2007]. • Microsoft Corporation. ASP.NET 2.0 Data Tutorials. [Artículo de internet]. http://www.asp.net/learn/dataaccess/default.aspx?tabid=63 [Consulta: 27 de marzo de 2007]. • UML Resource Page [Artículo de Internet]. http://www.uml.org [Consulta: 14 de marzo de 2007]. - 94 - ANEXOS - 95 - Anexo A. Carta de autorización del Banco de Bogotá - 96 - - 97 - Anexo B. Formato de Entrevista - 98 - FORMATO DE ENTREVISTA INICIAL PARA DETECCIÓN DE NECESIDADES EN LA GESTIÓN DE SOLICITUDES DE INFORMACIÓN DEL GCIF GERENCIA CENTRO DE INFORMACIÓN FINANCIERA - BANCO DE BOGOTÁ DEPENDENCIA: HORA INICIO: HORA FINALIZACION: FECHA DIA MES AÑO Entrevistados 1. Cuáles son los aspectos más importantes a tener en cuenta para que GCIF gestione las solicitudes de manera adecuada y oportuna? 2. Cómo cree usted que un aplicativo puede solucionar la necesidad de gestionar y administrar con calidad las solicitudes de información? 3. Qué incidentes en la gestión de información han ocurrido en el área? 4. Cuáles consideran que pueden ser nuestros aportes para mejorar el flujo de solicitudes de información? 5. Según el consenso de los asistentes cuales son los riesgos más significativos en el área? Firmas - 99 - Anexo C. Manual Técnico - 100 - MANUAL TÉCNICO Requerimientos Mínimos: Para realizar la instalación del aplicativo de Gestión de Solicitudes GCIF se requiere 1 o varios servidores con el siguiente software: • Microsoft Windows 2003 Server • Internet Information Server • Active Directory • Microsoft SQL Server 2000 o posterior • Microsoft Exchange 2003 o posterior En el servidor donde se instale el aplicativo debe poseer como requisito mínimo los siguientes componentes: • .Net Framework 2.0 - 101 - Configuración de la Base de Datos La base de datos se encuentra en los archivos denominados: SOLICITUDES2000.mdf SOLICITUDES2000_log.ldf Se debe cargar o recuperar la base de datos en Microsoft SQL Server con el nombre Solicitudes2000, posteriormente debe crear un usuario llamado SolicitudesUser con permisos de Owner. A continuación se ActualizacionVencimientos debe el crear cual un cumple Trabajo la (Job) función automáticamente un día de plazo a las solicitudes pendientes, así: - 102 - denominado de descontar Finalmente se debe programar para que suceda todos los días a las 12:00 am - 103 - Instalación del Software Paso 1: Una vez instalados los requisitos mínimos, hacer doble clic sobre el archivo Setup.exe el cual guiará al usuario a través de un asistente. Paso 2: El asistente inicia con la pantalla de presentación. para continuar presionar el botón Siguiente. - 104 - Paso 3: Selecciona la ubicación y el nombre del sitio para acceder posteriormente a la aplicación por el Browser (Internet Explorer, Netscape, etc). Ej: http://localhost/Workflow/Default .aspx Para continuar presionar el confirmación de botón Siguiente. Paso 4: Pantalla de instalación. Para continuar presionar el botón Siguiente. - 105 - Paso 5: Pantalla de avance de instalación del aplicativo. Para continuar presionar el botón Siguiente. Paso 6: Pantalla de finalización de instalación del aplicativo Para continuar presionar el botón Cerrar. - 106 - Paso 7: Una vez instalado el software se debe configurar el tipo de acceso autenticado con el cual los usuarios se conectarán al sitio Web. Para realizar esta tarea se requiere abrir Internet Information Server (IIS) en las propiedades seleccionar Seguridad del la de sitio Web pestaña Directorios de y presionar el botón Modificar. Aparecerá la siguiente pantalla la cual debe configurar como lo muestra la imagen. Presionar el botón Aceptar. - 107 - Paso 8: Finalmente en propiedades del sitio Web, seleccionar la pestaña ASP.NET y verificar que la versión disponible sea la 2.0.50727 Presionar el botón Aceptar. - 108 - Configuración del archivo Web.Config El archivo Web.Config es el encargado de guardar la configuración del aplicativo, en él se puede establecer varios aspectos del sistema los cuales se dividen así: 1. Configuración del Correo Electrónico: <mailConfiguration> Indica si se habilita la función de Correo Electrónico <add key="activarAlertaCorreo" value="true"/> <add key="requiereAutenticacion" value="true"/> Correo Electrónico asignado al aplicativo: <add key="mailFrom" value="[email protected]"/> Nombre del servidor del Correo Electrónico: <add key="servidorCorreo" value="BANBOGOTA.NET"/> Nombre del usuario del Correo Electrónico asignado al aplicativo: <add key="usuarioCorreo" value="[email protected]"/> Contraseña del Correo Electrónico asignado al aplicativo: <add key="passwordCorreo" value="Abcdef1234"/> Personalización de los textos remitidos a todos los actores de acuerdo al evento: <add key="solCreadaAdmon" value="Señor Administrador: Se encuentra disponible una nueva solicitud:"/> <add key="solCreadaUsuario" value="Señor Usuario: Su Solicitud ha sido creada exitosamente:"/> <add key="solAsignadaAdmon" value="Señor Usuario: Su Solicitud ha sido asignada"/> <add key="solAsignadaAnalista" value="Señor Analista: Una nueva solicitud ha sido asignada a su cuenta, por favor revise el sistema."/> <add key="solCanceladaAdmon" value="Señor Administrador: Una Solicitud se encuentra esperando por cancelación"/> <add key="solCanceladaUsuario" value="Señor Usuario: Su Solicitud ha recibido una petición de cancelación"/> <add key="solPendienteAsignacionAdmon" value="Señor Administrador: Una solicitud se encuentra pendiente de asignación."/> - 109 - <add key="solPendienteAsignacionUsuario" value="Señor Usuario: Una solicitud fue rechazada la solicitud de cancelación"/> <add key="solCompletadaAdmon" value="Señor Administrador: Una solicitud ha sido completada exitosamente y espera cierre."/> <add key="solCompletadaUsuario" value="Señor Usuario: Su Solicitud ha sido completada exitosamente"/> <add key="solCompletadaAnalista" value="Señor Analista: Una solicitud fue completada exitosamente"/> <add key="solCerradaAdmon" value="Señor Administrador: Una solicitud fue cerrada con exito."/> <add key="solCerradaUsuario" value="Señor Usuario: Una solicitud ha sido cerrada exitosamente"/> <add key="solCerradaAnalista" value="Señor Analista: Una solicitud ha sido completada exitosamente"/> <add key="solEnCursoUsuario" value="Señor Usuario: Su Solicitud ha sido asignada y aceptada exitosamente"/> <add key="solEnCursoAnalista" value="Señor Analista: Una Solicitud ha sido completada exitosamente"/> <add key="solPendienteReasignacionUsuario" value="Señor Administrador: Una Solicitud esta esperando reasignacion"/> <add key="solPendienteReasignacionAnalista" value="Señor Usuario: Una Solicitud espera reasignacion"/> </mailConfiguration> 2. Configuración ActiveDirectory: <activeDirectoryConfiguration> Extrae del directorio activo el nombre del usuario que accede al aplicativo <add key="EquivalenteLogin" value="name"/> Extrae del directorio activo el nombre del departamento al que pertenece el usuario que accede al aplicativo <add key="EquivalenteDepto" value="Department"/> Extrae del directorio activo el Correo Electrónico del usuario que accede al aplicativo <add key="EquivalenteEMail" value="mail"/> - 110 - Nombre del Servidor de Dominio <add key="DirectorioBusquedaUsuarios"value="LDAP://BANBOGOTA.NET"/> </activeDirectoryConfiguration> 3. Configuración Días de Notificaciones: <commonConfiguration> Determina desde cuantos días empieza a enviar notificaciones de solicitudes vencidas <add key="maximoDiasVencimiento" value="5"/> </commonConfiguration> 4. Configuración de la Conexión a la Base de Datos: <connectionStrings> Establece el nombre del servidor donde se aloja la base de datos, el nombre de la base de datos, nombre de usuario en la base de datos y la respectiva contraseña <add name="Solicitudes.Data.ConnectionString" connectionString="data source=.;database=Solicitudes2000;user id=solicitudesuser;password=123456;Connect Timeout=30"/> </connectionStrings> 5. Configuración del Usuario Default: Nombre y contraseña del usuario Administrador del Servidor donde se instala el aplicativo <identity impersonate="true" userName="Administrador" password="123456789"/> - 111 -