• No se han encontrado resultados

Difusión de Qualdev Process

N/A
N/A
Protected

Academic year: 2020

Share "Difusión de Qualdev Process"

Copied!
32
0
0

Texto completo

(1)Difusión de QualDev Process. Diego René Cortés Wilches Javier Alberto Sandoval Valbuena. Asesores: Rubby Casallas, PhD Nicolás López, MsC. Proyecto de Grado para optar por el título de Ingeniero de Sistemas y Computación. Departamento de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Mayo de 2007 1.

(2) Tabla de contenido. 1. INTRODUCCIÓN .................................................................................. 3 2. OBJETIVOS......................................................................................... 4 2.1 Objetivo General............................................................................. 4 2.2 Objetivos Específicos ....................................................................... 4 3. METODOLOGÍA ................................................................................... 6 4. MARCO TEORICO ................................................................................ 7 4.1 CMS .............................................................................................. 7 4.2 PHP............................................................................................... 7 4.3 JAVA ............................................................................................. 9 4.4 Definición de SVG ..........................................................................11 4.5 Business Process Modeling Notation .................................................12 5. RESULTADOS DE LA INVESTIGACIÓN ...................................................14 5.1 Generador de Contenido Dinámico ...................................................14 5.1.1 Sistema de Administración de Contenidos MAMBO...........................14 5.1.2 Sistema de Administración de Contenidos propio en PHP..................15 5.1.3 Sistema de Administración de Contenidos propio en Java .................15 5.1.4 Utilización de la Herramienta de Cupi2...........................................16 5.1.5 Conclusiones ..............................................................................16 5.2 Generador de Imágenes Interactivas...............................................17 5.2.1 Integrar a partir de XMI ...............................................................18 5.2.2 Exportar a mapa de bits...............................................................18 5.2.3 Posibles herramientas..................................................................19 5.2.4 Conclusiones ..............................................................................20 6. DESCRIPCIÓN DE LA SOLUCIÓN ..........................................................21 6.1 Proceso para la generación del contenido..........................................21 6.2 Herramientas utilizadas en el proceso...............................................21 6.3 Descripción del proceso ..................................................................25 6.4 Prototipo del proceso de planeación .................................................27 7. TRABAJO FUTURO ..............................................................................30 8. CONCLUSIONES ...............................................................................31 BIBLIOGRAFÍA .......................................................................................32 2.

(3) 1. INTRODUCCIÓN. El grupo Qualdev desde su creación se ha preocupado por trabajar para mejorar las prácticas de la Ingeniería de Software, lograr un alto nivel de investigación y utilizar herramientas recientes con el fin mantenerse actualizado a nivel tecnológico. Actualmente existen diversos proyectos que siguen un proceso definido por el grupo y presentan resultados en ciclos iterativos de aproximadamente 8 semanas. Todo esto es publicado en una Wiki que permite hacer seguimiento de los proyectos, obtener información de los mismos y dar a conocer brevemente Qualdev, dándole la posibilidad a cada integrante del grupo de publicar lo que considera necesario. Sin embargo, actualmente se presentan varios inconvenientes con este medio; no existen formatos estándares para la publicación de la información, no hay roles definidos para el manejo de dicha Wiki, en muchos casos lo que se encuentra publicado está desactualizado y puede generar inconsistencias y es difícil navegar sobre dicha información debido al desorden y la falta de un esquema claro de navegación.. Bajo este contexto, es evidente que la difusión de información que se hace en el grupo esta orientada a las personas que pertenecen a el y tal vez a los estudiantes de la Universidad de los Andes que tengan algún interés en el grupo pero no se ve mas allá, es decir, no se tienen en cuenta otras personas que podrían influir significativamente en el desarrollo del grupo haciendo criticas constructivas y aportando nuevas ideas. Por otro lado, la información con la que cuenta actualmente Qualdev seguramente puede ser útil para personas con algún interés particular como lo son las casas de software, otros grupos de investigación, universidades y demás.. Para el grupo QualDev, es de vital importancia difundir el conocimiento adquirido a lo largo del proceso. A raíz de esto y partiendo del trabajo que se ha venido realizando con respecto a la difusión de Qualdev y bajo el liderazgo de Nadya Calderón como asistente graduada , surge la idea de apoyar este proceso diseñando e implementando un portal Web apoyado con un administrador de contenidos propio, estandarizando los documentos que se van a publicar y generando imágenes dinámicas. que ilustran claramente los. procesos definidos por el grupo, para de esta forma tener un contenido más consistente y organizado. Esto con el fin de que toda la información publicada sea clara para cualquier persona que la consulte y que sea fácil de navegar sobre el contenido. 3.

