Package cruise.umple.compiler
Class CountSM
java.lang.Object
cruise.umple.compiler.CountSM
public class CountSM
extends java.lang.Object
END OF CLASS StateMachineMetrics
CountSM class used to calculate State Machine Metrics.
D E F I N I T I O N S U S E D:
PATH - A set of transitions in a specific sequence that start in some node and finish
in other node or the same node.
SELF CYCLE - A PATH with ONE transition that start and finish in the same node.
CYCLE - A PATH with one or more transitions that start and finish in the same node and
doesn't have repeated node (except the start and the end node).
- A SELF CYCLE is a special case of CYCLE with just ONE transition.
K N O W N B U G S (If this considerations are accepted, write it down on google code bugs controlling):
-
Constructor Summary
Constructors Constructor Description CountSM()
-
Method Summary
Modifier and Type Method Description boolean
addVisitedState(State aVisitedState)
void
calcMinMax(CountSM countPerClass)
Analyze if new values collected is MIN or MAX than values had stored in order to hold correct MAX and MIN values.void
calculate(StateMachine sm)
Calculate State Machine Metrics for a given State Machine.void
calculate(UmpleClass uClass)
Calculate State Machine Metrics for given Umple Class.int
countCycles(State firstState, State currentState, int sum)
Count the amount of cycles recursively considering a specific state as start node.void
delete()
int
getAmountCycles(State state)
Count the amount of cycles considering a specific state as start node.int
getAmountSelfCycles(State state)
Answer the amount of Self cycles in a specific state.java.util.Set<Event>
getEventsSet()
java.util.Set<State>
getStatesSet()
int
getTotalActions()
int
getTotalActionsPerClass()
int
getTotalActionsPerClassMax()
int
getTotalActionsPerClassMin()
int
getTotalClass()
int
getTotalCycles()
int
getTotalCyclesPerClass()
int
getTotalCyclesPerClassMax()
int
getTotalCyclesPerClassMin()
int
getTotalDifferentTransitions()
int
getTotalDifferentTransitionsPerClass()
int
getTotalDifferentTransitionsPerClassMax()
int
getTotalDifferentTransitionsPerClassMin()
int
getTotalEvents()
int
getTotalEventsPerClass()
int
getTotalEventsPerClassMax()
int
getTotalEventsPerClassMin()
int
getTotalGuards()
int
getTotalGuardsPerClass()
int
getTotalGuardsPerClassMax()
int
getTotalGuardsPerClassMin()
int
getTotalNestedStateMachine()
int
getTotalNestedStateMachinePerClass()
int
getTotalNestedStateMachinePerClassMax()
int
getTotalNestedStateMachinePerClassMin()
int
getTotalSelfCycles()
int
getTotalSelfCyclesPerClass()
int
getTotalSelfCyclesPerClassMax()
int
getTotalSelfCyclesPerClassMin()
int
getTotalStateMachines()
total StM found considering all classes analysed.int
getTotalStateMachinesPerClass()
int
getTotalStateMachinesPerClassMax()
MAX ATTRIBUTESint
getTotalStateMachinesPerClassMin()
MIN ATTRIBUTESint
getTotalStates()
int
getTotalStatesPerClass()
int
getTotalStatesPerClassMax()
int
getTotalStatesPerClassMin()
int
getTotalTransitions()
int
getTotalTransitionsPerClass()
int
getTotalTransitionsPerClassMax()
int
getTotalTransitionsPerClassMin()
java.util.Set<Transition>
getTransitionsList()
keep transitions without repetition of an StM.State
getVisitedState(int index)
State[]
getVisitedStates()
boolean
hasSelfCycle(State state)
END METHOD Answer if there is a Self Cycle in a specific state.boolean
hasVisitedStates()
void
incTotal(CountSM countPerClass)
Increment Total Values with partial values or values counted in a class.void
incTotalActions(int a)
void incAvgTransitionsPerClass(int a){ this.avgTransitionsPerClass+=a; }void
incTotalActionsPerClass(int a)
void
incTotalClass(int a)
void
incTotalCycles(int a)
void
incTotalCyclesPerClass(int a)
void
incTotalDifferentTransitions(int a)
void
incTotalDifferentTransitionsPerClass(int a)
void
incTotalEvents(int a)
void
incTotalEventsPerClass(int a)
void
incTotalGuards(int a)
void
incTotalGuardsPerClass(int a)
void
incTotalNestedStateMachine(int a)
void
incTotalNestedStateMachinePerClass(int a)
void
incTotalSelfCycles(int a)
void
incTotalSelfCyclesPerClass(int a)
void
incTotalStateMachines(int a)
void
incTotalStateMachinesPerClass(int a)
void
incTotalStates(int a)
void
incTotalStatesPerClass(int a)
void
incTotalTransitions(int a)
void
incTotalTransitionsPerClass(int a)
int
indexOfVisitedState(State aVisitedState)
void
load(StateMachine SM)
void
load(java.util.List<StateMachine> stateMachinesList)
Load all transitions from a list of stateMachines to transitionsList attribute, without repeating of transitions.void
loadStatesRecursively(StateMachine SM)
void
loadStatesRecursively(java.util.List<StateMachine> stateMachinesList)
void
nestedSM(StateMachine sm)
This method calculate the metrics of StateMachine recursively, storaging values per class and totals of files analyzed.int
numberOfVisitedStates()
boolean
removeVisitedState(State aVisitedState)
void
resetVisitedStates()
boolean
setEventsSet(java.util.Set<Event> aEventsSet)
void
setMinMax(CountSM count)
Get values and set them like MIN and MAX values.boolean
setStatesSet(java.util.Set<State> aStatesSet)
boolean
setTotalActions(int aTotalActions)
boolean
setTotalActionsPerClass(int aTotalActionsPerClass)
boolean
setTotalActionsPerClassMax(int aTotalActionsPerClassMax)
boolean
setTotalActionsPerClassMin(int aTotalActionsPerClassMin)
boolean
setTotalClass(int aTotalClass)
boolean
setTotalCycles(int aTotalCycles)
boolean
setTotalCyclesPerClass(int aTotalCyclesPerClass)
boolean
setTotalCyclesPerClassMax(int aTotalCyclesPerClassMax)
boolean
setTotalCyclesPerClassMin(int aTotalCyclesPerClassMin)
boolean
setTotalDifferentTransitions(int aTotalDifferentTransitions)
boolean
setTotalDifferentTransitionsPerClass(int aTotalDifferentTransitionsPerClass)
boolean
setTotalDifferentTransitionsPerClassMax(int aTotalDifferentTransitionsPerClassMax)
boolean
setTotalDifferentTransitionsPerClassMin(int aTotalDifferentTransitionsPerClassMin)
boolean
setTotalEvents(int aTotalEvents)
boolean
setTotalEventsPerClass(int aTotalEventsPerClass)
boolean
setTotalEventsPerClassMax(int aTotalEventsPerClassMax)
boolean
setTotalEventsPerClassMin(int aTotalEventsPerClassMin)
boolean
setTotalGuards(int aTotalGuards)
boolean
setTotalGuardsPerClass(int aTotalGuardsPerClass)
boolean
setTotalGuardsPerClassMax(int aTotalGuardsPerClassMax)
boolean
setTotalGuardsPerClassMin(int aTotalGuardsPerClassMin)
boolean
setTotalNestedStateMachine(int aTotalNestedStateMachine)
boolean
setTotalNestedStateMachinePerClass(int aTotalNestedStateMachinePerClass)
boolean
setTotalNestedStateMachinePerClassMax(int aTotalNestedStateMachinePerClassMax)
boolean
setTotalNestedStateMachinePerClassMin(int aTotalNestedStateMachinePerClassMin)
boolean
setTotalSelfCycles(int aTotalSelfCycles)
boolean
setTotalSelfCyclesPerClass(int aTotalSelfCyclesPerClass)
boolean
setTotalSelfCyclesPerClassMax(int aTotalSelfCyclesPerClassMax)
boolean
setTotalSelfCyclesPerClassMin(int aTotalSelfCyclesPerClassMin)
boolean
setTotalStateMachines(int aTotalStateMachines)
boolean
setTotalStateMachinesPerClass(int aTotalStateMachinesPerClass)
boolean
setTotalStateMachinesPerClassMax(int aTotalStateMachinesPerClassMax)
boolean
setTotalStateMachinesPerClassMin(int aTotalStateMachinesPerClassMin)
boolean
setTotalStates(int aTotalStates)
boolean
setTotalStatesPerClass(int aTotalStatesPerClass)
boolean
setTotalStatesPerClassMax(int aTotalStatesPerClassMax)
boolean
setTotalStatesPerClassMin(int aTotalStatesPerClassMin)
boolean
setTotalTransitions(int aTotalTransitions)
boolean
setTotalTransitionsPerClass(int aTotalTransitionsPerClass)
boolean
setTotalTransitionsPerClassMax(int aTotalTransitionsPerClassMax)
boolean
setTotalTransitionsPerClassMin(int aTotalTransitionsPerClassMin)
boolean
setTransitionsList(java.util.Set<Transition> aTransitionsList)
java.lang.String
toString()
-
Constructor Details
-
CountSM
public CountSM()
-
-
Method Details
-
setTotalStateMachines
public boolean setTotalStateMachines(int aTotalStateMachines) -
setTotalStateMachinesPerClass
public boolean setTotalStateMachinesPerClass(int aTotalStateMachinesPerClass) -
setTotalStates
public boolean setTotalStates(int aTotalStates) -
setTotalStatesPerClass
public boolean setTotalStatesPerClass(int aTotalStatesPerClass) -
setTotalEvents
public boolean setTotalEvents(int aTotalEvents) -
setTotalEventsPerClass
public boolean setTotalEventsPerClass(int aTotalEventsPerClass) -
setTotalTransitions
public boolean setTotalTransitions(int aTotalTransitions) -
setTotalTransitionsPerClass
public boolean setTotalTransitionsPerClass(int aTotalTransitionsPerClass) -
setTotalGuards
public boolean setTotalGuards(int aTotalGuards) -
setTotalGuardsPerClass
public boolean setTotalGuardsPerClass(int aTotalGuardsPerClass) -
setTotalDifferentTransitions
public boolean setTotalDifferentTransitions(int aTotalDifferentTransitions) -
setTotalDifferentTransitionsPerClass
public boolean setTotalDifferentTransitionsPerClass(int aTotalDifferentTransitionsPerClass) -
setTotalActions
public boolean setTotalActions(int aTotalActions) -
setTotalActionsPerClass
public boolean setTotalActionsPerClass(int aTotalActionsPerClass) -
setTotalNestedStateMachine
public boolean setTotalNestedStateMachine(int aTotalNestedStateMachine) -
setTotalNestedStateMachinePerClass
public boolean setTotalNestedStateMachinePerClass(int aTotalNestedStateMachinePerClass) -
setTotalSelfCycles
public boolean setTotalSelfCycles(int aTotalSelfCycles) -
setTotalSelfCyclesPerClass
public boolean setTotalSelfCyclesPerClass(int aTotalSelfCyclesPerClass) -
setTotalCycles
public boolean setTotalCycles(int aTotalCycles) -
setTotalCyclesPerClass
public boolean setTotalCyclesPerClass(int aTotalCyclesPerClass) -
setTotalClass
public boolean setTotalClass(int aTotalClass) -
setTotalStateMachinesPerClassMax
public boolean setTotalStateMachinesPerClassMax(int aTotalStateMachinesPerClassMax) -
setTotalStatesPerClassMax
public boolean setTotalStatesPerClassMax(int aTotalStatesPerClassMax) -
setTotalEventsPerClassMax
public boolean setTotalEventsPerClassMax(int aTotalEventsPerClassMax) -
setTotalGuardsPerClassMax
public boolean setTotalGuardsPerClassMax(int aTotalGuardsPerClassMax) -
setTotalTransitionsPerClassMax
public boolean setTotalTransitionsPerClassMax(int aTotalTransitionsPerClassMax) -
setTotalDifferentTransitionsPerClassMax
public boolean setTotalDifferentTransitionsPerClassMax(int aTotalDifferentTransitionsPerClassMax) -
setTotalActionsPerClassMax
public boolean setTotalActionsPerClassMax(int aTotalActionsPerClassMax) -
setTotalNestedStateMachinePerClassMax
public boolean setTotalNestedStateMachinePerClassMax(int aTotalNestedStateMachinePerClassMax) -
setTotalSelfCyclesPerClassMax
public boolean setTotalSelfCyclesPerClassMax(int aTotalSelfCyclesPerClassMax) -
setTotalCyclesPerClassMax
public boolean setTotalCyclesPerClassMax(int aTotalCyclesPerClassMax) -
setTotalStateMachinesPerClassMin
public boolean setTotalStateMachinesPerClassMin(int aTotalStateMachinesPerClassMin) -
setTotalStatesPerClassMin
public boolean setTotalStatesPerClassMin(int aTotalStatesPerClassMin) -
setTotalEventsPerClassMin
public boolean setTotalEventsPerClassMin(int aTotalEventsPerClassMin) -
setTotalGuardsPerClassMin
public boolean setTotalGuardsPerClassMin(int aTotalGuardsPerClassMin) -
setTotalTransitionsPerClassMin
public boolean setTotalTransitionsPerClassMin(int aTotalTransitionsPerClassMin) -
setTotalDifferentTransitionsPerClassMin
public boolean setTotalDifferentTransitionsPerClassMin(int aTotalDifferentTransitionsPerClassMin) -
setTotalActionsPerClassMin
public boolean setTotalActionsPerClassMin(int aTotalActionsPerClassMin) -
setTotalNestedStateMachinePerClassMin
public boolean setTotalNestedStateMachinePerClassMin(int aTotalNestedStateMachinePerClassMin) -
setTotalSelfCyclesPerClassMin
public boolean setTotalSelfCyclesPerClassMin(int aTotalSelfCyclesPerClassMin) -
setTotalCyclesPerClassMin
public boolean setTotalCyclesPerClassMin(int aTotalCyclesPerClassMin) -
addVisitedState
-
removeVisitedState
-
setTransitionsList
-
setStatesSet
-
setEventsSet
-
getTotalStateMachines
public int getTotalStateMachines()total StM found considering all classes analysed. -
getTotalStateMachinesPerClass
public int getTotalStateMachinesPerClass() -
getTotalStates
public int getTotalStates() -
getTotalStatesPerClass
public int getTotalStatesPerClass() -
getTotalEvents
public int getTotalEvents() -
getTotalEventsPerClass
public int getTotalEventsPerClass() -
getTotalTransitions
public int getTotalTransitions() -
getTotalTransitionsPerClass
public int getTotalTransitionsPerClass() -
getTotalGuards
public int getTotalGuards() -
getTotalGuardsPerClass
public int getTotalGuardsPerClass() -
getTotalDifferentTransitions
public int getTotalDifferentTransitions() -
getTotalDifferentTransitionsPerClass
public int getTotalDifferentTransitionsPerClass() -
getTotalActions
public int getTotalActions() -
getTotalActionsPerClass
public int getTotalActionsPerClass() -
getTotalNestedStateMachine
public int getTotalNestedStateMachine() -
getTotalNestedStateMachinePerClass
public int getTotalNestedStateMachinePerClass() -
getTotalSelfCycles
public int getTotalSelfCycles() -
getTotalSelfCyclesPerClass
public int getTotalSelfCyclesPerClass() -
getTotalCycles
public int getTotalCycles() -
getTotalCyclesPerClass
public int getTotalCyclesPerClass() -
getTotalClass
public int getTotalClass() -
getTotalStateMachinesPerClassMax
public int getTotalStateMachinesPerClassMax()MAX ATTRIBUTES -
getTotalStatesPerClassMax
public int getTotalStatesPerClassMax() -
getTotalEventsPerClassMax
public int getTotalEventsPerClassMax() -
getTotalGuardsPerClassMax
public int getTotalGuardsPerClassMax() -
getTotalTransitionsPerClassMax
public int getTotalTransitionsPerClassMax() -
getTotalDifferentTransitionsPerClassMax
public int getTotalDifferentTransitionsPerClassMax() -
getTotalActionsPerClassMax
public int getTotalActionsPerClassMax() -
getTotalNestedStateMachinePerClassMax
public int getTotalNestedStateMachinePerClassMax() -
getTotalSelfCyclesPerClassMax
public int getTotalSelfCyclesPerClassMax() -
getTotalCyclesPerClassMax
public int getTotalCyclesPerClassMax() -
getTotalStateMachinesPerClassMin
public int getTotalStateMachinesPerClassMin()MIN ATTRIBUTES -
getTotalStatesPerClassMin
public int getTotalStatesPerClassMin() -
getTotalEventsPerClassMin
public int getTotalEventsPerClassMin() -
getTotalGuardsPerClassMin
public int getTotalGuardsPerClassMin() -
getTotalTransitionsPerClassMin
public int getTotalTransitionsPerClassMin() -
getTotalDifferentTransitionsPerClassMin
public int getTotalDifferentTransitionsPerClassMin() -
getTotalActionsPerClassMin
public int getTotalActionsPerClassMin() -
getTotalNestedStateMachinePerClassMin
public int getTotalNestedStateMachinePerClassMin() -
getTotalSelfCyclesPerClassMin
public int getTotalSelfCyclesPerClassMin() -
getTotalCyclesPerClassMin
public int getTotalCyclesPerClassMin() -
getVisitedState
-
getVisitedStates
-
numberOfVisitedStates
public int numberOfVisitedStates() -
hasVisitedStates
public boolean hasVisitedStates() -
indexOfVisitedState
-
getTransitionsList
keep transitions without repetition of an StM. Use method Load -
getStatesSet
-
getEventsSet
-
delete
public void delete() -
incTotal
Increment Total Values with partial values or values counted in a class. -
calcMinMax
Analyze if new values collected is MIN or MAX than values had stored in order to hold correct MAX and MIN values. -
calculate
Calculate State Machine Metrics for given Umple Class. Considering an Umple Class can have multiples State Machines, this method call the method calculate (StateMachine) per each State Machine found in Umple Class. It is a Wraper Class.- Parameters:
Umple
- Class under analysis
-
calculate
Calculate State Machine Metrics for a given State Machine. Considering an state can be a state machine also, this method call nestedSM (sm) to analyse Statemachine recursively.- Parameters:
StateMachine
- under analysis
-
nestedSM
This method calculate the metrics of StateMachine recursively, storaging values per class and totals of files analyzed. Programmer consideration when alter this method. Immediately before return, always call methods: - this.resetVisitedStates();- Parameters:
StateMachine
- under analysis
-
hasSelfCycle
END METHOD Answer if there is a Self Cycle in a specific state.- Parameters:
state
- used to look for self cycles- Returns:
- TRUE means there is at least one self cycle FALSE means there is NOT self cycle
-
getAmountSelfCycles
Answer the amount of Self cycles in a specific state.- Parameters:
state
- used to look for cycles- Returns:
- The amount of transitions that represents Self Cycles
-
getAmountCycles
Count the amount of cycles considering a specific state as start node.- Parameters:
state
- used to look for cycles- Returns:
- The amount of transitions that provoke Self Cycles. Value Zero means there is NOT cycle. Value -1 means a invalid NULL state was supplied as parameter.
-
countCycles
Count the amount of cycles recursively considering a specific state as start node. This function was created to help execution of getAmountCycles(State). It must not be used directly. Use getAmountCycles(State)- Parameters:
firstState
- is the state used like first state through looking for cyclescurrentState
- is the state under analysis. Algorithm checks if it returned to firstState completing a cycle. It means, if currentState=firstState a Cycle was found.sum
- is used as accumulator (summing) among recursive loops.- Returns:
- The amount of transitions that provoke Self Cycles. Value Zero means there is NOT cycle.
-
load
Load all transitions from a list of stateMachines to transitionsList attribute, without repeating of transitions. This function was created to help execution of getAmountCycles(State). It must not be used directly. Use getAmountCycles(State) -
load
-
loadStatesRecursively
-
loadStatesRecursively
-
resetVisitedStates
public void resetVisitedStates() -
incTotalStateMachines
public void incTotalStateMachines(int a) -
incTotalStateMachinesPerClass
public void incTotalStateMachinesPerClass(int a) -
incTotalStatesPerClass
public void incTotalStatesPerClass(int a) -
incTotalStates
public void incTotalStates(int a) -
incTotalEvents
public void incTotalEvents(int a) -
incTotalEventsPerClass
public void incTotalEventsPerClass(int a) -
incTotalTransitions
public void incTotalTransitions(int a) -
incTotalTransitionsPerClass
public void incTotalTransitionsPerClass(int a) -
incTotalGuards
public void incTotalGuards(int a) -
incTotalGuardsPerClass
public void incTotalGuardsPerClass(int a) -
incTotalDifferentTransitions
public void incTotalDifferentTransitions(int a) -
incTotalDifferentTransitionsPerClass
public void incTotalDifferentTransitionsPerClass(int a) -
incTotalActions
public void incTotalActions(int a)void incAvgTransitionsPerClass(int a){ this.avgTransitionsPerClass+=a; } -
incTotalActionsPerClass
public void incTotalActionsPerClass(int a) -
incTotalNestedStateMachine
public void incTotalNestedStateMachine(int a) -
incTotalNestedStateMachinePerClass
public void incTotalNestedStateMachinePerClass(int a) -
incTotalSelfCycles
public void incTotalSelfCycles(int a) -
incTotalSelfCyclesPerClass
public void incTotalSelfCyclesPerClass(int a) -
incTotalCycles
public void incTotalCycles(int a) -
incTotalCyclesPerClass
public void incTotalCyclesPerClass(int a) -
incTotalClass
public void incTotalClass(int a) -
setMinMax
Get values and set them like MIN and MAX values. Used after first values calculated, when those values is MIN and MAX, considering they are first values calculated.- Parameters:
a
- CountSM class containing first values calculated
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-