Visualising Class Cohesion with Virtual Worlds

High cohesion, or module strength, indicates that a system has been well partitioned into components which have strong internal relationships. An understanding of cohesion is an important factor in software design. However, cohesion is difficult to define precisely and to quantify, particularly for object oriented (OO) software, and attempts to develop metrics have had limited success. We advocate the use of visualisation techniques to provide a richer view of cohesion than is possible with simple numeric values. Our approach, based on visualising the raw data, side-steps many of the difficulties associated with the formulation of precise definitions of cohesion phenomena, avoids the loss of information associated with existing aggregate cohesion metrics and supports exploratory analysis. The pipeline-based visualisations of class cohesion described in this paper use the ANGLE 3D graph layout engine and XSLT transformations both to select the ingredients for visualisations and to determine their presentation details. We discuss our experiences with the use of virtual worlds as a presentation medium both on the desktop and in immersive environments and report early results from ongoing empirical work.

[1]  Ivan Poupyrev,et al.  The MagicBook - Moving Seamlessly between Reality and Virtuality , 2001, IEEE Computer Graphics and Applications.

[2]  Brian Everitt,et al.  Cluster analysis , 1974 .

[3]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[4]  Karl J. Lieberherr,et al.  Assuring good style for object-oriented programs , 1989, IEEE Software.

[5]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[6]  Shari Lawrence Pfleeger,et al.  Software metrics (2nd ed.): a rigorous and practical approach , 1997 .

[7]  Meilir Page-Jones,et al.  The practical guide to structured systems design: 2nd edition , 1988 .

[8]  Neville Churcher,et al.  Building Virtual Worlds with the Big-Bang Model , 2001, InVis.au.

[9]  William E. Lorensen,et al.  The visualization toolkit (2nd ed.): an object-oriented approach to 3D graphics , 1998 .

[10]  Michael Kay,et al.  XSLT Programmer's Reference , 2000 .

[11]  S. Webster Essays on object-oriented software engineering (volume 1) : E V Berard Prentice-Hall UK (1993) 352 pp £27.50 ISBN 0 13 288895 5 , 1994, Inf. Softw. Technol..

[12]  Martin J. Shepperd,et al.  Towards a conceptual framework for object oriented software metrics , 1995, SOEN.

[13]  Michael Kay,et al.  Professional XML , 2000 .

[14]  Christine Mingins,et al.  Tree-Based Coherence Metrics in Object-Oriented Design , 1993, International Conference on Software Technology: Methods and Tools.

[15]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[16]  Meilir Page-Jones,et al.  The practical guide to structured systems design , 1980 .

[17]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[18]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

[19]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[20]  Neville Churcher,et al.  Virtual worlds for Web site visualisation , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[21]  Michael Jünger,et al.  Graph Drawing : 9th International Symposium, GD 2001, Vienna, Austria, September 23-26, 2001 : revised papers , 2002 .

[22]  Brian Henderson-Sellers,et al.  Object-oriented metrics: measures of complexity , 1995 .

[24]  Edward V. Berard,et al.  Essays on object-oriented software engineering , 1992 .

[25]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[26]  Rikk Carey,et al.  The annotated VRML 2.0 reference manual , 1997 .

[27]  Neville Churcher,et al.  Comments on "A Metrics Suite for Object Oriented Design" , 1995, IEEE Trans. Software Eng..

[28]  Brian Henderson-Sellers,et al.  Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design) , 1996, Object Oriented Syst..

[29]  Edward V. Berard,et al.  Essays on object-oriented software engineering (vol. 1) , 1993 .

[30]  Neville Churcher,et al.  Virtual Worlds for Software Visualisation , 1999 .

[31]  James M. Bieman,et al.  Program slices as an abstraction for cohesion measurement , 1998, Inf. Softw. Technol..

[32]  Andreas Winter,et al.  Exchanging Graphs with GXL , 2001, GD.

[33]  Neville Churcher,et al.  XML in the Visualisation Pipeline , 2001, VIP.

[34]  William Schroeder,et al.  The Visualization Toolkit: An Object-Oriented Approach to 3-D Graphics , 1997 .

[35]  Ulrik Brandes,et al.  GraphML Progress Report , 2001, GD.