How and When to Flatten Java Classes?

Jehad Al Dallal
2014 International Journal of Computer Science Engineering and Information Technology  
Improving modularity and reusability are two key objectives in object-oriented programming. These objectives are achieved by applying several key concepts, such as data encapsulation and inheritance. A class in an object-oriented system is the basic unit of design. Assessing the quality of an object-oriented class may require flattening the class and representing it as it really is, including all accessible inherited class members. Thus, class flattening helps in exploring the impact of
more » ... e impact of inheritance on improving code quality. This paper explains how to flatten Java classes and discusses the relationship between class flattening and some applications of interest to software practitioners, such as refactoring and indicating external quality attributes.
doi:10.5121/ijcseit.2014.4207 fatcat:escbq7q5yrdeppnxzuydvafv4y