DeepAI AI Chat
Log In Sign Up

Relationships between Software Architecture and Source Code in Practice: An Exploratory Survey and Interview

by   Fangchao Tian, et al.

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.


page 1

page 2

page 3

page 4


On The Gap Between Software Maintenance Theory and Practitioners' Approaches

The way practitioners perform maintenance tasks in practice is little kn...

A Survey on Vulnerabilities of Ethereum Smart Contracts

Smart contract (SC) is an extension of BlockChain technology. Ethereum B...

Do practitioners intentionally self-fix Technical Debt and why?

The impact of Technical Debt (TD) on software maintenance and evolution ...

Understanding Architecture Erosion: The Practitioners' Perceptive

As software systems evolve, their architecture is meant to adapt accordi...

Semantic Communications With AI Tasks

A radical paradigm shift of wireless networks from “connected things” to...

Open Tracing Tools: Overview and Critical Comparison

Background. Coping with the rapid growing complexity in contemporary sof...

Source Code Properties of Defective Infrastructure as Code Scripts

Context: In continuous deployment, software and services are rapidly dep...