Next: Number Of Children ( Up: Inheritance Previous: Inheritance
Depth of Inheritance Tree (
)
Works with all instances of a common meta-model,
regardless of whether they were produced with the Java or the
UML front-end. The respective extends (Java) or
generalization (UML) relations expressing the inheritance
between two classes are mapped onto relations of type
inheritance in the common meta-model (and the DIT specific
view).
- Handle
- Description
- Depth of Inheritance Tree (DIT) is the maximum length of a path from a class to a root class in the inheritance structure of a system. DIT measures how many super-classes can affect a class. DIT is only applicable to object-oriented systems.
- Scope
- Class
- View
-
- Grammar
- Relations
- Mapping
:
- Definition
-
The value of a class
is defined
as:
- Scale
- Absolute.
- Domain
- Integers .
- Highly Related Software Quality Properties
-
- Re-Usability 2.4
-
is both negatively and positively influenced by
attributed assess with DIT.
- Understandability for Reuse 2.4.1:
-
Understanding if a class is suitable for reuse
depends on the size of its interface. Classes
that are deep down in the classes hierarchy
potentially inherit many methods from
super-classes. Moreover, the definitions of
inherited methods are not local to the class
making it even harder to analyze it.
Understandability declines with increasing DIT.
- Learnability for Reuse 2.4.2:
-
Learning how to use a class depends on the size
of its interface. Classes that are deep down in
the classes hierarchy potentially inherit many
methods from super-classes. Moreover, the
definitions of inherited methods are not local to
the class making it even harder to analyze it.
Learnability declines with increasing DIT.
- Operability for Reuse - Programmability 2.4.3:
-
How well a class can be integrated depends on the
size of its interface. Classes that are deep down
in the classes hierarchy potentially inherit many
methods from super-classes. Moreover, the
definitions of inherited methods are not local to
the class making it even harder to analyze it.
Programmability declines with increasing DIT.
- Attractiveness 2.4.4:
-
Attractiveness of a class depends on the size of
the potentially reused code. Classes that are
deep down in the classes hierarchy potentially
inherit many methods from super-classes.
Attractiveness increases with increasing DIT.
- Maintainability 2.6
-
declines with increasing DIT.
- Analyzability 2.6.1:
-
The effort and time for diagnosis of deficiencies
or causes of failures in a class, or for
identification of parts to be modified is related
to the number of methods of the class. Classes
that are deep down in the classes hierarchy
potentially inherit many methods from
super-classes. Moreover, the definitions of
inherited methods are not local to the class
making it even harder to analyze it.
Analyzability declines with increasing DIT.
- Changeability 2.6.2:
-
Changing a class requires prior understanding,
which, in turn, is more complicated for classes
with many methods. Classes that are deep down in
the classes hierarchy potentially inherit many
methods from super-classes. Moreover, the
definitions of inherited methods are not local to
the class making it even harder to understand it.
Changeability declines with increasing DIT.
- Testability 2.6.4:
-
Complete testing requires coverage of all
execution paths. The number of possible execution
paths of a class increases with the number of
methods and their control flow complexity.
Classes that are deep down in the classes
hierarchy potentially inherit many methods from
super-classes. Due to late binding, super-class
methods need to be tested again in the sub-class
context. This makes it it potentially harder to
test classes deep down in the classes hierarchy.
Testability declines with increasing DIT.
- Portability 2.7
-
declines with increasing DIT.
- Adaptability 2.7.1:
-
As for changeability 2.6.2,
the size of software has a direct impact. Classes
that are deep down in the classes hierarchy
potentially inherit many methods from
super-classes. Moreover, the definitions of
inherited methods are not local to the class
making it even harder to analyze it.
Adaptability declines with increasing DIT.
- Replaceablity 2.7.4:
-
The substitute of a component must imitate its
interface. Large interfaces are difficult to
check for substitutability and to actually
substitute. Interface size increases for classes
that are deep down in the classes hierarchy.
Replaceablity decline with increasing DIT.
- Related Software Quality Properties
-
- Functionality 2.1
-
might increase with increasing DIT.
- Interoperability 2.1.3:
-
Relating DIT to interoperability requires to be
able to locate hierarchy (sub-)structures of a
system responsible for interoperability. A high
DIT in these hierarchy (sub-)structures might
indicate a better ability to interact.
Interoperability might increase with increasing DIT.
- Security 2.1.4:
-
Relating DIT to security requires to be able to
locate hierarchy (sub-)structures of a system
responsible for interoperability. A high DIT in
these hierarchy (sub-)structures might indicate a
higher security.
Security might increase with increasing DIT.
- Reliability 2.2
-
is both positively and negatively influenced by
attributes assessed with DIT.
- Maturity 2.2.1:
-
Due to reduced analyzability 2.6.1
and testability 2.6.4,
bugs mights be left in the software. Therefore,
also maturity may be influenced negatively by
DIT.
Maturity might decline with increasing DIT.
- Fault-tolerance 2.2.2:
-
Relating DIT to fault-tolerance requires to be
able to locate hierarchy (sub-)structures of a
system responsible for interoperability. A high
DIT in these hierarchy (sub-)structures might
indicate a better ability to interact.
Fault-Tolerance might increase with increasing DIT.
- Recoverability 2.2.3:
-
Relating DIT to recoverability requires to be
able to locate hierarchy (sub-)structures of a
system responsible for interoperability. A high
DIT in these hierarchy (sub-)structures might
indicate a higher recoverability.
Recoverability might increase with increasing DIT.
- Efficiency 2.5
-
might decline with increasing DIT.
- Time Behavior 2.5.1:
-
Static size might indicate a higher execution
time due to increased number of instruction cache
misses, long jumps, etc. Classes inheriting many
attributes are potentially large. Moreover, late
binding requires indirect calls and prevents
optimizations in the context of the caller.
Time behavior might get worse with increasing DIT.
- Resource Utilization 2.5.2:
-
Static size might indicate a higher memory
utilization.
Resource utilization might get worse with increasing DIT.
- Maintainability 2.6
- declines with increasing DIT.
- References
- Since
- Compendium 1.0
Next: Number Of Children ( Up: Inheritance Previous: Inheritance