(4) 2. OBJETIVOS. 2.1 Objetivo General Investigar herramientas, patrones y estándares que se puedan utilizar para difundir los procesos de Qualdev en Internet y administrar la información que se va a registrar en el portal a partir de documentos estándar. Con base en lo investigado, hacer un análisis, diseño e implementación de herramientas que contribuyan con la difusión de Qualdev Process. Se pretende crear un espacio agradable. para. el. usuario,. con. información. pertinente. y. debidamente. organizada y estandarizada, abarcando para este proyecto la definición de procesos contenidos en Qualdev.. 2.2 Objetivos Específicos. •. Implementar una herramienta que genere páginas visibles en un browser con un diseño previamente definido a partir de definiciones de proceso en XML que por un lado describen procesos y por el otro asocian imágenes interactivas y documentos a cada uno.. •. Utilizar una herramienta que permita generar imágenes interactivas a partir de imágenes que describen etapas del proceso. Al generar interacción con las imágenes, se facilita el entendimiento y la navegación de éstas y por ende, se mejora la productividad en la medida en que los nuevos integrantes del grupo pueden comprender fácil y rápidamente las etapas del proceso al interactuar con dichas imágenes. La interacción se logra al permitir crear vínculos sobre las actividades o subprocesos contenidos en la imagen.. 4.

(5) •. Lograr estandarizar las publicaciones que se van a consignar en el portal, ya sean documentos, plantillas, imágenes u otros y que éstos se puedan subir de forma rápida y segura.. •. Hacer una interfaz agradable para los usuarios ya que está destinada a personas que quieren saber sobre el proceso que se realiza en el grupo y sobre lo que se realiza en el mismo, luego es de vital importancia que los procesos se muestren de manera clara y entendible.. •. Documentar el proceso para que exista continuidad de éste y nuevos integrantes del grupo puedan modificar o mejorar el trabajo realizado.. 5.

(6) 3. METODOLOGÍA. El primer paso consiste en investigar sobre las opciones disponibles en el mercado para administrar contenidos en cuanto a herramientas o metodologías y a partir de esto evaluar cual de las alternativas es más conveniente para el proyecto. Igualmente se debe encontrar la opción más favorable para lograr obtener imágenes interactivas a partir de los diagramas definidos para los procesos en Qualdev. En este sentido, es necesario escoger tanto el tipo de imagen que se va a utilizar como la herramienta que va a generar dichas imágenes. Posteriormente se debe establecer un estándar para manejar todo el contenido que va a ser publicado en el portal como documentos, diagramas y definiciones. Para esto, es necesario apoyarnos en una herramienta que permita generar las páginas a partir de archivos planos que definan el contenido a mostrar. Adicionalmente es necesario trabajar simultáneamente en el diseño grafico del portal, especialmente en el menú y la estructura del contenido. Después de haber definido los estándares para manejar el contenido, un tipo de imagen para representar los diagramas y haber escogido las herramientas más convenientes para generar el portal, se debe comenzar el proceso de conversión de la información y de los diagramas de Qualdev Process que se encuentran contenidos en Changeset. Finalmente, se deben desarrollar o adaptar las herramientas que permitan, a partir de un archivo que defina el contenido y los documentos e imágenes que se van a mostrar, que se genere dinámicamente el portal de difusión y establecer vínculos sobre las diferentes etapas y subprocesos de cada diagrama para que exista una relación con su respectiva descripción.. 6.

(7) 4. MARCO TEORICO. 4.1 CMS ”Un Sistema de gestión de contenido (Content Management System, en inglés, abreviado. CMS). permite. la. creación. y. administración. de. contenidos. principalmente en páginas Web. Consiste en una interfaz que controla una o varias bases de datos donde se aloja los datos y la información que hacen parte del contenido del sitio. El sistema permite manejar de manera independiente la información y la presentacion. Así, es posible manejar el contenido y darle en cualquier momento un diseño distinto al sitio sin tener que darle formato al contenido de nuevo, además de permitir la fácil y controlada publicación en el sitio a varios editores. Un ejemplo clásico es el de editores que cargan el contenido al sistema y otro de nivel superior que permite que estos contenidos sean visibles a todo público.”1 Teniendo en cuenta las necesidades que tenemos para el proyecto nos pareció interesante indagar sobre esta tecnología ya que podía ser usada para desarrollar una solución ya sea partiendo desde 0 o utilizando las disponibles en el mercado. 4.2 PHP PHP (siglas que originalmente significaban Personal Home Page) Es un lenguaje. scripting. de. uso. general. ampliamente. utilizado. es. utilizado. especialmente para el desarrollo en Web y que puede estar embebido en HTML.2. 1. Sistema de gestión de contenido. (2007, 23) de marzo. Wikipedia, La enciclopedia libre. Fecha de consulta: abril 20, 2007 de http://es.wikipedia.org/w/index.php?title=Sistema_de_gesti%C3%B3n_de_contenido&oldid=8979096.. 2. http://www.php.net/. 7.

