![]() |
![]() |
![]() |
![]() |
![]() |
Complexity Numbers
Declarations
This is the number of declarations in the unit. The following entity classes contribute to the declaration count:
- System, System Type
- Block, Block Instance, Block Type, Block Substructure
- Channel, Signal Route, Gate
- Process, Process Instance, Process Type
- Service, Service Instance, Service Type
- Procedure, Operator (user defined), Remote Procedure, Remote Variable
- Sort, Syntype, Generator, Synonym
- Variable, View, Formal Parameter
- Signal, Timer, Signal List
States
This number gives the number of distinct states in the unit. The start symbol is not counted as a state.
This number does not correspond to the number of graphical state symbols, as the same state can be mentioned in several graphical state symbols and as many states can be mentioned in the same graphical state symbols.
Transitions
This number gives the number of transitions defined in the unit. The start transition is considered as a transition. A transition starts with the symbol after a start, input, enabling condition, or continuous signal symbol, and ends with a nextstate, stop, return, or join symbol.
This means for example that the transition starting with a task in the following is counted as one transition:
state a,b,c;input s1,s2,s3;task ....;....;nextstate c;Symbols
This is the number of symbols in the transitions in the unit. State, start, input, continuous signal, and enabling conditions are not counted. More precisely the following symbols are counted:
A compound statement in a task or defining an operator or procedure is counted as one symbol.
The count is not directly connected to the graphical symbols, but rather to the syntactical entities. A task is, for example, counted as one symbol independently how it is divided between a task symbol, a text extension, and a comment symbol.
Statements
This is an extension of the count of symbols. Each of the following is also counted individually:
- Assignments in a task
- Signals sent in an output
- Timers handled in a set or reset
- Variables exported in an export
- Statements in a compound statement
Execution Paths
This is the number of possible different paths to go from a transition start (start, input, continuous signal) to a transition end (stop, nextstate, return). This figure is not completely correct but will in most cases give a good estimate.
The following details should be noted:
- Break and Continue statements in compound statements are ignored.
- Loops (joins leading backwards and for statements) are considered to be executed one time.
Maximum Statement Depth
This figure gives the statement depth, that is the nesting of statements. In graphs it is the decision symbol that contributes, while in compound statements it is the compound statement, the if statement, the decision statement, and the for statement that contribute.
http://www.ibm.com/rational |
![]() |
![]() |
![]() |
![]() |