— La ingeniería de software (IS) es conocida por ser una actividad que involucra distintos tipos de conocimiento, de ahí la necesidad creciente en distintas organizaciones de desarrollo de software para definir métodos y técnicas que les ayuden a manejar el conocimiento que poseen de una mejor manera.
Modelado de procesos con enfoque en el flujo del conocimiento
- Para que los sistemas de administración del conocimiento (AC) sean realmente de utilidad, es importante que estos ayuden a que las personas encargadas de los procesos de las organizaciones puedan contar con el conocimiento que requieren para llevar a cabo sus actividades.
SPEM
¤ SPEM es un metamodelo diseñado para describir procesos y sus componentes, siguiendo un enfoque de modelado orientado a objetos con base en UML.
¤ SPEM ha sido desarrollado como un perfil de UML; es decir que extiende los mecanismos de UML de una forma estandarizada, con el propósito de modelar procesos de desarrollo de software.
OBJETIVO
El modelado de estos flujos de conocimiento es identificar los problemas que pudieran estar afectando que el conocimiento fluya adecuadamente a través del proceso. Ejemplos de lo anterior son la identificación de conocimiento que es generado en ciertas actividades y no es guardado, aun cuando sea importante para realizar otras actividades. Otro caso es la identificación de fuentes importantes con respecto al conocimiento que contienen, y que no están siendo usadas adecuadamente durante el proceso.
VENTAJAS
v SPEM ha sido desarrollado por el Object Management Group (OMG), lo que le da el potencial de convertirse en un lenguaje estándar para el modelado de procesos de IS.
v UML es el lenguaje de modelado más extendido en las organizaciones de desarrollo de software, lo que puede facilitar la asimilación de SPEM como lenguaje de modelado de procesos en este tipo de organizaciones. Esto es importante si consideramos que un estudio de procesos requiere de diversas iteraciones, lo que implica que se requiere retroalimentación de los participantes del proceso para ir mejorando los modelos en cada iteración.
v Para modelar procesos con SPEM es posible usar cualquier herramienta que permita el uso de perfiles de UML. Dado el extendido uso de UML, existen muchas herramientas disponibles con esta característica. Incluso, interfaces ampliamente usadas como plataformas de desarrollo de software, comienzan a proveer facilidades para modelar procesos con base en SPEM
DESVENTAJAS
Sin embargo, SPEM no provee elementos para representar el conocimiento involucrado en los procesos. Con el fin de usarlo para estudiar flujos de conocimiento en procesos de IS, fue necesario adaptarlo añadiendo estos elementos como parte del lenguaje.
ADAPTACIÓN DE SPEM PARA ESTUDIAR FLUJOS DE CONOCIMIENTO
(i) Ilustrar el conocimiento, y sus fuentes, involucrado (usado, creado, y/o modificado) en las actividades del proceso.
(ii) Ilustrar flujos de conocimiento entre actividades, y cómo las fuentes que lo contienen son usadas o modificadas a través de éstas.
(iii) Ilustrar las transferencias de conocimiento entre roles u otros tipos de fuentes.
EL CONOCIMIENTO COMO PRODUCTO DEL TRABAJO
SPEM basa su notación en tres elementos básicos:
› Productos del trabajo (work products), definiciones de trabajo (work definitons), y roles (roles). Las definiciones de trabajo son operaciones que describen el trabajo realizado por los roles del proceso. Estas son usadas para estructurar el proceso, por ejemplo, describiendo su ciclo de vida, sus fases, iteraciones, o actividades. Los productos del trabajo es todo aquello usado o generado durante el proceso.
La figura 1 muestra los elementos principales que se agregaron a SPEM para permitir la representación del conocimiento en los modelos.

