Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Empirical studies of software engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Creating Architectures with Building Blocks
IEEE Software
Preliminary guidelines for empirical research in software engineering
IEEE Transactions on Software Engineering
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Identifying Reasons for Software Changes Using Historic Databases
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
CVS Release History Data for Detecting Logical Couplings
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Clustering Software Artifacts Based on Frequent Common Changes
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Improving evolvability through refactoring
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Detecting groups of co-changing files in CVS repositories
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
EvoLens: Lens-View Visualizations of Evolution Data
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
Automatic Identification of Bug-Introducing Changes
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Animated Visualization of Software History using Evolution Storyboards
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
EvoGraph: A Lightweight Approach to Evolutionary and Structural Analysis of Large Software Systems
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
An Evaluation of Similarity Coefficients for Software Fault Localization
PRDC '06 Proceedings of the 12th Pacific Rim International Symposium on Dependable Computing
Visualization for Software Evolution Based on Logical Coupling and Module Coupling
APSEC '07 Proceedings of the 14th Asia-Pacific Software Engineering Conference
Classifying Software Changes: Clean or Buggy?
IEEE Transactions on Software Engineering
Assessing Software Archives with Evolutionary Clusters
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
A Tool for Visual Understanding of Source Code Dependencies
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Statecharts in the making: a personal account
Communications of the ACM - Being Human in the Digital Age
On the transfer of evolutionary couplings to industry
MSR '09 Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories
Visualizing Co-Change Information with the Evolution Radar
IEEE Transactions on Software Engineering
Characterizing Evolutionary Clusters
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
Interactive Exploration of Co-evolving Software Entities
CSMR '10 Proceedings of the 2010 14th European Conference on Software Maintenance and Reengineering
Hi-index | 0.00 |
Context: Frequent changes to groups of software entities belonging to different parts of the system may indicate unwanted couplings between those parts. Visualizations of co-changing software entities have been proposed to help developers identify unwanted couplings. Identifying unwanted couplings, however, is only the first step towards an important goal of a software architect: to improve the decomposition of the software system. An in-depth analysis of co-changing entities is needed to understand the underlying reasons for co-changes, and also determine how to resolve the issues. Objective: In this paper we discuss how interactive visualizations can support the process of analyzing the identified unwanted couplings. Method: We applied a tool that interactively visualizes software evolution in 10 working sessions with architects and developers of a large embedded software system having a development history of more than a decade. Results: The participants of the working sessions were overall very positive about their experiences with the interactive visualizations. In 70% of the cases investigated, a decision could be taken on how to resolve the unwanted couplings. Conclusion: Our experience suggests that interactive visualization not only helps to identify unwanted couplings but it also helps experts to reason about and resolve them.