@article{carvalho_colanzi_assuncao_garcia_pereira_kalinowski_mello_lima_lucena_2024, title={On the Usefulness of Automatically Generated Microservice Architectures}, volume={50}, ISSN={["1939-3520"]}, DOI={10.1109/TSE.2024.3361209}, number={3}, journal={IEEE TRANSACTIONS ON SOFTWARE ENGINEERING}, author={Carvalho, Luiz and Colanzi, Thelma Elita and Assuncao, Wesley K. G. and Garcia, Alessandro and Pereira, Juliana Alves and Kalinowski, Marcos and Mello, Rafael Maiani and Lima, Maria Julia and Lucena, Carlos}, year={2024}, month={Mar}, pages={651–667} } @article{mashkoor_assuncao_egyed_2024, title={Teaching Engineering of AI-Intensive Systems}, volume={41}, ISSN={["1937-4194"]}, DOI={10.1109/MS.2023.3346996}, abstractNote={With the increasing prevalence of AI, a key question is how to adequately prepare the next generation of software engineers to build AIintensive systems. This article presents our teaching experience for the “Engineering of AI-intensive Systems” course to postgraduate students. This course is tailored for computer science students, bridging the disciplines of software engineering (SE) and artificial intelligence (AI). The primary goal is to equip participants with the knowledge and skills to adeptly engineer AI-intensive systems with a strong foundation in conventional SE principles. The article delves into the course’s structure, teaching methods, and assessment techniques, underscoring the advantages inherent in this interdisciplinary educational approach.}, number={2}, journal={IEEE SOFTWARE}, author={Mashkoor, Atif and Assuncao, Wesley K. G. and Egyed, Alexander}, year={2024}, pages={30–35} } @article{wolfart_martinez_assuncao_colanzi_egyed_2024, title={Variability debt in opportunistic reuse: A multi-project field study}, volume={210}, ISSN={["1873-1228"]}, DOI={10.1016/j.jss.2024.111969}, abstractNote={Technical debt is a metaphor to guide the identification, measurement, and general management of decisions that are appropriate in the short term but create obstacles in the future evolution and maintenance of systems. Variability management, which is the ability to create system variants to satisfy different business or technical needs, is a potential source of technical debt. Variability debt, recently characterized in a systematic literature review we conducted, is caused by suboptimal solutions in the implementation of variability management in software systems. In this work, we present a field study in which we report quantitative and qualitative analysis of variability debt through artifact analysis (e.g., requirements, source code, and tests) and a survey with stakeholders (e.g., analysts, developers, managers, and a user). The context is a large company with three different systems, where opportunistic reuse (a.k.a., copy-and-paste or clone-and-own reuse) of almost all project artifacts was performed to create variants for each system. We analyze the variability debt phenomenon related to opportunistic reuse, and we assess the validity of the metaphor to create awareness to stakeholders and guide technical debt management research related to variability aspects. The results of the field study show evidences of factors that complicate the evolution of the variants, such as code duplication and non-synchronized artifacts. Time pressure is identified as the main cause for not considering other options than opportunistic reuse. Technical practitioners mostly agree on the creation of usability problems and complex maintenance of multiple independent variants. However, this is not fully perceived by managerial practitioners.}, journal={JOURNAL OF SYSTEMS AND SOFTWARE}, author={Wolfart, Daniele and Martinez, Jabier and Assuncao, Wesley K. G. and Colanzi, Thelma E. and Egyed, Alexander}, year={2024}, month={Apr} } @article{assuncao_kruger_mosser_selaoui_2023, title={How do microservices evolve? An empirical analysis of changes in open-source microservice repositories}, volume={204}, ISSN={["1873-1228"]}, DOI={10.1016/j.jss.2023.111788}, abstractNote={Microservice architectures are an emergent service-oriented paradigm widely used in industry to develop and deploy scalable software systems. The underlying idea is to design highly independent services that implement small units of functionality and can interact with each other through lightweight interfaces. Even though microservices are often used with success, their design and maintenance pose novel challenges to software engineers. In particular, it is questionable whether the intended independence of microservices can actually be achieved in practice. So, it is important to understand how and why microservices evolve during a system’s life-cycle, for instance, to scope refactorings and improvements of a system’s architecture or to develop supporting tools. To provide insights into how microservices evolve, we report a large-scale empirical study on the (co-)evolution of microservices in 11 open-source systems, involving quantitative and qualitative analyses of 7,319 commits. Our quantitative results show that there are recurring patterns of (co-)evolution across all systems, for instance, “shotgun surgery” commits and microservices that are largely independent, evolve in tuples, or are evolved in almost all changes. We refine our results by analyzing service-evolving commits qualitatively to explore the (in-)dependence of microservices and the causes for their specific evolution. The contributions in this article provide an understanding for practitioners and researchers on how microservices evolve in what way, and how microservice-based systems may be improved.}, journal={JOURNAL OF SYSTEMS AND SOFTWARE}, author={Assuncao, Wesley K. G. and Kruger, Jacob and Mosser, Sebastien and Selaoui, Sofiane}, year={2023}, month={Oct} }