As software systems evolve, their architecture is meant to adapt accordingly by following the changes in requirements, the environment, and the implementation. However, in practice, the evolving system often deviates from the architecture, causing severe consequences to system maintenance and evolution. This phenomenon of architecture erosion has been studied extensively in research, but not yet been examined from the point of view of developers. In this exploratory study, we look into how developers perceive the notion of architecture erosion, its causes and consequences, as well as tools and practices to identify and control architecture erosion. To this end, we searched through several popular online developer communities for collecting data of discussions related to architecture erosion. Besides, we identified developers involved in these discussions and conducted a survey with 10 participants and held interviews with 4 participants. Our findings show that: (1) developers either focus on the structural manifestation of architecture erosion or on its effect on run-time qualities, maintenance and evolution; (2) alongside technical factors, architecture erosion is caused to a large extent by non-technical factors; (3) despite the lack of dedicated tools for detecting architecture erosion, developers usually identify erosion through a number of symptoms; and (4) there are effective measures that can help to alleviate the impact of architecture erosion.


翻译:随着软件系统的发展,它们的建筑将随着要求、环境和实施的变化而相应调整,然而,实际上,不断演变的系统往往偏离结构,对系统维护和演变产生严重后果。这种结构侵蚀现象已在研究中进行了广泛研究,但尚未从开发者的角度加以研究。在这项探索性研究中,我们研究开发者如何看待结构侵蚀的概念、其原因和后果,以及查明和控制结构侵蚀的工具和做法。为此目的,我们通过几个受欢迎的在线开发者社区,收集与结构侵蚀有关的讨论数据。此外,我们查明了参与这些讨论的开发者,对10名参与者进行了调查,并与4名参与者进行了访谈。我们的调查结果表明:(1) 开发者要么侧重于结构侵蚀的结构表现,要么侧重于其对运行时间质量、维护和演变的影响;(2) 与技术因素一道,建筑侵蚀在很大程度上是由非技术因素造成的;(3) 尽管缺乏专门工具来探测结构侵蚀,但开发者通常通过若干症状来查明侵蚀情况;(4) 有有效措施可以帮助减轻结构侵蚀的影响。

0
下载
关闭预览

相关内容

专知会员服务
60+阅读 · 2020年3月19日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
Yoshua Bengio,使算法知道“为什么”
专知会员服务
7+阅读 · 2019年10月10日
GAN新书《生成式深度学习》,Generative Deep Learning,379页pdf
专知会员服务
202+阅读 · 2019年9月30日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | PRICAI 2019等国际会议信息9条
Call4Papers
6+阅读 · 2018年12月13日
计算机类 | 期刊专刊截稿信息9条
Call4Papers
4+阅读 · 2018年1月26日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
20+阅读 · 2020年6月8日
Generative Adversarial Networks: A Survey and Taxonomy
VIP会员
相关VIP内容
专知会员服务
60+阅读 · 2020年3月19日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
151+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
Yoshua Bengio,使算法知道“为什么”
专知会员服务
7+阅读 · 2019年10月10日
GAN新书《生成式深度学习》,Generative Deep Learning,379页pdf
专知会员服务
202+阅读 · 2019年9月30日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
人工智能 | PRICAI 2019等国际会议信息9条
Call4Papers
6+阅读 · 2018年12月13日
计算机类 | 期刊专刊截稿信息9条
Call4Papers
4+阅读 · 2018年1月26日
人工智能 | 国际会议/SCI期刊约稿信息9条
Call4Papers
3+阅读 · 2018年1月12日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员