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