Relationships between Software Architecture and Source Code in Practice: An Exploratory Survey and Interview
Context: Software Architecture (SA) and Source Code (SC) are two intertwined artefacts that represent the interdependent design decisions made at different levels of abstractions - High-Level (HL) and Low-Level (LL). An understanding of the relationships between SA and SC is expected to bridge the gap between SA and SC for supporting maintenance and evolution of software systems. Objective: We aimed at exploring practitioners’ understanding about the relationships between SA and SC. Method: We used a mixed-method that combines an online survey with 87 respondents and an interview with 8 participants to collect the views of practitioners from 37 countries about the relationships between SA and SC. Results: Our results reveal that: practitioners mainly discuss five features of relationships between SA and SC; a few practitioners have adopted dedicated approaches and tools in the literature for identifying and analyzing the relationships between SA and SC despite recognizing the importance of such information for improving a system’s quality attributes, especially maintainability and reliability. It is felt that cost and effort are the major impediments that prevent practitioners from identifying, analyzing, and using the relationships between SA and SC. Conclusions: The results have empirically identified five features of relationships between SA and SC reported in the literature from the perspective of practitioners and a systematic framework to manage the five features of relationships should be developed with dedicated approaches and tools considering the cost and benefit of maintaining the relationships.
💡 Research Summary
The paper investigates how software practitioners perceive and manage the relationship between software architecture (SA) and source code (SC), two artefacts that capture design decisions at high‑level (HL) and low‑level (LL) abstractions. Recognizing that a clear understanding of SA‑SC relationships can bridge the gap between design and implementation, the authors set out to explore practitioners’ views, the features they consider important, and the extent to which they adopt existing academic approaches and tools.
Methodologically, the study follows a mixed‑methods design. An online questionnaire was distributed globally, gathering responses from 87 practitioners across 37 countries. The questionnaire covered definitions of SA‑SC relationships, perceived importance, current practices, and perceived barriers. From the survey pool, eight participants were selected for semi‑structured interviews to deepen the findings and capture concrete project experiences.
The analysis reveals that practitioners consistently identify five key features of SA‑SC relationships:
- Traceability – the ability to map architectural elements to concrete code artifacts.
- Consistency – ensuring that architectural specifications and code implementations do not contradict each other.
- Impact of Change – understanding how modifications in one artefact propagate to the other.
- Quality‑Attribute Alignment – leveraging the relationship to improve maintainability, reliability, performance, etc.
- Documentability & Visualization – explicitly recording and visualising the relationship through documentation, diagrams, or tool‑supported views.
Most respondents (over three‑quarters) agree that managing these relationships positively influences system quality, especially maintainability and reliability. However, actual adoption of dedicated relationship‑analysis tools is low: only about 12 % of survey participants reported using such tools, and the majority rely on informal mechanisms such as issue‑trackers, wikis, or code comments.
Interviews uncover the primary impediments: cost (licensing, training, and integration expenses) and effort (the manual work required to extract, keep up‑to‑date, and validate relationships). Practitioners note that while they recognise the strategic value of SA‑SC alignment, the day‑to‑day reality is that code evolves continuously while architecture often remains static, making relationship maintenance burdensome. Some organisations attempted to embed relationship checks into CI/CD pipelines, but high false‑positive rates and tool complexity led to abandonment.
Based on these findings, the authors propose a systematic framework for managing the five identified features. The framework consists of five stages: definition, extraction, visualisation, verification, and maintenance. Each stage is designed to be lightweight and to integrate with existing development environments (IDEs, version‑control systems, CI pipelines). In parallel, a cost‑benefit analysis model is introduced to help decision‑makers weigh the upfront investment (tool acquisition, training, additional effort) against expected gains in quality attributes and reduced maintenance effort.
The paper concludes that while practitioners understand the importance of SA‑SC relationships, practical adoption is hampered by economic and operational constraints. To close this gap, future research should focus on developing cost‑effective, easily integrable tools and on providing empirical evidence of the return on investment for relationship management. Such advances would enable the systematic exploitation of SA‑SC links, ultimately improving the maintainability, reliability, and evolvability of software systems.
Comments & Academic Discussion
Loading comments...
Leave a Comment