EXPLICACION DEL EJEMPLO
En particular, se definió un tipo de producto de trabajo para referirse al conocimiento involucrado en las actividades. Este conocimiento puede ser conceptos específicos, como temas o fuentes de conocimiento; o paquetes de conocimiento, que son grupos de temas de conocimiento relacionados, por ejemplo, pueden usarse para agrupar el conocimiento de un rol determinado, de un documento, etc. Otro uso que se puede dar a estos paquetes de conocimiento, es para agrupar temas específicos en temas más generales, en áreas, o en categorías, con el fin de usarlos para estructurar y clasificar el conocimiento, como se ejemplifica más adelante en este trabajo.
RELACIONES
A la par de los conceptos para definir el conocimiento involucrado en las actividades, se definió un conjunto de relaciones para definir transferencias de conocimiento, así como el conocimiento que puede estar contendido en fuentes determinadas.
La figura 2 ilustra las relaciones que han sido definidas, y cómo estas se relacionan al metamodelo de SPEM. La relación KnowledgeTransfer es usada para representar transferencias de conocimiento entre fuentes, por ejemplo entre dos o más roles, entre un rol y un documento, etc. Esta relación tiene dos propiedades principales, las fuentes involucradas en la transferencia, y la definición de trabajo donde ésta se da.
Los conocimientos transferidos u obtenidos por una fuente pueden ser temas específicos, o grupos de estos temas, y se especifican con una relación tipo KnowsAbout. La relación KnowsAbout define el conocimiento contenido en una determinada fuente.

NOTACIÓN
Para integrar los elementos antes mencionados, en los diagramas generados con SPEM, se definieron una serie de iconos mostrados en la Figura 3. Estos iconos son usados en conjunto con los ya definidos por SPEM. Los temas de conocimiento o habilidades específicas son representados con elementos tipo KTopic. El elemento GroupedKnowledge es usado para representar grupos de temas relacionados, a su vez, es también útil para clasificar estos temas en paquetes. Finalmente, las transferencias de conocimiento son representadas por medio del icono KnowledgeTransfer.

Con excepción del icono KnowledgeTransfer, el resto es usado en los diagramas predefinidos en SPEM.
Para la representación de transferencias de conocimiento hemos definido diagramas adicionales.
Para representar el proceso de manera general, así como las principales fuentes, o paquetes de conocimiento que intervienen, empleamos los casos de uso. Los diagramas de actividad nos ayudan a identificar detalles del conocimiento involucrado en actividades específicas, así como el conocimiento que cada rol puede requerir al desempeñar dichas actividades.
Los diagramas de clases permiten representar el conocimiento que puede ser obtenido de cada fuente, así como dependencias y relaciones entre tipos de conocimiento y/o fuentes.
Los diagramas de paquetes son usados para organizar y clasificar el conocimiento o habilidades en paquetes de conocimiento relacionados, por ejemplo, el conocimiento contenido en una fuente determinada.
Finalmente, el análisis de transferencias de conocimiento es realizado por medio de diagramas de transferencia, que son un tipo de diagrama que se ha definido con base en la relación KnowledgeTransfer.
Este tipo de diagramas permiten ilustrar las fuentes participando en la transferencia, la actividad o flujo de trabajo donde se da la transferencia, el conocimiento que es transferido, así como el conocimiento que cada fuente aporta, y el que obtienen al participar en dicha transferencia. Si se requiere especificar la transferencia con mayor detalle, por ejemplo, protocolos de discusión entre roles, o secuencia de llenado de contenido en un documento, etc., se hace uso de los diagramas de secuencia, o de diagramas de estados.
CASO DE ESTUDIO
@ Con el fin de aplicar estrategias de AC en una organización, uno de los primeros pasos es identificar las necesidades reales de conocimiento de las personas involucradas en los procesos de la misma. Esto puede llevarse a cabo por medio de una “auditoria de conocimiento” que nos ayude a identificar qué conocimiento es requerido por los participantes del proceso, qué fuentes de conocimiento existen, y qué conocimiento puede ser obtenido de dichas fuentes. Para facilitar el análisis y manejo de esta información, una técnica muy útil es la definición de taxonomías de conocimientos y fuentes, las cuales nos permitirán clasificar estos elementos de una manera que se facilite la estructuración y generación de la base de conocimientos de la organización.
DIAGRAMAS DE ACTIVIDAD Y PAQUETES DE CONOCIMIENTOS
d La figura 4 muestra un ejemplo del uso de los diagramas de actividad para representar el conocimiento que es usado y generado en las actividades. El diagrama describe parte de las actividades que realiza un ingeniero de software durante el proceso de mantenimiento estudiado. Como se puede observar, el conocimiento que cada fuente aporta u obtiene es agrupado en un paquete que representa el conocimiento de esa fuente.
d Posteriormente, estos paquetes de conocimiento son extendidos para definir el conocimiento específico que agrupan. Este conocimiento puede ser temas concretos, o paquetes que agrupan temas relacionados. De esta manera, al ir modelando el proceso es posible comenzar la clasificación del conocimiento involucrado, a la vez que se comienza la identificación de las fuentes que pueden contener el conocimiento, ya sea porque son las fuentes de donde es obtenido, o donde es almacenado.