(8) “Fue primero escrito por Rasmus Lerdorf como un simple conjunto de scripts de Perl para guiar a los usuarios en sus páginas. Luego para satisfacer inquietudes del mismo tipo por parte de otra gente lo reescribe, pero esta vez como un lenguaje de script agregándole entre otras características soporte para formularios. Al ver como la popularidad del lenguaje aumenta, un grupo de desarrolladores crea para él un API, convirtiéndose así en el PHP3. Fue en ese momento cuando el parser de scripts PHP es completamente reescrito (el Zend Engine) dando vida al PHP4 mucho mas rápido, tal y como lo conocemos en la actualidad. PHP actualmente significa Hypertext Preprocessor y esta listo para su mejor momento, la sintaxis es similar a la del C, por esto cualquiera con experiencia en lenguajes del estilo C podrá entender rápidamente PHP. Entre los lenguajes del tipo C incluimos al Java y Javascript, de hecho mucha de la funcionalidad del PHP se la debe al C en funciones como fread() o srtlen(), así que muchos programadores se sentirán como en casa. PHP es Open Source, lo cual significa que el usuario no depende de una compañía específica para arreglar cosas que no funcionan, además no estás forzado a pagar actualizaciones anuales para tener una versión que funcione.”3 “Su interpretación y ejecución se da en el servidor web, en el cual se encuentra almacenado el script, y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página Web, generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre otras cosas.. 3. http://www.programacion.net/php/articulo/porquephp/. 8.

(9) Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite; lo cual permite la creación de Aplicaciones web muy robustas. PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.”4 Decidimos investigar acerca de este lenguaje ya que en los últimos años a tenido gran difusión para realizar aplicaciones Web, que es a donde va orientado nuestro proyecto por lo tanto debíamos evaluar este tipo de herramientas para tomar decisiones al respecto. 4.3 JAVA “Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Es orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel como punteros. JavaScript, un lenguaje interpretado, comparte un nombre similar y una sintaxis similar, pero no está directamente relacionado con Java.”5 Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, 4 PHP. (2007, 25) de febrero. Wikipedia, La enciclopedia libre. Fecha de consulta: 19:28, abril 27, 2007 de http://es.wikipedia.org/w/index.php?title=PHP&oldid=9482574. 5 Lenguaje de programación Java. (2007, 13) de abril. Wikipedia, La enciclopedia libre. Fecha de consulta: 00:29, mayo 19, 2007 de http://es.wikipedia.org/w/index.php?title=Lenguaje_de_programaci%C3%B3n_Java&oldid=9436445.. 9.

(10) pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.6 Adicionalmente se puede resaltar las siguientes ventajas que tiene este lenguaje y lo ratifican como una buena opción a la hora de tomar decisiones. Orientado a objetos “Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la programación orientada a objetos, especialmente en entornos cada vez más complejos y basados en red. Distribuido Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas. Interpretado y compilado a la vez Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador. Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (run-time). Robusto Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus 6. http://www.desarrolloweb.com/articulos/497.php. 10.

(11) características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria. Portable La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).7 A partir del trabajo realizado durante años utilizando este lenguaje y que teníamos la opción de usar herramientas del grupo o realizar aplicaciones que cumplan con nuestras condiciones decidimos investigar sobre que opciones nos podía dar este y que ventajas tenia respecto a otros.. 4.4 Definición de SVG SVG es un lenguaje para describir imágenes de dos dimensiones en formato XML. Este lenguaje es usado para definir gráficas vectoriales sobre la Web, y una de sus ventajas es que la imagen no pierde calidad si se cambia su tamaño.. Además,. permite. la. creación. de. vínculos. sobre. objetos. que. pertenecen a ésta.”8 4.4.1 Ventajas sobre otros formatos de imagen8 •. Los archivos SVG pueden ser leídos y modificados por una gran cantidad de herramientas sencillas como notepad.. •. Ocupan menos espacio en memoria y su compresión es mayor a la de imágenes JPEG y GIF.. • 7 8. Se pueden acercar y alejar sin perder calidad.. http://www.iec.csic.es/CRIPTONOMICON/java/quesjava.html http://uml2svg.sourceforge.net/documentation/introduction.html. 11.

