Software Metrics for Package Remodularisation

There is a plethora of software metrics \cite{Lore94a, Fent96a, Hend96a, Han00a, Lanz06a} and a large amount of research articles. Still there is a lack for a serious and practically-oriented evaluation of metrics. Often metrics lack the property that the software reengineer or quality expert can easily understand the situation summarized by the metrics. In particular, since the exact notion of coupling and cohesion is complex, a particular focus on such point is important. In the first chapter of the present document, we present a list of software metrics, that are commonly used to measure object-oriented programs. In the second chapter we present our proposition for package metrics that capture package aspects such as information hiding and change impact limits.

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

[2]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[3]  Vojislav B. Misic,et al.  Cohesion is structural, coherence is functional: different views, different measures , 2001, Proceedings Seventh International Software Metrics Symposium.

[4]  F. Brito e Abreu,et al.  Coupling and cohesion as modularization drivers: are we being over-persuaded? , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[5]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[6]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[7]  Taghi M. Khoshgoftaar,et al.  Measuring coupling and cohesion of software modules: an information-theory approach , 2001, Proceedings Seventh International Software Metrics Symposium.

[8]  Vijay K. Vaishnavi,et al.  Predicting Maintenance Performance Using Object-Oriented Design Complexity Metrics , 2003, IEEE Trans. Software Eng..

[9]  Lionel C. Briand,et al.  A comprehensive empirical validation of design measures for object-oriented systems , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[10]  Wei Li,et al.  Another metric suite for object-oriented programming , 1998, J. Syst. Softw..

[11]  Jana Polgar,et al.  Object-Oriented Software Metrics , 2005, Encyclopedia of Information Science and Technology.

[12]  François Lustman,et al.  Cohesion as Changeability Indicator in Object-Oriented Systems , 2001, CSMR.

[13]  Avinash C. Kak,et al.  API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization , 2007, IEEE Transactions on Software Engineering.

[14]  Fernando Brito e Abreu,et al.  Candidate metrics for object-oriented software within a taxonomy framework , 1994, J. Syst. Softw..

[15]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[16]  Ronald R. Mourant,et al.  Evaluation of coupling in the context of Java interfaces (poster session) , 2000, OOPSLA '00.

[17]  JaatunMartin Gilje,et al.  Agile Software Development , 2002, Comput. Sci. Educ..

[18]  Avinash C. Kak,et al.  Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software , 2008, IEEE Transactions on Software Engineering.

[19]  Matthew J. Parkinson,et al.  The java module system: core design and semantic definition , 2007, OOPSLA.

[20]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[21]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[22]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[23]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[24]  James M. Bieman,et al.  Measuring Design-Level Cohesion , 1998, IEEE Trans. Software Eng..

[25]  Stéphane Ducasse,et al.  Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships , 2007, 2007 IEEE International Conference on Software Maintenance.

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

[27]  Diego Rasskin-Gutman,et al.  Modularity. Understanding the Development and Evolution of Natural Complex Systems , 2005 .

[28]  Stephen H. Kan,et al.  Metrics and Models in Software Quality Engineering , 1994, SOEN.

[29]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[30]  D. J. Malcolme-Lawes,et al.  If… Then….Else , 1969 .

[31]  Lionel C. Briand,et al.  An object-oriented high-level design-based class cohesion metric , 2010, Inf. Softw. Technol..

[32]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[33]  Oscar Nierstrasz,et al.  Using Context Information to Re-architect a System , 2006 .

[34]  William C. Chu,et al.  A measure for composite module cohesion , 1992, International Conference on Software Engineering.

[35]  Radu Marinescu,et al.  Quantifying the quality of object-oriented design: the factor-strategy model , 2004, 11th Working Conference on Reverse Engineering.

[36]  Ewan D. Tempero,et al.  How Do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software , 2008, ECOOP.

[37]  Stéphane Ducasse,et al.  Package Fingerprints: A visual summary of package interface usage , 2010, Inf. Softw. Technol..

[38]  Michele Lanza,et al.  Object-Oriented Metrics in Practice - Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2006 .

[39]  Miguel Goulão,et al.  Toward the Design Quality Evaluation of Object-Oriented Software Systems , 1995 .

[40]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[41]  Jens H. Weber,et al.  Predicting maintainability with object-oriented metrics -an empirical comparison , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[42]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.

[43]  Martin Fowler Reducing Coupling , 2001, IEEE Softw..

[44]  Huang Xin-rong On the Measure of Complexity , 2005 .

[45]  Edwin Hautus,et al.  IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS , 2002 .

[46]  T. J. Emerson A discriminant metric for module cohesion , 1984, ICSE '84.

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

[48]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[49]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[50]  Sandro Morasca,et al.  Defining and Validating Measures for Object-Based High-Level Design , 1999, IEEE Trans. Software Eng..

[51]  Martin Hitz,et al.  Measuring Product Attributes of Object-Oriented Systems , 1995, ESEC.

[52]  Houari A. Sahraoui,et al.  Automatic Package Coupling and Cycle Minimization , 2009, 2009 16th Working Conference on Reverse Engineering.

[53]  R. Alves Redol,et al.  Coupling and Cohesion as Modularization Drivers: Are we being over-persuaded? , 2001 .

[54]  Jiawei Han,et al.  Data Mining: Concepts and Techniques , 2000 .

[55]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[56]  Al DallalJehad,et al.  An object-oriented high-level design-based class cohesion metric , 2010 .