tendencias en ingeniería de software e inteligencia artificial
Transcription
tendencias en ingeniería de software e inteligencia artificial
TENDENCIAS EN INGENIERÍA DE SOFTWARE E INTELIGENCIA ARTIFICIAL – VOLUMEN 3 ISBN: 978-958-44-5820-9 TENDENCIAS EN INGENIERÍA DE SOFTWARE E INTELIGENCIA ARTIFICIAL – VOLUMEN 2 Carlos Mario Zapata J. Gloria Lucía Giraldo G. Juan David Velásquez H. (Editores) DERECHOS RESERVADOS Queda prohibida la reproducción o transmisión total o parcial del texto de la presente obra bajo cualesquiera formas, electrónica o mecánica, incluyendo fotocopiado, almacenamiento en un sistema de recuperación de información, o grabado sin el consentimiento previo y por escrito del editor. Datos para Catalogación Bibliográfica: Zapata, Carlos Mario, Giraldo, Gloria Lucía y Velásquez, Juan David (Ed) Tendencias en Ingeniería de Software e Inteligencia Artificial ISBN: 978-958-44-5820-9 ISBN VOLUMEN 2: 978-958-44-3666-5 ISBN VOLUMEN 1: 978-958-44-1344-4 Esta obra se terminó de editar en Octubre de 2008 en la Escuela de Sistemas de la Universidad Nacional de Colombia Medellín, Colombia. Impreso en Colombia Printed in Colombia TENDENCIAS EN INGENIERÍA DE SOFTWARE E INTELIGENCIA ARTIFICIAL – VOLUMEN 3 Editado por: CARLOS MARIO ZAPATA J. GLORIA LUCÍA GIRALDO G. JUAN DAVID VELÁSQUEZ H. ISBN: 978-958-44-5820-9 AGRADECIMIENTOS La realización de este volumen fue posible gracias al interés suscitado por los autores para su participación en el mismo, su entusiasmo por la divulgación de los resultados de las investigaciones actualmente en curso y su disposición para atender las inquietudes de los editores, con el fin de lograr una obra de altísima calidad. Agradecemos a nuestros principales colaboradores en Manizales, Ph.D.(c) Néstor Duque, y Bogotá Ph.D. Jonatan Gómez, por el compromiso y la alta dosis de constancia y paciencia para hacer de esta obra una realidad. TABLA DE CONTENIDO TEMA PÁGINA PARTE 1: INGENIERÍA DE SOFTWARE 1 1. Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software, utilizando como marco de referencia COMPETISOFT Francisco Javier Valencia 3 2. Análisis comparativo del estándar ISO 9000-3 con las subcaracterísticas de calidad de la ISO 9126 César Jesús Pardo, Francisco Pino, César Alberto Collazos, Jovani Alberto Jiménez 11 3. Generación automática de ontologías para la educción de requisitos a partir de reglamentos y documentación técnica Carlos Mario Zapata, Alexander Gelbukh, Carlos Méndez 21 4. Pre-conceptual Schemas revisited: Generating conceptual schemas from controlled languages Carlos Mario Zapata 29 5. An Approach to a Query Functional Language for Relational Models Represented in Hierarchic Structures Julián David Vargas, Helga Duarte 37 6. Sistema de Intercambio de Información Académica Estudiantil Helga Duarte, Carlos Lugo 43 7. Plataforma para la Gestión del Conocimiento sobre Procesos de Software Leonardo Bermón, Antonio Amescua, Javier García, Alberto Heredia 51 8. Explotación de Especificaciones Normalizadas para Extender la Construcción Automática de Sistemas Mediadores Gloria Lucía Giraldo, Germán Urrego-Giraldo 59 9. Alternativas metodológicas y técnicas para la generación de pruebas a partir de modelos Henry Roberto Umaña, Miguel Angel Cubides 69 10. La Estructura Social de la Corrección de Bugs Jairo Hernán Aponte, Sonia Haiduc, Adrian Marcus 77 11. Del modelo de Requisitos al Modelo de diseño Germán Urrego-Giraldo, Gloria Lucía Giraldo 83 PARTE 2: INTELIGENCIA ARTIFICIAL 93 12. La inteligencia artificial como paradigma de “tercera cultura” Manuel Bedia, Luis Fernando Castillo 95 13. Inteligencia artificial en los procesos de planificación de la producción en sistemas Job Shop Omar Castrillón, Leonardo Grajales 101 14. Modelado basado en competencias laborales integrado en ambientes de e-learning Ernesto García, Jovani Alberto Jiménez, Demetrio Arturo Ovalle 109 15. Optimización global basada en una teoría de la formación del universo Eddy Mesa, Juan David Velásquez, Gloria Patricia Jaramillo 117 iii TABLA DE CONTENIDO TEMA PÁGINA 16. Algoritmos evolutivos en ambientes Job Shop Omar Castrillón, Javier Rodrigo Peña, Lina Eliana Ávila 121 17. Algoritmos bio-inspirados Eddy Mesa, Juan David Velásquez, Gloria Patricia Jaramillo 127 18. Onto-semantic and Intelligent Multi-agent Model for Computer Attacks Detection and Prevention Gustavo Isaza, Néstor Darío Duque, Andrés Castillo; Marcelo López 135 19. Un Entorno de Agentes para Aplicaciones Orientadas a Servicios Jaime Alberto Guzmán, Ingrid Durley Torres, Daniel Alonso Areiza 143 20. Hacia un Modelo basado en Agentes de Software para las etapas de Recopilación e Integración de datos en el proceso de KDD Daniel Betancur, Julián Moreno 151 21. Modelado de la bolsa de valores de Colombia: Una aproximación desde los agentes de software Julián Moreno, Alejandro Escobar, Sebastián Múnera 159 22. Modelo de Integración de Agentes Móviles Inteligentes en Redes de Sensores Inalámbricos Alberto Alejandro Piedrahita, Alcides Montoya, Demetrio Ovalle 167 23. Representación de máxima covarianza por ventanas temporales/espectrales orientada a la clasificación de señales Carolina Acosta, Mauricio Orozco, César Germán Castellanos 175 24. Clasificación de Imágenes Médicas mediante un Kernel de Semántica Latente José Moreno, Juan Caicedo, Edwin Niño, Fabio González 183 25. Técnicas de Inteligencia Artificial Aplicadas para un Modelo Dinámico del Estudiante Héctor Mauricio González, Nestor Darío Duque 189 26. Introducción a los flujos de datos con un enfoque a la minería de asociación aplicada al flujo de clicks en la Web Alix Rojas, Elizabeth León 199 27. Hacia un Sistema de Recuperación de Información Utilizando Índices Combinados de Términos y Extracción de Información: Resultados Preliminares Carlos Fernando Ariza, Jairo Jesús Díaz, Elizabeth León 207 28. Clasificación de eventos sísmicos en el volcán Nevado del Ruiz empleando reglas fijas de combinación de clasificadores Cristian Andrés Chu, Mauricio Orozco 215 29. Wavelets para la predicción de series económicas Liliana Marcela Olarte, Sandra Liliana Rojas 221 30. Predicción de series de tiempo no estacionarias: demodulación compleja Javier Ricardo Escobar, Sandra Liliana Rojas 229 31. Robótica Modular Rodrigo Moreno, Fernando Cagua, Christian Martin, Jonatan Gómez 235 PREFACIO Nos encontramos en presencia de una nueva generación de investigadores en Ingeniería de Software e Inteligencia Artificial. Las contribuciones al conocimiento se hacen cada vez más comunes en nuestras sedes, nutridas por las Maestrías y Doctorados que se vienen consolidando en la Universidad Nacional y con la consciencia y profesionalismo de nuestros investigadores. Ya llegamos al tercer volumen del libro ―Tendencias en Ingeniería de Software e Inteligencia Artificial‖, con novedades importantes como la presencia de nuestro nuevo editor Juan David Velásquez quien, junto con Carlos Zapata y Gloria Giraldo, se encargó de la búsqueda de la calidad de cada uno de los capítulos del libro. Una segunda novedad es el notorio incremento en la participación de los investigadores de las diferentes sedes, destacándose la sede de Manizales con una gran participación en este tercer volumen. Para este tercer volumen nos alienta la esperanza de consolidación de la Comunidad Académica en Ingeniería de Software e Inteligencia Artificial como una entidad transnacional que debe comenzar a rendir frutos pronto. La proximidad de los temas en diferentes sedes augura la posibilidad de trabajo conjunto en el futuro, lo cual requiere de la participación de todos nuestros investigadores. Al igual que los volúmenes uno y dos, este libro se dirige a los investigadores en Ingeniería de Software e Inteligencia Artificial, para descubrir posibles líneas de acción en la investigación a nivel nacional de estas disciplinas. Por el carácter científico y tecnológico de las diferentes temáticas abordadas, se requiere buen nivel de conocimientos específicos en el lector sobre estas disciplinas. El libro contiene 31 capítulos agrupados en dos partes. En la primera parte se abordan algunos temas de la Ingeniería de Software, tales como las normas de calidad de software (Capítulos 1 y 2), ontologías y diagramas para la educción de requisitos (Capítulos 3 y 4), los lenguajes de consulta (Capítulo 5), los sistemas de información (Capítulo 6), la gestión del conocimiento (Capítulo 7), los sistemas mediadores (Capítulo 8), las pruebas de software (Capítulos 9 y 10) y la transición de los requisitos al diseño (Capítulo 11). En la segunda parte, se inicia con una reflexión sobre la Inteligencia artificial (Capítulo 12), seguido por varias tendencias en esta área, tales como la planificación (Capítulo 13), el e-learning (Capítulo 14), los algoritmos evolutivos y bioinspirados (Capítulos 15, 16 y 17), los sistemas multiagente aplicados a diferentes entornos (Capítulos 18, 19, 20, 21 y 22), la clasificación de señales e imágenes (Capítulos 23 y 24), los modelos dinámicos (Capítulo 25), los flujos de datos (Capítulo 26), la recuperación de información en la Web (Capítulo 27), las técnicas de clasificación (Capítulo 28) la predicción de series de tiempo (Capítulos 29 y 30) y la robótica modular (Capítulo 31). Los capítulos no son secuenciales, por lo cual la lectura se puede abordar desde cualquiera de ellos; sin embargo, para tomar una mayor visión de cada uno de los temas se recomienda una lectura cuidadosa de cada una de las partes del libro. Para aquellos investigadores que posean habilidades en las dos disciplinas, los diferentes capítulos podrán suministrarles ideas en relación con la forma como se podrían unir temas afines, por ejemplo los modelos multiagentes y el KDD, el e-learning y las técnicas de modelado, la gestión del conocimiento y los diferentes procesos del software, etc. v Para esta publicación, la carrera ―Ingeniería de Sistemas e Informática‖, perteneciente a la Escuela de Sistemas de la Facultad de Minas de la Sede Medellín recibió la acreditación por un periodo de seis años, después de la evaluación de los pares designados por el Consejo Nacional de Acreditación. Una gran parte de esta acreditación se apoyó en los procesos de investigación que se mencionaban al inicio de este prefacio. Con la acreditación se renueva el compromiso que tiene la Escuela de Sistemas con la calidad y se vislumbra un futuro promisorio que se está volviendo, paulatinamente, una realidad concreta con la vinculación de muchos de nuestros egresados al sector productivo del país y a varios de nuestros programas de Maestría y Doctorado. PARTE 1: INGENIERÍA DE SOFTWARE Índice ―Consistency and predictability are still desirable, but they haven‘t ever been the most important things. For the past 40 years, for example, we‘ve tortured ourselves over our inability to finish a software project on time and on budget. But as I hinted earlier, this never should have been the supreme goal. The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business. We‘ve been rather successful at transformation, often while operating outside our control envelope. Software development is and always will be somewhat experimental. The actual software construction isn‘t necessarily experimental, but its conception is. And this is where our focus ought to be. It‘s where our focus always ought to have been.‖ T. DeMarco – IEEE Software, July/August 2009 Tendencias en Ingeniería de Software e Inteligencia Artificial – volumen 3 Capítulo 1. Índice Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software, utilizando como marco de referencia COMPETISOFT. FRANCISCO JAVIER VALENCIA DUQUE Grupo de Investigación GAIA – Grupo de Ambientes Inteligentes Adaptativos- Departamento de Informática y Computación. Universidad Nacional de Colombia sede Manizales, [email protected] COMPETISOFT. The aim of this chapter is to demonstrate the affinity between the management rule NTC 6001:2008 and the quality framework for software process COMPETISOFT, for any small software you can attach two models in the implementation of a quality management system. Resumen La norma técnica colombiana NTC 6001:2008, es una norma de calidad orientada a las MYPES, que establece los requisitos fundamentales para implementar un sistema de gestión de calidad en cualquier sector económico. En el sector del software, en los últimos años varias entidades del orden nacional e internacional, han venido desarrollando modelos de calidad de software diferentes a los tradicionales (CMMI, ISO 9001) para volver más productivas y competitivas las micro y pequeñas factorías de software; algunos elementos de estas iniciativas se han consolidado en un modelo denominado COMPETISOFT. El objetivo de este capítulo es demostrar la afinidad existente entre la norma de gestión de calidad NTC 6001:2008 y el marco de referencia de procesos de software COMPETISOFT, para que cualquier pyme de software pueda acoplar ambos modelos en la implementación de un sistema de gestión de calidad. 1. Introducción Las micro y pequeñas empresas en Colombia, comúnmente denominadas MYPES, representan un alto porcentaje del tejido empresarial colombiano, es por ello que el Gobierno Nacional trazó una serie de políticas para mejorar su productividad y competitividad a través del documento CONPES 3484 del 2007, el cual dio origen a la NTC 6001:2008 como una norma dirigida a MYPES para desarrollar sistemas de gestión de calidad. De igual forma en el sector del software, diferentes organizaciones han desarrollado modelos de procesos de software orientado a PYMES para incrementar la competitividad de estas, a través de la implementación de procesos de mejora continua. Dentro de esos modelos se destaca COMPETISOFT, como un marco de referencia integrador de otros modelos tales como MOPROSOFT, SIMEP-SW, MPS.BR que serán explicados de manera general en este capítulo. Abstract Colombian Technical Standard NTC 6001:2008 is a quality standard driven by MYPES, which establishes the basic requirements for implement a quality management system in any sector economic. In the software sector in recent years several national entities and international, have been developing software quality models than the traditional (CMMI, ISO 9001) to become more productive and competitive micro and small software factories, some of these initiatives have consolidated into a model called Existe una gran problemática, para que las MYPES puedan implementar modelos tradicionales de calidad de software tales como ISO 9001 (con apoyo de la ISO 9003) y CMMI, debido al nivel de esfuerzo requerido para tal fin y a los recursos necesarios para llevar a cabo una iniciativa de este tipo. De ahí la importancia 3 Capítulo 1: Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software utilizando como marco de referencia COMPETISOFT. Valencia Duque F.J. tanto de la NTC 6001:2008 como de los modelos de procesos de software orientados a MYPES, en este caso representados por COMPETISOFT; pero aún más importante es evaluar el nivel de acople que ambos modelos tienen para integrar un solo esquema que oriente a las PYMES de software en una implementación eficaz y eficiente. En este capítulo se lleva a cabo un paralelo de ambos modelos, desde los ―debes‖ de la norma hacia los procesos de COMPETISOFT, para demostrar el nivel de interrelación entre ambos. Para ello se ha organizado el capítulo iniciando con una caracterización general del sector de software en Colombia y la problemática existente en las micro pequeñas y medianas empresas, en lo relacionado con la calidad de software. Posteriormente se presenta una descripción general de las principales iniciativas para mejora de procesos de software en MYPES y PYMES. Y previo a realizar el paralelo entre los ―debes‖ de la NTC 6001:2008 y COMPETISOFT, se realiza una descripción general de la norma y los principales ―debes‖ de ésta, así como las principales características de COMPETISOFT, sus procesos y los objetivos de cada uno de ellos. Figura 1. Distribución de empresas de software en Colombia (2005). Si se tiene en cuenta que las microempresas y pequeñas empresas son actores estratégicos en el crecimiento de la economía, la transformación del aparato productivo nacional y el mejoramiento la posición competitiva del país [3], se requiere tanto a nivel general como en particular en la industria del software, desarrollar mayores niveles de productividad y competitividad empresarial para garantizar no solo su permanencia en el mercado, sino un mayor aporte a la economía colombiana. 2. Las MYPES de Software y la mejora de Procesos de Software Uno de los instrumentos para mejorar la productividad y competitividad de las MYPES, es desarrollar sistemas de gestión empresarial que permitan implementar procesos de mejora continua y ofrecer productos y servicios de calidad, que satisfagan las necesidades de los clientes; la cual es una de las falencias de la industria del software tanto a nivel nacional como internacional. En general las micro y pequeñas empresas de software tienen serios problemas de madurez en sus procesos de desarrollo y en la mayoría de los casos la operación de sus procesos es caótica [1]. A nivel mundial la industria del software está formada en mayor medida por micro, pequeña y medianas empresas desarrolladoras de software que suponen cerca del 90% de los negocios formales y generan entre el 40% y el 50% del empleo total [1]. Colombia, no es la excepción, de acuerdo con FEDESOFT, referenciado en [2], el 92% de la industria de software en Colombia corresponde a microempresas y pequeñas empresas (MYPES), el 7% a medianas empresas y el restante 1% a grandes empresas. Es decir nuestras empresas de software se caracterizan por contar con no más de 10 trabajadores y menos de 500 salarios mínimos legales vigentes (excluida la vivienda) en activos, para el caso de las microempresas y en el caso de las pequeñas empresas su planta de personal oscila entre 11 y 50 trabajadores y entre 501 y menos de 5000 salarios mínimos legales vigentes, de acuerdo a las definiciones establecidas en la ley 905 del 2004. Acorde a lo anterior y teniendo presente una tendencia generalizada de la academia y la industria a resaltar que la mejora de procesos de software exitosos solo son posibles para empresas grandes que cuentan con recursos suficientes para embarcarse en este tipo de prácticas, fundamentado en que los programas de mejora de procesos de software (SPI) son prohibitivos para PYMES de desarrollo de software debido a la estructura organizacional de dichas empresas, al costo que los programas de mejora implican y a que los estándares de mejora propuestos internacionalmente por organismos como el Software Engineering Institute (SEI) e International Organization for Standarization (ISO) no han sido creados para éste tipo de empresas sino para empresas grandes [4], se requiere desarrollar 4 Tendencias en Ingeniería de Software e Inteligencia Artificial – volumen 3 modelos de gestión de calidad ajustado a las particularidades de las micro, pequeñas y medianas empresas, que les permita ayudar a cumplir las exigencias del mercado, mejorar su competitividad a través de la satisfacción de los clientes y la mejora continua. fortalecer la industria del software en México [7]. El objetivo es la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software que resulte apropiada a las características de las empresas mexicanas de desarrollo y mantenimiento de software que en su gran mayoría son PYMES. 2.1. Principales iniciativas para la mejora de procesos de software en las MYPES y las PYMES. COMPETISOFT: es un proyecto financiado por el Programa Iberoamericano de Ciencia y Tecnología para el Desarrollo–CYTED-con el objetivo de incrementar el nivel de competitividad de las PYMES Iberoamericanas productoras de software, mediante la creación y difusión de un marco metodológico común que, ajustado a necesidades específicas, pueda llegar a ser la base sobre la cual se establezca un mecanismo de evaluación y certificación de la industria del software reconocido en toda Iberoamérica [8]. En los últimos años, diferentes países, a través de diversas instituciones, han desarrollado modelos de procesos de calidad de software orientados a micro, pequeñas y medianas empresas, con el fin no solo de ajustar sus procesos a la idiosincrasia propia de cada país, sino, y fundamentalmente para incrementar sus niveles de competitividad. Dentro de estas iniciativas se destacan las siguientes: Este modelo es una iniciativa integradora de los modelos expuestos anteriormente, con otras experiencias relacionadas con procesos de desarrollo de software para PYMES. MPS.BR Mejora de procesos del software Brasileño: creado en diciembre del 2003 bajo la coordinación de la Asociación para promoción de la Excelencia del software Brasileño (SOFTEX), con el apoyo del Banco Interamericano de Desarrollo, cuyo objetivo fue desarrollar y diseminar un modelo de procesos de software (el modelo MPS) con el fin de establecer un camino económicamente viable para que organizaciones, incluyendo las Pequeñas y Medianas Empresas (PYMES), logren los beneficios de la mejora de procesos y de la utilización de buenas prácticas de la ingeniería de software en un intervalo de tiempo justo a un costo razonable [5]. ITMARK: es un modelo internacional desarrollado por el European Software Institute (ESI), cuyo objetivo es la certificación de calidad y madurez de procesos, especialmente enfocada a PYMES del sector tecnológico. No es un modelo exclusivo de procesos de software, es un modelo que contempla tres perspectivas de las MYPES tecnológicas: la Gestión General que estudia diez categorías de procesos de gestión; la Seguridad de la Información basada en la norma ISO/IEC 17799:2005 y los procesos de desarrollo de software y sistemas, núcleo del modelo, basado en CMMI [9]. SIMEP-SW (Sistema Integral de Mejoramiento de los procesos de desarrollo de software): proyecto desarrollado por la Universidad del Cauca con la financiación de Colciencias y cuyo objetivo es crear, aplicar y probar un sistema de mejora que integre elementos de modelos de calidad, mejora y evaluación reconocidos internacionalmente, adaptados a las características propias de la industria del software colombiano. El principal resultado de este proyecto fue el marco de trabajo Agile SPI, con la premisa esencial de que los modelos utilizados son ligeros y basados en estándares internacionales y acorde a las características, idiosincrasia y circunstancias de la realidad socioeconómica de la industria del software colombiana [6]. ISO/IEC 29110: es un proyecto de norma orientado a VSE (Very Small Enterprise), liderado por ISO quien convocó en junio del 2005 a un grupo de trabajo (WG24) para definir procesos de software para pequeñas empresas. Esta futura norma está estructurada en una familia de documentos que contemplan: una Visión General, que incluye los conceptos principales necesarios para comprender y utilizar los documentos de la norma; unos perfiles que se definen con el propósito de empaquetar referencias a partes de otros documentos de manera formal y las guías que contienen directrices de aplicación sobre cómo realizar los procesos para alcanzar los niveles de madurez [10]. Existen otra serie de iniciativas, además de CMMI e ISO 9001 (con su complemento de la ISO 9003 para empresas de software), no orientadas exclusivamente a micro, pequeñas y medianas empresas, pero relacionadas con procesos de software, que pueden MOPROSOFT. Modelo de Procesos para la Industria del Software. Es un modelo mexicano, creado a solicitud de la Secretaria de Economía en México, dentro del programa Nacional para el desarrollo de la industria del software, con el fin de 5 Capítulo 1: Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software utilizando como marco de referencia COMPETISOFT. Valencia Duque F.J. servir de marco de referencia a cualquier organización que desee desarrollar procesos de calidad de software, estos modelos son entre otros: METRICA, MANTEMA, SPIRE, TOPS, IMPACT. fundamentales para implementar un sistema de gestión en micro y pequeñas empresas, sin importar su línea de negocios o sector económico, de manera que les permita demostrar la capacidad de cumplir las exigencias del mercado y los requisitos reglamentarios aplicables y fortalecer su competitividad, teniendo en cuenta el nivel de satisfacción de los clientes y la mejora continua [11]. 3. La Norma NTC 6001:2008 y su relación con COMPETISOFT. Hoy gran parte de nuestras empresas colombianas de software acuden a la certificación en ISO 9001 con apoyo de la ISO 90003 y la ISO/IEC 12207 como un paso intermedio para aquellas empresas que desean alcanzar una certificación en CMMI. La aplicación de esta norma facilita la implementación de los modelos internacionales de los sistemas de gestión, tales como ISO 9001[12]. De igual forma las MYPES de software, tienen hoy la opción de incorporarse a los sistemas de gestión de calidad, de forma paulatina, a unos costos y esfuerzos razonables, iniciando con una norma local como es la NTC 6001:2008, que no tiene correspondencia con una norma internacional, pero que les ayudará a dar los primeros pasos para ser más competitivas en el ámbito nacional. Una forma gráfica de presentar los procesos que hacen parte de la norma, es la siguiente: La norma NTC 6001:2008 parte de las funciones básicas que debe tener una MYPE y a partir de allí se desarrollan los procesos que hacen parte de la norma. Una vez madurado su sistema de gestión y si desea incrementar su nivel de competitividad e internacionalizar sus mercados, puede dar su segundo paso de forma natural hacia la certificación en ISO 9001:2008, con un nivel un poco más exigente de recursos. Figura 2. Mapa de procesos NTC 6001:2008 Y por último, si desea alcanzar mayores niveles de madurez podrá avanzar en procesos de certificación con IT MARK o directamente con CMMI. A continuación se presentan los aspectos más relevantes de los ―debes‖ de la norma, como punto de partida para llevar a cabo un mapeo entre ésta y COMPETISOFT. Acorde a lo anterior, y con el fin de que una MYPE de software inicie su proceso de certificación en la NTC 6001:2008, y teniendo en cuenta que COMPETISOFT es un marco de referencia que incorpora muchos de los componentes de los demás modelos de procesos de software para PYMES, se desarrollará a continuación un paralelo entre esta norma y COMPETISOFT. PROCESOS DE DIRECCIÓN PLANIFICACION Y DIRECCIONAMIENTO PD1-La Dirección debe definir, comunicar y mantener actualizada su estrategia organizacional orientada a la satisfacción del cliente y a la mejora continua. PD2-La Dirección debe identificar, implementar y mantener uno o varios procedimientos para evaluar la capacidad de cumplir con los requisitos legales y reglamentarios que sean aplicables y otros requisitos dependiendo del sector en el cual realiza sus actividades o el mercado al cual dirige sus bienes o servicios o ambos PD3-La Dirección debe definir y planificar sus procesos, considerando que éstos son de dirección, operacionales y de apoyo. EVALUACIÓN DE LA GESTIÓN Para tal fin, partiremos de los principales ―debes‖ de la norma, que se convierten en requisitos obligatorios al momento de una certificación; y a partir de allí se realizará un cruce con los procesos de COMPETISOFT, partiendo del análisis de sus objetivos. 3.1. Acerca de la NTC 6001:2008 ICONTEC promulgó en el mes de marzo del 2008, la norma NTC 6001:2008 que establece los requisitos 6 Tendencias en Ingeniería de Software e Inteligencia Artificial – volumen 3 EG1-La Dirección debe planificar y realizar con una periodicidad definida, las actividades de análisis y evaluación necesarias relativas a: - el cumplimiento de la estrategia organizacional, incluyendo el uso de indicadores; - La satisfacción del cliente; - El desempeño de los procesos para la organización; - La implementación de mecanismos de control y evaluación necesarios para la mejora continua de los procesos, bienes o servicios, o ambos EG2- La Dirección debe implementar, planes de mejora continua, que incluyan - proyectos para mejorar el desempeño; - Acciones correctivas para eliminar las causas de los problemas detectados; acciones preventivas para evitar la ocurrencia de problemas potenciales. PROCESOS OPERATIVOS GESTION COMERCIAL GC1-La empresa debe planificar, documentar, implementar y mantener actualizado su proceso de gestión comercial PLANIFICACIÓN DE PRODUCTOS PP1-La empresa debe definir y documentar las especificaciones, teniendo en cuenta las necesidades del mercado, los requisitos técnicos y las necesidades del cliente, aspectos legales y reglamentarios de los productos por suministrar. PP2-Se debe planificar y documentar el proceso de realización del producto en función de sus especificaciones, necesidades de los procesos y de las proyecciones de innovación, desde la recepción de la información sobre las características del producto o servicio, hasta la entrega al destino final, identificando las etapas, actividades críticas o los puntos de control, recursos y responsables. DISEÑO Y DESARROLLO DE PRODUCTOS DDP1-Cuando la empresa defina o modifique las características de sus productos, según las exigencias de los clientes, del mercado y los proyectos de innovación, debe establecer documentar y ejecutar un plan de diseño. GESTIÓN DE COMPRAS GC1-La empresa debe definir y documentar el proceso de compra del producto. GC2-La empresa debe definir y documentar las especificaciones del producto que se va a comprar GC3-La empresa debe definir y documentar previamente las necesidades o requerimientos de compra GC4-La empresa debe definir y documentar los criterios de selección de los proveedores y registro de su cumplimiento. GC5-La empresa debe verificar que el producto adquirido cumpla los requisitos de compra especificados. GC6-La empresa debe definir y mantener las condiciones adecuadas de almacenamiento para la preservación y conservación de los productos adquiridos. PRODUCCION DE BIENES O PRESTACIÓN DEL SERVICIO PB1-La empresa debe establecer un programa de producción de bienes o prestación del servicio documentado. PROCESOS DE APOYO RECURSOS HUMANOS RH1-La empresa debe planificar e implementar un proceso de gestión humana, que le permita contar con el personal adecuado para el desarrollo de sus actividades GESTION DE LA INFORMACIÓN GI1:La empresa debe establecer y aplicar un procedimiento para el manejo de la información GESTIÓN FINANCIERA GF1: La empresa debe mantener actualizada la información relacionada con la identificación de los riesgos potenciales, los costos de sus bienes o servicios, el nivel mínimo de operación (punto de equilibrio), los informes periódicos de la situación financiera. GESTION DE RECURSOS FÍSICOS GRF1: La empresa debe disponer de la infraestructura, maquinaria, equipos y condiciones necesarias para cumplir los requisitos de los procesos de los productos. GRF2: La empresa debe determinar y planificar el mantenimiento de la infraestructura y de los equipos que le permitan su funcionamiento adecuado GFR3: La empresa debe, cuando sea aplicable, tener verificados y calibrados los equipos de medición y los correspondientes registros. 3.2. Procesos y Objetivos de COMPETISOFT Una MYPE de software que tome la decisión de adoptar la NTC 6001:2008, deberá contextualizar algunos de los procesos requeridos por ésta, fundamentalmente los procesos operativos que equivalen al ciclo de vida de desarrollo de software y algunos de los procesos de apoyo. Para ello podrá tomar como marco de referencia general la norma ISO/IEC 12207 y como marco específico COMPETISOFT. 7 Capítulo 1: Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software utilizando como marco de referencia COMPETISOFT. Valencia Duque F.J. Es importante tener en cuenta que tanto la ISO 12207, como COMPETISOFT, son marcos de referencia que guían a una organización en la utilización de mejores prácticas para el desarrollo de los procesos de software, pero es la MYPE la que debe establecer los procesos ajustados a las necesidades de la organización. necesidades de los clientes, así como evaluar los resultados para poder proponer cambios que permitan la mejora continua. Este proceso se compone de Planificación Estratégica, Preparación para la realización y Valoración y mejora continua. CATEGORIA: GESTIÓN GES1- GESTIÓN DE PROCESOS El propósito del proceso es establecer los procesos de la organización, en función de los procesos requeridos identificados en el Plan Estratégico. Así como definir, planificar e implantar las actividades de mejora en los mismos. GES2- GESTIÓN DE PROYECTOS El propósito de la Gestión de Proyectos es asegurar que los proyectos contribuyan al cumplimiento de los objetivos y estrategias de la organización. GES3- GESTIÓN DE RECURSOS HUMANOS El propósito de Recursos Humanos es proporcionar los recursos humanos adecuados para cumplir las responsabilidades asignadas a los roles dentro de la organización, así como la evaluación del ambiente de trabajo. GES4- GESTIÓN DE BIENES, SERVICIOS E INFRAESTRUCTURA El propósito de Gestión de Bienes, Servicios e Infraestructura es proporcionar proveedores de bienes, servicios e infraestructura que satisfagan los requisitos de adquisición de los procesos y proyectos. GES5- GESTIÓN DE CONOCIMIENTO El propósito de Gestión de Conocimiento es mantener disponible y administrar la Base de Conocimiento que contiene la información y los productos generados por la organización. CATEGORIA: OPERACIÓN OPE1- ADMINISTRACIÓN DE UN PROYECTO ESPECÍFICO El propósito de la Administración de un Proyecto específico es establecer y llevar a cabo sistemáticamente las actividades que permitan cumplir con los objetivos de un proyecto en tiempo y costo esperados. OPE2-DESARROLLO DE SOFTWARE El propósito de Desarrollo de Software es la realización sistemática de las actividades de análisis, diseño, construcción, integración y pruebas de productos de software nuevos cumpliendo con los requisitos especificados y con las normativas de seguridad de información. OPE3-MANTENIMIENTO DE SOFTWARE El propósito de este proceso es la realización de las actividades relacionadas con el mantenimiento y modificación de productos de software. COMPETISOFT está integrado por tres categorías y 9 procesos, como se puede apreciar en la figura 3. A su vez cada uno de los procesos cuenta con un esquema integrado por tres partes: Definición general del proceso, prácticas y guías de ajuste [13]. Figura 3. Estructura de procesos de COMPETISOFT. Referenciado en 8. En la definición general del proceso se identifica su nombre, categoría a la que pertenece, propósito, descripción general de sus actividades, objetivos, indicadores, metas cuantitativas, responsabilidad y autoridad, subprocesos en caso de tenerlos, procesos relacionados, entradas, salidas y productos internos. En las Prácticas se identifican los roles involucrados en el proceso y las competencias requeridas, se describen las actividades en detalle, asociándolas a los objetivos del proceso, se presenta un diagrama de flujo de trabajo, se describen las verificaciones y validaciones requeridas, se listan los productos que se incorporan a la base de conocimiento, se identifican los recursos de infraestructura necesarios para apoyar las actividades, se establecen las mediciones del proceso. En las Guías de ajuste se sugieren modificaciones al proceso que no deben afectar los objetivos del mismo. Los propósitos y algunas características de los procesos de COMPETISOFT se presentan a continuación: CATEGORIA: ALTA DIRECCIÓN DIR1- GESTIÓN DEL NEGOCIO El propósito del proceso es establecer la razón de ser de la organización, sus objetivos y las condiciones para lograrlos, para lo cual es necesario considerar las 8 Tendencias en Ingeniería de Software e Inteligencia Artificial – volumen 3 3.3. Mapeo de Procesos NTC 6001:2008 Vs. COMPETISOFT Tomando como referencia los ―debes‖ de los procesos de la norma NTC 6001:2008 y los objetivos de cada uno de los procesos de COMPETISOFT, se realizará a continuación un mapeo entre ambos, con el fin de establecer su nivel de relación, para tenerlo en cuenta como marco de referencia para las MYPES de software, en un proceso de certificación. PROCESO 6001:2008 ISO GESTIÓN DE LA INFORMACIÓN GI1 GESTIÓN FINANCIERA GF1 GRF1 GESTIÓN DE RECURSOS FÍSICOS HUMANOS GES5- GESTIÓN DEL CONOCIMIENTO GES4- GESTIÓN DE BIENES , SERVICIOS E INFRAESTRUCTU RA GRF2 GRF3 CÓDIGO DEBE PROCESOS COMPETISOFT EQUIVALENTE PROCESOS DE DIRECCIÓN PD1 DIR1- GESTIÓN DEL NEGOCIO PLANIFICACIÓN Y DIRECCIONAMIEN PD2 TO PD3 GES1- GESTIÓN DE PROCESOS EG1 DIR1- GESTIÓN DEL NEGOCIO (Actividad de valoración y mejora continua de la organización) EVALUACIÓN DE LA GESTIÓN EG2 DIR1- GESTIÓN DEL NEGOCIO (Actividad de valoración y mejora continua de la organización) PROCESOS OPERATIVOS GESTIÓN GC1 COMERCIAL PLANIFICACIÓN PP1 GES2- GESTIÓN DE PRODUCTOS DE PROYECTOS PP2 DISEÑO Y DDP1 OPE1DESARROLLO DE ADMINISTRA PRODUCTOS CIÓN DE UN PROYECTO ESPECÍFICO GC1 GC2 GC3 GESTIÓN DE COMPRAS GC4 GC5 GC6 PRODUCCIÓN DE PB1 OPE2BIENES O DESARROLLO DE PRESTACIÓN DEL SOFTWARE. SERVICIO OPE3MANTENIMIEN TO DE SOFTWARE PROCESOS DE APOYO RECURSOS RH1 GES3- GESTIÓN HUMANOS DE RECURSOS Una vez desarrollado el mapeo, se puede evidenciar un alto grado de interrelación de la norma con los procesos de COMPETISOFT, como para pensar que cualquier MYPE de software que desee llevar a cabo un proceso de certificación en la NTC 6001:2008 puede tomar como marco de referencia específico a COMPETISOFT. Con respecto a aquellos ―debes‖ de la norma que no tienen una clara interrelación con COMPETISOFT, existen otras prácticas y marcos de referencia propios de las TIC‘s que les permitirá complementar los procesos faltantes. Como ejemplo se puede mencionar el caso de los procesos de gestión financiera, a través de los siguientes ―debes‖: -―Identificación de los riesgos potenciales que puedan llegar a afectar los activos y establecer las acciones preventivas necesarias para salvaguardarlos‖. Para dar cumplimiento a este requisito existen diferentes normas y metodologías de gestión de riesgos tanto a nivel corporativo como tecnológico; como punto de partida se puede tener en cuenta el estándar internacional AS/NZ 4360:2004 y la norma técnica colombiana de gestión de riesgos NTC 5254:2005; si se requieren metodologías específicas de gestión de riesgos tecnológicos se puede acudir a metodologías tales como MAGERIT, OCTAVE o el recién liberado marco de referencia de riesgos de TI denominado ―Enterprise Risk: Identify, Govern and Manage IT Risk‖ por parte de ISACA. -―Establecer los costos de sus bienes o servicios y mantener registros de los cálculos de éstos‖. Para ello es importante desarrollar metodologías de costeo de software teniendo en cuenta metodologías tales como TCO (Total Cost of Ownership) para estimar los costos directos e indirectos, o esquemas específicos para desarrollar la estimación de proyectos de software tales como: puntos de función, COCOMO o una combinación de estos. 9 Capítulo 1: Adaptación de la norma NTC 6001:2008 a micro y pequeñas empresas (MYPES) de software utilizando como marco de referencia COMPETISOFT. Valencia Duque F.J. 4. Conclusiones [6] INTECO, Estudio sobre la certificación de la calidad como medio para impulsar la industria de desarrollo del software en España, INTECO, España, 2008. Referenciado 4. Referenciado 5. La implementación de un sistema de gestión de calidad en una organización, es un requisito fundamental para mejorar la calidad de sus productos y servicios y por ende incrementar su nivel de competitividad. Las MYPES ya cuentan con una norma de gestión de calidad ajustada a sus características y con un marco de referencia de procesos de software que le permiten implementar de manera ágil un sistema de gestión de calidad con criterios de eficacia y eficiencia. En este capítulo, se han interrelacionado los ―debes‖ de la norma NTC 6001:2008 con los procesos que hacen parte de COMPETISOFT, dando como resultado un alto nivel de acoplamiento de ambos modelos, para integrar un combo que agilice el proceso de implementación de un sistema de gestión de calidad en las MYPES de software. [7] Comunidad MOPROSOFT, http://www.comunidadmoprosoft.org.mx/COMUNIDAD_M OPROSOFTADM/Documentos/V1.3_MoProSoft.pdf. Referenciado 5 [8] COMPETISOFT, http://alarcos.infcr.uclm.es/Competisoft/. Referenciado 5 [9] FEDESOFT, http://www.fedesoft.org/downloads/Sinertic/RESUME N_MODELO_IT_MARK.pdf. Referenciado 5. [10] KYBELECONSULTING, http://www.kybeleconsulting.com/downloads/MCGarcia_Me joraProcesos_ISO29110.pdf. Referenciado 5. [11] ICONTEC, http://www.icontec.org/BancoConocimiento/N/noticia__lazamiento_norma_mype/noticia__lazamiento_norma_mype.asp?CodIdioma=ESP&CodSeccio n=39. Referenciado 6. 5. Trabajo Futuro Actualmente el grupo de investigación se encuentra elaborando un documento, que suministra una orientación más detallada para orientar a las PYMES de software en la aplicación de la NTC 6001:2008, referenciando COMPETISOFT y otros marcos de referencia para ser presentado a la comunidad académica y al sector productivo como una herramienta de apoyo para facilitar la implementación de sistemas de gestión de calidad que ayuden a mejorar la competitividad de las pequeñas factorías de software. [12] ICONTEC, Norma técnica colombiana NTC 6001, ICONTEC, Bogotá, 2008. Referenciado 6. [13] COMPETISOFT, Mejora de procesos para Fomentar la Competitividad de la Pequeña y Mediana Industria del Software de Iberoamérica. CYTED, Versión 2.0, 2006. Referenciado 8 6. Referencias [1] M, Piattini Velthuis y otros, Fábricas de software: experiencias, tecnologías y organización, Alfaomega Grupo Editor, México, 2007. Referenciado 4. [2] Oficina Económica y comercial de la Embajada de España en Bogotá, El mercado del software en Colombia, Instituto Español de comercio exterior, Bogotá, 2006. Referenciado 4. [3] Departamento Nacional de Planeación, Política Nacional para la transformación productiva y la promoción de las micro, pequeñas y medianas empresas: un esfuerzo público privado, DNP, Bogotá, 2007. Referenciado 4. [4] F, Pino, ―Revisión sistemática de mejora de procesos de software en micro, pequeñas y medianas empresas‖, Revista española de Innovación, Calidad e Ingeniería de software, Volumen 2, Número 1, 2006, pp.6-23, Referenciado 5. [5] A, Cavalcanti da Rocha y Kival Chaves Weber, MPS.BR lecciones aprendidas, Asociación para la Promoción de la Excelencia del Software Brasileño- SOFTEX, Campinas, 2008. Referenciado 5. 10 Tendencias en Ingeniería de Software e Inteligencia Artificial – volumen 3 243