Navegación

Búsqueda

Búsqueda avanzada

El autor Sebastián Ventura ha publicado 8 artículo(s):

1 - Interactividad en el descubrimiento evolutivo de arquitecturas

Resolver tareas propias del dise˜no arquitectónico de manera automática es un reto complejo, puesto que los arquitectos cuentan con habilidades que difícilmente pueden simularse y son capaces, además, de mantener una visión global de la actividad que realizan. Por su parte, la ingeniería del software basada en búsqueda está demostrando que las técnicas metaheurísticas son útiles cuando se desea prestar apoyo al ingeniero, especialmente cuando éste puede intervenir activamente en el proceso. Este trabajo analiza los retos que plantea esta colaboración a la hora de desarrollar modelos metaheurísticos para resolver tareas en una fase temprana del software como es el dise˜no arquitectónico. Se estudian aspectos como el papel del ingeniero y los criterios que van a guiar su intervención durante la búsqueda, sirviendo como paso previo para la propuesta de un modelo inicial con el que abordar el descubrimiento de arquitecturas software mediante un algoritmo evolutivo interactivo.

Autores: Aurora Ramírez / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: algoritmos evolutivos - Dise˜no arquitectónico - ingeniería del software basada en búsqueda - interactividad

2 - Análisis de la aplicabilidad de medidas software para el diseño semi-automático de arquitecturas

Dar soporte semi-automático al ingeniero software durante la fase de diseño arquitectónico es una tarea compleja, pues se deben manejar múltiples alternativas de diseño que satisfagan criterios de calidad de interés para el ingeniero. Cuando en el contexto de los sistemas de soporte a la decisíon se emplean técnicas metaheurísticas, estos criterios deben ser trasladados a medidas precisas que sean computacionalmente evaluables sobre las soluciones generadas automáticamente. Este trabajo analiza la problemática asociada a la utilizacíon de medidas software en el ámbito del diseño de arquitecturas basadas en componentes mediante técnicas de optimizacíon y búsqueda. Para ello se han analizado medidas relacionadas con los dos atributos de calidad más relevantes para este tipo de arquitecturas: la adecuacíon funcional y la mantenibilidad. El estudio realizado muestra que, si bien existe una gran variedad de medidas software, aún quedan diferentes aspectos que pueden limitar su aplicabilidad en el diseño semi-automático de arquitecturas.

Autores: Aurora Ramírez / José Raúl Romero / Sebastían Ventura / 
Palabras Clave: Diseño arquitectónico - ingeniería del software basada en búsqueda - medidas software

3 - Metaherramienta para la generacíon de aplicaciones científicas basadas en workflows

El uso de la programación visual en el ámbito científico ha contribuido al desarrollo de aplicaciones que facilitan la realizacíon de experimentos. Actualmente, existen aplicaciones para trabajar sobre un único dominio, limitadas a procedimientos propios de ese dominio, y aplicaciones multidominio, cuya complejidad para la configuracíon de sus elementos supone un gran esfuerzo para el usuario. Por tanto, es necesario ofrecer flexibilidad para trabajar sobre diversos dominios y permitir una adaptacíon intuitiva a dominios conocidos por el usuario. En este trabajo se presenta una metaherramienta para la generacíon automática de aplicaciones adaptadas a un dominio, o conjunto de dominios, para la composición y ejecucíon de workflows científicos en términos de procesos locales y servicios remotos. Estas nuevas aplicaciones disponen de una infraestructura que proporciona interoperabilidad con aplicaciones externas, presentan interfaces de usuario personalizadas y abstraen al usuario final de la complejidad de configuracíon al ofrecer elementos de trabajo ya adaptados a su campo.

Autores: Rubén Salado-Cid / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: metaherramienta - programacíon visual - servicios remotos - workflow científico

4 - Identificacíon de Componentes en Arquitecturas Software Mediante Programacíon Evolutiva

El análisis arquitectónico constituye una tarea indispensable en los grandes sistemas software, pues dedica su esfuerzo a encontrar soluciones de diseño de alto nivel que cumplan requisitos de desempeño, acoplamiento, cohesíon o reutilizacíon, entre otros. Sin embargo, aspectos como la experiencia del arquitecto software o la complejidad del sistema repercuten en el resultado. La Inteligencia Artificial (IA) aporta un marco novedoso para el desarrollo de herramientas semi-automáticas en este dominio. En general, el área de SBSE (Search-Based Software Engineering) plantea considerar los retos de la Ingeniería del Software como problemas de optimizacíon y búsqueda. Este trabajo presenta una nueva propuesta para la identificación de arquitecturas basadas en componentes a partir de representaciones cercanas al experto y haciendo uso de la metaheurística de Programacíon Evolutiva (EP). Además, discute los principales retos a los que se enfrenta este tipo de soluciones y desarrolla un estudio experimental que aporta resultados prometedores.

