Trata de la Metaheuristica y la Ingenieria del Software, pero utilizando organismos o colonias de organismos vivos, para la creacion, uso, implementacion y aplicacion de algoritmos basados en los mismos
Este documento presenta un resumen de los conceptos básicos de diseño de experimentos. Explica los diseños factoriales 2k, sus ventajas y cómo permiten estudiar el efecto de múltiples factores. Incluye un ejemplo con un diseño factorial 22 para evaluar el efecto del tamaño de broca y la velocidad sobre la vibración producida por un barrenador. Calcula los efectos de cada factor a través de la notación de Yates y determina que el tamaño de broca tiene la mayor influencia sobre la vibración.
Este documento presenta un resumen de un trabajo de grado para optar al título de Ingeniero Químico. El trabajo analiza la selección de tecnología para la deshidratación de gas natural en una planta compresora. El estudio evalúa diferentes sistemas de deshidratación para determinar la mejor opción para eliminar el contenido de agua en el gas natural y así prevenir problemas operacionales en la planta.
Este documento presenta un sistema propuesto para la evaluación de riesgos laborales. El sistema se basa en el método simplificado de evaluación de riesgos de accidentes de la Nota Técnica de Prevención 330, al que se añaden cuestionarios e inventarios para identificar y medir diversos riesgos. El sistema proporciona una metodología unificada para que los Centros de Prevención de Riesgos Laborales de la Junta de Andalucía evalúen de forma técnicamente adecuada y homogénea los riesgos en los centros
Este documento presenta un cuaderno de estudio para el programa preliminar de ingeniería de la Universidad Técnica Federico Santa María. Incluye 10 secciones que cubren temas matemáticos fundamentales como lógica simbólica, teoría de conjuntos, funciones, geometría analítica, números naturales y reales, trigonometría, números complejos, límites y continuidad. El cuaderno proporciona los conceptos y herramientas matemáticas básicas necesarias para los estudiantes de ingeniería.
Este documento presenta la tesis doctoral de Mario Álvarez Cabria titulada "Estudio de la variabilidad espacio-temporal de las comunidades de macroinvertebrados bentónicos en los ecosistemas fluviales de Cantabria. Repercusiones para la aplicación de la Directiva Marco del Agua". La tesis fue dirigida por José Barquín Ortiz y José A. Juanes de la Peña en la Universidad de Cantabria. El documento incluye agradecimientos y el índice de la tesis, la cual está compuesta por seis capítu
Sistema de gestion de mantenimiento empresa sant ex almeida santiagoFrancisco Narvaez
Este documento presenta un resumen de tres oraciones del proyecto de investigación "Estudio de la gestión de mantenimiento y su incidencia en la disponibilidad de los equipos y maquinaria en la empresa Santex del cantón Pelileo". El proyecto analiza el sistema de mantenimiento actual de la empresa y propone un nuevo sistema para mejorar la disponibilidad de los equipos. Se aplicaron encuestas al personal y se evaluó el sistema actual mediante una matriz para diagnosticar problemas y oportunidades de mejora.
29. 2011 septiembre edgar alan buentelloAndres Cruz
Este resumen describe el desarrollo de soportes para catalizadores a base de zeolita-β/alúmina-γ modificados con nitrato de bario y calcio para estabilización térmica. Se utilizaron tres métodos de impregnación: inmersión, cogelación y mojado incipiente. Los materiales se sometieron a altas temperaturas para simular ciclos de regeneración. Las caracterizaciones incluyeron análisis químico, textural y de difracción de rayos X. Los soportes calcinados a 1000°C
Este documento presenta un resumen de los conceptos básicos de diseño de experimentos. Explica los diseños factoriales 2k, sus ventajas y cómo permiten estudiar el efecto de múltiples factores. Incluye un ejemplo con un diseño factorial 22 para evaluar el efecto del tamaño de broca y la velocidad sobre la vibración producida por un barrenador. Calcula los efectos de cada factor a través de la notación de Yates y determina que el tamaño de broca tiene la mayor influencia sobre la vibración.
Este documento presenta un resumen de un trabajo de grado para optar al título de Ingeniero Químico. El trabajo analiza la selección de tecnología para la deshidratación de gas natural en una planta compresora. El estudio evalúa diferentes sistemas de deshidratación para determinar la mejor opción para eliminar el contenido de agua en el gas natural y así prevenir problemas operacionales en la planta.
Este documento presenta un sistema propuesto para la evaluación de riesgos laborales. El sistema se basa en el método simplificado de evaluación de riesgos de accidentes de la Nota Técnica de Prevención 330, al que se añaden cuestionarios e inventarios para identificar y medir diversos riesgos. El sistema proporciona una metodología unificada para que los Centros de Prevención de Riesgos Laborales de la Junta de Andalucía evalúen de forma técnicamente adecuada y homogénea los riesgos en los centros
Este documento presenta un cuaderno de estudio para el programa preliminar de ingeniería de la Universidad Técnica Federico Santa María. Incluye 10 secciones que cubren temas matemáticos fundamentales como lógica simbólica, teoría de conjuntos, funciones, geometría analítica, números naturales y reales, trigonometría, números complejos, límites y continuidad. El cuaderno proporciona los conceptos y herramientas matemáticas básicas necesarias para los estudiantes de ingeniería.
Este documento presenta la tesis doctoral de Mario Álvarez Cabria titulada "Estudio de la variabilidad espacio-temporal de las comunidades de macroinvertebrados bentónicos en los ecosistemas fluviales de Cantabria. Repercusiones para la aplicación de la Directiva Marco del Agua". La tesis fue dirigida por José Barquín Ortiz y José A. Juanes de la Peña en la Universidad de Cantabria. El documento incluye agradecimientos y el índice de la tesis, la cual está compuesta por seis capítu
Sistema de gestion de mantenimiento empresa sant ex almeida santiagoFrancisco Narvaez
Este documento presenta un resumen de tres oraciones del proyecto de investigación "Estudio de la gestión de mantenimiento y su incidencia en la disponibilidad de los equipos y maquinaria en la empresa Santex del cantón Pelileo". El proyecto analiza el sistema de mantenimiento actual de la empresa y propone un nuevo sistema para mejorar la disponibilidad de los equipos. Se aplicaron encuestas al personal y se evaluó el sistema actual mediante una matriz para diagnosticar problemas y oportunidades de mejora.
29. 2011 septiembre edgar alan buentelloAndres Cruz
Este resumen describe el desarrollo de soportes para catalizadores a base de zeolita-β/alúmina-γ modificados con nitrato de bario y calcio para estabilización térmica. Se utilizaron tres métodos de impregnación: inmersión, cogelación y mojado incipiente. Los materiales se sometieron a altas temperaturas para simular ciclos de regeneración. Las caracterizaciones incluyeron análisis químico, textural y de difracción de rayos X. Los soportes calcinados a 1000°C
Sistema de control de atributos en el papel higienicoGeovannichacon
Este documento presenta el diseño de un sistema de inspección de atributos o disconformidades para el control de calidad en una línea de conversión de papel higiénico. Describe la empresa, el proceso productivo, el departamento de control de calidad actual y los principales problemas detectados como productos con altos índices de defectos. Luego propone un sistema de inspección que incluye la determinación de atributos a monitorear, un plan de muestreo, hojas de control y un manual de procedimientos. Finalmente presenta un plan de implementación con actividades y
Este documento presenta un sistema propuesto para la evaluación de riesgos laborales. Incluye:
1) Un método general basado en la Nota Técnica de Prevención 330 que utiliza cuestionarios de chequeo con factores de riesgo preasignados.
2) Métodos para evaluar riesgos higiénicos y ergonómicos.
3) Identificación de otras deficiencias.
4) Resumen de la evaluación y priorización preventiva.
Este documento presenta un resumen de tres oraciones del contenido de un libro de preparación para la Prueba de Selección Universitaria de Matemáticas. El libro cubre temas como números, proporcionalidad e introducción al álgebra. Incluye ejemplos, actividades y un índice general de los contenidos tratados en cada capítulo. Fue escrito por dos estudiantes de la Universidad de Chile como material de apoyo para futuros postulantes a la educación superior.
Este documento presenta el primer proyecto de laboratorio de la asignatura Organización de Lenguajes y Compiladores 2 de la Universidad de San Carlos de Guatemala. Incluye una descripción del programa USAC-WEB y ejemplos para crear páginas web utilizando los lenguajes CHTML, CJS y CCSS. También explica los componentes básicos y opciones de cada lenguaje.
Este documento trata sobre el benchmarking en sistemas Linux. Explica que el benchmarking implica medir la velocidad de ejecución de tareas para comparar diferentes configuraciones de hardware y software. Recomienda utilizar herramientas de benchmarking estándar como el Linux Benchmarking Toolkit (LBT) y proporciona detalles sobre cómo usar esta herramienta y cómo interpretar los resultados. Además, advierte sobre posibles fallos comunes en el proceso de benchmarking y factores irrelevantes a considerar.
Este documento resume los antecedentes geológicos y arqueológicos relevantes para el estudio de los instrumentos de pedernal en El Tigre, Campeche. Brevemente describe las formaciones geológicas de la península de Yucatán, señalando que la región de estudio está compuesta principalmente de calizas del Paleoceno que contienen nódulos de pedernal. También resume trabajos arqueológicos previos en la región maya y sobre tecnología lítica, concluyendo con una descripción de los y
Este documento presenta un resumen del trabajo de investigación titulado "Las aguas servidas y su influencia en la calidad de vida de los moradores del Centro Cantonal, Cantón Tisaleo, Provincia de Tungurahua". El trabajo analiza la influencia de las aguas servidas en la calidad de vida de los habitantes del centro de Tisaleo. Se realizó un estudio de las características de las aguas servidas y los indicadores de calidad de vida. Los resultados mostraron que las deficientes condiciones del sistema de alcantarillado
Manual mantenimiento industrial abril 2004carmenysela
Este documento presenta el fondo universal Kem Kromik, un fondo anticorrosivo alquídico de secamiento rápido para uso industrial y/o comercial sobre hierro y acero. Proporciona protección contra la corrosión y facilita las operaciones de repintado al ser compatible con la mayoría de pinturas. Sus propiedades incluyen alta resistencia a la abrasión, temperaturas, humedad y corrosión, con un tiempo de secamiento rápido y buena adherencia a superficies metálicas.
Este documento presenta un estudio de factibilidad económica y financiera para crear una empresa de tintorería en el Centro Comercial El Recreo en Caracas, Venezuela. El estudio incluye un análisis de mercado, técnico y económico-financiero de la propuesta. El objetivo es determinar la viabilidad de la iniciativa empresarial para satisfacer la demanda existente de servicios de lavado y planchado de ropa en la zona.
Diseño Agil con TDD nos enseñará a:
* Escribir tests que aumenten la fiabilidad del código.
* Escribir tests de aceptación que nos ayudarán a centrarnos, específicamente, en el problema a resolver.
* Mejorar nuestros diseños para hacerlos más simples y flexibles.
* Escribir código fácil de mantener. Con TDD, los test son documentación viva y actualizada de nuestro código, la mejor documentación posible.
* Encajar TDD dentro del paradigma ágil y relacionarlo con otras técnicas como la integración continua.
Este documento presenta un proyecto de modelización geoestadística de la distribución de carbono en el suelo de una dehesa. Se describe el área de estudio, la finca experimental "CIA-Dehesón del Encinar", y se detallan los materiales y métodos utilizados, incluyendo el diseño de muestreo, los análisis de laboratorio y el tratamiento estadístico de los datos mediante modelización geoestadística. El objetivo general es caracterizar la variabilidad espacial del carbono en el suelo de la de
Este documento proporciona especificaciones para la selección y aplicación de pinturas industriales. Detalla los requisitos para la preparación de superficies de acero y concreto, incluida la limpieza, inspección y reparación. También cubre los métodos de aplicación de pintura, como rociado, brocha y rodillo. Además, incluye requisitos específicos para la pintura de acero inoxidable, superficies galvanizadas, recubrimientos de aluminio y madera. Por último, destaca la importancia de la segur
Este documento contiene 52 historias bíblicas escritas para niños. Cada historia tiene entre 3 y 5 minutos de duración y está acompañada de sugerencias para presentarla de manera atractiva e interesante. El objetivo es aprovechar el tiempo de la Adoración Infantil para enseñar valores y lecciones bíblicas a los niños de una forma sencilla.
La investigación buscó fortalecer las competencias ambientales de las líderes del Proyecto Ambiental Escolar (PRAE) en un colegio femenino para mejorar su participación y liderazgo. Se aplicaron encuestas y observaciones que mostraron que las estudiantes reconocen problemas ambientales como mala disposición de residuos y desean liderar acciones de mejora. La propuesta curricular busca desarrollar valores de respeto por el entorno, participación ciudadana y toma de decisiones responsables en el manejo de recursos para resolver problemas ambientales con la com
Este documento presenta notas de clase para el curso "Procesamiento Digital de Señales" impartido en la Escuela de Ingeniería Eléctrica del Tecnológico de Costa Rica. El documento incluye un prefacio, índice general y varios capítulos que cubren temas como señales y sistemas de variable discreta, análisis de sistemas discretos lineales e invariantes en el tiempo, y sistemas discretos descritos mediante ecuaciones de diferencias. El objetivo es ofrecer al estudiante una guía para el
Sistema Basado en Hardware Reconfigurable para el Filtrado de Contenidos en P...Jaime Garnica
Este documento presenta un sistema basado en hardware reconfigurable para el filtrado de contenidos en proveedores de servicios de Internet. El sistema proporciona un filtrado de paquetes a alta velocidad de 10 Gbps utilizando una tarjeta FPGA. El sistema fue diseñado para ser portable, escalable y permitir la actualización dinámica de reglas de filtrado. El documento describe los objetivos, el estado del arte, los requisitos, la arquitectura propuesta y la implementación del sistema tanto en hardware como en software.
Validación de una metodología para la obtención de Plasma Rico en Plaquetas e...GNEAUPP.
Este documento presenta una investigación sobre la validación de un método para la obtención de Plasma Rico en Plaquetas (PRP) en El Salvador y su aplicación en el tratamiento de úlceras venosas. Se describen los objetivos de comparar tres métodos para la extracción de PRP y evaluar su efecto en el tratamiento de úlceras venosas versus el tratamiento convencional. Se incluye información sobre la anatomía venosa, fisiopatología de úlceras venosas, y tratamientos actuales.
Este documento presenta el diseño e implementación de un sistema de soporte de decisiones para la gestión académica de la ULADECH. Describe el uso de la metodología de Kimball para construir un data warehouse que almacene y gestione la información académica de la universidad. El documento incluye la planificación del proyecto, la definición de requerimientos, el modelo dimensional y los primeros pasos en la construcción del data warehouse siguiendo la metodología seleccionada.
Este documento presenta un resumen del Trabajo Fin de Grado titulado "EEG Mindroid". El proyecto consiste en el desarrollo de aplicaciones para dispositivos Android que permiten medir la actividad cerebral mediante un dispositivo Neurosky y entrenar el estado de atención a través de pruebas programadas. Se ha utilizado el entrenamiento de la atención con personas sin discapacidad y con parálisis cerebral. Los resultados muestran que el 50% de los usuarios pudieron controlar su estado de atención con más de un 70% de precisión.
Instituo Tecnologico Sudamericano - Ivan BuenoOsoBueno
Este documento presenta el trabajo de titulación para obtener el título de Tecnólogo en Análisis de Sistemas del estudiante Claudio Iván Bueno Supliguicha del Instituto Superior Tecnológico “Sudamericano”. El trabajo consiste en el desarrollo de una página web para la venta en línea llamada “IMPORTMAS”. El documento incluye la introducción, planteamiento del problema, objetivos, metodología, marco teórico, desarrollo del sistema incluyendo análisis de requerimientos, dise
Estudio del diseño estructural y constructivo de pavimentos articulados en ba...assecino123456
Este documento presenta el estudio del diseño estructural y constructivo de pavimentos articulados basados en bloques de asfalto. Se realizó una revisión bibliográfica sobre pavimentos articulados y sus componentes. Luego, se diseñó una mezcla asfáltica utilizando agregados, cenizas y emulsión asfáltica, realizando ensayos de laboratorio para determinar sus propiedades. También se realizó el diseño estructural del pavimento usando programas informáticos. Finalmente, se construy
Sistema de control de atributos en el papel higienicoGeovannichacon
Este documento presenta el diseño de un sistema de inspección de atributos o disconformidades para el control de calidad en una línea de conversión de papel higiénico. Describe la empresa, el proceso productivo, el departamento de control de calidad actual y los principales problemas detectados como productos con altos índices de defectos. Luego propone un sistema de inspección que incluye la determinación de atributos a monitorear, un plan de muestreo, hojas de control y un manual de procedimientos. Finalmente presenta un plan de implementación con actividades y
Este documento presenta un sistema propuesto para la evaluación de riesgos laborales. Incluye:
1) Un método general basado en la Nota Técnica de Prevención 330 que utiliza cuestionarios de chequeo con factores de riesgo preasignados.
2) Métodos para evaluar riesgos higiénicos y ergonómicos.
3) Identificación de otras deficiencias.
4) Resumen de la evaluación y priorización preventiva.
Este documento presenta un resumen de tres oraciones del contenido de un libro de preparación para la Prueba de Selección Universitaria de Matemáticas. El libro cubre temas como números, proporcionalidad e introducción al álgebra. Incluye ejemplos, actividades y un índice general de los contenidos tratados en cada capítulo. Fue escrito por dos estudiantes de la Universidad de Chile como material de apoyo para futuros postulantes a la educación superior.
Este documento presenta el primer proyecto de laboratorio de la asignatura Organización de Lenguajes y Compiladores 2 de la Universidad de San Carlos de Guatemala. Incluye una descripción del programa USAC-WEB y ejemplos para crear páginas web utilizando los lenguajes CHTML, CJS y CCSS. También explica los componentes básicos y opciones de cada lenguaje.
Este documento trata sobre el benchmarking en sistemas Linux. Explica que el benchmarking implica medir la velocidad de ejecución de tareas para comparar diferentes configuraciones de hardware y software. Recomienda utilizar herramientas de benchmarking estándar como el Linux Benchmarking Toolkit (LBT) y proporciona detalles sobre cómo usar esta herramienta y cómo interpretar los resultados. Además, advierte sobre posibles fallos comunes en el proceso de benchmarking y factores irrelevantes a considerar.
Este documento resume los antecedentes geológicos y arqueológicos relevantes para el estudio de los instrumentos de pedernal en El Tigre, Campeche. Brevemente describe las formaciones geológicas de la península de Yucatán, señalando que la región de estudio está compuesta principalmente de calizas del Paleoceno que contienen nódulos de pedernal. También resume trabajos arqueológicos previos en la región maya y sobre tecnología lítica, concluyendo con una descripción de los y
Este documento presenta un resumen del trabajo de investigación titulado "Las aguas servidas y su influencia en la calidad de vida de los moradores del Centro Cantonal, Cantón Tisaleo, Provincia de Tungurahua". El trabajo analiza la influencia de las aguas servidas en la calidad de vida de los habitantes del centro de Tisaleo. Se realizó un estudio de las características de las aguas servidas y los indicadores de calidad de vida. Los resultados mostraron que las deficientes condiciones del sistema de alcantarillado
Manual mantenimiento industrial abril 2004carmenysela
Este documento presenta el fondo universal Kem Kromik, un fondo anticorrosivo alquídico de secamiento rápido para uso industrial y/o comercial sobre hierro y acero. Proporciona protección contra la corrosión y facilita las operaciones de repintado al ser compatible con la mayoría de pinturas. Sus propiedades incluyen alta resistencia a la abrasión, temperaturas, humedad y corrosión, con un tiempo de secamiento rápido y buena adherencia a superficies metálicas.
Este documento presenta un estudio de factibilidad económica y financiera para crear una empresa de tintorería en el Centro Comercial El Recreo en Caracas, Venezuela. El estudio incluye un análisis de mercado, técnico y económico-financiero de la propuesta. El objetivo es determinar la viabilidad de la iniciativa empresarial para satisfacer la demanda existente de servicios de lavado y planchado de ropa en la zona.
Diseño Agil con TDD nos enseñará a:
* Escribir tests que aumenten la fiabilidad del código.
* Escribir tests de aceptación que nos ayudarán a centrarnos, específicamente, en el problema a resolver.
* Mejorar nuestros diseños para hacerlos más simples y flexibles.
* Escribir código fácil de mantener. Con TDD, los test son documentación viva y actualizada de nuestro código, la mejor documentación posible.
* Encajar TDD dentro del paradigma ágil y relacionarlo con otras técnicas como la integración continua.
Este documento presenta un proyecto de modelización geoestadística de la distribución de carbono en el suelo de una dehesa. Se describe el área de estudio, la finca experimental "CIA-Dehesón del Encinar", y se detallan los materiales y métodos utilizados, incluyendo el diseño de muestreo, los análisis de laboratorio y el tratamiento estadístico de los datos mediante modelización geoestadística. El objetivo general es caracterizar la variabilidad espacial del carbono en el suelo de la de
Este documento proporciona especificaciones para la selección y aplicación de pinturas industriales. Detalla los requisitos para la preparación de superficies de acero y concreto, incluida la limpieza, inspección y reparación. También cubre los métodos de aplicación de pintura, como rociado, brocha y rodillo. Además, incluye requisitos específicos para la pintura de acero inoxidable, superficies galvanizadas, recubrimientos de aluminio y madera. Por último, destaca la importancia de la segur
Este documento contiene 52 historias bíblicas escritas para niños. Cada historia tiene entre 3 y 5 minutos de duración y está acompañada de sugerencias para presentarla de manera atractiva e interesante. El objetivo es aprovechar el tiempo de la Adoración Infantil para enseñar valores y lecciones bíblicas a los niños de una forma sencilla.
La investigación buscó fortalecer las competencias ambientales de las líderes del Proyecto Ambiental Escolar (PRAE) en un colegio femenino para mejorar su participación y liderazgo. Se aplicaron encuestas y observaciones que mostraron que las estudiantes reconocen problemas ambientales como mala disposición de residuos y desean liderar acciones de mejora. La propuesta curricular busca desarrollar valores de respeto por el entorno, participación ciudadana y toma de decisiones responsables en el manejo de recursos para resolver problemas ambientales con la com
Este documento presenta notas de clase para el curso "Procesamiento Digital de Señales" impartido en la Escuela de Ingeniería Eléctrica del Tecnológico de Costa Rica. El documento incluye un prefacio, índice general y varios capítulos que cubren temas como señales y sistemas de variable discreta, análisis de sistemas discretos lineales e invariantes en el tiempo, y sistemas discretos descritos mediante ecuaciones de diferencias. El objetivo es ofrecer al estudiante una guía para el
Sistema Basado en Hardware Reconfigurable para el Filtrado de Contenidos en P...Jaime Garnica
Este documento presenta un sistema basado en hardware reconfigurable para el filtrado de contenidos en proveedores de servicios de Internet. El sistema proporciona un filtrado de paquetes a alta velocidad de 10 Gbps utilizando una tarjeta FPGA. El sistema fue diseñado para ser portable, escalable y permitir la actualización dinámica de reglas de filtrado. El documento describe los objetivos, el estado del arte, los requisitos, la arquitectura propuesta y la implementación del sistema tanto en hardware como en software.
Validación de una metodología para la obtención de Plasma Rico en Plaquetas e...GNEAUPP.
Este documento presenta una investigación sobre la validación de un método para la obtención de Plasma Rico en Plaquetas (PRP) en El Salvador y su aplicación en el tratamiento de úlceras venosas. Se describen los objetivos de comparar tres métodos para la extracción de PRP y evaluar su efecto en el tratamiento de úlceras venosas versus el tratamiento convencional. Se incluye información sobre la anatomía venosa, fisiopatología de úlceras venosas, y tratamientos actuales.
Este documento presenta el diseño e implementación de un sistema de soporte de decisiones para la gestión académica de la ULADECH. Describe el uso de la metodología de Kimball para construir un data warehouse que almacene y gestione la información académica de la universidad. El documento incluye la planificación del proyecto, la definición de requerimientos, el modelo dimensional y los primeros pasos en la construcción del data warehouse siguiendo la metodología seleccionada.
Este documento presenta un resumen del Trabajo Fin de Grado titulado "EEG Mindroid". El proyecto consiste en el desarrollo de aplicaciones para dispositivos Android que permiten medir la actividad cerebral mediante un dispositivo Neurosky y entrenar el estado de atención a través de pruebas programadas. Se ha utilizado el entrenamiento de la atención con personas sin discapacidad y con parálisis cerebral. Los resultados muestran que el 50% de los usuarios pudieron controlar su estado de atención con más de un 70% de precisión.
Instituo Tecnologico Sudamericano - Ivan BuenoOsoBueno
Este documento presenta el trabajo de titulación para obtener el título de Tecnólogo en Análisis de Sistemas del estudiante Claudio Iván Bueno Supliguicha del Instituto Superior Tecnológico “Sudamericano”. El trabajo consiste en el desarrollo de una página web para la venta en línea llamada “IMPORTMAS”. El documento incluye la introducción, planteamiento del problema, objetivos, metodología, marco teórico, desarrollo del sistema incluyendo análisis de requerimientos, dise
Estudio del diseño estructural y constructivo de pavimentos articulados en ba...assecino123456
Este documento presenta el estudio del diseño estructural y constructivo de pavimentos articulados basados en bloques de asfalto. Se realizó una revisión bibliográfica sobre pavimentos articulados y sus componentes. Luego, se diseñó una mezcla asfáltica utilizando agregados, cenizas y emulsión asfáltica, realizando ensayos de laboratorio para determinar sus propiedades. También se realizó el diseño estructural del pavimento usando programas informáticos. Finalmente, se construy
Este proyecto propone implementar equipos multimedia en la I.E Gonzales Prada en Chimbote para apoyar el proceso de aprendizaje de los alumnos. El proyecto tiene como objetivo facilitar el desarrollo de las clases para los docentes y mejorar la comprensión de los alumnos a través del uso de la tecnología. Se realizará un estudio descriptivo de los alumnos para analizar cómo los equipos multimedia pueden mejorar sus resultados académicos. El proyecto consiste en 3 capítulos que describen las generalidades, el plan
Contenedor de servicios convergentes en los entornos de telecomunicacionesCarlos Tessier
El objetivo del presente trabajo en colaboración con HP, es la realización de una prueba de concepto sobre contenedores de servicios convergentes, relacionando contenedores basados en Jain SLEE orientados a eventos asíncronos (Rhino, Mobicents), con contenedores J2EE modificados para soportar eventos asíncronos (BEA Systems We- bLogic® RealTime). Así mismo, se analizará la tecnología Jain SLEE, con sus ventajas y desventajas, adem ́as de describir los fundamentos de esta y sus distintos componentes. Por otra parte, se realizar ́a un estudio del proyecto open source Mobicents, el único con- tenedor de servicios libre conforme a la especificación Jain SLEE 1.0, as ́ı como de sus distintos Resource Adaptors. Como ejemplo práctico se desarrollará un Servicio para Mobicents aplicando los conocimientos mostrados. Finalmente se analizar ́an las conclusiones obtenidas y se expondrán las recomendaciones correspondientes.
El e-learning o aprendizaje en línea se refiere al uso de Internet y
tecnologías digitales para mejorar el acceso al aprendizaje y la calidad de la
educación. Incluye el uso de computadoras y redes de comunicación para
crear, distribuir, administrar y facilitar el aprendizaje.
Relación entre perfilde los egresados de la Escuela Técnica Industrial Ciudad...Guarenas/Guatire
El trabajo de investigación es del tipo proyecto factible y se orienta a el estudio de la relación exitente entre el perfil del egresado y las competencias requeridas por el parque industrial a fin de mejorar la formación de los egresados de esta casa de estudio
Este documento presenta una propuesta para aplicar metodologías de administración de proyectos informáticos al proceso educativo, con el objetivo de mejorar la enseñanza y el aprendizaje en las escuelas secundarias. La propuesta introduce el concepto de "Educación Basada en Proyectos" (EBP), donde cada tema educativo se aborda como un proyecto que se desarrolla en iteraciones, con tareas, entregables y demostraciones. Incluye el desarrollo de una plataforma virtual para apoyar la met
Este documento presenta el módulo 5 de la serie "Aprender a Investigar" del Instituto Colombiano para el Fomento de la Educación Superior (ICFES). El módulo se enfoca en el proyecto de investigación y cubre temas como los elementos del proceso investigativo, la administración del proyecto, la evaluación del proyecto y el informe investigativo. El documento proporciona información detallada sobre cada uno de estos temas a lo largo de varias secciones y subsecciones.
CREACION DE UNA MICROEMPRESA PRODUCTORA Y COMERCIALIZADORA DE PRODUCTOS DE AS...AngisenitReyesPrezas1
Este documento presenta un proyecto de factibilidad para la creación de una microempresa dedicada a la producción y comercialización de productos de aseo personal a base de luffa cylindrica (esponja biodegradable) en Quito, Ecuador. El proyecto incluye un estudio de mercado, análisis legal y organizacional, estudio técnico y estudio financiero para evaluar la viabilidad del negocio. La autora es Diana Elizabeth Narváez Peñaherrera y el director es el economista Javier Morillo.
Esta guía presenta indicaciones para la intervención telepsicológica, abarcando su origen, conceptualización, usos, potencialidades y limitaciones. Explica los requisitos del psicólogo, cliente, espacio y plataforma, así como la adaptación de técnicas y el afrontamiento de crisis. Finalmente, plantea retos futuros de esta modalidad emergente en psicología.
Esta guía presenta indicaciones para la intervención telepsicológica, abarcando su origen, conceptualización, usos, potencialidades y limitaciones. Explica los requisitos del psicólogo, cliente, espacio y plataforma, así como la adaptación de técnicas e instrumentos. Tiene como objetivo orientar al psicólogo en esta modalidad, respetando aspectos éticos, legales y garantizando una atención de calidad.
Este documento presenta una guía sobre cómo elaborar un proyecto de investigación. Explica los elementos clave de un proyecto como la identificación del problema, los objetivos, el marco teórico, las hipótesis y las variables. También cubre temas como la administración del proyecto mediante el cronograma, el presupuesto y la evaluación del proyecto. El documento está dirigido a estudiantes y busca enseñarles los conceptos y pasos fundamentales para llevar a cabo una investigación científica.
Este documento presenta una guía sobre cómo elaborar un proyecto de investigación. Explica los elementos clave de un proyecto como la identificación del problema, los objetivos, el marco teórico, las hipótesis y las variables. También cubre temas como la administración del proyecto mediante el cronograma, el presupuesto y la infraestructura, así como la evaluación y el informe final de la investigación. El documento está dirigido a estudiantes y busca enseñarles los aspectos fundamentales de cómo diseñar e implementar un pro
Este documento presenta un resumen de 3 oraciones de una tesis sobre el desarrollo de un generador de código (GenCod) para el lenguaje C utilizando una notación de diseño detallado. El GenCod automatiza la etapa de diseño detallado generando código C de acuerdo al diseño visual creado por el usuario sin necesidad de conocer C. El sistema implementa una gramática posicional visual para la notación de diseño y estructuras de datos que permiten el desarrollo interactivo del diseño, la inserción y eliminación de objetos,
Este documento presenta una propuesta para la digitalización del fondo documental del Dr. Belisario Porras. El documento describe el proyecto de tesis presentado por Elvia Leticia Williams Map para obtener un título de maestría en gestión documental y administración de archivos de la Universidad Internacional de Andalucía. El proyecto incluye un diagnóstico de la situación actual del fondo documental y una estrategia propuesta para su digitalización con el fin de mejorar el acceso y preservación de los documentos históricos.
Sistema de posicionamiento de objetos mediante visión estéreo embarcable en v...Jorge Tarlea
This project has consisted on designing and implementing a stereo vision system that is capable of estimating the distances to which some objects of interest are located.
The images acquisition system consists of two rewire cameras serial connected. The
software is implemented in C/C++ programming language, together with the OpenCV computer vision libraries. It is formed by two applications: the rest of them carries out the stereo calibration and the other one corrects the images, generates the disparity maps and calculates the distances.
Este documento presenta el diseño de un sistema de monitoreo y alarma para el sistema de respaldo eléctrico de la empresa Puntonet en la ciudad de Cuenca, aplicado al nodo ubicado en Barabón. Se realizó un levantamiento de los parámetros de calidad de energía eléctrica en el nodo para definir los parámetros a monitorear. Se diseñaron los módulos de adquisición de señales, comunicación y transferencia del sistema eléctrico al de respaldo, así como un entorno gráfico para visual
Este documento presenta un estudio de factibilidad para establecer una fábrica de galletas enriquecidas con proteína de soya en Huajuapan de León, Oaxaca. El estudio incluye un análisis de mercado que evalúa la demanda, oferta y precios del producto, así como estrategias de comercialización. También contiene un estudio técnico que analiza aspectos como la localización de la planta, el proceso productivo, los requerimientos de maquinaria y equipo, así como los aspectos administr
Similar a Metaheurísticas e ingenieria del software (20)
1. TESIS DOCTORAL
Metaheurísticas e
Ingeniería del Software
Autor
José Francisco Chicano García
Director
Dr. Enrique Alba Torres
Departamento
Lenguajes y Ciencias de la Computación
UNIVERSIDAD DE MÁLAGA
Julio de 2007
2.
3. El Dr. Enrique Alba Torres, Titular de Universidad del Departamento de
Lenguajes y Ciencias de la Computación de la Universidad de Málaga,
Certifica
que D. José Francisco Chicano García, Ingeniero en Informática por la
Universidad de Málaga, ha realizado en el Departamento de Lenguajes y
Ciencias de la Computación de la Universidad de Málaga, bajo su
dirección, el trabajo de investigación correspondiente a su Tesis Doctoral
titulada
Metaheurísticas e Ingeniería del Software
Revisado el presente trabajo, estimo que puede ser presentado al tribunal
que ha de juzgarlo, y autorizo la presentación de esta Tesis Doctoral en la
Universidad de Málaga.
En Málaga, Julio de 2007
Firmado: Dr. Enrique Alba Torres
Titular de Universidad
Dpto. de Lenguajes y Ciencias de la Computación
Universidad de Málaga
4.
5. Agradecimientos
La realizaci´n de esta tesis doctoral ha sido posible gracias, en parte, a muchas personas e insti-
o
tuciones que han contribuido de una forma u otra durante todos estos a˜os. Las primeras palabras de
n
agradecimiento son para Enrique, quien me ha mostrado el maravilloso mundo de la investigaci´n y me
o
ha guiado por ´l magistralmente. Gracias a su constante apoyo, paciencia y dedicaci´n, ha sido posible
e o
que este volumen exista aqu´ y ahora.
ı
No puedo dejar de mencionar a mis compa˜eros de laboratorio, que siempre me han ofrecido su ayuda,
n
especialmente cuando la he necesitado. Debo agradecer tambi´n a Antonio J. Nebro y Juan Miguel Molina
e
sus ense˜anzas y sugerencias.
n
Dedico un muy especial agradecimiento a Eva, una de las personas que m´s ha “sufrido” esta tesis,
a
por su comprensi´n, su ayuda y su incondicional apoyo. Agradezco tambi´n el apoyo de mi familia, que
o e
desde el primer momento confi´ en m´ y me ayud´ en todo lo posible.
o ı o
Finalmente, me gustar´ dedicar un especial reconocimiento a la Junta de Andaluc´ por la confianza
ıa ıa,
que mostr´ al concederme una beca para la formaci´n de doctores con la cual me fue posible iniciar
o o
este camino.
v
7. vii
¿Por qu´ esta magn´
e ıfica tecnolog´ cient´
ıa ıfica,
que ahorra trabajo y nos hace la vida mas f´cil,
a
nos aporta tan poca felicidad?
La repuesta es esta, simplemente: porque a´n u
no hemos aprendido a usarla con tino.
Albert Einstein (1879-1955)
15. Cap´
ıtulo 1
Introducci´n
o
1.1. Planteamiento
El dise˜o de algoritmos cada vez m´s eficientes para resolver problemas complejos (tanto de opti-
n a
mizaci´n como de b´squeda) ha sido tradicionalmente uno de los aspectos m´s importantes de la in-
o u a
vestigaci´n en Inform´tica. El objetivo perseguido en este campo es, fundamentalmente, el desarrollo de
o a
nuevos m´todos capaces de resolver los mencionados problemas complejos con el menor esfuerzo computa-
e
cional posible, mejorando as´ a los algoritmos existentes. En consecuencia, esto no s´lo permite afrontar
ı o
problemas actuales de forma m´s eficiente, sino tambi´n tareas vedadas en el pasado debido a su alto
a e
coste computacional. En este contexto, la actividad investigadora tanto en algoritmos exactos como en
heur´ısticos ad hoc y metaheur´ ısticos para resolver problemas complejos de optimizaci´n est´ creciendo
o a
de forma evidente en estos d´ La raz´n es que continuamente se est´n afrontando nuevos problemas
ıas. o a
de ingenier´ mientras que, al mismo tiempo, cada vez se dispone de mejores recursos computacionales,
ıa,
como nuevos tipos de ordenadores, redes, y entornos como Internet.
La principal ventaja de la utilizaci´n de algoritmos exactos es que garantizan encontrar el ´ptimo
o o
global de cualquier problema, pero tienen el grave inconveniente de que en problemas reales (que suelen
ser NP-duros en la mayor´ de los casos) su tiempo de ejecuci´n crece de forma exponencial con el
ıa o
tama˜o del problema. En cambio, los algoritmos heur´
n ısticos ad hoc son normalmente bastante r´pidos,
a
pero la calidad de las soluciones encontradas est´ habitualmente lejos de ser ´ptima. Otro inconveniente
a o
de los heur´ ısticos ad hoc es que no son f´ciles de definir en determinados problemas. Las metaheur´
a ısticas1
ofrecen un equilibrio adecuado entre ambos extremos: son m´todos gen´ricos que ofrecen soluciones de
e e
buena calidad (el ´ptimo global en muchos casos) en un tiempo moderado.
o
La Ingenier´ del Software, a pesar de su corta edad, es en la actualidad una importante fuente de
ıa
problemas de optimizaci´n. Los ingenieros y gestores de proyectos software se enfrentan diariamente a
o
diversos problemas de optimizaci´n en los que las t´cnicas exactas no tienen cabida por el corto intervalo
o e
de tiempo en que se requiere una respuesta. Cabe la posibilidad, por tanto, de aplicar a estos problemas
algoritmos metaheur´ ısticos que ofrezcan al ingeniero una soluci´n de cierta calidad en un breve periodo
o
de tiempo: un compromiso entre calidad de la soluci´n y rapidez.
o
1 Algunos autores consideran los algoritmos metaheur´ısticos una subclase de los algoritmos heur´
ısticos. Por ese motivo
usamos el t´rmino “heur´
e ıstico ad hoc” para referirnos a los algoritmos aproximados pensados espec´ ıficamente para un
problema concreto.
1
16. 2 CAP´ ´
ITULO 1. INTRODUCCION
Es en este contexto donde se enmarca esta tesis doctoral. Nos proponemos aplicar t´cnicas meta-
e
heur´ısticas a problemas de optimizaci´n surgidos en el seno de la Ingenier´ del Software, analizando
o ıa
distintas posibilidades para sacar el m´ximo partido a dichas t´cnicas y ofrecer as´ soluciones de gran
a e ı
calidad con recursos computacionales al alcance de cualquier instituci´n. Los problemas abordados son
o
concretamente la planificaci´n de proyectos software, la generaci´n autom´tica de casos de prueba y la
o o a
b´squeda de violaciones de propiedades de seguridad en sistemas concurrentes.
u
Adem´s, estas metaheur´
a ısticas han sido dise˜adas e implementadas utilizando, a su vez, t´cnicas y
n e
herramientas propias de la Ingenier´ del Software con el objetivo de crear software de calidad. De esta
ıa
forma, cerramos el c´ırculo: Ingenier´ del Software para desarrollar herramientas que resolver´n problemas
ıa a
de Ingenier´ del Software.
ıa
1.2. Objetivos y fases
Los objetivos principales de esta tesis doctoral son: aplicar t´cnicas metaheur´
e ısticas a problemas de
optimizaci´n de Ingenier´ del Software, analizar los resultados para comprender el comportamiento de
o ıa
estos algoritmos y proponer nuevos m´todos para resolver los problemas de manera m´s eficaz y eficiente.
e a
Estos objetivos globales han sido descompuestos en objetivos parciales m´s concretos:
a
Identificaci´n de problemas de optimizaci´n en Ingenier´ del Software.
o o ıa
Descripci´n y formalizaci´n de varios de estos problemas de optimizaci´n.
o o o
Descripci´n y formalizaci´n de las t´cnicas metaheur´
o o e ısticas propuestas.
Aplicaci´n de t´cnicas metaheur´
o e ısticas a problemas de optimizaci´n de la Ingenier´ del Software y
o ıa
an´lisis de resultados.
a
Para conseguir estos objetivos se siguen las fases resumidas en la Figura 1.1. Inicialmente revisamos
la literatura en busca de problemas de optimizaci´n en Ingenier´ del Software. Posteriormente, selec-
o ıa
cionamos tres problemas que, de acuerdo a la revisi´n bibliogr´fica realizada, representan a los dominios
o a
de mayor inter´s en el campo de la optimizaci´n de problemas de Ingenier´ del Software. Estos problemas
e o ıa
son la planificaci´n de proyectos software, la generaci´n autom´tica de casos de prueba y la b´squeda
o o a u
de violaciones de propiedades de seguridad en sistemas concurrentes. En el siguiente paso estudiamos las
t´cnicas metaheur´
e ısticas y seleccionamos para cada problema aqu´llas que puedan resultar m´s intere-
e a
santes desde el punto de vista de la comunidad cient´ ıfica. Las t´cnicas seleccionadas son los algoritmos
e
evolutivos, la optimizaci´n basada en c´mulos de part´
o u ıculas y la optimizaci´n basada en colonias de
o
hormigas. Por ultimo, escogidos los problemas y las t´cnicas, aplicamos los algoritmos metaheur´
´ e ısticos a
los problemas de optimizaci´n y analizamos los resultados obtenidos.
o
1.3. Contribuciones
En este apartado se listan las contribuciones de la presente tesis. De forma esquem´tica, estas con-
a
tribuciones se pueden resumir como sigue:
Modelo formal de metaheur´ ısticas secuenciales que extiende al propuesto por Gabriel Luque en su
tesis doctoral [183] para hacerlo m´s operativo desde un punto de vista te´rico.
a o
17. 1.3. CONTRIBUCIONES 3
Revisión de Revisión de
problemas técnicas
Desarrollo de
nuevos modelos
algorítmicos
Selección de Selección de
problemas técnicas
Aplicación de
técnicas a problemas
Análisis de
resultados
Figura 1.1: Fases seguidas durante la elaboraci´n de esta tesis.
o
Estudio de la utilidad de las metaheur´
ısticas para la planificaci´n de proyectos software con ayuda
o
de un generador de instancias.
Aplicaci´n por primera vez de dos t´cnicas metaheur´
o e ısticas a la generaci´n de casos de prueba:
o
estrategias evolutivas y optimizaci´n basada en c´mulos de part´
o u ıculas. Estas t´cnicas resultan ser
e
m´s eficaces que los algoritmos gen´ticos, ampliamente utilizados en la literatura.
a e
Estudio detallado de metaheur´
ısticas con poblaci´n descentralizada para la generaci´n autom´tica
o o a
de casos de prueba y comparaci´n con metaheur´
o ısticas con poblaci´n centralizada.
o
Desarrollo de un nuevo modelo algor´
ıtmico de optimizaci´n basado en colonias de hormigas que
o
permite trabajar con problemas en los que el grafo de construcci´n tiene tama˜o desconocido o
o n
suficientemente grande para que no quepa en la memoria de una m´quina.
a
Aplicaci´n del nuevo modelo algor´
o ıtmico al problema de b´squeda de violaciones de propiedades de
u
seguridad en sistemas concurrentes con un enfoque basado en model checking. Se realiza un an´lisis
a
detallado de la aplicaci´n explorando alternativas.
o
Combinaci´n del nuevo modelo algor´
o ıtmico con una t´cnica propia de model checking, la reducci´n
e o
de orden parcial, para el problema mencionado en el punto anterior.
Dise˜o e implementaci´n de los algoritmos utilizados en esta tesis siguiendo el paradigma de la orien-
n o
taci´n a objetos. Estos algoritmos se han incorporado en dos bibliotecas p´blicamente disponibles:
o u
JEAL y MALLBA.
Adem´s de los puntos m´s importantes arriba mencionados, se ha realizado una revisi´n y clasificaci´n
a a o o
de trabajos para identificar problemas de optimizaci´n en Ingenier´ del Software. Tambi´n se ha dise˜ado
o ıa e n
e implementado un generador de instancias para el problema de planificaci´n de proyectos software. Este
o
18. 4 CAP´ ´
ITULO 1. INTRODUCCION
generador ha permitido analizar los resultados obtenidos con las t´cnicas metaheur´
e ısticas en proyectos
software ficticios autom´ticamente generados con diferentes caracter´
a ısticas.
Finalmente, se ha llevado a cabo una importante labor de diseminaci´n del contenido de las investi-
o
gaciones desarrolladas en este trabajo. Para tal fin, adem´s de las publicaciones aparecidas en revistas
a
y congresos tanto nacionales como internacionales, se han desarrollado p´ginas web de dominio p´blico
a u
con la descripci´n de los problemas, el generador de instancias y los resultados de las investigaciones.
o
1.4. Organizaci´n de la tesis
o
Este documento de tesis se estructura en cuatro partes. En la primera se presentan los preliminares de
las metaheur´ ısticas y la Ingenier´ del Software, detallando los problemas y las t´cnicas que se utilizan en
ıa e
la tesis. En la segunda parte se presentan las propuestas metodol´gicas y los resultados de la aplicaci´n
o o
de las metaheur´ ısticas a los problemas de Ingenier´ del Software seleccionados. En la tercera parte
ıa
mostramos las principales conclusiones que se desprenden de este trabajo, as´ como las l´
ı ıneas de trabajo
futuro inmediatas que surgen de nuestro estudio. Finalmente, la cuarta parte contiene los ap´ndices con
e
resultados y estudios secundarios que pueden ser de inter´s tan s´lo a algunos lectores. A continuaci´n
e o o
describimos detalladamente el contenido de los cap´ ıtulos.
Parte I: Fundamentos de las metaheur´
ısticas y la Ingenier´ del Software
ıa
El Cap´ ıtulo 2 introduce los conceptos b´sicos de Ingenier´ del Software. Tras esto, ofrece una breve
a ıa
revisi´n de problemas de optimizaci´n que surgen en el seno de la Ingenier´ del Software y que han
o o ıa
sido abordados en la literatura con t´cnicas de optimizaci´n.
e o
El Cap´ıtulo 3 detalla los tres problemas de optimizaci´n pertenecientes al campo de la Ingenier´
o ıa
del Software que se han resuelto con t´cnicas metaheur´
e ısticas en la presente tesis.
El Cap´ ıtulo 4 proporciona una introducci´n gen´rica sobre el campo de las metaheur´
o e ısticas. Poste-
riormente describe con mayor nivel de detalle las t´cnicas metaheur´
e ısticas concretas que se usan a
lo largo de la tesis.
Parte II: Resoluci´n de los problemas de Ingenier´ del Software seleccionados
o ıa
El Cap´ıtulo 5 describe las propuestas metodol´gicas empleadas para resolver los problemas selec-
o
cionados. Se detallan los algoritmos empleados y las modificaciones a ´stos, as´ como los nuevos
e ı
modelos desarrollados especialmente para resolver los problemas.
El Cap´ıtulo 6 presenta los resultados obtenidos al resolver el problema de planificaci´n de proyectos
o
software. Se resuelven distintas instancias del problema con diferentes caracter´ ısticas y se discuten
los resultados para llegar a una comprensi´n profunda del problema que pueda servir a jefes de
o
proyectos en su trabajo diario.
El Cap´ıtulo 7 muestra y discute los resultados obtenidos tras la aplicaci´n de las t´cnicas meta-
o e
heur´
ısticas al problema de generaci´n de casos de prueba. Se analizan distintos algoritmos y se
o
comparan los resultados con la literatura.
El Cap´ıtulo 8 estudia los resultados obtenidos para el problema de b´squeda de violaciones de
u
propiedades de seguridad en sistemas concurrentes. Se analizan distintas configuraciones de los
algoritmos y se eval´an sobre un gran conjunto de sistemas concurrentes.
u
19. ´
1.4. ORGANIZACION DE LA TESIS 5
Parte III: Conclusiones y trabajo futuro
Terminamos esta tesis con unas conclusiones sobre todo lo expuesto en el resto del documento.
Asimismo, se describen tambi´n las principales l´
e ıneas de trabajo futuro que surgen del presente
estudio. Esta parte est´ redactada tanto en espa˜ol como en ingl´s para cumplir los requisitos
a n e
exigidos por la Universidad de M´laga para optar a la menci´n de Doctorado Europeo.
a o
Parte IV: Ap´ndices
e
El Ap´ndice A presenta un an´lisis de par´metros de algunas de las t´cnicas empleadas en la tesis
e a a e
doctoral. Los resultados de este an´lisis se utilizaron para decidir la configuraci´n de los algoritmos.
a o
El Ap´ndice B describe el tratamiento estad´
e ıstico utilizado para validar las observaciones realizadas
en los experimentos de la tesis y muestra los resultados de dicha validaci´n.
o
El Ap´ndice C ofrece una r´pida descripci´n de las bibliotecas de algoritmos metaheur´
e a o ısticos que
se han usado y dise˜ado durante el desarrollo de la tesis.
n
El Ap´ndice D presenta la publicaciones del doctorando realizadas durante la elaboraci´n de la
e o
tesis. Estas publicaciones sustentan la calidad de la presente tesis doctoral.
El Ap´ndice E contiene un resumen en ingl´s de la tesis doctoral, necesario para optar a la menci´n
e e o
de Doctorado Europeo.
23. Cap´
ıtulo 2
Problemas de optimizaci´n en
o
Ingenier´ del Software
ıa
El diccionario de la Real Academia Espa˜ola [231] define software como un “conjunto de programas,
n
instrucciones y reglas inform´ticas para ejecutar ciertas tareas en una computadora” mientras que en el
a
est´ndar IEEE 610.12-1990 [150] se define la Ingenier´ del Software como “la aplicaci´n de un m´to-
a ıa o e
do sistem´tico, disciplinado y cuantificable al desarrollo, operaci´n y mantenimiento de software”1 . La
a o
Ingenier´ del Software2 tiene una corta historia debido a que su existencia est´ ligada a la de los com-
ıa a
putadores digitales, que hicieron aparici´n en la d´cada de 1940. Al comienzo de la era de los ordenadores
o e
el software era relativamente simple y, por tanto, no resultaba complicado asegurar la calidad del mismo.
Con el aumento de las prestaciones de los ordenadores, se abr´ la posibilidad al desarrollo de software
ıa
cada vez m´s complejo apoyado en todo momento por lenguajes de programaci´n y herramientas de m´s
a o a
alto nivel. A lo largo de su historia, el desarrollo de software ha pasado de ser una tarea realizada por
una sola persona en pocas horas a convertirse en un conjunto de actividades interrelacionadas que deben
realizarse en grandes equipos de trabajo durante meses. Los procesos de desarrollo de software o ciclos de
vida del software surgieron como una herramienta para poner orden en este conjunto de actividades. Se
han propuesto diversos procesos de desarrollo de software en las ultimas d´cadas entre los que destacan
´ e
el ciclo de vida en cascada [239] y el ciclo de vida en espiral [39]. Estos procesos de desarrollo de software
determinan un conjunto de actividades y un orden entre ellas.
Un problema de optimizaci´n consiste en escoger una opci´n de entre un conjunto de ellas que sea
o o
mejor o igual que las dem´s (v´ase el comienzo del Cap´
a e ıtulo 4). Los problemas de optimizaci´n surgen
o
en cualquier ´mbito desde la vida cotidiana hasta la industria. A lo largo de la historia se ha dedicado
a
mucho esfuerzo a encontrar t´cnicas que permitan resolver tales problemas. Es un factor com´n a todas
e u
las ingenier´ la existencia de problemas de optimizaci´n. Un ejemplo son los problemas de dise˜o de
ıas o n
componentes (ala de avi´n, tuber´ antena de telecomunicaciones, etc.). La Ingenier´ del Software, a
o ıa, ıa
pesar de ser una ingenier´ joven, no es una excepci´n. De hecho, en la actualidad existe un creciente
ıa o
inter´s por aplicar t´cnicas de optimizaci´n a problemas de Ingenier´ del Software. Una muestra palpable
e e o ıa
1 Traducci´n
o tomada de la wikipedia en la entrada “Ingenier´ de software”.
ıa
2 El t´rmino Ingenier´ del Software fue utilizado por primera vez por Fritz Bauer en la primera conferencia sobre
e ıa
desarrollo de software patrocinada por el Comit´ de Ciencia de la OTAN que se celebr´ en Garmisch, Alemania, en Octubre
e o
de 1968.
9
24. 10 CAP´
ITULO 2. PROBLEMAS DE OPTIMIZACION EN INGENIER´ DEL SOFTWARE
´ IA
de este inter´s ha sido la creaci´n del t´rmino Search Based Software Engineering, abreviado SBSE, por
e o e
parte de Harman y Jones [132] para referirse a este nuevo campo de investigaci´n.
o
En este cap´ıtulo se presenta una breve descripci´n de un conjunto de problemas surgidos dentro de la
o
Ingenier´ del Software que han sido planteados en la literatura como problemas de optimizaci´n. No se
ıa o
trata de una revisi´n exhaustiva de trabajos sino, m´s bien, de un escaparate en el que se puede apreciar
o a
la diversidad de los problemas que pueden definirse dentro de la Ingenier´ del Software. La mayor´
ıa ıa
de los trabajos presentados han sido tomados del repositorio de publicaciones sobre SBSE mantenido
por el doctor Afshin Mansouri como parte del proyecto SEBASE (www.sebase.org). Para presentar este
conjunto de problemas de forma ordenada, proponemos una clasificaci´n de los mismos cuyos detalles,
o
junto con la descripci´n de los problemas, se encuentran en la siguiente secci´n.
o o
2.1. Clasificaci´n de los problemas de optimizaci´n en Ingenier´
o o ıa
del Software
La clasificaci´n que proponemos para los problemas de optimizaci´n en Ingenier´ del Software se basa
o o ıa
en la fase en la que aparece dicho problema dentro del proceso de desarrollo de software. Las fases que
consideramos son: an´lisis de requisitos, dise˜o, implementaci´n, pruebas, implantaci´n, mantenimiento
a n o o
y gesti´n. Todas estas son fases que, bien con el mismo nombre o bien con otro, aparecen en todo proceso
o
de desarrollo de software. A veces no est´ claro d´nde colocar un problema en concreto; existen algunos
a o
problemas que se encuentran en el borde entre dos fases y, por tanto, podr´ aparecer en ambas. Dentro
ıan
de las categor´ de mantenimiento y gesti´n hemos realizado una segunda clasificaci´n de problemas,
ıas o o
ya que la diversidad de ´stos suger´ tal divisi´n. En la Figura 2.1 mostramos la clasificaci´n completa
e ıa o o
aqu´ propuesta.
ı
Diseño
Implementación
Análisis
Problemas de optimización
Pruebas
Modelos de calidad en ingeniería del software
Estimación de costes Gestión
Implantación
Planificación de proyectos Mantenimiento
Análisis de software Transformación
Figura 2.1: Clasificaci´n de problemas de optimizaci´n en Ingenier´ del Software.
o o ıa
25. 2.1 CLASIFICACION DE LOS PROBLEMAS DE OPT. EN INGENIER´ DEL SOFTWARE
´ IA 11
2.1.1. An´lisis de requisitos
a
En la fase de an´lisis de requisitos es donde el ingeniero software y el cliente discuten sobre lo que
a
tiene que hacer el producto software. Es una etapa fundamental del desarrollo en la que se recoge la
informaci´n del cliente y se plasma en un conjunto de requisitos para la aplicaci´n.
o o
En los procesos de desarrollo software utilizados actualmente se tiende a desarrollar y entregar el
software de forma incremental. Del conjunto total de requisitos se seleccionan algunos y se realiza una
iteraci´n del proceso de desarrollo para, finalmente, entregar al usuario un producto software que cumpla
o
dichos requisitos. Tras esto, se vuelven a seleccionar algunos de los requisitos no cubiertos y se realiza
otra iteraci´n del proceso de desarrollo. Se sigue de esta forma hasta que el usuario est´ completamente
o e
satisfecho con el producto. La decisi´n de qu´ requisitos deben cubrirse en una iteraci´n concreta del
o e o
proceso no es algo trivial. Existen numerosas restricciones y prioridades entre los requisitos que afectan
al coste del producto y a la satisfacci´n del usuario. Por ejemplo, un requisito puede necesitar que
o
otro requisito previo est´ ya cubierto en el software, o que otro requisito se cubra a la vez que ´l. Es
e e
decir, existen dependencias entre requisitos. Por su parte, el usuario puede necesitar varios requisitos con
urgencia mientras que otros son menos importantes para ´l. A esto se suma el hecho de que cada requisito
e
tiene un coste de implementaci´n asociado. En definitiva, la elecci´n de requisitos a implementar en una
o o
iteraci´n concreta del proceso de desarrollo software es una tarea no trivial que puede beneficiarse de las
o
t´cnicas de optimizaci´n existentes.
e o
Greer y Ruhe abordan el problema de la selecci´n de requisitos para cada iteraci´n del proceso de
o o
desarrollo software en [116]. Baker et al. [30] resuelven el problema de la “siguiente versi´n”, que consiste
o
en seleccionar los requisitos que van a implementarse en la siguiente iteraci´n del proceso de desarrollo.
o
Una versi´n multiobjetivo de este ultimo problema, planteada por Zhang, Harman y Mansouri, puede
o ´
encontrarse en [297].
2.1.2. Dise˜ o
n
En la fase de dise˜o los ingenieros software desarrollan una soluci´n que cumple los requisitos recolec-
n o
tados en el an´lisis. En esta fase se decide el dise˜o arquitect´nico y de comportamiento del software con
a n o
suficiente detalle como para que pueda ser implementado, pero sin llegar a ser una implementaci´n. o
Cuando, en el desarrollo del software, se usa el paradigma de orientaci´n a objetos, uno de los objetivos
o
de la fase de dise˜o consiste en proponer el conjunto de clases que formar´n la aplicaci´n. Las clases son
n a o
entidades con cierta autonom´ que colaboran entre ellas. En un buen dise˜o, se espera que el acoplamiento
ıa n
(dependencia) entre clases sea bajo y la cohesi´n de cada clase (relaci´n entre las tareas de los miembros
o o
de la clase) sea alta. Persiguiendo estos objetivos, Simons y Parmee [256] plantean el dise˜o conceptual
n
del software como un problema de optimizaci´n. Partiendo de un conjunto de m´todos con par´metros
o e a
y atributos que han sido identificados mediante los casos de uso, los autores abordan el problema de
encontrar una asignaci´n de los m´todos a clases que minimize el acoplamiento y maximize la cohesi´n.
o e o
Durante el desarrollo del software se generan distintos componentes, clases o m´dulos que deben ser
o
integrados conjuntamente para formar el producto final. Estos componentes son testados de forma aislada
(prueba unitaria o unit testing) conforme se desarrollan y, tras integrarlos con el resto de componentes
ya terminados, se prueban de nuevo para comprobar si la interacci´n entre ellos es correcta (prueba de
o
integraci´n o integration testing). En este ultimo caso, es posible que un componente necesite otro que a´n
o ´ u
no est´ completo, siendo necesario sustituir el componente incompleto por un componente temporal que
a
tiene la misma interfaz, conocido como stub. La implementaci´n de estos stubs es costosa y puede evitarse
o
26. 12 CAP´
ITULO 2. PROBLEMAS DE OPTIMIZACION EN INGENIER´ DEL SOFTWARE
´ IA
o reducirse si se implementan los componentes siguiendo un orden adecuado, que depender´ fundamen-
a
talmente del grafo de interrelaciones de componentes. La determinaci´n de este orden es un problema de
o
optimizaci´n que ha sido abordado en [45]. Hemos colocado este problema en la secci´n de dise˜o, a pesar
o o n
de estar a caballo entre el dise˜o y la implementaci´n, porque el objetivo del problema no es mejorar
n o
ning´n aspecto de la implementaci´n, sino m´s bien ahorrar costes del proyecto.
u o a
2.1.3. Implementaci´n
o
En la fase de implementaci´n es donde el dise˜o previamente creado se convierte en c´digo fuente.
o n o
Los ingenieros tienen que hacer realidad el dise˜o desarrollado en la fase anterior.
n
Los problemas de optimizaci´n que se han planteado en la fase de implementaci´n tienen que ver con
o o
la mejora o creaci´n de herramientas que ayuden al programador en su labor. Por ejemplo, Reformat et
o
al. [235] plantean el problema de la generaci´n autom´tica de clones. Este problema consiste en generar
o a
autom´ticamente un fragmento de c´digo fuente (una funci´n por ejemplo) que sea equivalente a otro
a o o
dado. Esta t´cnica tiene aplicaciones en el desarrollo de software tolerante a fallos.
e
Los compiladores son herramientas imprescindibles en la implementaci´n del software y, a su vez, una
o
fuente de gran cantidad de problemas de optimizaci´n que deben abordarse de alg´n modo a la hora de
o u
generar el c´digo objeto. La forma habitual de resolver estos problemas es mediante una heur´
o ıstica ad
hoc que, si bien no ofrece una soluci´n ´ptima en todos los casos, su tiempo de ejecuci´n es corto, lo cual
o o o
es una propiedad deseable para poder incorporarla en un compilador. Stephenson et al. [259] plantean el
problema de optimizar estas heur´ ısticas.
En general, las optimizaciones que aplica un compilador no son conmutativas, es decir, diferentes
secuencias de optimizaci´n dan lugar a distintos resultados (c´digo objeto). Cooper et al. [63] abordan el
o o
problema de encontrar una secuencia de optimizaci´n ´ptima para reducir el espacio que ocupa el c´digo
o o o
resultante, lo cual tiene una importante aplicaci´n en el desarrollo de software para sistemas empotrados.
o
Otro problema resuelto de forma no ´ptima es la gesti´n de memoria din´mica. Del Rosso [74] aborda
o o a
el problema de ajustar la configuraci´n del mont´
o ıculo (heap) para reducir la fragmentaci´n interna en
o
listas libres segregadas mientras que Cohen et al. [60] aplica t´cnicas de clustering a las hebras con el
e
objetivo de identificar grupos de hebras que accedan a los mismos objetos. Estos grupos compartir´n un a
mont´ ıculo, haciendo que el recolector de basura no tenga que detener todas las hebras para llevar a cabo
su labor, sino tan s´lo las del grupo afectado.
o
Otro interesante problema planteado en el seno de los compiladores es la generaci´n autom´tica de
o a
c´digo paralelo ´ptimo a partir de c´digo secuencial. Este problema ha sido abordado por Nisbet [220],
o o o
Williams [290] y Ryan [241].
Dada una unidad de c´digo fuente (funci´n, clase, etc.) es posible aplicar una secuencia de trans-
o o
formaciones a dicho c´digo que preserva la sem´ntica pero que altera la sintaxis. Esta secuencia de
o a
transformaciones podr´ reducir el n´mero de l´
ıa u ıneas de c´digo. El problema de encontrar la secuencia de
o
transformaciones que minimice la longitud del c´digo resultante ha sido abordado en [97] y [98].
o
2.1.4. Pruebas
En la fase de pruebas es donde el software implementado es testado para descubrir errores y, en caso
contrario, comprobar que se comporta de acuerdo a las especificaciones.
Para testar un m´todo o funci´n del software es necesario decidir los valores de sus argumentos de
e o
entrada. Un caso de prueba es una combinaci´n concreta de valores de para dichos argumentos. La labor
o
27. 2.1 CLASIFICACION DE LOS PROBLEMAS DE OPT. EN INGENIER´ DEL SOFTWARE
´ IA 13
del ingeniero de pruebas es crear un conjunto de casos de prueba y testar el software con ´l. Este conjunto
e
de casos de prueba debe ser tal que maximice la probabilidad de descubrir los posibles errores del objeto
de la prueba. El enfoque m´s popular para conseguir conjuntos de casos de prueba adecuados es usar
a
criterios de cobertura: un conjunto de casos de prueba se considera adecuado si consigue cubrir una gran
cantidad de elementos (instrucciones, ramas, predicados at´micos, etc.) del objeto de prueba. El problema
o
de la generaci´n autom´tica de casos de prueba es, con diferencia, el m´s estudiado de todos los problemas
o a a
de optimizaci´n relacionados con la ingenier´ el software. Desde el primer trabajo de Miller y Spooner
o ıa
de 1976 [207] hasta nuestros d´ se han propuesto diversas formas de abordar esta tarea. Uno de los
ıas,
paradigmas empleados, el paradigma estructural, hace uso de informaci´n estructural del programa para
o
generar los casos de prueba [5, 19, 20, 34, 194, 206]. Esta informaci´n proviene generalmente del grafo de
o
control de flujo. En numerosos trabajos se han estudiado y propuesto diferentes funciones objetivo [33,
41, 55, 180, 274]. As´ mismo, para aumentar la eficiencia y eficacia del proceso de generaci´n de casos
ı o
de prueba, se han combinado las estrategias de b´squeda con otras t´cnicas tales como slicing [131],
u e
transformaci´n de c´digo [130, 137, 166, 197], an´lisis de dependencia de datos [165], uso de medidas
o o a
software [169, 170, 243], b´squeda en dominios variables [244], y otros [198, 200, 292]. Se han propuesto
u
soluciones para algunos de los problemas principales que surgen en la generaci´n de casos de prueba: la
o
presencia de flags [31, 32, 40, 129], la existencia de estados internos en el programa [199, 201, 296], las
particularidades del software orientado a objetos [279, 280] y la presencia de excepciones [271]. Entre
las t´cnicas m´s populares para la resoluci´n del problema se encuentran los algoritmos gen´ticos [103,
e a o e
152, 153, 191, 224, 237, 238, 261, 291], la b´squeda tab´ [70], la b´squeda dispersa [246] y los algoritmos
u u u
de estimaci´n de distribuciones [242, 245]. Tambi´n se han desarrollado herramientas para la generaci´n
o e o
autom´tica de casos de prueba usando un enfoque basado en optimizaci´n [71, 267, 268, 269, 281]. La
a o
generaci´n autom´tica de casos de prueba usando informaci´n estructural del software se ha usado con
o a o
´xito para detectar desbordamientos de buffers [72, 73] y comprobar software cr´
e ıtico [272].
Un segundo paradigma de generaci´n de casos de prueba, denominado funcional, considera el software
o
como una caja negra [193, 247, 283]. Tambi´n se ha estudiado la generaci´n de casos de prueba para
e o
realizar pruebas de conformidad de m´quinas de estado finitas [76, 77, 124, 125, 126, 138, 177]. Se han
a
usado t´cnicas de programaci´n con restricciones [62] y se han evaluado los conjuntos de casos de prueba
e o
usando mutantes [1, 95, 252, 295]. Los mutantes son programas que contienen peque˜as variaciones con
n
respecto al objeto de la prueba. Normalmente, las variaciones que se incluyen en los mutantes representan
los errores m´s comunes que se cometen al programar. En este contexto, un conjunto de casos de prueba
a
es adecuado si es capaz de distinguir entre el programa original y los mutantes observando unicamente
´
la salida de ambos programas. La evaluaci´n de conjuntos de casos de prueba con esta t´cnica constituye
o e
otro criterio de adecuaci´n alternativo a los criterios de cobertura.
o
Las pruebas de interacci´n consisten en comprobar todas las combinaciones posibles de entornos de
o
ejecuci´n del software: distintos sistemas operativos, distintas configuraciones de memoria, etc. Cuantos
o
m´s factores se consideren mayor es el n´mero posible de combinaciones, creciendo ´ste de forma expo-
a u e
nencial. Por este motivo, se han propuesto estrategias basadas en optimizaci´n para reducir este enorme
o
conjunto de combinaciones [47, 48, 61].
Por otro lado, existe un conjunto de trabajos en el que se comprueban aspectos no funcionales del
software. La mayor´ de ellos se centran en el tiempo de ejecuci´n, con aplicaciones a los sistemas en
ıa o
tiempo real [46, 79, 215, 228, 266, 284, 285, 286]. Algunos trabajos extienden las t´cnicas para abordar
e
software orientado a objetos y basado en componentes [123, 120]. Tambi´n se han definido medidas que
e
permiten conocer, tras un examen del c´digo fuente del programa, si la aplicaci´n de t´cnicas basadas en
o o e
computaci´n evolutiva es adecuada o no para comprobar las restricciones temporales [119, 121, 122].
o
28. 14 CAP´
ITULO 2. PROBLEMAS DE OPTIMIZACION EN INGENIER´ DEL SOFTWARE
´ IA
Cuando el software es modificado, es necesario volver a aplicar algunas pruebas para comprobar que
no se han introducido nuevos errores. Esto es lo que se conoce como pruebas de regresi´n (regression
o
testing). Muchas de estas pruebas pueden reutilizarse de una etapa anterior, cuando el software pas´ por
o
primera vez la fase de pruebas. El problema de seleccionar las pruebas que se van a aplicar de nuevo ha
sido planteado como un problema de optimizaci´n en dos recientes trabajos de Yoo y Harman [293] y Li
o
et al. [178].
Por ultimo, el problema de verificar software concurrente ha sido tradicionalmente resuelto mediante
´
model checkers. Este tipo de t´cnicas suele reservarse exclusivamente a modelos de software concurrente
e
cr´
ıtico, y no se aplica al software que se desarrolla en un proyecto de mediana o gran envergadura
por su escasa escalabilidad. Sin embargo, existen algunos trabajos en la literatura que, bas´ndose en la
a
exploraci´n que realizan los model checkers, tratan de buscar errores en software concurrente planteando
o
dicho problema como una b´squeda en un grafo [13, 15, 16, 17, 92, 93, 94, 111]. Este enfoque tiene la
u
ventaja de que puede escalar m´s f´cilmente que el model checking cl´sico, permitiendo su aplicaci´n al
a a a o
software producido normalmente en la compa˜´ En otros trabajos, el objetivo no es buscar errores,
nıas.
sino generar casos de prueba para sistemas concurrentes [294].
2.1.5. Implantaci´n
o
Tras desarrollar y probar el software, procede la fase de implantaci´n en la que el sistema software es
o
instalado y desplegado en su entorno definitivo, donde ser´ utilizado.
a
Monnier et al. [214] abordan el problema de la planificaci´n de tareas en un sistema distribuido de
o
tiempo real. Dado un conjunto de tareas cuyo tiempo de ejecuci´n est´ acotado y con dependencias entre
o a
ellas, el problema consiste en asignar a cada tarea una m´quina para su ejecuci´n y planificar los instantes
a o
de tiempo en los que se comunicar´n las tareas usando la red.
a
2.1.6. Mantenimiento
La fase de mantenimiento es donde el software se modifica como consecuencia de las sugerencias de
los usuarios o, simplemente, con el objetivo de mejorar su calidad. Al igual que ocurr´ en la fase de
ıa
pruebas, existen muchos trabajos que afrontan problemas surgidos en la fase de mantenimiento usando
t´cnicas de optimizaci´n. Para realizar un clasificaci´n m´s fina de todos estos trabajos, los dividimos en
e o o a
dos grupos: an´lisis de software y transformaci´n.
a o
An´lisis de software
a
Una de las t´cnicas usadas durante la fase de mantenimiento para llegar a una r´pida comprensi´n de
e a o
la estructura y los objetivos de un determinado fragmento de c´digo fuente es la vinculaci´n de conceptos
o o
(concept binding). Esta t´cnica consiste en asignar autom´ticamente a cada segmento del c´digo fuente
e a o
una palabra o concepto perteneciente a un mapa conceptual previamente definido. Durante una primera
etapa, se asigna a cada l´ ınea o instrucci´n del c´digo fuente un indicador. Estos indicadores se˜alan la
o o n
posible vinculaci´n de un determinado concepto al segmento de c´digo en el que se encuentra el indicador.
o o
La siguiente etapa consiste en asignar conceptos a segmentos de c´digo en funci´n de los indicadores que
o o
se encuentren. Esta segunda etapa ha sido planteada como problema de optimizaci´n por Gold et al. [113].
o
Otras t´cnicas utilizadas para extraer autom´ticamente una estructura de alto nivel del software a
e a
partir del c´digo fuente son las t´cnicas de software clustering. La idea detr´s de ellas es agrupar distintos
o e a
elementos del software (clases, funciones, etc.) en m´dulos o subsistemas de acuerdo a su cohesi´n y
o o
29. 2.1 CLASIFICACION DE LOS PROBLEMAS DE OPT. EN INGENIER´ DEL SOFTWARE
´ IA 15
acoplamiento. Este problema, originalmente propuesto por Mancoridis et al. en [188], ha sido investigado
en profundidad en numerosos trabajos [90, 128, 133, 185, 186, 187, 210]. Mitchell et at. [211, 212] proponen
un procedimiento completo de ingenier´ inversa compuesto por una primera etapa en la que se aplican
ıa
t´cnicas de software clustering seguida de una segunda etapa de reconocimiento de estilos de interconexi´n
e o
entre los subsistemas inferidos en la primera etapa.
La detecci´n de clones consiste en descubrir fragmentos del c´digo fuente que son id´nticos o similares
o o e
sint´ctica o sem´nticamente. Sutton et al. [262] resuelven el problema de detecci´n de grupos de clones
a a o
en el c´digo fuente.
o
Transformaci´n
o
Basados en la idea del software clustering, Seng et al. [250] plantean el problema de mejorar la
descomposici´n del software en subsistemas. Se trata de encontrar una partici´n de los elementos del
o o
software (clases o funciones) formando subsistemas de manera que se optimicen una serie de par´metros
a
como la cohesi´n, el acoplamiento o la complejidad.
o
Slicing es una t´cnica usada para extraer autom´ticamente un fragmento no contiguo del c´digo que
e a o
resulta de valor para una acci´n concreta. Una forma de realizar esta extracci´n es seleccionar un conjunto
o o
de variables y obtener una proyecci´n del software (un subconjunto de instrucciones) que posea la misma
o
sem´ntica que el original con respecto a esas variables. Una variante de esta t´cnica, denominada slicing
a e
amorfo (amorphous slicing), consiste en generar un fragmento de c´digo que preserve la sem´ntica del
o a
programa con respecto a las variables seleccionadas pero sin necesidad de preservar la sintaxis. En [96],
Fatiregun et al. abordan el slicing amorfo como un problema de optimizaci´n. o
Refactoring es una t´cnica para reestructurar el c´digo fuente, cambiando su estructura interna, sin
e o
modificar la sem´ntica. La base de esta t´cnica se encuentra en una serie de peque˜as transformaciones
a e n
del c´digo que preservan el comportamiento del software. El objetivo del refactoring es encontrar una
o
secuencia de transformaciones que den lugar a una estructura m´s clara, legible y f´cil de mantener. Este
a a
problema se ha resuelto utilizando t´cnicas de optimizaci´n en numerosas ocasiones [42, 134, 222, 251].
e o
2.1.7. Gesti´n
o
La gesti´n de un proyecto software es una tarea que debe llevarse a cabo durante todo el proceso de
o
desarrollo, control´ndolo en todo momento y realizando los ajustes pertinentes. Para ello, es necesario
a
medir diversos aspectos del producto y del proceso, y tratar de predecir otros como la calidad del soft-
ware. Asimismo, entre las labores de gesti´n se encuentra la asignaci´n de personal a tareas. De nuevo
o o
aqu´ dividimos los trabajos en tres categor´ modelos de calidad, estimaci´n de costes y planificaci´n
ı ıas: o o
de proyectos.
Modelos de calidad
Uno de los problemas planteados en la gesti´n de un proyecto software es el de la predicci´n de la
o o
calidad del software. Bouktif et al. [43] plantean el problema de encontrar un modelo preciso capaz de
predecir la calidad del software en base a una serie de atributos externos e internos de ´ste.
e
Al equipo encargado de garantizar la calidad de un proyecto software le puede interesar la posibilidad
de obtener una lista de los m´dulos del software ordenados de acuerdo a su calidad, para as´ acometer
o ı
las acciones de mejora adecuadas. El problema de ajustar un modelo para la obtenci´n de estas listas de
o
m´dulos es abordado por Khoshgoftaar et al. en [160] y [159].
o