ARLO: A Tailorable Approach for Transforming Natural Language Software Requirements into Architecture using LLMs

Helmi, Tooraj

arXiv.org Artificial Intelligence 

--Software requirements expressed in natural language (NL) frequently suffer from verbosity, ambiguity, and inconsistency. This creates a range of challenges, including selecting an appropriate architecture for a system and assessing different architectural alternatives. Relying on human expertise to accomplish the task of mapping NL requirements to architecture is time-consuming and error-prone. This paper proposes ARLO, an approach that automates this task by leveraging (1) a set of NL requirements for a system, (2) an existing standard that specifies architecturally relevant software quality attributes, and (3) a readily available Large Language Model (LLM). Specifically, ARLO determines the subset of NL requirements for a given system that is architecturally relevant and maps that subset to a tailorable matrix of architectural choices. ARLO applies integer linear programming on the architectural-choice matrix to determine the optimal architecture for the current requirements. We demonstrate ARLO's efficacy using a set of real-world examples. We highlight ARLO's ability (1) to trace the selected architectural choices to the requirements and (2) to isolate NL requirements that exert a particular influence on a system's architecture. This allows the identification, comparative assessment, and exploration of alternative architectural choices based on the requirements and constraints expressed therein. I NTRODUCTION Software systems are ever-evolving, with increases in size and complexity that call for careful elicitation of requirements and architectural choices [1]. While it has been long recognized that requirements and architecture co-evolve [2], [3], understanding their interactions, especially early in the software development process, is still an open challenge. More specifically, there is a scarcity of knowledge regarding their alignment, architecture-to-requirements traceability, and conserving architectural knowledge [4]. Most software requirements are still captured using natural language (NL) [5]-[7]. The informal nature of NLs is a significant obstacle in machine processing of such requirements [8]. In the past, researchers have proposed approaches to classify the NL requirements into different categories of functional and non-functional requirements [5], [6], to identify quality attributes from NL requirements, to facilitate architectural decisions by leveraging machine learning [7], and so on. While promising, these approaches require large, curated datasets and high model-building effort [9]. Translating NL requirements to architecture-related design decisions is a cumbersome task that has long been recognized in the research community [1].