Software Quality Matrix

Quality Attributes

Architecture/ Design Attribute Impact
Abstraction A high value of this metric lead to more reusable components and a lower development effort.
Coupling Strong coupling  complicates a system since a module is harder to understand, this increase maintenance and enhancement cost.
Inheritance A greater value indicates complex system and increases testing effort.
Cohesion Low cohesion increases complexity, by developing unrelated methods in same class. It increases maintenance effort.
Implementation Maintainability A high value of this metric indicates faster enhancement land low testing effort.
Usability The more is the reusability the less is the development effort which save time and money.
Coding Standards Following coding standards reduce security threats, resource usage and enhance performance.

Quality Metric and Explanetion

Area Meaning and Measure Why Attribute
Abstractness It is calculated by the number of abstract classes (and interfaces) divided by the total number of types in a package. A high value of this metric lead to more reusable components and a lower value mean a concrete solution Abstraction
Specialization Index(SI) It is measured by the number of method overridden method in the subclass. The higher the value of SI is, the less reusable the class  becomes.
Depth of Inheritance Tree It is the maximum length from the node to the root

of the tree.

The deeper a class in the hierarchy is, the

greater the number of methods is likely to inherit, making it more complex to test and maintain.

Inheritance
Number of Children It is the number of immediate subclasses subordinate to a class in the class hierarchy. If a class has a large number of children, it may be a case of misuse of sub-classing, and may require more testing .
Weight Method per class This is measured by providing weight to complex methods depending on their complexity and adding the weight for all methods of that class. Classes with a larger weight are likely to

be more application specific, and thus limiting the possibility of reuse

Maintainability
Nested Block Depth Measured by counting the cascaded inner blocks. More nested blocks lead to worse readability and more complex solutions
Area Meaning and Measure Why Attribute
Lack of Cohesion It is defined as the number of method pairs that do not have common attributes (defined at the class level) minus the number of method pairs that do. Low cohesion increases complexity, by developing unrelated methods in same class. It increases maintenance effort. Cohesion
Number of Operation added by Subclass Measured by the number of new methods and attributes added to subclass When the value of NOA increases,  the class  may contain unrelated functionalities.
Afferent Coupling The number of classes outside a package that depend on classes inside the package High number of this metrics indicates that a change may have ripple effect throughout the application and will require more testing effort. Coupling
Response for a Class The response set of a class is a set of methods that can potentially be executed in response to a message received by an object of that class. If a large number of methods is invoked in response to a message, testing and debugging of the class become more complicated.

Different Tool comparison

Parameters Static Code Analysis UML Analysis
SONAR Metrics CKJM SDMetrics
Number of Children No Yes Yes Yes
Number of Operation added by Subclass No Yes Yes Yes
Specialization Index No Yes Yes No
Response for a Class No No Yes No
Weight Method per class No Yes Yes No
Effective Coupling No Yes Yes Yes
Nested Block Depth No Yes No No
Depth of Inheritance Tree No Yes Yes Yes
Lack of Cohesion No Yes Yes Yes
Afferent Coupling No Yes Yes Yes
Abstractness No Yes Yes Yes
Complexity Yes Yes No Yes
NCSS Method Count Yes Yes No No
Code Duplication Yes No No No
Documentation Yes No No No
Java Coding Standards Yes No No No
Junit Coverage Yes No No No
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s