(12) •. El texto sobre la imagen se puede seleccionar y buscar.. •. Es un estándar de libre uso.. 4.4.2 Visualización Existen algunos browsers que soportan SVG como Firefox 1.5 y Opera 9. Si el browser no tiene esta funcionalidad, se le debe instalar un visor como el Adobe SVG Viewer, el cual es gratuito y se descarga fácilmente del sitio de Adobe. 4.5 Business Process Modeling Notation9 BPMN es una notación estandarizada para modelar procesos de negocio. Su función principal es la de proveer una notación gráfica que sea entendible por todos los interesados en un proceso de negocio. Ésta notación facilita la representación de los procesos y permita comunicar procedimientos internos de una manera estándar. 4.5.1 Elementos en BPMN9 Existen 4 categorías básicas de elementos: •. Flow Objects: Contiene un conjunto de 3 elementos: Event, Activity y Gateway. Event se representa con un círculo y significa algo que pasa durante el proceso. Activity se representa con un rectángulo con las puntas redondeadas y significa un trabajo a realizar. Éste puede ser una tarea o un Subproceso. Por último está Gateway, que se representa con una forma de diamante y determina diferentes decisiones.. •. Connecting Objects: Sirven para conectar a los Flow Objects y de esta manera crear la estructura del proceso. Existen tres tipos objetos: Sequence. Flow,. Message. Flow. y. Association.. Sequence. Flow. se. representa con una flecha y muestra el orden o secuencia en el cual se realizan las actividades. Message Flow se representa con una flecha de líneas y muestra el flujo de mensajes entre dos participantes del 9. http://www.bpmn.org/. 12.

(13) proceso. Finalmente está Association, que se representa con una flecha de puntos y se utiliza para asociar datos, texto y otros artefactos a Flow Objects. •. Swimlanes: Se utilizan como un mecanismo para organizar actividades en categorías con la misma funcionalidad. Existen dos tipos: Pool y Lane. Pool se representa con un gran rectángulo y es un participante del proceso, éste contiene varios Flow Objects, Connecting Objects y Artifacts. Lane se representa como una subparte del Pool y es utilizada para organizar actividades.. •. Artifacts: Brindan la posibilidad de introducir más información al diagrama. Existen tres tipos: Data Objects, Group y Annotation. Data Objects se utilizan para mostrar los datos requeridos o producidos en una actividad. Group Se utiliza para agrupar un conjunto de actividades pero no afecta el flujo del diagrama. Finalmente, se encuentra Annotation, que es un mecanismo para información adicional en forma de texto.. 13.

(14) 5. RESULTADOS DE LA INVESTIGACIÓN. 5.1 Generador de Contenido Dinámico Para realizar este proceso se contemplaron diversas opciones, las cuales se enuncian a continuación: 5.1.1 Sistema de Administración de Contenidos MAMBO Es una herramienta escrita en PHP, Open Source que permite a sus usuarios administrar de una manera simple los contenidos de una pagina Web. Las principales características de Mambo son10: •. Creación y administración rápida de una comunidad en línea.. •. Administración sencilla con atractiva interfaz gráfica.. •. Gestión y Administración de usuarios registrados.. •. Creación Dinámica de Secciones, Subsecciones y Contenidos (Públicos y Privados). •. Zonas personalizables por el usuario.. •. Servicio de encuestas online.. •. Administrador de Banners.. •. Permite editar o eliminar opiniones, artículos, foros, etc.. •. Completo sistema de moderación de contenidos.. •. Gestor de zonas y secciones.. •. Gestión de referidos para controlar quien enlaza tú sitio Web.. •. Zonas y secciones con HTML personalizable.. •. Motor de búsqueda integrado.. •. Sistema de generación de noticias para ofrecerlas vía XML (formato RSS/RDF) automáticamente en otros sitios Web.. •. Soporte para más de 20 lenguajes.. •. Plantillas para modificar el diseño gráfico en forma automática.. •. Módulos para añadir más opciones.. •. Una amplia base de desarrolladores a nivel mundial, que permiten una constante actualización y soporte de primera línea.. 10. http://www.portalmambo.com/que-es-mambo-.html. 14.

