Sema analyzes code quality for object-oriented languages based on QMOOD.



Understandability

Description

The degree of understanding and the easiness of learning the design implementation details. The properties of designs that enable it to be easily learned and comprehended. This directly relates to the complexity of design structure.


How it's calculated

(-0.33 * ANA) + (0.33 * DAM) - (0.33 * DCC) + (0.33 * CAM) - (0.33 * NOP) - (0.33 * NOM) - (0.33 * DSC)


Reusability

Description

The degree to which a software module or other work product can be used in more than one computer program or software system.


How it's calculated

(-0.25 * DCC) + (0.25 * CAM) + (0.5 * CIS) + (0.5 * DSC)


Functionality

Description

Classes with given functions that are publicly stated in interfaces used by others.


How it's calculated

(0.12 * CAM) + (0.22 * NOP) + (0.22 * CIS) + (0.22 * DSC) + (0.22 * NOH)


Extendibility

Description

Measurement of design’s allowance to incorporate new functional requirements.


How it's calculated

(0.5 * ANA) - (0.5 * DCC) + (0.5 * MFA) + (0.5 * NOP)


Effectiveness

Description

The degree to which a design is able to achieve the desired functionality and behavior using object-oriented design concepts and techniques.


How it's calculated

(0.2 * ANA) + (0.2 * DAM) + (0.2 * MOA) + (0.2 * MFA) + (0.2 * NOP)


Flexibility

Description

The ease with which a system or component can be modified for use in applications or environments other than those for which it was specifically designed. The degree of allowance of changes in the design.


How it's calculated

(0.25 * DAM) - (0.25 * DCC) + (0.5 * MOA) + (0.5 * NOP)


Further reading

J. Bansiya ; C.G. Davis  "A hierarchical model for object-oriented design quality assessment" IEEE 2002

To obtain a copy of the paper contact us