Supporting Software Architecture Maintenance by Providing Task-Specific Recommendations

During software maintenance, developers have different information needs (e.g., to understand what type of maintenance activity to perform, the impact of a maintenance activity and its effort). However, information to support developers may be distributed across various sources. Furthermore, information captured in formal architecture documentation may be outdated. In this paper, we put forward a late breaking idea and outline a solution to improve the productivity of developers by providing task-specific recommendations based on concrete information needs that arise during software maintenance.

[1]  Philippe Kruchten Lifelong Learning for Lifelong Employment , 2015, IEEE Softw..

[2]  Christoph Treude,et al.  Blogging developer knowledge: Motivations, challenges, and future directions , 2013, 2013 21st International Conference on Program Comprehension (ICPC).

[3]  Mohamed Soliman,et al.  Architectural Knowledge for Technology Decisions in Developer Communities: An Exploratory Study with StackOverflow , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[4]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[5]  Jan Bosch,et al.  Managing architectural technical debt: A unified model and systematic literature review , 2018, J. Syst. Softw..

[6]  Alexander Chatzigeorgiou,et al.  Identification of Refused Bequest Code Smells , 2013, 2013 IEEE International Conference on Software Maintenance.

[7]  Premkumar T. Devanbu,et al.  Belief & Evidence in Empirical Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[8]  Martin P. Robillard,et al.  Discovering Information Explaining API Types Using Text Classification , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[9]  Thomas Kuhn,et al.  Embedded-Software Architects: It's Not Only about the Software , 2016, IEEE Software.

[10]  Janice Singer,et al.  How software engineers use documentation: the state of the practice , 2003, IEEE Software.

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  Dag I. K. Sjøberg,et al.  Effects of Personality on Pair Programming , 2010, IEEE Transactions on Software Engineering.

[13]  Premkumar T. Devanbu,et al.  Belief and Evidence: How Software Engineers Form Their Opinions , 2018, IEEE Software.

[14]  Jiamou Sun,et al.  Improving API Caveats Accessibility by Mining API Caveats Knowledge Graph , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[15]  Jan Bosch,et al.  The Danger of Architectural Technical Debt: Contagious Debt and Vicious Circles , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[16]  Raghuraman Krishnamurthy Breezing My Way as a Solution Architect: A Retrospective on Skill Development and Use , 2017, IEEE Software.

[17]  Austen Rainer,et al.  How do empirical software engineering researchers assess the credibility of practitioner-generated blog posts? , 2019, EASE.

[18]  Peng Liang,et al.  Software Architecture Documentation: The Road Ahead , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.