Next: Coupling Up: Inheritance Previous: Depth of Inheritance Tree
Number Of Children (
)
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 NOC specific
view).
- Handle
- Description
- is the number of immediate subclasses (children) subordinated to a class (parent) in the class hierarchy. measures how many classes inherit directly methods or fields from a super-class. 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 positively influenced by attributes assessed with
NOC.
- Understandability for Reuse 2.4.1:
-
Understanding a class is supported if it has a
high number of children. First numerous children
show directly a high re-use (re-usability) of the
class under concern. Further with numerous
children exist many examples on how to re-use the
class, which helps to understand weather a class
is suitable, and how it can be re-used for a
particular tasks.
Understandability increases with increasing NOC.
- Learnability for Reuse 2.4.1:
-
Learning (acquiring and memorizing knowledge) how
to (re-)use a class by extending it is influenced
by the number of children the class under concern
has. A high number of children, that is many
re-using child classes, allows acquiring
versatile knowledge on how to re-use a particular
class in different situations. This supports
through redundancy memorizing the knowledge about
how to re-use a particular class.
Learnability increases with a increasing NOC.
- Operability for Reuse 2.4.1:
-
Understanding if a class can be integrated and
controlled by software engineers/developers
depends on the number of children a class has. A
high number of children indicates that a
particular class is well integrated into an
existing software system. This means, that it is
suitable for several different tasks,
self-descriptive since there exist many examples
on its usage, having a higher error tolerance,
since it is involved each time one of its
children is tested.
Operability increases with increasing NOC.
- Attractiveness for Reuse 2.4.1:
-
A class having a higher number of children
appears more attractive to the software
engineer/developer. It is a eye-catcher in a
class diagram or other representations since it
stands out by having many children. Associated
assumptions could be, that the class is stable,
since it is tested each time a child is tested,
that is well documented and understood, since it
has been extended so often, that it is easier to
understand, since there are many examples of
usage, that it helps to understand the children,
if the parent class has been understood, that is
plays a central role in the design, since many
classes extend its functionality.
Attractiveness increases with increasing NOC.
- Maintainability 2.6
-
is negatively and positively influenced by attributes
assessed with NOC.
- Changeability 2.6:
-
A class having a higher number of children has a
lower changeability. The effort spent on
modification, fault removal or environmental
change is increased, since many child classes are
extending its functionality, depending on the
parent class. The side effects of modifications
are harder to predict. Fault removal effects
child classes. The need for environmental change
has to consider the child classes.
Changeability decreases with increasing NOC.
- Portability 2.7
-
is negatively influenced by attributes assessed with
NOC.
- Replaceability 2.7:
-
A class having a higher number of children is
difficult to replace. The children are dependent
on it, by extending specific functionality and
can depend on certain functionality the parent
class provides. It is difficult to find another
class satisfying these specific needs, allowing
to replace the parent class.
Replaceability decreases with increasing NOC.
- Related Software Quality Properties
-
- Reliability 2.2
-
is positively influenced by attributes assessed with
.
- Maturity 2.2.1:
-
A class having a higher number of children has a
high maturity. The frequency of failure by faults
is low, since the many faults have been
identified in the various ways the child classes
interact with the parents. The parent class is
heavily used, since it is used each time a child
class is used.
Maturity increases with increasing NOC.
- Maintainability 2.6
-
is positively and negatively influenced by attributes
assessed with NOC.
- Analysability 2.6.1:
-
To analyze a class having a higher number of
children requires higher effort. Diagnosis of
deficiencies or causes of failures involves the
children of a parent class. They have access to
the functionality and data provided by a class
and have to be involved in the analysis.
Identifying parts in a parent class which need to
be modified requires the analysis of all child
classes, which are effected by the modification.
To analyze a class completely it is also
necessary to look at its children to be able to
have the complete picture.
Analysability decreases with increasing NOC.
- Stability 2.6.3:
-
A class having a higher number of children bears
a higher risk of unexpected effect of
modification. Child classes are re-using parent
classes in various ways. They are directly
effected by modifications making it difficult to
predict how stable a class or software product
would be after modification.
Stability decreases with increasing NOC.
- Testability 2.6.4:
-
A class having a higher number of children
requires a higher effort for validating the
modified software. All depending child classes
need to be included in the tests as well, since
modifications in the parent class have direct
impact on the extending child classes. The amount
of designed and implemented autonomous test aid
functions and test complexity is increased.
Testability decreases with increasing NOC.
- Portability 2.7
-
is negatively influenced by attributes assessed with
NOC.
- Adaptability 2.7.1:
-
A class having a higher number of children is
difficult adapt to different specified
environments. The children are dependent on it,
by extending specific functionality and can
depend on certain functionality the parent class
provides. Adapting the parent class to a new
environment, can make it unsuitable for the
children, requiring adaptation in them as well.
Adaptability decreases with increasing NOC.
- References
- Since
- Compendium 1.0
Next: Coupling Up: Inheritance Previous: Depth of Inheritance Tree