Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
Tree visualization with tree-maps: 2-d space-filling approach
ACM Transactions on Graphics (TOG)
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Cohesion and reuse in an object-oriented system
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Multidimensional binary search trees used for associative searching
Communications of the ACM
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Visualisation for informed decision making; from code to components
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Design erosion: problems and causes
Journal of Systems and Software
Leveraging Legacy System Dollars for E-Business
IT Professional
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
3D representations for software visualization
Proceedings of the 2003 ACM symposium on Software visualization
Mapping Information onto 3D Virtual Worlds
IV '00 Proceedings of the International Conference on Information Visualisation
IV '00 Proceedings of the International Conference on Information Visualisation
A 3D Metaphor for Software Production Visualization
IV '03 Proceedings of the Seventh International Conference on Information Visualization
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
IEEE Transactions on Software Engineering
Using History Information to Improve Design Flaws Detection
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Detection Strategies: Metrics-Based Rules for Detecting Design Flaws
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Visualizing multiple evolution metrics
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
Moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Visualization-based analysis of quality for large-scale software systems
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Program Comprehension through Software Habitability
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
IEEE Transactions on Software Engineering
EvoSpaces Visualization Tool: Exploring Software Architecture in 3D
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Software landscapes: visualizing the structure of large software systems
VISSYM'04 Proceedings of the Sixth Joint Eurographics - IEEE TCVG conference on Visualization
Visualizing large-scale streaming applications
Information Visualization
Architectural decision modeling with reuse: challenges and opportunities
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
An interactive ambient visualization for code smells
Proceedings of the 5th international symposium on Software visualization
User evaluation of polymetric views using a large visualization wall
Proceedings of the 5th international symposium on Software visualization
Representing development history in software cities
Proceedings of the 5th international symposium on Software visualization
Understanding context: creating a lasting impact in experimental software engineering research
Proceedings of the FSE/SDP workshop on Future of software engineering research
Software systems as cities: a controlled experiment
Proceedings of the 33rd International Conference on Software Engineering
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Visualizing the refactoring of classes via clustering
ACSC '11 Proceedings of the Thirty-Fourth Australasian Computer Science Conference - Volume 113
Fostering software quality assessment
Proceedings of the 2013 International Conference on Software Engineering
BugMap: a topographic map of bugs
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Assessing the quality of software design is difficult, as "design" is expressed through guidelines and heuristics, not rigorous rules. One successful approach to assess design quality is based on detection strategies, which are metrics-based composed logical conditions, by which design fragments with specific properties are detected in the source code. Such detection strategies, when executed on large software systems usually return large sets of artifacts, which potentially exhibit one or more "design disharmonies", which are then inspected manually, a cumbersome activity. In this article we present disharmony maps, a visualization-based approach to locate such flawed software artifacts in large systems. We display the whole system using a 3D visualization technique based on a city metaphor. We enrich such visualizations with the results returned by a number of detection strategies, and thus render both the static structure and the design problems that affect a subject system. We evaluate our approach on a number of open-source Java systems and report on our findings.