DIAGRAMAS DE CLASES: RELACIONES ENTRE EL CONOCIMIENTO Y SUS FUENTES
õ La figura 5 presenta un ejemplo del uso de diagramas de clases para describir las relaciones entre fuentes y conocimiento. Este tipo de diagrama es usado para describir el conocimiento que cada fuente contiene, la forma en que están agrupadas las fuentes, así como relaciones y dependencias entre tipos de conocimiento. Por ejemplo, en la figura 5 se muestra que las solicitudes de mantenimiento similares a la que se está atendiendo pueden ser usadas para obtener información sobre los archivos que requerirán ser modificados. A su vez, para esto también es necesario conocer la estructura del sistema y del módulo específico que se requiere modificar, información que puede ser obtenida del documento de diseño del sistema.
DIAGRAMAS DE CLASES

Por medio de las extensiones propuestas a SPEM, también es posible crear diagramas que se enfocan en identificar transferencias de conocimientos entre actividades, roles y otro tipo de fuentes.
La identificación de este tipo de situaciones es importante debido a que pueden contribuir a proponer alternativas para mejorar los flujos de conocimiento durante el proceso. Si consideramos que los procesos de desarrollo y mantenimiento de software utilizan gran cantidad de conocimiento, entonces lograr esquemas que permitan que el conocimiento fluya de forma más rápida y eficiente, puede contribuir en gran medida a la mejora de dichos procesos.
LECCIONES APRENDIDAS
Ж Identificación de problemas relacionados con el conocimiento. La aplicación de SPEM, y en particular el uso de las extensiones definidas para representar explícitamente el conocimiento involucrado en los procesos modelados, permitieron identificar problemas en los flujos de conocimiento que actualmente se dan dentro del proceso.
Ж Estructuración y clasificación de temas y fuentes de conocimientos. La posibilidad de representar, tanto temas específicos como conjuntos de los mismos, facilitó la definición de una estructura de clasificación de conocimientos y fuentes, lo cual ayudó a estructurar un mapa de conocimientos del proceso estudiado.
CONCLUSIONES
Por otra parte, un primer paso en la definición de sistemas de AC, es definir taxonomías que permitan estructurar, clasificar y organizar el conocimiento de la organización y las fuentes que lo contienen.
Consideramos que SPEM es una buena alternativa como lenguaje para analizar los procesos existentes en grupos de IS. Debido a la alta dependencia del conocimiento que existe en este tipo de procesos, un lenguaje de modelado que considere el conocimiento involucrado podría ser de gran ayuda.
Ya que SPEM no cuenta con primitivas para representar explícitamente el conocimiento involucrado en procesos de IS, vimos la necesidad de dotarlo con esta alternativa con el fin de que sirva para analizar y definir procesos de IS considerando el conocimiento involucrado en las actividades que constituyen a los procesos.