As the object oriented programming languages and development methodologies moved forward, a significant research effort was spent in defining specific approaches and building models for quality based on object oriented measurements. Software metrics research and practice have helped in building an empirical basis for software engineering. Software developers require objectives and valid measurement schemes for the evaluation and improvisation of product quality from the initial stages of development. Measuring the structural design properties of a software system such as coupling, inheritance, cohesion, and complexity is a promising approach which can lead to an early quality assessment. The class codes and class diagrams are the key artifacts in the development of object oriented (OO) software and it constitutes the backbone of OO development. It also provides a solid foundation for the design and development of software with a greater influence over the system that is implemented. This chapter presents a survey of existing relevant works on class code / class diagram metrics in an elaborate way. Here, a critical review of the existing work is carried out in order to identify the lessons learnt regarding the way these studies are performed and reported. This work facilitates the development of an empirical body of knowledge. The classical approaches based on statistics alone do not provide managers and developers with a decision support scheme for risk assessment and cost reduction. One of the future challenges is to use software metrics in a way that they creatively address and handle the key objectives of risk assessment and the estimation of external quality factors of the software.