Among others, remarkable external quality attributes of interest to software practitioners/ engineers include testability, maintainability and reusability.Software engineers still combat softwarecrisis and even chronic software affliction not because there is no standardized software development process but because enough attention is not given to seemingly insignificant but crucial details of internal design attributes such as cohesion and coupling especially in object-oriented systems. Consequently, the aftermath is increased maintenance cost, effort and time which negatively plague both the developers and users community. Also, reusability being an important part of quality design and time-to-market is equally affected. This work addresses how to use internal attribute as cohesion could improve software maintainability and reusability. This research also addresses general design principles of object-oriented and other reuse-oriented systems.