state machine 應用簡介(兼談 uml 2)

15
智智智智智智智智智智 Fashion Intelligence Co., Ltd State Machine 應應應應 2011.12.14. W illiamYeh 智智智 應應 UML 2

Upload: william-yeh

Post on 21-Jun-2015

1.333 views

Category:

Technology


0 download

DESCRIPTION

以程式員角度,簡介 state machine 的時機,並提及 UML 2 及實作議題。

TRANSCRIPT

Page 1: State machine 應用簡介(兼談 UML 2)

智慧時尚股份有限公司Fashion Intelligence Co., Ltd

State Machine應用簡介

2011.12.14.

William Yeh葉秉哲

兼談 UML 2

Page 2: State machine 應用簡介(兼談 UML 2)

WHY State WHY State Machine?Machine?

2.

Page 3: State machine 應用簡介(兼談 UML 2)

有些事物,本質上有些事物,本質上

就有 就有 ““ state” state” 觀觀念念

3.

Page 4: State machine 應用簡介(兼談 UML 2)

Lock

4.

Page 5: State machine 應用簡介(兼談 UML 2)

Process

Page 6: State machine 應用簡介(兼談 UML 2)

有些領域,早就發展出有些領域,早就發展出

以 以 ““ state” state” 為出發為出發點點

的思考的思考 // 實作程序實作程序6.

Page 7: State machine 應用簡介(兼談 UML 2)

序向邏輯電路

Page 8: State machine 應用簡介(兼談 UML 2)

非同步事件/訊號非同步事件/訊號

8.

Page 9: State machine 應用簡介(兼談 UML 2)

十字旋轉門

9.

stm Dynamic View

Locked

Unlocked

coin/unlock

pass /lock

stm Dynamic View

State

Trigger coin

E0

pass

E1

S0Locked S1

S1Unlocked S0

?

?

Page 10: State machine 應用簡介(兼談 UML 2)

讓程式員易於檢查讓程式員易於檢查怪異而未處理過怪異而未處理過

的狀況。的狀況。

10.

Page 11: State machine 應用簡介(兼談 UML 2)

十字旋轉門 , revised

11.

stm Rev ised example

Locked

Unlocked

pass /lock

coin/unlock

pass /alarm

coin /thank_you

stm Rev ised example

State

Trigger coin

E0

pass

E1

S0Locked S1 S0

S1Unlocked S1 S0

Page 12: State machine 應用簡介(兼談 UML 2)

WHY State Machine?

有些事物,本質上就有 “ state” 觀念 有些領域,早就發展出以 “ state” 為出發點的思考 /實作程序

非同步事件/訊號 讓程式員易於檢查怪異而未處理過的狀況

好物: Enterprise Architect http://www.sparxsystems.com/products/ea/

12.

Page 13: State machine 應用簡介(兼談 UML 2)

UML 2 的 State Machine

Martin Fowler, UML Distilled, 3rd edition, Addison-Wesley, 2003. 第 10 章。適合速成。

UML 2 State Machine Diagram http://www.sparxsystems.com/resources/uml2_tutorial/

uml2_statediagram.html

UML State Machine @ Wikipedia http://en.wikipedia.org/wiki/UML_state_machine

13.

Page 14: State machine 應用簡介(兼談 UML 2)

實作

GoF 1995: State pattern SMC (State Machine Compiler)

http://smc.sourceforge.net

QP™ state machine frameworksQP/C, QP/C++, QP-nano

http://www.state-machine.com

C++ Boost http://stackoverflow.com/questions/4275602/boost-statechart-vs-

meta-state-machine

Meta State Machine (MSM)Statechart

14.

Page 15: State machine 應用簡介(兼談 UML 2)

Boost MSM example

15.