AIssistDM: A Plugin to Assist Non-specialist Decision-Makers in Search-Based Software Engineering Tools

  • Willian M. Freire UEM
  • Murilo Boccardo UEM
  • Daniel Nouchi UEM
  • Aline M. M. M. Amaral UEM
  • Silvia R. Vergilio UFPR
  • Thiago Ferreira University of Michigan-Flint
  • Thelma E. Colanzi UEM

Resumo


Search-Based Software Engineering (SBSE) is a field that applies optimization algorithms to address complex problems in various software engineering domains. A significant challenge when using SBSE tools is the choice of parameter values related to the problem domain, which is usually performed by the Decision-Makers (DMs). This task is not trivial and critically influences the resulting solutions. Recognizing that DMs, mainly non-specialist ones, often struggle with these complexities, this paper introduces AIssistDM, a plugin developed to make adopting SBSE tools accessible without needing deep knowledge of their configuration parameters. The AIssistDM offers guided assistance by integrating Large Language Models (LLMs), particularly ChatGPT, to provide human-text generated suggestions of problem-domain parameters, improving decision-making. AIssistDM plugin was designed with a modular architecture to be integrated with different SBSE tools. The plugin has standard interfaces to enhance its capabilities without requiring extensive modifications in the integrated tools. A usage example describes integrating with the tool OPLA-Tool for Product Line Architecture (PLA) search-based design. This integration aids non-specialist DMs when configuring objective functions in OPLA-Tool. This study demonstrates how the AIssistDM integrates SBSE tools with ChatGPT by detailing the system architecture and core functionalities. The AIssistDM represents an advancement in the SBSE field, offering a new way to support the DM’s choice of parameters for SBSE tools. Video Available on https://doi.org/10.6084/m9.figshare.25942801.v1

Palavras-chave: Search-based Software Engineering, Large Language Model, Plugin

Referências

Wasif Afzal, Richard Torkar, and Robert Feldt. 2009. A systematic review of search-based testing for non-functional system properties. Information and Software Technology 51, 6 (2009), 957–976.

Baleegh Ahmad, Shailja Thakur, Benjamin Tan, Ramesh Karri, and Hammond Pearce. 2024. On Hardware Security Bug Code Fixes By Prompting Large Language Models. IEEE Transactions on Information Forensics and Security (2024).

Uri Alon, Roy Sadaka, Omer Levy, and Eran Yahav. 2020. Structural language models of code. In International conference on machine learning. PMLR, 245–256.

Andrea Arcuri and Gordon Fraser. 2013. Parameter tuning or default values? An empirical investigation in search-based software engineering. Empirical Software Engineering 18 (2013), 594–623.

Anonymous Authors. 2024. Complementary Material. (2024). [link]

Cosimo Birtolo, Paolo Pagano, and Luigi Troiano. 2009. Evolving colors in user interfaces by interactive genetic algorithm. In 2009 World Congress on Nature & Biologically Inspired Computing (NaBIC). IEEE, 349–355.

Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. 2020. Language models are few-shot learners. Advances in neural information processing systems 33 (2020), 1877–1901.

Paul Clements and Linda Northrop. 2002. Software Product Lines: Practices and Patterns. Addison-Wesley Professional.

Thelma Elita Colanzi, Silvia Regina Vergilio, Itana Gimenes, and Willian Nalepa Oizumi. 2014. A search-based approach for software product line design. In Proc. of the 18th International Software Product Line Conference-Volume 1. 237–241.

Jacob Devlin et al. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. North American Chapter of the Association for Computational Linguistics (2018).

Gordon Fraser and Andrea Arcuri. 2011. EvoSuite: Automatic Test Suite Generation for Object-Oriented Software. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM, 416–419.

Willian Marques Freire, Mamoru Massago, Arthur Cattaneo Zavadski, Aline Maria Malachini, Miotto Amaral, and Thelma Elita Colanzi. 2020. OPLATool v2. 0: a tool for product line architecture design optimization. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering. 818–823.

Mark Harman and Bryan F Jones. 2010. Search based software engineering: Trends, techniques and applications. ACM Computing Surveys (CSUR) 45, 1 (2010), 11.

Maliheh Izadi, Jonathan Katzy, Tim Van Dam, Marc Otten, Razvan Mihai Popescu, and Arie Van Deursen. 2024. Language Models for Code Completion: A Practical Evaluation. In Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. 1–13.

Wael Kessentini, Manuel Wimmer, and Houari Sahraoui. 2018. Integrating the designer in-the-loop for metamodel/model co-evolution via interactive computational search. In Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems. 101–111.

William B. Langdon and Justyna Petke. 2017. Optimising Existing Software with Genetic Programming. IEEE Transactions on Evolutionary Computation 21, 1 (2017), 118–135.

William B Langdon and Justyna Petke. 2018. Evolving better software parameters. In Search-Based Software Engineering: 10th International Symposium, SSBSE 2018, Montpellier, France, September 8-9, 2018, Proceedings 10. Springer, 363–369.

Manuel López-Ibáñez, Jérémie Dubois-Lacoste, Thomas Stützle, and Mauro Birattari. 2011. The IRACE package, Iterated Race for Automatic Algorithm Configuration. Technical Report TR/IRIDIA/2011-004. IRIDIA, Université Libre de Bruxelles, Belgium.

MohamedWMkaouer, Marouane Kessentini, Slim Bechikh, and Daniel R Tauritz. 2013. Preference-based multi-objective software modelling. In 2013 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE). IEEE, 61–66.

Klaus Pohl, Günter Böckle, and Frank van der Linden. 2005. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer Science & Business Media.

Alec Radford and Karthik Narasimhan. 2018. Improving Language Understanding by Generative Pre-Training. [link]

Aurora Ramirez, José Raúl Romero, and Sebastian Ventura. 2018. Interactive multi-objective evolutionary optimization of software architectures. Information Sciences 463 (2018), 92–109.

Paolo Tonella, Angelo Susi, and Francis Palma. 2013. Interactive requirements prioritization using a genetic algorithm. Information and software technology 55, 1 (2013), 173–187.

Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in neural information processing systems. 5998–6008.

Yenisei D. Verdecia, Thelma E. Colanzi, Silvia R. Vergilio, and Marcelo C.B. dos Santos. 2017. An Enhanced Evaluation Model for Search-based Product Line Architecture Design.. In CIbSE. 155–168.

Chen Yang, Junjie Chen, Bin Lin, Jianyi Zhou, and Ziqi Wang. 2024. Enhancing LLM-based Test Generation for Hard-to-Cover Branches via Program Analysis. arXiv preprint arXiv:2404.04966 (2024).
Publicado
30/09/2024
FREIRE, Willian M.; BOCCARDO, Murilo; NOUCHI, Daniel; AMARAL, Aline M. M. M.; VERGILIO, Silvia R.; FERREIRA, Thiago; COLANZI, Thelma E.. AIssistDM: A Plugin to Assist Non-specialist Decision-Makers in Search-Based Software Engineering Tools. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 725-731. DOI: https://doi.org/10.5753/sbes.2024.3567.