Abstract
Architectural knowledge and specifically design decisions have become first-class entities to be captured routinely in a design process. However, the quality of the decisions captured is often low. Part of the problem is that reflections intended to criticize, and thus improve, the decisions are seldom made in architecture teams, particularly when involving novice architects. To improve reflective practices and capture better decisions, we propose an design assistant approach based on generative AI techniques. Our assistant, called ArchMind, relies on two information sources: architectural knowledge about patterns, and information about the system under design. Furthermore, the assistant takes advantage of LLMs to progressively aid users in selecting and assessing alternative decisions, until capturing them using an Architecture Decision Record format. ArchMind mainly targets novice architects as discussed in an initial experiment using the assistant off-line for a classroom project. The generated ADRs were concrete and well-justified in their design rationale, although they tended to miss system-specific details.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Data Availability Statement
We provide a Github site with the source code and data used in the paper: https://github.com/tommantonela/archmind. A version of ArchMind can be run via Streamlit: https://archmind.streamlit.app/.
Notes
- 1.
In our experiment, this role was played by two of the authors.
- 2.
We included Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides), Microservices Patterns: With examples in Java (Richardson), Design It!: From Programmer to Software Architect (Keeling) and Software Architecture in Practice (Bass, Clements, Kazman, Safari).
- 3.
This does not mean that the ADRs produced by the students were considered as the ground truth but rather as a reference solution for comparison purposes.
References
Brown, T., et al.: Language models are few-shot learners. Adv. Neural Inf. Process. Syst. 33, 1877–1901 (2020)
Capilla, R., Zimmermann, O., Carrillo, C., Astudillo, H.: Teaching students software architecture decision making. In: Jansen, A., Malavolta, I., Muccini, H., Ozkaya, I., Zimmermann, O. (eds.) ECSA 2020. LNCS, vol. 12292, pp. 231–246. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-58923-3_16
Dhar, R., Vaidhyanathan, K., Varma, V.: Can llms generate architectural design decisions?-An exploratory empirical study. arXiv preprint arXiv:2403.01709 (2024)
Lewis, P., et al.: Retrieval-augmented generation for knowledge-intensive NLP tasks. Adv. Neural Inf. Process. Syst. 33, 9459–9474 (2020)
Ozkaya, I.: Can architecture knowledge guide software development with generative AI? IEEE Softw. 40(5), 4–8 (2023)
Razavian, M., Tang, A., Capilla, R., Lago, P.: In two minds: how reflections influence software design thinking. J. Softw. Evol. Process 28(6), 394–426 (2016)
White, J., Hays, S., Fu, Q., Spencer-Smith, J., Schmidt, D.C.: Chatgpt prompt patterns for improving code quality, refactoring, requirements elicitation, and software design. CoRR abs/2303.07839 (2023)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Díaz-Pace, J.A., Tommasel, A., Capilla, R. (2024). Helping Novice Architects to Make Quality Design Decisions Using an LLM-Based Assistant. In: Galster, M., Scandurra, P., Mikkonen, T., Oliveira Antonino, P., Nakagawa, E.Y., Navarro, E. (eds) Software Architecture. ECSA 2024. Lecture Notes in Computer Science, vol 14889. Springer, Cham. https://doi.org/10.1007/978-3-031-70797-1_21
Download citation
DOI: https://doi.org/10.1007/978-3-031-70797-1_21
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-70796-4
Online ISBN: 978-3-031-70797-1
eBook Packages: Computer ScienceComputer Science (R0)