Next: Coupling Between Objects ( Up: Coupling Previous: Coupling
Afferent Coupling ( )
Works with all
instances of a common meta-model, regardless if they where
produced with the Java or the UML front-end. The respective
call, create, field access, and type reference relations
(Java) or association, message and type reference relations
(UML) express the coupling (exclusive inheritance) between
two classes. They are mapped to relations of type Invokes,
Accesses, and ``Is Of Type", respectively, in the common meta
model and further to type coupling in the view. By defining a
view containing only classes and packages as elements, the
metric definition can ignore methods and fields as part of
its description, since the relations originating from them
are lifted to the class element.
- Description
- Afferent Coupling between packages (Ca) measures the total number of external classes coupled to classes of a package due to incoming coupling (coupling from classes external classes of the package, uses CBO definition of coupling). Each class counts only once. Zero if the package does not contain any classes or if external classes do not use the package's classes. Ca is primarily applicable to object-oriented systems.
- Scope
- Package
- View
-
- Grammar
- Relations
- Mapping
:
- Definition
-
The value of a package
is defined:
- Scale
- Absolute.
- Domain
- Integers in .
- Highly Related Software Quality Properties
-
- Portability 2.7
-
is negatively influenced by attributes assessed with
Ca.
- Replaceability 2.7.4
- Parts of a system showing a high afferent (ingoing) coupling from other system parts may be highly inversely related to replaceability, since other parts depend on it. Replaceability decreases with increasing Ca.
- Related Software Quality Properties
-
- Functionality 2.1
-
is positively and negatively influenced by attributes
assessed with Ca.
- Interoperability 2.1.3
-
Parts of a system showing a high afferent
(ingoing) coupling to other system parts may be
directly related to interoperability, since they
are used/interacted with from other parts of the
system.
Interoperability decreases with increasing Ca.
- Security 2.1.4
-
Parts of a system showing a high afferent
(ingoing) coupling from other system parts may be
inversely related to security, since they can be
influenced in many ways from other parts of the
system.
Security decreases with increasing Ca.
- Reliability 2.2
-
is negatively influenced by attributes assessed with
Ca.
- Fault-tolerance 2.2.2
-
Parts of a system showing a high afferent
(ingoing) coupling from other system parts may be
inversely related to fault-tolerance, since a
local fault might be propagated to other parts of
the system.
Fault-tolerance decreases with increasing Ca.
- Re-Usability 2.4.1
-
is positively influenced by attributes assessed with
Ca.
- Learnability 2.3.2
-
Parts of a system showing a high afferent
(ingoing) coupling from other system parts may be
directly related to learnability, since other
parts of the system using them serve as examples.
Learnability increases with increasing Ca.
- Operability for Reuse - Programmability 2.4.3
-
The part of a system that has a high afferent
(ingoing) coupling from other system parts may be
directly related to programmability, since other
parts of the system using it serve as examples.
Operability for Reuse - Programmability increases with increasing Ca.
- Attractiveness 2.4.4
-
Parts of a system showing a high afferent
(ingoing) coupling from other system parts may be
directly related to attractiveness, since other
parts of the system use them might show a good
re-usability.
Attractiveness increases with increasing Ca.
- Maintainability 2.6
-
is negatively influenced by attributes assessed with
Ca.
- Stability 2.6.3
-
Parts of a system showing a high afferent
(ingoing) coupling from other system parts may be
inversely related to stability, since other parts
are affected by them.
Stability decreases with increasing Ca.
- References
-
- Ca is discussed in [16],
- it is implemented in the VizzAnalyzer Metrics Suite.
- Since
- Compendium 1.0
Next: Coupling Between Objects ( Up: Coupling Previous: Coupling