plantuml
@startuml
skinparam shadowing false
' --- 状態定義(そろばんの1桁のビット表現) ---
state0: 00000
state1: 01000
state2: 01100
state3: 01110
state4: 01111
state5: 10000
state6: 11000
state7: 11100
state8: 11110
state9: 11111
' --- +1 遷移 ---
state0 --> state1 : +1
state1 --> state2 : +1
state2 --> state3 : +1
state3 --> state4 : +1
state4 --> state5 : +1
state5 --> state6 : +1
state6 --> state7 : +1
state7 --> state8 : +1
state8 --> state9 : +1
state9 --> overflow : +1
' --- -1 遷移 ---
state1 --> state0 : -1
state2 --> state1 : -1
state3 --> state2 : -1
state4 --> state3 : -1
state5 --> state4 : -1
state6 --> state5 : -1
state7 --> state6 : -1
state8 --> state7 : -1
state9 --> state8 : -1
state0 --> underflow : -1
' --- +2 遷移 ---
state0 --> state2 : +2
state1 --> state3 : +2
state2 --> state4 : +2
state3 --> state5 : +2
state4 --> state6 : +2
state5 --> state7 : +2
state6 --> state8 : +2
state7 --> state9 : +2
state8 --> overflow : +2
state9 --> overflow : +2
' --- -2 遷移 ---
state2 --> state0 : -2
state3 --> state1 : -2
state4 --> state2 : -2
state5 --> state3 : -2
state6 --> state4 : -2
state7 --> state5 : -2
state8 --> state6 : -2
state9 --> state7 : -2
state0 --> underflow : -2
state1 --> underflow : -2
' --- +3 遷移 ---
state0 --> state3 : +3
state1 --> state4 : +3
state2 --> state5 : +3
state3 --> state6 : +3
state4 --> state7 : +3
state5 --> state8 : +3
state6 --> state9 : +3
state7 --> overflow : +3
state8 --> overflow : +3
state9 --> overflow : +3
' --- -3 遷移 ---
state3 --> state0 : -3
state4 --> state1 : -3
state5 --> state2 : -3
state6 --> state3 : -3
state7 --> state4 : -3
state8 --> state5 : -3
state9 --> state6 : -3
state0 --> underflow : -3
state1 --> underflow : -3
state2 --> underflow : -3
' --- +4 遷移 ---
state0 --> state4 : +4
state1 --> state5 : +4
state2 --> state6 : +4
state3 --> state7 : +4
state4 --> state8 : +4
state5 --> state9 : +4
state6 --> overflow : +4
state7 --> overflow : +4
state8 --> overflow : +4
state9 --> overflow : +4
' --- -4 遷移 ---
state4 --> state0 : -4
state5 --> state1 : -4
state6 --> state2 : -4
state7 --> state3 : -4
state8 --> state4 : -4
state9 --> state5 : -4
state0 --> underflow : -4
state1 --> underflow : -4
state2 --> underflow : -4
state3 --> underflow : -4
' --- +5 遷移 ---
state0 --> state5 : +5
state1 --> state6 : +5
state2 --> state7 : +5
state3 --> state8 : +5
state4 --> state9 : +5
state5 --> overflow : +5
state6 --> overflow : +5
state7 --> overflow : +5
state8 --> overflow : +5
state9 --> overflow : +5
' --- -5 遷移 ---
state5 --> state0 : -5
state6 --> state1 : -5
state7 --> state2 : -5
state8 --> state3 : -5
state9 --> state4 : -5
state0 --> underflow : -5
state1 --> underflow : -5
state2 --> underflow : -5
state3 --> underflow : -5
state4 --> underflow : -5
' --- +6 遷移 ---
state0 --> state6 : +6
state1 --> state7 : +6
state2 --> state8 : +6
state3 --> state9 : +6
state4 --> overflow : +6
state5 --> overflow : +6
state6 --> overflow : +6
state7 --> overflow : +6
state8 --> overflow : +6
state9 --> overflow : +6
' --- -6 遷移 ---
state6 --> state0 : -6
state7 --> state1 : -6
state8 --> state2 : -6
state9 --> state3 : -6
state0 --> underflow : -6
state1 --> underflow : -6
state2 --> underflow : -6
state3 --> underflow : -6
state4 --> underflow : -6
state5 --> underflow : -6
' --- +7 遷移 ---
state0 --> state7 : +7
state1 --> state8 : +7
state2 --> state9 : +7
state3 --> overflow : +7
state4 --> overflow : +7
state5 --> overflow : +7
state6 --> overflow : +7
state7 --> overflow : +7
state8 --> overflow : +7
state9 --> overflow : +7
' --- -7 遷移 ---
state7 --> state0 : -7
state8 --> state1 : -7
state9 --> state2 : -7
state0 --> underflow : -7
state1 --> underflow : -7
state2 --> underflow : -7
state3 --> underflow : -7
state4 --> underflow : -7
state5 --> underflow : -7
state6 --> underflow : -7
@enduml
Ref.
職業訓練
https://qiita.com/kaizen_nagoya/items/95368b63fa21d64271ec
UML記事一覧
https://qiita.com/kaizen_nagoya/items/7e7f3af08e1f3bd0380c