(15) •. Al ser Mambo un proyecto basado en Open Source, es gratis y puede ser utilizado por cualquier persona.. Adicional a esto vemos que esta herramienta está compuesta por módulos y componentes que permiten bastante flexibilidad y suplen las necesidades que estamos buscando. Sin embargo, a pesar de ser software libre, nos limita en cuanto a la modificación del producto ya que es necesario tener una etapa de aprendizaje y por el tiempo que tenemos puede que no se cumplan con los objetivos del proyecto. 5.1.2 Sistema de Administración de Contenidos propio en PHP A partir del conocimiento que teníamos los integrantes del proyecto y la facilidad de uso de PHP ya que es un lenguaje cómodo, multiplataforma y que se puede conectar fácilmente con bases de datos que en este caso sería MySql, se consideró como una buena opción. Además este es orientado a la creación de. contenido. para. sitios. Web. y. vimos. una. buena. oportunidad. para. implementar un pequeño gestor que supliera nuestras necesidades. Observamos que hay bastante código reutilizable en la Web que es libre y puede permitirnos crear una herramienta Qualdev que puede ser manipulada por integrantes futuros del grupo en pro de evolucionar constantemente. Además con esta no nos ligamos a un herramienta como tal, por lo tanto seria sostenible y actualizable.. 5.1.3 Sistema de Administración de Contenidos propio en Java. Manteniendo la misma idea que desarrollamos en el punto anterior optamos por analizar la misma opción pero basándonos en el lenguaje de programación Java ya que es el que se ha venido utilizando en el grupo de desarrollo y es lo que más manejamos en la Universidad.. 15.

(16) Tomando esta opción se vuelve un poco más complejo el desarrollo pero el resultado es mucho mejor ya que con Java se obtendría una herramienta más robusta, segura y confiable. Por otro lado, permite diseñar una arquitectura mucho más mantenible que la obtenida con PHP, pensando en el trabajo futuro. 5.1.4 Utilización de la Herramienta de Cupi2. A partir del inicio del proyecto se nos dio la posibilidad de tener acceso a la herramienta que se usa en Cupi2 para generar la pagina del proyecto, esto lo hace a partir de un archivo XML en el que se define la estructura del menú y el contenido que se va a publicar, tiene la capacidad de parsear archivos .doc en los que se incluyen imágenes y transformarlo a un archivo HTML con el diseño correspondiente. Esta herramienta es bastante potente y suple las necesidades que teníamos para el desarrollo de este proyecto, lo único que debíamos hacer era adaptarla a nuestras necesidades, en cuanto a diseño y modificar el archivo XML para adaptarlo a nuestras necesidades y todo lo que esto acarrea.. 5.1.5 Conclusiones. A partir del análisis de cada una de las alternativas propuestas decidimos optar por usar la herramienta que se esta usando actualmente en Cupi2, teniendo en cuenta que las otras opciones podían cumplir con nuestros requerimientos pero se tienen ciertas desventajas con respecto a esta opción. Para hacer una aplicación desde cero usando PHP es necesario profundizar en el lenguaje ya que tenemos conocimientos muy básicos, a pesar que es de lo más utilizado para aplicaciones Web tiene bastantes falencias en cuanto a legibilidad de código, por lo tanto la reutilización y actualización son. 16.

(17) complicadas y como en el grupo Qualdev se busca mejorar sus herramientas en cada uno de sus ciclos presentaría problemas. En el caso del CMS Mambo es una herramienta bastante robusta y tiene bastantes funcionalidades, que para nuestro proyecto incluso va mucho mas allá del alcance, pero para llegar a una versión útil y estable de la aplicación utilizando los módulos de Mambo es necesario aprender bastante y es una curva de aprendizaje con la cual corremos riesgos. En cuanto a crear una aplicación nueva en Java vemos que si ya tenemos una base bastante estable que ya ha sido probada como lo es la aplicación de Cupi2 es absurdo que se piense en rehacer trabajo, existiendo herramientas del grupo que suplen nuestras necesidades. La herramienta de Cupi2 tiene una estructura sencilla, de fácil uso para el tipo de usuarios al que va orientado y esta desarrollada en Java por lo tanto es mas fácil para nosotros ajustarla, para ello los cambios que hay que realizar no son muchos, tan solo se tiene que cambiar la estructura del XML que define el portal, las plantillas utilizadas y todo lo que conlleva esto en lo cual no intervienen mas de cuatro clases. Por otro lado es necesario añadirle las funcionalidades del SVG que no tendrán mucho impacto en la aplicación porque finalmente estas son un XML.. Por lo tanto se tomo esta determinación y se adaptó este programa de la mejor manera posible para dar solución a nuestro proyecto y dejar una herramienta funcional para el grupo Qualdev, más adelante se vera un diagrama de la aplicación y sus respectivos screenshots. 5.2 Generador de Imágenes Interactivas En principio la idea era exportar los actuales diagramas a XMI, los cuales fueron generados a partir de herramientas como IBM Rational Rose, Enterprise Architect y Poseidon. De esta forma, se podrían generar imágenes SVG a partir 17.