Autores: Aurora Ramírez / José Raúl Romero / Sebastían Ventura / 
Palabras Clave: Arquitecturas basadas en componentes - Programacíon Evolutiva - SBSE

5 - Descubrimiento de patrones de diseño basado en buenas prácticas: modelo y discusión

La complejidad de los sistemas actuales obliga a los ingenieros software a aprender de las buenas prácticas empleadas en proyectos previos como, por ejemplo, el uso de patrones de diseño. Dichos patrones tienen una gran importancia durante la fase de diseño y su posterior implementación genera varias ventajas. En este contexto, se propone el uso de técnicas de minería de datos que ayuden a comprender como otros ingenieros software han implementado dichos patrones. Con la representación adecuada, este conocimiento se podrá utilizar para identificar fragmentos de código susceptibles de ser convertidos en un determinado patrón. Además del modelo, se discuten ventajas y retos asociados.

Autores: Rafael Barbudo / Aurora Ramírez / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: buenas prácticas - Minería de repositorios software - patrones de diseño - programación genética gramatical

6 - Búsqueda coevolutiva interactiva aplicada al diseño de software

La resolución de tareas de diseño software mediante técnicas de búsqueda plantea dificultades como la exploración efectiva de un gran conjunto de alternativas, cuya calidad no puede ser evaluada sólo en base a medidas software. Con el fin de solventarlas, es necesario considerar técnicas más avanzadas que se aproximen más a cómo los ingenieros diseñan en la realidad. Los modelos coevolutivos permiten descomponer el problema original en varias partes diferenciadas que se resuelven simultáneamente, mientras que la optimización interactiva permite incorporar el conocimiento del ingeniero. Este trabajo propone un modelo que combina ambas técnicas y plantea los retos que conlleva su desarrollo.

Autores: Aurora Ramírez / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: algoritmos coevolutivos - diseño software - ingeniería del software basada en búsqueda - optimización interactiva

7 - API para el desarrollo de algoritmos interactivos en ingeniería del software basada en búsqueda

La experiencia y la intuición son factores clave a la hora de dar solución a los complejos problemas que plantea la ingeniería del software. Sin embargo, este tipo de criterios no suelen ser considerados cuando su resolución se aborda por medio de técnicas de búsqueda automática. La ingeniería del software basada en búsqueda (SBSE) no puede ni debe obviar la opinión del ingeniero, razón por la que cada vez es más frecuente encontrar propuestas que le invitan a participar en el proceso. Diseñar e implementar un mecanismo de interacción efectivo, a la par que atractivo para el ingeniero, puede resultar complejo. Por ello, este trabajo presenta una API para dar soporte al desarrollo de algoritmos interactivos en SBSE. En base a los enfoques interactivos actuales en SBSE, esta API expone cuáles son los requisitos propios de la interactividad que deben programarse como, por ejemplo, la forma de evaluar las soluciones y las acciones que el ingeniero puede realizar sobre ellas.

Autores: Aurora Ramírez / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: Application Programming Interface - ingeniería del software basada en búsqueda - interactividad

8 - Interactive multi-objective evolutionary optimization of software architectures

While working on a software specification, designers usually need to evaluate different architectural alternatives to be sure that quality criteria are met. Even when these quality aspects could be expressed in terms of multiple software metrics, other qualitative factors cannot be numerically measured, but they are extracted from the engineers know-how and prior experiences. In fact, detecting not only strong but also weak points in the different solutions seems to fit better with the way humans make their decisions. Putting the human in the loop brings new challenges to the search-based software engineering field, especially for those human-centered activities within the early analysis phase. This paper explores how the interactive evolutionary computation can serve as a basis for integrating the humans judgment into the search process. An interactive approach is proposed to discover software architectures, in which both quantitative and qualitative criteria are applied to guide a multi-objective evolutionary algorithm. The obtained feedback is incorporated into the fitness function using architectural preferences allowing the algorithm to discern between promising and poor solutions. Experimentation with real users has revealed that the proposed interaction mechanism can effectively guide the search towards those regions of the search space that are of real interest to the expert.Publicado en: Information Sciences, vol. 463-464, pp. 92-109. 2018. DOI: https://doi.org/10.1016/j.ins.2018.06.034. IF(2017): 4.305 [12/148, Information Systems (Q1)]

Autores: Aurora Ramírez / José Raúl Romero / Sebastián Ventura / 
Palabras Clave: interactive evolutionary computation - multi-objective optimization - search-based software design - software architecture discovery