next up previous
Next: Architecture and Structure Up: Structural Complexity Previous: Weighted Method Count (


Response For a Class ($ RFC$ )

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 call (Java) or message (UML) relations expressing the messages sent between two classes are stored in the CMM10 as $ \textrm{Invokes}$, and are mapped onto relations of type $ \textrm{call}^{RFC}$in the common meta-model (and the $ RFC$specific view).
Handle
$ RFC$
Description
Count of (public) methods in a class and methods directly called by these. $ RFC$is only applicable to object-oriented systems.
Scope
Class
View
$ {V}^{RFC} = ({G}^{RFC}, {R}^{RFC})$
  • Grammar $ {G}^{RFC} = (\{\textrm{class}^{RFC}, \textrm{method}^{RFC}\}, \emptyset, \textrm{class}^{RFC})$
  • Relations $ {R}^{RFC}: \{\textrm{contains}^{RFC} : \textrm{class}^{RFC} \times \textrm{met... ...C},\\ \textrm{call}^{RFC} : \textrm{class}^{RFC} \times \textrm{method}^{RFC}\}$
  • Mapping $ \alpha^{RFC}$:
    $\displaystyle \alpha^{RFC}(\textrm{Class})$ $\displaystyle \mapsto$ $\displaystyle \textrm{class}^{RFC}$  
    $\displaystyle \alpha^{RFC}(\textrm{Method})$ $\displaystyle \mapsto$ $\displaystyle \textrm{method}^{RFC}$  
    $\displaystyle \alpha^{RFC}(\textrm{IsMethodOf})$ $\displaystyle \mapsto$ $\displaystyle \textrm{methodof}^{RFC}$  
    $\displaystyle \alpha^{RFC}(\textrm{Invokes})$ $\displaystyle \mapsto$ $\displaystyle \textrm{call}^{RFC}$  

Definition
The $ RFC$value of a class $ c \in class^{RFC}$is defined as:
$\displaystyle M(c)$ $\displaystyle =$ $\displaystyle pred(c, \textrm{methodof}^{RFC})$  
    $\displaystyle \textit{-\hspace{1pt}- set of methods contained in c}$  
$\displaystyle R(c)$ $\displaystyle =$ $\displaystyle succ(M(c), \textrm{call}^{RFC})$  
    $\displaystyle \textit{-\hspace{1pt}- set of methods called by methods contained in c}$  
$\displaystyle RFC(c)$ $\displaystyle =$ $\displaystyle \left\vert M(c) \cup R(c) \right\vert$  

Scale
Absolute.
Domain
Integers $ \in 0..\infty$.
Highly Related Software Quality Properties
 
Re-Usability 2.4
is both negatively and positively influenced by attributed assessed with Response For a Class.
Understandability for Reuse 2.4.1:
Understanding if a class is suitable for reuse depends on its complexity and size of the method set it is related to.

Understandability declines with increasing RFC.

Attractiveness 2.4.4:
Attractiveness of a class depends on the complexity of the potentially reused code. Response For a Class allows an assessment of complexity.

Attractiveness increases with increasing RFC.

Maintainability 2.6
declines with increasing response set size.
Analysability 2.6.1:
The effort and time for diagnosis of deficiencies or causes of failures, or for identification of parts to be modified is directly related to the number of executed methods in response to a message.

Analysability declines with increasing RFC.

Changeability 2.6.2:
Each modification must be correct for all execution paths. The size of the response set for a class (RFC) gives an idea about how many methods are potentially contributing to the size of the execution paths.

Changeability declines with increasing RFC.

Testability 2.6.4:
Complete testing requires coverage of all execution paths. Response For a Class computes the number of methods (directly) involved in handling a particular message.

Testability declines with increasing RFC.

Portability 2.7
declines with increasing response set size.
Adaptability 2.7.1:
As for changeability 2.6.2, the complexity the control structure of software has a direct impact. Each modification must be correct for all execution paths. The size of the response set for a class (RFC) gives an idea about how many methods are potentially contributing to the size of the execution paths.

Adaptability declines with increasing RFC.

Related Software Quality Properties
 
Reliability 2.2
might decrease with increasing response set size.
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 response set size.

Maturity might decline with increasing RFC.

Re-Usability 2.4
is both negatively and positively influenced by attributed assess with Response For a Class.
Learnability for Reuse 2.4.2:
Learning if a class is suitable for reuse depends on the complexity of its interface (public methods) and the number of methods in other classes called in response to a received message.

Learnability declines with increasing RFC.

Operability for Reuse - Programmability 2.4.3:
How well a class can be integrated depends the complexity of its interface and dependency on other classes (implementing not local methods).

Programmability declines with increasing RFC.

Efficiency 2.5
might decline with increasing response set size.
Time Behavior 2.5.1:
Static complexity might indicate a higher execution complexity.

Time behavior might get worse with increasing RFC.

Maintainability 2.6
declines with increasing response set size.
Stability 2.6.3:
Due to reduced analysability 2.6.1 and testability 2.6.4, also stability may be influenced negatively by response set size.

Stability might decline with increasing RFC.

Portability 2.7
declines with increasing response set size.
Replaceablity 2.7.4:
The substitute of a component must imitate its observable behavior. Components with complex control structures and response sets might have a more complex observable behavior making it more difficult to check substitutability and to actually substitute a component.

Replaceablity declines with increasing RFC.

References
 
  • RFC is extensively discussed and validated in [5,6,3,14,2,1,7,11,12,10,4,21,17],
  • RFC is implemented in the VizzAnalyzer Metrics Suite.
Since
Compendium 1.0

next up previous
Next: Architecture and Structure Up: Structural Complexity Previous: Weighted Method Count (
Copyright © 2008-2009, ARiSA AB. Phone: +46-(0)470 70 8495 Email: info@arisa.se Valid CSS! Valid XHTML 1.0 Transitional