(18) de dichos archivos XMI. Al investigar sobre formas para convertir de XMI a SVG, encontramos la herramienta Uml2Svg11, la cual se encuentra en sourceforge.net y cuenta con licencia GNU. Sin embargo, dicha herramienta, que básicamente hace una transformación XSLT, es muy limitada ya que soporta únicamente la especificación UML 1.0. De todas las herramientas que probamos exportando diagramas a XMI y tratando de convertirlos a su respectiva imagen SVG, sólo funcionó para Poseidon. 5.2.1 Integrar a partir de XMI Al descartar la opción de convertir los diagramas de XMI a SVG, evaluamos la posibilidad de importar los diagramas existentes de XMI directamente a algún programa de UML. Como lo más importante por el momento es generar los diagramas para Qualdev Process, decidimos tomar diagramas previamente creados utilizando Enterprise Architect12 y tratar de importarlos a alguna herramienta de libre uso. El problema es que existen varias versiones de especificaciones tanto de UML como de XMI13 y por esta razón en ocasiones no es posible importar diagramas entre diferentes herramientas. 5.2.2 Exportar a mapa de bits Otra opción que se tuvo en cuenta fue la de exportar los diagramas a formatos como WMF o BMP y utilizar alguna herramienta para convertirlos a SVG. Para esto se utilizo la herramienta gratuita SvgFactory y se logró exportar el diagrama a SVG exitosamente. Sin embargo, dicha herramienta tiene limitaciones significativas, como por ejemplo que no procesa cadenas de caracteres, luego se pierde todo el texto contenido en el diagrama inicial14. Además, se trata de estandarizar las imágenes para que queden del mismo estilo y no que varíen de acuerdo a la herramienta con la que fueron generadas. Con SvgFactory sólo es posible generar SVG a partir de imágenes. 11. http://uml2svg.sourceforge.net/documentation/introduction.html Enterprise Architect 3.51 combina el poder de la última especificación UML 2.1 con alto rendimiento, interfaz intuitiva, para traer modelado avanzado al escritorio, y para el equipo completo de desarrollo e implementación 13 http://www.omg.org/technology/documents/vault.htm#modeling 14 http://www.svgfactory.com/index.html 12. 18.

(19) WMF o BMP, por lo tanto es muy costoso de hacer cambio alguno antes de generararla. 5.2.3 Posibles herramientas. Finalmente se pensó en la posibilidad de escoger la mejor herramienta para empezar a utilizarla en la generación de todos los diagramas teniendo en cuenta factores como el tipo de licencia, la posibilidad de exportar a SVG, facilidad de uso, entre otros. La primera opción en ser descartada fue Enterprise Architect al tratarse de un programa que exige una licencia con la cual no contamos y además no tiene la opción de exportar imágenes a SVG. Posteriormente se evaluó Rational Rose pero este tampoco permite exportar a SVG. También se evaluó Poseidon for UML, pero aunque este programa si permite exportar a SVG, existe un problema ya que la versión community edition es limitada y no deja exportar los diagramas a SVG con este tipo de licencia. Otra herramienta que se evaluó fue ArgoUml (licencia BSD), la cual permite guardar las imágenes como SVG15. Esta herramienta es bastante completa y permite trabajar sobre diagramas de actividad, que en principio son los que más vamos a utilizar para el portal. Por esta razón, se llego a considerar dicha herramienta como una de las opciones para pasar los diagramas existentes a esta herramienta y también para trabajar en un futuro con la misma herramienta con el fin de tener un mayor orden con las imágenes y que todas tengan el mismo formato y estilo. Sin embargo, no es posible importar los diagramas realizados previamente y sería necesario hacerlos nuevamente. Otra de las opciones que se podría llegar a utilizar es Visual Paradigm Community edition. Esta herramienta permite hacer una gran cantidad de diagramas como de clases, de casos de uso, de secuencia, de comunicación, de estado, de actividad, entre otros. Además, permite exportar a diversos tipos de imágenes, entre los cuales esta el que más nos interesa, SVG. Con este 15. http://argouml.tigris.org/. 19.

(20) programa, logramos importar el XMI generado con Enterprise Architect pero no quedo del todo bien ya que las relaciones entre actividades se perdieron. Al igual que con la herramienta anterior, nos tocaría crear nuevamente cada uno de los diagramas. 5.2.4 Conclusiones. En conclusión, ninguna de las herramientas investigadas permite automatizar el proceso de exportar imágenes SVG a partir de diagramas generados con diversas herramientas. Por lo tanto, decidimos volver a crear los diagramas de proceso, esta vez bajo el mismo tipo y siguiendo un estándar previamente definido. Para esto, investigamos sobre lenguajes de notación de procesos y encontramos que el más adecuado para nuestros propósitos es Business Process Modeling Notation (BPMN), el cual permite describir procesos mediante diagramas. Entre las herramientas existentes para trabajar con BPMN nos recomendaron utilizar eBPMN versión 1.0.2, de una compañía Open Source denominada Soyatec16. Esta herramienta es gratuita y fue utilizada en la generación de diagramas de los procesos para el proyecto Cupi2 de la universidad.. 16. http://www.soyatec.com/ebpmn/features.html. 20.

