ABSTRACT
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.
- Alam, S., and Dugerdil, P. 2007. Evospaces visualization tool: Exploring software architecture in 3d. In Proceedings of WCRE 2007, IEEE CS Press, 269--270. Google ScholarDigital Library
- Andrews, K., Wolte, J., and Pichler, M. 1997. Information pyramids: A new approach to visualising large hierarchies. In Proceedings of VIS 1997, IEEE CS Press, 49--52.Google Scholar
- Balzer, M., Noack, A., Deussen, O., and Lewerentz, C. 2004. Software landscapes: Visualizing the structure of large software systems. In Proceedings of VisSym 2004, Eurographics Association, 261--266. Google ScholarDigital Library
- Beck, K. 2000. Extreme Programming Explained: Embrace Change. Addison Wesley. Google ScholarDigital Library
- Bentley, J. L. 1975. Multidimensional binary search trees used for associative searching. Commun. ACM 18, 9, 509--517. Google ScholarDigital Library
- Bieman, J., and Kang, B. 1995. Cohesion and reuse in an object-oriented system. In Proceedings of the ACM Symposium on Software Reusability, ACM Press. Google ScholarDigital Library
- Boccuzzo, S., and Gall, H. C. 2007. Cocoviz: Towards cognitive software visualizations. In Proceedings of VISSOFT 2007, IEEE CS Press, 72--79.Google Scholar
- Briand, L. C., Daly, J. W., and Wüst, J. 1998. A Unified Framework for Cohesion Measurement in Object-Oriented Systems. Empirical Software Engineering: An International Journal 3, 1, 65--117. Google ScholarDigital Library
- Charters, S. M., Knight, C., Thomas, N., and Munro, M. 2002. Visualisation for informed decision making; from code to components. In Proceedings of SEKE 2002, ACM Press, 765--772. Google ScholarDigital Library
- Chidamber, S. R., and Kemerer, C. F. 1994. A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20, 6 (June), 476--493. Google ScholarDigital Library
- Chikofsky, E., and Cross II, J. 1990. Reverse engineering and design recovery: A taxonomy. IEEE Software 7, 1, 13--17. Google ScholarDigital Library
- Demeyer, S., Tichelaar, S., and Ducasse, S. 2001. FAMIX 2.1 --- The FAMOOS Information Exchange Model. Tech. rep., University of Bern.Google Scholar
- Ducasse, S., Gírba, T., and Nierstrasz, O. 2005. Moose: an agile reengineering environment. In Proceedings of ESEC/FSE 2005, 99--102. Google ScholarDigital Library
- Eick, S. G., Steffen, J. L., and Eric E., Jr., S. 1992. SeeSoft---a tool for visualizing line oriented software statistics. IEEE Transactions on Software Engineering 18, 11 (Nov.), 957--968. Google ScholarDigital Library
- Eick, S., Graves, T., Karr, A., Marron, J., and Mockus, A. 2001. Does code decay? assessing the evidence from change management data. IEEE Transactions on Software Engineering 27, 1, 1--12. Google ScholarDigital Library
- Erlikh, L. 2000. Leveraging legacy system dollars for e-business. IT Professional 2, 3, 17--23. Google ScholarDigital Library
- Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. 1999. Refactoring: Improving the Design of Existing Code. Addison Wesley. Google ScholarDigital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley. Google ScholarDigital Library
- Knight, C., and Munro, M. C. 2000. Virtual but visible software. In Proceedings of IV 2000, IEEE CS Press, 198--205. Google ScholarDigital Library
- Langelier, G., Sahraoui, H. A., and Poulin, P. 2005. Visualization-based analysis of quality for large-scale software systems. In Proceedings of ASE 2005, ACM Press, 214--223. Google ScholarDigital Library
- Lanza, M., and Ducasse, S. 2003. Polymetric views---a lightweight visual approach to reverse engineering. Transactions on Software Engineering (TSE) 29, 9 (Sept.), 782--795. Google ScholarDigital Library
- Lanza, M., and Marinescu, R. 2006. Object-Oriented Metrics in Practice. Springer-Verlag. Google ScholarDigital Library
- Marcus, A., Feng, L., and Maletic, J. I. 2003. 3d representations for software visualization. In Proceedings of SoftVis 2003, ACM Press, 27--36. Google ScholarDigital Library
- Marinescu, C., Marinescu, R., Mihancea, P. F., Ratiu, D., and Wettel, R. 2005. iPlasma: An integrated platform for quality assessment of object-oriented design. In Proceedings of ICSM 2005, Industrial & Tool Volume, IEEE CS Press, 77--80.Google Scholar
- Marinescu, R. 2004. Detection strategies: Metrics-based rules for detecting design flaws. In Proceedings of ICSM 2004, IEEE CS Press, 350--359. Google ScholarDigital Library
- McCabe, T. 1976. A measure of complexity. IEEE Transactions on Software Engineering 2, 4 (Dec.), 308--320. Google ScholarDigital Library
- Muller, H., and Klashinsky, K. 1988. Rigi: a system for programming-in-the-large. In Proceedings of ICSE 1988, ACM Press, 80--86. Google ScholarDigital Library
- Panas, T., Berrigan, R., and Grundy, J. 2003. A 3d metaphor for software production visualization. In Proceedings of IV 2003, IEEE CS Press, 314. Google ScholarDigital Library
- Pinzger, M., Gall, H., Fischer, M., and Lanza, M. 2005. Visualizing multiple evolution metrics. In Proceedings of SoftVis 2005, ACM Press, 67--75. Google ScholarDigital Library
- Pinzger, M. 2005. ArchView --- Analyzing Evolutionary Aspects of Complex Software Systems. PhD thesis, Vienna University of Technology.Google Scholar
- Raţiu, D., Ducasse, S., Gîrba, T., and Marinescu, R. 2004. Using history information to improve design flaws detection. In Proceedings of CSMR 2004, IEEE CS Press, 223--232. Google ScholarDigital Library
- Riel, A. 1996. Object-Oriented Design Heuristics. Addison Wesley, Boston MA. Google ScholarDigital Library
- Santos, C. R. D., Gros, P., Abel, P., Loisel, D., Trichaud, N., and Paris, J. P. 2000. Mapping information onto 3d virtual worlds. In Proceedings of IV 2000, 379--386. Google ScholarDigital Library
- Shneiderman, B. 1992. Tree visualization with tree-maps: 2-d space-filling approach. ACM Trans. Graph. 11, 1, 92--99. Google ScholarDigital Library
- van Gurp, J., and Bosch, J. 2002. Design erosion: problems and causes. Journal of Systems and Software 61, 2, 105--119. Google ScholarDigital Library
- Wettel, R., and Lanza, M. 2007. Program comprehension through software habitability. In Proceedings of ICPC 2007, IEEE CS Press, 231--240. Google ScholarDigital Library
- Wettel, R., and Lanza, M. 2007. Visualizing software systems as cities. In Proceedings of VISSOFT 2007, IEEE CS Press, 92--99.Google Scholar
Index Terms
- Visually localizing design problems with disharmony maps
Recommendations
Measuring Design-Level Cohesion
Cohesion was first introduced as a software attribute that, when measured, could be used to predict properties of implementations that would be created from a given design. Unfortunately, cohesion, as originally defined, could not be objectively ...
MetricAttitude++: enhancing polymetric views with information retrieval
ICPC '17: Proceedings of the 25th International Conference on Program ComprehensionMetricAttitude is a visualization tool based on static analysis that provides a mental picture by viewing an object-oriented software by means of polymetric views. In this tool demonstration paper, we integrate an information retrieval engine in ...
Incremental exploratory visualization of relationships in large codebases for program comprehension
OOPSLA '05: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsAs software systems grow in size and use more third-party libraries and frameworks, the need for developers to understand unfamiliar large codebases is rapidly increasing. In this demonstration, we present a tool, Relo that supports users' understanding ...
Comments