Applications for Accounting of Inherited Object-Oriented Class Members
Authors: Jehad Al Dallal
Abstract:
A class in an Object-Oriented (OO) system is the basic unit of design, and it encapsulates a set of attributes and methods. In OO systems, instead of redefining the attributes and methods that are included in other classes, a class can inherit these attributes and methods and only implement its unique attributes and methods, which results in reducing code redundancy and improving code testability and maintainability. Such mechanism is called Class Inheritance. However, some software engineering applications may require accounting for all the inherited class members (i.e., attributes and methods). This paper explains how to account for inherited class members and discusses the software engineering applications that require such consideration.
Keywords: Object-oriented design, inheritance, internal quality attribute, external quality attribute, class flattening.
Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1123598
Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1354References:
[1] M. Fayed & M. Laitinen, (1998) “Transition to Object-Oriented Software Development”, John Wiley & Sons, 1st edition.
[2] F. Sheldon, K. Jerath, & H. Chung, (2002) “Metrics for maintainability of class inheritance hierarchies”, Journal of Software Maintenance and Evolution: Research and Practice, Vol. 14, No. 3, pp 147-160
[3] D. Beyer, C. Lewerentz, & F. Simon, (2001) “Impact of inheritance on metrics for size, coupling, and cohesion in object oriented”, The 10th International Workshop on Software Measurement: New Approaches in Software Measurement, Berlin, pp 1-17.
[4] S. Morasca, (2009) “A probability-based approach for measuring external attributes of software artifacts”, The 3rd International Symposium on Empirical Software Engineering and Measurement, Florida, USA.
[5] M. Alshayeb, (2009) “Empirical investigation of refactoring effect on software quality”, Information and Software Technology, Vol. 51, No. 9, pp1319-1326.
[6] J. Bieman & B. Kang, (1995) “Cohesion and reuse in an object-oriented system”, Proceedings of the 1995 Symposium on Software reusability, Seattle, Washington, United States, pp 259-262.
[7] L. Briand, J. Daly, & J. Wüst, (1998) “A unified framework for cohesion measurement in object-oriented systems”, Empirical Software Engineering - An International Journal, Vol. 3, No.1, pp 65-117.
[8] J. Al Dallal & L. Briand, (2010) “An object-oriented high-level design-based class cohesion metric”, Information and Software Technology, Vol. 52, No. 12, pp 1346-1361.
[9] J. Al Dallal & L. Briand, (2012) “A Precise method-method interaction-based cohesion metric for object-oriented classes”, ACM Transactions on Software Engineering and Methodology (TOSEM), Vol. 21, No. 2, pp 8:1-8:34.
[10] A. Chhikara, R. Chhillar, & S. Khatri, (2011) “Evaluating the impact of different types of inheritance on the object oriented software metrics”, International Journal of Enterprise Computing and Business Systems, Vol. 1, No. 2, pp 1-7.
[11] S. Chidamber & C. Kemerer, (1994) “A Metrics suite for object Oriented Design”, IEEE Transactions on Software Engineering, Vol. 20, No. 6, pp 476-493.
[12] J. Al Dallal, (2012) “The impact of inheritance on the internal quality attributes of Java classes”, Kuwait Journal of Science and Engineering, Vol. 39, No. 2A, pp 131-154.
[13] J. Al Dallal, (2012) “Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics”, Information and Software Technology, Vol. 54, No. 10, pp 1125-1141.
[14] J. Al Dallal, (2013) ‘Incorporating transitive relations in low-level design-based class cohesion measurement”, Software: Practice and Experience, Vol. 43, No. 6, pp 685-704.
[15] J. Al Dallal, (2013) “Object-oriented class maintainability prediction using internal quality attributes”, Information and Software Technology, Vol. 55, No. 11, pp 2028-2048.
[16] J. Al Dallal & S. Morasca, (2012) “Predicting object-oriented class reuse-proneness using internal quality attributes”, Empirical Software Engineering, Vol. 19, No. 4, 2014, pp. 775-821.
[17] M. Fowler, (1999) “Refactoring: improving the design of existing code”, Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
[18] Y. Kosker, B. Turhan, & A. Bener, (2009) “An expert system for determining candidate software classes for refactoring”, Expert Systems with Applications, Vol. 36, No. 6, pp 10000-10003.
[19] J. Al Dallal, Accounting for data encapsulation in the measurement of object-oriented class cohesion, Journal of Software: Evolution and Process, 2015, DOI: 10.1002/smr.1714.
[20] J. Al Dallal, Identifying refactoring opportunities in object-oriented code: a systematic literature review, Information and Software Technology, 2015, Vol. 58, pp. 231–249.