|
Idea
Mejora de Procesos Al igual que en otros sectores industriales, en la industria del software se sabe que la manera de hacer las cosas (los procesos software) tiene una influencia directa en la calidad de los productos. De ello se deriva el creciente interés en las empresas del sector por promover la mejora de sus procesos de desarrollo y mantenimiento de software. Además, las aplicaciones software son productos cada vez más complejos, lo que influye en la complejidad también creciente de los procesos de ingeniería de software. Ingeniería de Procesos Software Tradicionalmente la Ingeniería del Software se ha centrado en desarrollar métodos, técnicas o herramientas para aplicar los principios de la Ingeniería al ámbito del software. Hasta fechas recientes, el foco ha estado centrado en el software como producto. Así, todas las técnicas, lenguajes o métodos han estado volcados en poder ser sistemáticos y rigurosos al manejar los distintos artefactos que llevan al producto software final. Un ejemplo claro es UML, un estándar para el modelado de los sistemas software (productos). En los últimos años se ha desarrollado un área nueva, dentro de la Ingeniería del Software, que intenta hacer lo mismo pero enfocado en los procesos. Surge así la conocida como SPE (Software Process Engineering), también llamada "Method Engineering", cuyo objetivo es “la definición, implementación, medición y mejora de los procesos de Ingeniería del Software”. Un elemento clave en este campo ha sido la aplicación del nuevo paradigma de ingeniería dirigida por modelos (MDE, Model Driven Engineering), de forma que el tipo de artefacto clave para trabajar con los procesos software de manera sistemática y rigurosa son los Modelos de Procesos (MP). Ahora, los modelos pasan a jugar un papel tan importante como en el caso de los productos y las tecnologías ya existentes (MDA, MOF/XMI, UML, etc.) encuentran otro campo de aplicación en el ámbito de los procesos software (PS). La figura 1 muestra un resumen de la nueva manera de trabajar con los procesos. Figura 1. Marco de Trabajo para la Ingeniería de Procesos Software. En esta línea, recientemente OMG, el consorcio industrial promotor de UML, ha publicado su nuevo estándar SPEM (Software & Systems Process Engineering Metamodel Specification). Dicho estándar establece los elementos clave para la representación de métodos, ciclos de vida, técnicas, roles, actividades, procesos, metodologías, plantillas, etc. en ingeniería del software (ver figura 2). Figura 2. Elementos principales del estándar SPEM. Nuevas Posibilidades Disponer de los modelos de procesos software tiene una ventaja especial de cara a la certificación: es un requisito para poder alcanzar los niveles 2 (proceso definido) y 3 (proceso gestionado) de CMMI. Igual ocurre con las certificaciones de ISO. Pero además, se abren nuevas perspectivas que se derivan de que los procesos se manejan (representan, definen, almacenan, publican, etc.) de una manera mucho más eficiente. A continuación se muestra un pequeño ejemplo. En la figura 3 parte izquierda se presenta una tarea de METRICA 3 tal cual se publicó oficialmente en un archivo de texto. En el lado derecho aparece la misma tarea escrita en XML siguiendo el estándar SPEM antes mencionado. En el primer caso lo único que podemos hacer con dicha descripción es leerla (personas, no sistemas). En el segundo caso es posible realizar cualquier tipo de procesamiento automático que interese; por ejemplo, para generar una web con información de todos los procesos, tareas, roles, etc. de METRICA 3 como la mostrada en la figura 4. La figura 5 muestra un diagrama de flujo de trabajo que también ha sido generado de forma automática. Figura 3. Dos maneras de tener la descripción de una tarea de METRICA 3. Figura 4. Una web sobre METRICA 3 generada automáticamente. Figura 5. Flujo de trabajo generado de forma automática. Algunas posibilidades de la tecnología SPE son:
Conclusiones La Ingeniería de Procesos Software está llamada a jugar, en pocos años, un papel clave en las iniciativas de mejora de procesos, certificación, o gestión del conocimiento. Entre otras, la disponibilidad de modelo de procesos en formato adecuado (tipo XML) proporciona capacidades para: Facilitar la comprensión y comunicación humana. Facilitar la reutilización. Facilitar la evolución y cambio en los procesos. |