(21) 6. DESCRIPCIÓN DE LA SOLUCIÓN 6.1 Proceso para la generación del contenido. Para agregar o modificar contenido sobre el portal definimos un proceso que permite asegurar el seguimiento de los estándares y la correcta publicación de información sobre éste. Este proceso se apoya principalmente en dos herramientas; Un generador HTML basado en un archivo XML y un programa para modelar procesos con BPMN. 6.2 Herramientas utilizadas en el proceso. 6.2.1 Generador HTML Para generar las páginas de cada uno de los procesos definidos en Qualdev, trabajamos sobre un generador de HTML del proyecto Cupi2 modificándolo de acuerdo al esquema XML que define los procesos. Este esquema describe el contenido de cada uno de los procesos, es decir, existe un archivo XML por proceso, y éste se utiliza para establecer el contenido a mostrar. El Generador cuenta con un parser que permite automatizar la generación de vínculos sobre la imagen SVG. Para esto, se debe especificar en un archivo de propiedades la dirección a la cual va a apuntar cada actividad o subproceso del diagrama.. 21.

(22) 22.

(23) 1. Pantalla principal de la aplicación. 2. Pantalla para crear un nuevo portal. 23.

(24) 3. Generación del Portal. 4. Portal Generado Imagen SVG. 24.

(25) 5. Portal Generado información de actividades. 6.2.2 eBPMN Con esta herramienta creamos un diagrama del proceso de planeación de acuerdo a la definición del mismo. Dentro de éste proceso, identificamos actividades que se podían agrupar como subprocesos con el fin de hacer más entendible el contenido. En caso de requerirse un mayor nivel de detalle, es posible ver el contenido de dicho subproceso siguiendo el vínculo. La herramienta se descarga del sitio Web de Soyatec (www.soyatec.com) y su uso es intuitivo; la interfaz permite arrastrar objetos y crear relaciones entre los objetos fácilmente. Está basada en Eclipse RCP, lo que facilita el entendimiento a los integrantes del grupo Qualdev. 6.3 Descripción del proceso. Changeset contiene registrado un proyecto denominado Qualdev Process, en el cual se publican las líneas de base de cada uno de los procesos. Cada línea de 25.

(26) base se actualiza en un archivo .zip con el fin de poder descargar toda la información referente a ésta. También se encuentra una descripción de la línea de base con sus respectivos ítems17. Con el archivo .zip actualizado, es posible generar el contenido del portal. Esto se logra utilizando la herramienta mencionada anteriormente, la cual crea las paginas Web correspondientes a los procesos definidos en dicho archivo con sus respectivos vínculos, imágenes y definiciones. El menú es generado con base en los procesos contenidos. Para cada proceso, va a existir una entrada en el menú de la parte izquierda del portal. Al hacer clic sobre un elemento de éste menú, aparece otro en la parte superior con todo el contenido referente al proceso. Al momento de crear un nuevo diagrama, es necesario indicar en un archivo de texto (.properties). la ubicación de la página que define cada una de las. actividades. En el caso de un subproceso, es necesario indicar la ubicación de la imagen de dicho subproceso, el cual a su vez se comporta como un nuevo proceso en el sentido en que éste también contiene actividades, de las cuales se debe especificar su ubicación en otro archivo referente al subproceso.. 17. http://chie.uniandes.edu.co/~changeset/wiki/doku.php?id=process:process/. 26.

(27) 6.4 Prototipo del proceso de planeación Como prototipo decidimos generar el contenido del proceso de planeación que se encuentra actualmente definido en Qualdev Process. Primero que todo utilizamos eBPMN para crear el nuevo diagrama para después exportarlo a SVG. Teniendo el SVG, definimos el archivo con los links para cada actividad del mismo. Finalmente con la utilidad generadora, y a partir del archivo .zip de Changeset, generamos todo el contenido de este proceso y lo publicamos en el portal.. 27.

(28) 6.4.1 Diagrama en BPMN del proceso.. El diagrama anterior, representa el proceso de planeación. Como se puede observar, cada rectángulo ancho (ubicado uno encima del otro) simboliza un rol para este proceso. Los rectángulos con el símbolo de más, y de fondo azul, representan subprocesos, y para cada uno de éstos, existe otro diagrama que modela dicho subproceso. A continuación presentamos el subproceso de la estrategia, el cual decidimos separar del diagrama global ya que facilita la navegación y hace más entendible el proceso en general. 28.

