An Interface Complexity Measure for Component-based Software Systems

Controlling and minimizing software complexity is one of the most important objective of each software development paradigm because it affects all other software quality attributes like reusability, reliability, testability, maintainability etc. For this purpose, a number of software complexity measures have been reported to quantify different aspects of complexity. As the development of component-based software is rising, more and more complexity metrics are being developed for the same. In this paper, we have attempted to design an interface complexity metric for black-box components to quantify an important aspect of complexity of a component-based system. The proposed measure takes into account one major type of complexity of a component. It is due to its interactions (interfaces) with other components. Graph theoretic notions have been used to illustrate interaction among software components and to compute complexity. The proposed measure has been applied to five cases chosen for this study and yields quiet encouraging results which may further help in controlling the complexity of component-based systems so as to minimize both integration and maintenance efforts. As a thumb rule, we propose that average number of interactions (interfaces) per component in a component based system (CBS) should not be greater than five, otherwise that CBS would be highly complex and will be more prone to errors and hence unreliable. However, this rule requires further empirical support.

[1]  Horst Zuse,et al.  Software complexity: Measures and methods , 1990 .

[2]  David C. Rine,et al.  Indicators of Structural Stability of Object-Oriented Designs: A Case Study , 2005, 29th Annual IEEE/NASA Software Engineering Workshop.

[3]  Alan W. Brown,et al.  The Current State , 2016 .

[4]  Marcus A. Rothenberger,et al.  Software reuse strategies and component markets , 2003, CACM.

[5]  Ananya Kanjilal,et al.  Measuring complexity of component based architecture: a graph based approach , 2011, SOEN.

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

[7]  P. S. Grover,et al.  Dependency analysis for component-based software systems , 2009, SOEN.

[8]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[9]  Usha Chhillar,et al.  A New Weighted Composite Complexity Measure for Object-Oriented Systems , 2011 .

[10]  Nasib S. Gill,et al.  Dependency and interaction oriented complexity metrics of component-based systems , 2008, SOEN.

[11]  Usha Kumari,et al.  A composite complexity measure for component-based systems , 2011, SOEN.

[12]  Sucheta Bhasin,et al.  Application of Object-Oriented Metrics To C++ and Java: A Comparative Study , 2011, SOEN.

[13]  B. Curtis,et al.  Measurement and experimentation in software engineering , 1980, Proceedings of the IEEE.

[14]  Yongxia Zhou,et al.  Complexity Metrics for Component-based Software Systems , 2011 .

[15]  Barry W. Boehm,et al.  COTS-Based Systems Top 10 List , 2001, Computer.

[16]  E. Da-wei The Software Complexity Model and Metrics for Object-Oriented , 2007, 2007 International Workshop on Anti-Counterfeiting, Security and Identification (ASID).

[17]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[18]  Mei-Hwa Chen,et al.  An empirical study on object-oriented metrics , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[19]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[20]  Mark Lorenz Object-Oriented Software Metrics , 1994 .

[21]  Murat M. Tanik,et al.  A Process Model for Component-Oriented Software Engineering , 2003, IEEE Softw..

[22]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[23]  Pazmany Peter,et al.  The Structured Complexity of Object-Oriented Programs , 2003 .

[24]  Nael Salman,et al.  Complexity Metrics AS Predictors of Maintainability and Integrability of Software components , 2006 .

[25]  Sanjay Misra An Object Oriented Complexity Metric Based on Cognitive Weights , 2007, 6th IEEE International Conference on Cognitive Informatics.

[26]  Luiz Fernando Capretz Y: A New Component-Based Software Life Cycle Model , 2005 .

[27]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[28]  Fatemeh Zahedi,et al.  Design, retrieval, and assembly in component-based software development , 2003, CACM.

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

[30]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..