de software es un trabajo altamente complejo. • Los proyectos software son difíciles de gestionar. • La tecnología de Proceso Software (PS) intenta simplificar la gestión de proyectos software. 4 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 4
tareas de trabajo interrelacionadas, iniciadas en respuesta a un evento, que permiten alcanzar un resultado específico para el cliente del proceso. 5 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 5
Un conjunto coherente de políticas, estructuras organizacionales, tecnologías, procedimientos y artefactos que son necesarios para concebir, desarrollar, instalar y mantener un producto software. 6 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 6
por una organización para desarrollar y mantener un producto software. • Se debe prestar atención a la compleja interrelación que se produce en un PS entre los diversos factores organizacionales, culturales, tecnológicos y económicos. 7 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 7
de producción: – Muy determinados por circunstancias impredecibles. – Cada uno con sus peculiaridades. • No son procesos de ingeniería “pura”: – Se desconocen las abstracciones adecuadas. – Dependen demasiado de demasiada gente. – Presupuestos, calendarios, calidad no pueden ser planificados de forma fiable. 9 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 9
proyectos tienden a seguir patrones comunes. • Es necesario capturar estos aspectos comunes en una representación del proceso, la cuál describa estas características comunes y fomenta la homogeneidad. • El estudio de los procesos de producción de software ha llevado al desarrollo de varios Ciclos de Vida del Software. – Estos modelos del Ciclo de Vida ayudan a comprender mejor el PS, y a determinar el orden de actividades globales envueltas en la producción de software. 10 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 10
estructura jerárquica con varios niveles de agregación: – Subprocesos – Actividades – Tareas • Los procesos, subprocesos y actividades tienen asociados un flujo de trabajo. • Las tareas son las unidades básicas de trabajo(atómicas). 11 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Procesos Software 11
IRIS Process Author EssWork MFS Tecnologías para el Proceso Software PALs en la Industria 14 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Herramientas Procesos Softwar Herramientas
sobre Procesos Software: PAL-Wiki Herramientas Procesos Softwar • Interactúa con un modelo de proceso desarrollado a través de algún Lenguaje de modelado de procesos y un Motor de procesos ejecuta el modelo. • Los elementos principales del motor son: – Un interpretador, que ejecuta el modelo controlando las herramientas utilizadas durante su desarrollo. – Un ambiente de interacción de usuario, compuesto de herramientas utilizadas por las personas involucradas en el proceso. – Un repositorio, que almacena los artefactos producidos durante el proceso (incluyendo código fuente, módulos, documentación, ejecutables, casos de prueba, reportes, etc.), soportando la persistencia de datos.
en la definición de una estructura flexible para organizar los activos de proceso. • Ofrece las siguientes funcionalidades: – Navegación sobre la estructura de la PAL de acuerdo a múltiples vistas. – Visibilidad de la información acerca de los activos. Por ejemplo, visibilidad por roles aplicables, materiales de referencia, ejemplos y/o revisiones históricas. – Búsqueda de activos basada en palabras claves, popularidad o relevancia. – Facilidades para la gestión de procesos y recolección de métricas sobre su uso. 18 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Herramientas Procesos Softwar
del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas PAL Repositorio de documentos relacionados con el proceso de software, necesarios para implementar infraestructuras tecnológicas para soportar el proceso en la organización. Propósitos • Proveer una base de conocimiento central para adquirir, definir y diseminar guías acerca de procesos relacionados con las tareas de la organización. • Proporcionar mecanismos para compartir conocimiento acerca de activos de proceso de la organización y cómo son utilizados. • Ensamblar subprocesos y/o derivar procesos modificados reemplazando y/modificando subprocesos constituyentes. • Reducir la duplicación de activos de procesos dentro de la organización.
Gestión del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas Pequeñas Organizaciones Grandes Organizaciones Cultura centrada en el proceso. Planificación de nuevos proyectos. Incrementar capacidad de presentar y utilizar procesos. Hacer públicas las “nuevas reglas” de la organización. Reducir tiempos de planificación, implementación y entrenamiento. Reducir el tiempo de entrenamiento.
del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas • Las descripciones de los procesos de la organización usualmente contienen una secuencia de pasos a ser ejecutados, identifican quiénes los ejecutan, especifican los criterios de entrada y salida para las principales actividades, etc. • Para apoyar el uso de procesos, frecuentemente se proporcionan guías, listas de chequeo y plantillas. Estos materiales son llamados activos de procesos. • Los activos de proceso son cualquier elemento que la organización considere útil para realizar con éxito el proceso de desarrollo de un producto software.
del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas Descripciones de procesos Descripciones de procesos Procedimientos Procedimientos Planes de desarrollo Planes de desarrollo Políticas Políticas Planes de adquisición Planes de adquisición Planes de aseguramiento de la calidad Planes de aseguramiento de la calidad Materiales de entrenamiento Materiales de entrenamiento Ayudas al proceso Ayudas al proceso Lecciones aprendidas Lecciones aprendidas Descripciones de actividades Descripciones de actividades
Gestión del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas Fácil navegación Fácil navegación Refuerzo de conceptos útiles de definición de procesos Refuerzo de conceptos útiles de definición de procesos Facilidad de búsqueda Facilidad de búsqueda Información relevante Información relevante Múltiples vistas de información basadas en diferentes criterios definidos por el usuario Múltiples vistas de información basadas en diferentes criterios definidos por el usuario Soporte a la gestión de solicitudes de cambio Soporte a la gestión de solicitudes de cambio Permisos de lectura amplios Permisos restrictivos de escritura Permisos de lectura amplios Permisos restrictivos de escritura Animar el uso de activos, no sólo su creación y mantenimiento Animar el uso de activos, no sólo su creación y mantenimiento Seguimiento del uso de la PAL Seguimiento del uso de la PAL
del Conocimiento sobre Procesos Software: PAL-Wiki PAL Procesos Softwar Herramientas 7. Revisar la PAL 6. Revisar periódicamente el uso de los ítems 5. Hacer los ítems disponibles en proyectos 4. Ingresar y catalogar los ítems 3. Procedimientos para almacenar y recuperar 2. Especificación de criterios para incluir ítems 4. Catálogo de ítems en la PAL 3. Ítems seleccionados a incluirse en la PAL 2. PAL 1. Diseño de la PAL Nivel de Madurez 3: Definido Área: Gestión del Proceso – Definición del Proceso Organizacional SP1.5. Establecer la PAL Productos de trabajo 1. Diseñar e implementar la PAL Sub prácticas
la capacidad de una entidad para realizar una acción efectiva”. • KM pretende administrar formalmente recursos de conocimiento que posee una organización: • Para facilitar la creación, integración y difusión de conocimiento por medio de tecnologías avanzadas. • Permitiendo a la empresa enfrentarse a cambios en su entorno. • Adaptarse a nuevos escenarios, aumentando su capacidad competitiva y la mejora de sus productos y procesos. 36 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Knowledge Management
Procesos Software: PAL-Wiki Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Tipos y Niveles de Conocimiento • Niveles de conocimiento – Datos – Información – Conocimiento • Tipos de conocimiento – Tácito Explícito
Procesos Software: PAL-Wiki Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Framework de Gestión del Conocimiento [Nonaka & Takeuchi, 1995]
Procesos Software: PAL-Wiki Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Wikis • Leuf et al. (2001): “La base de datos más simple que posiblemente funcione. La wiki es una pieza de un servidor software que permite a los usuarios crear y editar libremente el contenido de una página web usando cualquier navegador web.”. • Ebersbach et al. (2006): “Un software basado en web que permite a todos los lectores de una página cambiar el contenido mediante su edición en línea”. • Wikipedia (2011):“Un sitio web colaborativo el cual puede ser editado directamente por cualquiera que tenga acceso a él”.
Procesos Software: PAL-Wiki Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Características de las Wikis • Repositorio central • Edición • Enlaces • Historial • Cambios recientes • Funciones de búsqueda • Categorías • Seguridad • Discusiones • Plantillas • Extensiones
(2008) Plan of Record (2004) OntoWiki (2009) SmartWiki (2009) WikiReq (2009) Wiquila (2008) Riki (2007) Trac (2009) Reuso de Componentes Desarrollo Colaborativo Requisitos de Software Documentaci ón XSDoc (2005) Ben Chaim (2009) WikiDev (2009) Artefact os ShyWiki (2009) Arquitectura de Sw SOP (2009) Gestión de Experiencias MASE (2005) PAL Wongboonsin et al. (2008) 45 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Ben-Chaim et al. (2010) Clerc et al. (2010) Modelado Dengler et al. (2010) Lohmann (2010) WikiFab (2010) Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Wikis en Ingeniería de Software
Procesos Software: PAL-Wiki 1. La prioridad más alta es satisfacer al cliente a través de la entrega pronta y continua de software valioso. 2. Son bienvenidos los requisitos cambiantes, aún en una etapa avanzada de desarrollo. Los procesos ágiles dominan el cambio para provecho de la ventaja competitiva del cliente. 3. Entregar con frecuencia software que funcione, de dos semanas a un par de meses, de preferencia lo más pronto que se pueda. 4. El personal de negocios y los desarrolladores deben trabajar juntos, a diario y durante todo el proyecto. 5. Hay que desarrollar los proyectos con Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Metodologías Ágiles Manifiesto Ágil (I)
Procesos Software: PAL-Wiki 6. El método más eficiente y eficaz para transmitir información a los integrantes de un equipo de desarrollo, y entre éstos, es la conversación cara a cara. 7. La medida principal de avance es el software que funciona. 8. Los procesos ágiles promueven el desarrollo sostenible. Los patrocinadores, desarrolladores y usuarios deben poder mantener un ritmo constante en forma indefinida. 9. La atención continua a la excelencia técnica y el buen diseño mejora la agilidad. Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Metodologías Ágiles Manifiesto Ágil (II)
Procesos Software: PAL-Wiki 10.Es esencial la simplicidad: el arte de maximizar la cantidad de trabajo no realizado. 11.Las mejores arquitecturas, requerimientos y diseños surgen de los equipos con organización propia. 12.El equipo reflexiona a intervalos regulares sobre cómo ser más eficaz, para después afinar y ajustar su comportamiento en consecuencia. Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Metodologías Ágiles Manifiesto Ágil (III)
realizar los procesos si no tienen alguna tecnología para almacenar y buscar conocimiento para hacer sus actividades. • Definir el conocimiento sobre el proceso software, saber dónde está, quién lo tiene, qué pasos seguir y cómo utilizarlo (Raffo et al., 2008) (Bayona et al., 2008). • Los equipos deben contar con: • Soporte para crear, almacenar, buscar y encontrar el conocimiento (Derniame et al., 2004) (Ruiz-González et al., 2004). • Mecanismos para aprender y utilizar procesos y así realizar sus tareas (Forrester, 2006). • Entrenamiento en los procesos con una infraestructura de bajo coste (Dangle et al., 2005). 52 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Problemas
deben ser flexibles y modificables (Burnstein, 2003). • Es necesario almacenar el conocimiento, empaquetarlo y suministrarlo a otros proyectos (Aurum et al., 2008). 53 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Necesidades
Procesos Software: PAL-Wiki Se necesita algún mecanismo que permitan a los desarrolladores de software almacenar el conocimiento sobre procesos para construir productos software. ¿Cómo realizar este proceso? Por medio de Librerías de Activos de Proceso Software (PAL) que soportan el almacenamiento, recuperación y despliegue de las definiciones del proceso. ¿Qué conceptos se pueden utilizar? Gestión del Cambio hacia una cultura centrada en el proceso, Mejora del Proceso Software (SPI) para mejorar la eficiencia de las prácticas de ingeniería , y Gestión del Conocimiento (KM) con ideas para generar, compartir y aplicar el conocimiento. ¿Qué tecnologías se pueden utilizar? Tecnologías Web 2.0 que ofrecen una infraestructura de tecnologías de una forma más colaborativa e interactiva y Wikis que usan la Web para permitir la construcción colaborativa del conocimiento. Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Justificación
Software: PAL-Wiki 55 Ingeniería de Procesos Relación de Calidad Proceso/Prod ucto Despliegue del Proceso Organización de procesos para reutilización Desarrollo de una infraestructura para ingeniería de procesos Soporte para la adopción efectiva del proceso Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki International Process Research Consortium - IPRC
Procesos Software: PAL-Wiki El modelo de PAL-Wiki puede ser aplicado a procesos software cuyos elementos puedan representarse a través de un conjunto estructurado de formularios. Procesos Ágiles - Justificación: • Poseen un conjunto pequeño de activos que están integrados al proceso. • Pueden ser aplicados en pequeños proyectos. • Promueven una cultura para compartir el conocimiento tácito. • Requieren de repositorios de conocimiento que permitan a los equipos Gestión del Conocimiento Introducción PAL-Wiki Estado del Arte Metodologías Ágiles Procesos Ágiles
de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Definición del Proceso Despliegue del Proceso Mejora del Proceso Herramientas de socialización y colaboración Repositorios de conocimiento Wikis Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Áreas de Conocimiento
definidos Proyecto de software Despliegue del proceso Gestión de la PAL Mejora del proceso Producto Software Mediciones de activos Edición colaborativa Aprendizaje de Procesos Gestión del Proceso Software Actividades realizadas Ejemplos de activos 58 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Arquitectura PAL-Wiki
Open Source, edición WYSIWYG, exportar datos, soporte multi-idioma, sistema operativo, sistema de almacenamiento, búsqueda, plugins/extensiones, historia de las páginas, instalación y documentación. • Configuraciones básicas: • Acceso restringido sólo a usuarios registrados. • Prohibición de creación de nuevas cuentas. • Personalización de la barra de navegación. • Subida de archivos. • Páginas protegidas para evitar su edición. • Configuraciones avanzadas: • Semantic MediaWiki, Semantic Forms, Header Tabs, Flash, Estadísticas (Usage Statistics, Google Analytics y FireStats). 59 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Selección Software
Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Modelo de Procesos SPEM Procesos ágiles en la PAL-Wiki
acceder al conocimiento del proceso. • La PAL-Wiki durante el desarrollo de proyectos influye en los niveles de calidad de los productos de trabajo. • El aprendizaje está relacionado con la cantidad de accesos, el tiempo de permanencia y la cantidad de activos descargados. • Los modelos de procesos definidos sirven como guías para implementar futuras PAL. • La PAL-Wiki es un ambiente efectivo de aprendizaje que proporciona material útil durante prácticas y proyectos. 67 ía de Activos para la Gestión del Conocimiento sobre Procesos Software: PAL-Wiki Gestión del Conocimiento Procesos Software PAL Herramientas Metodologías Ágiles PAL-Wiki Beneficios