1. A method of automatically reporting quality metrics for a class-level representation of a software application, the method comprising: receiving the class-level representation of the software application, the class-level representation defining a graph including one or more object classes; selecting, using a computer, one or more of the object classes; calculating, using the computer, a plurality of software application quality metrics for each of the selected object classes indicative of prospective quality of the software application, the software application based on prospective source code produced in accordance with the class-level representation, wherein: the calculating of the software application quality metrics takes place prior to generating the source code, wherein the calculating does not use source code based on the class-level representation or source code based on the object classes; and for each respective class of the selected object classes, at least a first quality metric of the software application quality metrics is based on properties associated with the respective class, and at least a second quality metric of the software application quality metrics is based on relationships between the respective class and one or more other classes determined at the time of the calculating; comparing at least one numeric value for the first and second software application quality metrics with a threshold value; outputting a report, the report including data indicating at least one numeric value for the calculated plurality of quality metrics for the selected object classes, and the data providing at least one indication of a non-compliant metric of the calculated plurality of quality metrics within the report, if the plurality of software application quality metrics is above the threshold value during the comparing; and modifying the class-level representation of the software application to transform the non-compliant metric to a compliant metric.