16. PROCESOS ORGANIZACIONALES Proceso de gestión de activos Este proceso sirve para gestionar la vida de los activos reutilizables desde su concepción hasta su retirada. Proceso de gestión del programa de reutilización Este proceso sirve para planificar, gestionar, controlar y monitorizar el programa de reutilización de una organización y explotar de forma sistemática las oportunidades de reutilización. Proceso de ingeniería de dominio Este proceso sirve para desarrollar y mantener modelos de dominio, arquitecturas de dominio y activos para el dominio. GESTIÓN DEL CONOCIMIENTO ING. SOFTWARE
17. PROCESOS ORGANIZACIONALES GESTIÓN DEL CONOCIMIENTO Subproceso de gestión del conocimiento Propósito : “ asegurar que el conocimiento, la información y las habilidades individuales se recogen, comparten, reutilizan y mejoran a lo largo de la organización ”. Resultados: - se establece y mantiene una infraestructura para la compartición de la información común y de dominio a través de la organización - el conocimiento se encuentra disponible readily y compartido a lo largo de la organización - la organización seleccionará la estrategia de gestión del conocimiento apropiada. ING. SOFTWARE
18. PROCESOS ORGANIZACIONALES GESTIÓN DEL CONOCIMIENTO Tareas relativas a la gestión del conocimiento - el director planificará los requisitos para gestionar los activos de conocimiento de la organización, incluyendo la infraestructura y la formación para soportar los contribuidores y los usuarios de los activos de conocimiento de la organización, el esquema de clasificación y los criterios para estos activos. - el director establecerá una red de expertos dentro de la organización y se asegurará que se mantiene actualizada. - el director establecerá un mecanismo para soportar el intercambio de información entre expertos y el flujo de la información de los expertos en los proyectos de la organización. - se llevará a cabo la gestión de configuración de los activos de acuerdo con el proceso de gestión de configuración. ING. SOFTWARE
19.
20. GESTIÓN DEL CONOCIMIENTO ING. SOFTWARE CARACTERIZACIÓN DEL CONOCIMIENTO EN DISEÑO DE MICRO ARQUITECTURAS OO (Garzás y Piattini, 2005) Principios . Patrones. Heurísticas. Buenas Prácticas. Malos Olores. Defectos. Refactorizaciones.
23. 0..n cumple 0..n 0..n 0..n implica utilizar 0..n 0..n implica utilizar Declarativo Refactorización mecánica Conocimiento en Diseño de Micro Arquitecturas OO nombre propósito también conocido como motivación aplicabilidad participantes colaboración consecuencias diseño de ejemplo usos conocidos Regla recomendación Patrón estructura es introducido por 0..n { una, otra o las dos, pero siempre alguna} 0..n 0..n 1..n Operativo 0..n está compuesto de es introducido por
29. GESTIÓN DEL CONOCIMIENTO ING. SOFTWARE SC7 System Software Documentation WG2 WG6 Process Assessment WG10 Tools And Environment WG4 Life Cycle Management WG7 System Assurance WG9 Business Planning Group SWG 1 Software Engineering Body of Knowledge WG20 ODP and Modeling Languages WG19 Secretariat Asset Management WG21 Architecture Management WG12 Functional Size Measurement Vocabulary WG22 SWG 5 Software Product Measurement and Evaluation Systems Quality Management WG23
41. GESTIÓN DEL CONOCIMIENTO FÁBRICA DE EXPERIENCIA Beneficios para la organización - establecer un proceso de mejora de software sustentado y controlado por datos cuantitativos - producir un repositorio de datos y modelos software que estén basados empíricamente en la práctica diaria - desarrollar una organización de soporte interno que limite la sobrecarga y proporcione beneficios sustanciales de desempeño de coste y calidad - proporcionar un mecanismo para identificar, valorar, e incorporar en los procesos nuevas tecnologías que hayan demostrado ser valiosas en contextos similares - incorporar y soportar la reutilización en el proceso de desarrollo de software
42. GESTIÓN DEL CONOCIMIENTO FÁBRICA DE EXPERIENCIA Aspectos de calidad de un repositorio Schneider y von Hunnius (2003) - guía al usuario , sobre todo para empezar reutilizando las experiencias - usabilidad , ya que una pobre usabilidad puede scare away al usuario - conformidad con el proceso , hacer de un proceso mejorado el centro del repositorio de experiencias, siguiendo la estructura del proceso subyacente - mecanismos de realimentación , pro medio de diferentes canales (correo electrónico, pizarras electrónicas, FAQ, contactos personales y telefónicos, etc.) - mantenibilidad , para que las reestructuraciones sean fáciles
43. GESTIÓN DEL CONOCIMIENTO FÁBRICA DE EXPERIENCIA Modelo dinámico de creación de conocimiento de ingeniería del software. Dybå (2003)
44. GESTIÓN DEL CONOCIMIENTO FÁBRICA DE EXPERIENCIA FACTORES FACILITADORES CONOC. LOCAL GENERACIÓN CONOC. MEMORIA ORGANIZ. INTERPRET. CONOC. Orientación al negocio X XX X Implicación de los líderes X XX X Participación de los empleados XX XX X XX Preocupación por la medición XX X Explotación del conoc. existente X XX X X Exploración de nuevo conoc. XX XX
45. GESTIÓN DEL CONOCIMIENTO FÁBRICA DE EXPERIENCIA Modelo SEKS (Software Eng.Knowledge-Sharing) Oliver et al. (2003)
52. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS FAMILIAS DE ESTUDIOS (BASILI ET AL., 2001) Criterios para la construcción de cuerpos de conocimiento en áreas de Ingeniería del Software: 1. Fijar hipótesis de alto nivel que sean de interés para la comunidad de Ingeniería del Software 2. Hipótesis detalladas escritas en un contexto que permitan un experimento bien definido 3. Variables de contexto, sugeridas por las hipótesis, que puedan modificarse para permitir variaciones en el diseño experimental 4. Una cantidad suficiente de información para que el experimento pueda ser replicado 5. Una comunidad de investigadores que comprendan la experimentación, la necesidad de réplica y que estén dispuestos a colaborar y replicar
56. La experimentación provee una manera sistemática, disciplinada, cuantificable y controlada de evaluar actividades desarrolladas por humanos. Wohlin et al. (2000) GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS
64. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Off-line vs. On-line Evitar riesgos Incrementa costes Estudiantes vs. profesionales Reducir costes Facilitar el control ¿Generalización? Problemas de jueguete vs. problemas reales Reduce costes y tiempo ¿Generalización? Específicos vs. generales Reduce costes y tiempo ¿Generalización?
65. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Validez de constructo ¿ Hasta qu é punto las medidas seleccionadas miden las variables que aparecen en la hip ó tesis ? Validez de las conclusiones ¿ Hasta qu é punto las conclusiones son estad í sticamente v á lidas ? Validez interna ¿ Causa “ realmente ” el tratamiento el efecto ? Validez externa ¿ Pueden generalizarse los resutados obtenidos ? Evaluación de la validez
75. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS 1. DEFINITION Analyse UML class diagrams complexity metrics For the purpose of Evaluating With respect to The capability to be used as early quality indicators From the point of view of OOIS designers In the context of Undergraduate students and professors of the Software Engineering Area in the Department of Computer Science in the UCLM
93. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Sujetos Profesionales de una empresa española con una experiencia media de tres años en el campo de las bases de datos. Once personas desarrollaron el experimento siendo todos ellos válidos. VALIDACIÓN EMPÍRICA: Réplica Relacional
97. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS De ambos experimentos se deduce que la métrica NFK parece ser un indicador sólido de la entendibilidad del esquema mientras que resulta más complicado obtener una conclusión para la métrica DRT
98.
99.
100.
101.
102.
103. RCOST - Grupo Alarcos GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS The impact of educational background on design knowledge sharing during pair programming 3rd Conference Professional Knowledge Management Experiences and Visions
104. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS The current work is part of a family of experiments, aiming at evaluating the relationship between the paradigm practice of working in pairs applied to any phase of software process and knowledge building about the ‘big picture’ of the system Experimento: Hipótesis Ho: the difference in education between the pair’s components does not affect the building of system knowledge realized by the pair’s components. H1: the difference in education between the pair’s components affects the building of system knowledge realized by the pair’s components. Sujetos 4 couples with one MUTS student and one MUTEGS student; 5 couples with two MUTS students; 5 couples with two MUTEGS students; the other 16 subjects, MUTS and MUTEGS, worked as solo designers.
106. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS First Replica Students enrolled at the Department of Computer Science at the University of Castilla-La Mancha in Spain Second Replica The subjects were students of the course Software Engineering, at the fifth and final year of the laurea degree in Computer Engineering at University of Naples, Federico II
110. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS ¿QUÉ CUESTIONES HAY QUE TENER EN CUENTA A LA HORA DE EVALUAR UN EXPERIMENTO?
111.
112.
113.
114.
115. Holístico Embebido Caso simple Caso múltiple CONTEXTO caso Unidad de análisis 1 Unidad de análisis 2 U. análisis 1 U. análisis 2 U. análisis 1 U. análisis 2 U. análisis 1 U. análisis 2 U. análisis 1 U. análisis 2 CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso CONTEXTO caso
116. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Unidad de recogida de datos vs. la unidad de análisis D I S E Ñ O Fuente de recogida de datos Conclusiones del estudio De un individuo De una organización Acerca de un individuo Comportamiento individual Actitudes individuales Percepciones individuales Registros de archivo Otros comportamientos, actitudes y percepciones reportadas Si el caso de estudio es un individuo Acerca de una organización Cómo trabaja la organización Por qué trabaja la organización Políticas de personal Productos de la organización Si el caso de estudio es una organización
117. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS 2. Recogida de evidencias Fuente de evidencia Ventajas Inconvenientes Documentación Estable: se puede revisar de manera repetida No intrusiva: no creada como resultado del caso de estudio Exacta: contiene nombres y referencias exactas y detalles de un evento Amplia cobertura: larga extensión de tiempo, muchos eventos, y muchos entornos Recuperabilidad: puede ser baja Selectividad sesgada: si la recogida es incompleta Sesgo al informar: refleja el sesgo (desconocido) del autor Acceso: puede ser bloqueado deliberadamente Registros de archivos (Los mismos de la documentación) Precisa y cuantitativa (Los mismos de la documentación) Accesibilidad debida a razones personales Entrevistas Centradas: directamente en el tema del caso de estudio Proporciona inferencia causal inferida Sesgo debido a cuestiones pobremente construidas Sesgo en las respuestas Inexactitudes debidas a pobre recuerdo Reflexividad: el entrevistado da al entrevistador lo que quiere oir
118. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Fuente de evidencia Ventajas Inconvenientes Observación directa Realidad: abarca eventos en tiempo real Contextual: abarca el contexto del evento Consume tiempo Selectividad: excepto una amplia cobertura Reflexividad: un evento puede desarrollarse de forma diferente por ser observado Coste: horas necesarias para los observadores humanos Observación participante (Los mismos de la observación directa) Da ideas de comportamientos y motivos personales (Los mismos de la observación directa) Sesgo debido a la manipulación de los eventos por parte del investigador Artefactos físicos Iluminador en características culturales Iluminador en operaciones técnicas Selectividad disponibilidad
119.
120.
121. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS Validez de los casos de estudio Pruebas Táctica de caso de estudio Fase de la investigación en que ocurre la táctica Validez de constructo usar varias fuentes de evidencia establecer una cadena de evidencias hacer que informadores clave revisen el borrador del informe de caso de estudio Recogida de datos Recogida de datos Composición Validez interna Hacer pattern-matching Hacer construcción de explicaciones Abordar las explicaciones rivales Utilizar modelos lógicos Análisis de datos “ “ “ “ Validez externa Utilizar teoría en casos de estudio únicos Utilizar lógica de replicación en casos múltiples Diseño de la investigación “ Fiabilidad Utilizar protocolo de caso de estudio Desarrollar una base de datos de casos de estudio Recogida de datos “
122. desarrollar teoría seleccionar casos diseñar protocolo de recogida de datos realizar 1º caso de estudio realizar 2º caso de estudio realizar restantes caso de estudio escribir Informe de caso individual escribir Informe de caso individual escribir Informe de caso individual obtener conclusiones intercasos modificar teoría escribir conclusiones intercasos desarrollar implicaciones políticas
123. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS ¿QUÉ COMPONENTES TENDRÍA UN MARCO PARA LA RECOGIDA Y ANÁLISIS DE INFORMES DE CASOS DE USO INDUSTRIALES?
124. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS ENCUESTAS (Yin, 2003) 1. Fijar objetivos específicos y medibles 2. Planificar la encuesta 3. Asegurar que están disponibles los recursos adecuados 4. Diseñar la encuesta 5. Preparar el instrumento de recogida de datos 6. Validar el instrumento 7. Seleccionar los participantes 8. Administrar y puntuar el instrumento 9. Analizar los datos 10. Informar sobre los resultados
141. GESTIÓN DEL CONOCIMIENTO FAMILIAS DE ESTUDIOS ¿QUÉ FALLOS Y QUÉ ACIERTOS SE PUEDEN IDENTIFICAR EN LAS SIGUIENTES ENCUESTAS?
142.
143. GESTIÓN DEL CONOCIMIENTO CONCLUSIONES Necesidades de una organización de software relacionadas con el conocimiento Aurum et al. (2003) - disminuir el tiempo de desarrollo y el coste y aumentar la calidad - tomar mejores decisiones - conocimiento sobre nuevas tecnologías - conocimiento sobre el dominio del problema - conocimiento acerca de políticas, prácticas y proyectos pasados locales - ubicar fuentes de conocimiento - necesidad de compartir el conocimiento de forma distribuida
144. GESTIÓN DEL CONOCIMIENTO CONCLUSIONES Factores que posibilitan el proceso de gestión del conocimiento en las organizaciones de software - tecnología que enlaza los desarrolladores y crea un repositorio de memoria organizacional accesible a toda la organización - liderazgo que impulsa la gestión de conocimiento en el desarrollo de productos y servicios software así como en los procesos de trabajo - cultura organizacional que soporte la compartición de conocimiento, experiencias, tecnologías e innovación
145. GESTIÓN DEL CONOCIMIENTO CONCLUSIONES Un soporte de conocimiento efectivo en el desarrollo de software requiere el soporte tanto de la gestión como de los niveles técnicos - soporte del proceso software, modelos de mejora de procesos, actividades, resultados de los procesos, etc. - soporte del producto software, diseño, ingeniería, modelado, - soporte al personal , adaptar un workflow, etc.
146. GESTIÓN DEL CONOCIMIENTO CONCLUSIONES Modelo de gestión del conocimiento adecuado Ebert et al. (2003) Estrategia de negocio Modelo de gestión Organización Conceptos Tipo de conoc. Reducción de costes Productividad Compartir, evitando redundancia Base de información Explícito Especialización Calidad Mejores prácticas Procesos comunes Explícito Innovación Creatividad Integración y combinación de conocimiento Conocimiento dinámico Tácito
147.
148.
Notas del editor
Antes de comenzar a explicar el proceso experimental introduciremos una serie de definiciones para conocer el vocabulario que se usa en estos ámbitos. Cuando realizamos un experimento controlado queremos estudiar el resultado cuando variamos algunas variables de entrada del proceso. Aquellas variables que queremos estudiar para ver el efecto de los cambios en las variables independientes se llaman VARIABLES DEPENDIENTES (O VARIABLES RESPUESTA). A menudo hay una única variable dependiente en los experimentos. Aquellas variables que son manipuladas y controladas se llaman VARIABLES INDEPENDIENTES. Ejemplo: Queremos evaluar el efecto de un nuevo método de desarrollo en la productividad del personal. Queremos introducir un método orientado a objetos en lugar de un método orientado al proceso. Variable dependiente: productividad. Variable independiente: el método de desarrollo, la experiencia, las herramientas y el ambiente. Un experimento estudia el efecto de cambiar una o mas variables independientes. Aquellas variables se llaman FACTORES. El resto de variables independientes son controladas en un nivel fijo durante el experimento, de otra manera no podríamos decir si el factor u otra variable causa el efecto. Un tratamiento es un determinado valor para un factor. En nuestro ejemplo: El factor es el método de desarrollo, ya que queremos evaluar el efecto cuando cambiamos el método. Y utilizamos dos tratamientos del factor: El método viejo y el nuevo. Los tratamientos serán aplicados Los tratamientos serán aplicados a una combinación de OBJETOS Y SUJETOS. Un objeto puede ser un documento que debe ser revisado con diferentes técnicas de inspección. Las personas que aplican el tratamiento son los SUJETOS
Enmascarada: tambi é n recibe el nombre de variable confundida (confounded variables). Es una variable extra ñ a que tiene la propiedad de variar simultaneamente con los cambios en los niveles de la variable independiente. Esta circnstancia hace que rivalice con la variable independiente como posible causa. La selecci ó n de las variables independientes no siempre es f á cil y requiere conocimiento del dominio del experimento. Son las que van a influir en las dependientes, y por tanto la selecci ó n se hace conjuntamente. Ellas llevan impl í citamente la escala de medida y el rango. Van a determinar los tratamientos, como veremos m á s adelante en el dise ñ o de experimentos Las variables dependientes o respuesta no siempre son directamente medibles, cuando se trabaja con medidas indirectas hay que ser cuidadoso en su elecci ó n pues repercutir á en las conclusiones a las que lleguemos. C ó mo antes ir á asociada la escala y el rango. El resto de las variables que aparecen en el experimento son aquellas que pueden influir en la variable dependiente de forma indirecta, unas se controlan en el dise ñ o, esto es, se obliga a que tomen determinados valores, por ejemplo se eligen inspectores que hayan trabajado con los m é todos a probar un tiempo determinado(experiencia), con lo cual pueden aparecer en el dise ñ o nuevos grupos de tratamiento. Otras se aleatorizan, aparecen en el dise ñ o como un error aleatorio, para el caso de la experiencia se pueden clasificar por experiencia a los sujetos y asignar al azar el mismo n ú mero de cada clase a cada tratamiento. Y hay otras que var í an conjuntamente con la variable independiente, con lo cual rivalizan con ella en la interpretaci ó n de los resultados. Si la variable independiente es una t é cnica nueva de inspecci ó n y junto con la t é cnica novedosa se cambi ó el m é todo de dise ñ o, la variaci ó n de los resultados no sabremos a que se debe... Despues de identificar las variables de un experimento según la clasificacion anterior debemos minimizar el sesgo de las enmascaradas que sean conocidas. Para ello se perfilan dos soluciones: bien pasan a ser controladas mediante alguna tecnica de control, la cual depende del tipo de diseño experimental o bien se consideran aleatorias, conviertiendose en una fuente de error debido al azar. Esta claro entonces, que las técnicas para controlar las variables extrañas sirven para disminuir los errores aleatorios o reducir los efectos de las enmascaradas, o ambos
Un tratamiento es un valor particular de un factor (por ejemplo los dos tratamientos serían el antiguo y el nuevo método de desarrollo). Los tratamientos son aplicados a combinaciones de sujetos y objetos. Un objeto puede ser un documento revisado con diferentes técnicas de inspección. La gente que aplica los tratamientos son los sujetos . Un experimento consiste en un conjunto de tests (también llamados trials) siendo cada test la combinación de un tratamiento, un objeto y un sujeto.
Las fases principales de un experimento son: Determinar los objetivos del mismo, el porqué del experimento Planificar el experimento, la salida más importante de esta fase es el diseño del experimento que determinará el tipo de análisis estadístico que podemos hacer Llevarlo a cabo con un entrenamiento piloto, normalmente Analizar e interpretar los resultados: el tipo de análisis estará condicionado por la hipótesis del experimento, el tipo de variables que hayamos elegido (escala) y el diseño En la discusión se debe incluir por que es relevante la hipótesis del estudio, por que se ha hecho el diseño, como se han salvado las amenazas a la validez del mismo o por qué se han preferido soslayar unas y no otras, la aplicación de las conclusiones o su repercusión en la comunidad de I. Del software, si hay trabajos futuros cuales son y por que etc A partir de las conclusiones de un experimento se pueden poner en marcha nuevos estudios para: Confirmar los hallazgos, Extender su validez, Descubrir nuevo conocimiento (modelos o hipótesis) sugerido por el experimento Un proceso provee los pasos a seguir en una determinada actividad, por ejemplo el desarrollo de software Los procesos son importantes ya que proveen checklists y guías sobre que hacer y cómo hacerlo. El proceso experimental básico puede ser utilizado para estudios empíricos distintos de los experimentos, pero debe ser adaptado, por ejemplo realizar una encuesta mediante el uso de correo electrónico o un caso de estudio de un proyecto de desarrollo de software El punto partida de experimento es tener la idea de que un experimento puede ser una manera posible para evaluar lo que estamos interesados es decir tenemos que estar convencidos de que un experimento es la manera apropiada para responder aquella pregunta que queremos investigar
El propósito de utilizar una plantilla para la definición del objetivo de un experimento es asegurar que todos los aspectos importantes de un experimento son definidos antes que se realice la planificación y la ejecución del experimento. Objeto de estudio. Es la entidad que es estudiada en el experimento. Pueden ser productos, procesos, recursos, modelos, métricas o teorías. Propósito. Define cuál es la intención del experimento. Puede ser evaluar el impacto de dos técnicas diferentes, o caracterizar la curva de aprendizaje de una organización. Enfoque de calidad. Es el primer efecto estudiado en el experimento. Puede ser la efectividad, el costo, la fiabilidad, etc. Perspectiva. Se refiere al punto de vista desde el cual los resultados del experimento son interpretados. Contexto. Es el “ambiente” en el cual se ejecuta el experimento. El contexto describe brevemente cuáles son los sujetos involucrados en el experimento y que artefactos de software son utilizados en el experimento. El primer paso a dar en el diseño de un experimento es definir claramente el Por qué del mismo. El modelo de definición de objetivos de wholin es un patrón que ayuda a sistematizar la definición de objetivos, y de ordenarlos para que no se olvide ningún aspecto relevante en la definición del experimento. La planificación nos indicará cómo. El ejemplo corresponde a un artículo de Regnell99 (ref de wholin)