Abstract
R. C. Martin and others have defined package cohesion metrics. Martin has also developed package cohesion principles that can help developers' partition classes into packages. Careful analysis of these cohesion principles indicates that cohesion is multifaceted. Based on these principles, in this paper we introduce two types or aspects of package cohesion. Thus, we are introducing a package cohesion classification scheme. Further, we define a new metric for each type of cohesion to assess to what extent the principles are followed during software design. The proposed metrics should be useful in designing software that is maintainable and reusable. Additionally, we show how the new metrics can be customized based on expert opinion and field needs. The initial results of the two metrics encourage further future work.