(29) 6.4.2 Diagrama en BPMN del subproceso de Estrategia.. Como se puede observar, un subproceso se puede entender como un proceso embebido en otro más grande. En este caso, si no se agruparan todas las actividades de la estrategia, el diagrama de planeación quedaría mucho más amplio y por ende sería más difícil de comprender. Además, faltaría incluir en dicho diagrama cada una de las actividades de la identificación de riesgos y del seguimiento, lo que ampliaría aún más la imagen, generando en algunos casos desorden, e indudablemente dificultaría el entendimiento del proceso. El proceso queda entonces fácil de entender en la medida en que la imagen no es muy amplia, no tiene objetos extraños o ambiguos, existe un flujo de actividades, hay un punto de partida y un final y se utiliza un lenguaje natural para cada tarea. Por otro lado, si una tarea no es clara para el que está viendo el diagrama, puede hacer clic sobe ésta y llega a la definición, que seguramente le resolverá sus dudas.. 29.

(30) 7. TRABAJO FUTURO. El trabajo realizado por nosotros pretende ser claro y explícito de manera tal que haya continuidad y sea de gran utilidad para el grupo, especialmente el manejo de las herramientas que en algunos casos suele ser complejo y genera demoras por la curva de aprendizaje. También se tuvieron en cuenta tecnologías relativamente nuevas al momento de hacer la investigación pensando no sólo en el presente sino también en el futuro y continuidad del proyecto. El proyecto actualmente contiene todas las herramientas necesarias para generar el contenido, sin embargo, es necesario continuar el trabajo para que todos los procesos sean publicados debidamente en el portal. Para esto, es necesario trabajar en el paso de los diagramas actuales a notación BPMN para ser interpretados por la utilidad generadora de HTML. Es altamente deseable continuar con el proceso de difusión del grupo para de esta manera encaminar los esfuerzos del grupo hacia un reconocimiento y prestigio mayor del que se tiene actualmente. Posteriormente, después de haber terminado el proyecto de difusión de Qualdev Process, sería bueno que se pensara en continuar con todo el contenido relevante que se encuentra actualmente en la Wiki para que se publicara en el portal y permitiese ser consultado de forma sencilla por todas las personas con un interés en particular.. 30.

(31) 8. CONCLUSIONES. Es importante dar a conocer el trabajo del grupo Qualdev, especialmente sus procesos y herramientas. Sin embargo, es necesario mostrar todo el contenido bajo un estándar bien definido y con la posibilidad de modificar o agregar nuevo contenido fácilmente para que sea flexible y escalable. Para que el portal sea exitoso, es necesario que sea agradable de navegar y tenga un diseño acorde para que despierte interés al público y de los resultados esperados. En este sentido, cabe destacar que se trabajó en el diseño para que el portal quedara navegable. Sin embargo, es importante respetar que en el futuro se respete el proceso definido para la publicación de contenido y que de esta manera no se genere desorden ni inconsistencias en la información. Una definición de proceso debe estar modelada bajo una notación de procesos que sea fácil de entender, reconocida a nivel internacional y visualmente atractiva para captar la atención de los interesados en dicho proceso. A medida que el grupo Qualdev gana reconocimiento, especialmente a nivel internacional, aumenta la posibilidad de mejorar los procesos que actualmente se siguen dentro del mismo y se obtiene prestigio, especialmente en el área de investigación.. 31.

(32) BIBLIOGRAFÍA. [1] Definición de CMS Sistema de gestión de contenido. Wikipedia, La enciclopedia libre. Internet; http://es.wikipedia.org/w/index.php?title=Sistema_de_gesti%C3% B3n_de_contenido&oldid=8979096 (abril de 2007). [2] Artículo “Por qué php”. http://www.programacion.net/php/articulo/porquephp/ (abril de 2007). [3] Características de Java. Internet; http://www.desarrolloweb.com/articulos/497.php (mayo de 2007). [4] Características de MAMBO. Internet; http://www.portalmambo.com/que-es-mambo-.html (abril de 2007). [5] Introducción a Uml2Svg. Internet; http://uml2svg.sourceforge.net/documentation/introduction.html (abril de 2007). [6] Especificaciones de XMI. Internet; http://www.omg.org/technology/documents/vault.htm#modeling (abril de 2007). [7] Tutorial de SVG Factory. Internet; http://www.svgfactory.com/index.html (abril de 2007). [8] Sitio Web de Argo Uml. Internet; http://argouml.tigris.org/ (abril de 2007). [9] Sitio Web de Qualdev Process. Internet; http://chie.uniandes.edu.co/~changeset/wiki/doku.php?id=process:process/ (mayo de 2007).. 32.

(33)

Referencias

Documento similar