Revision 6c752f7245463e70b575839c5f474166502550be (click the page title to view the current version)

Behavioral Modeling - Power Window

Modeling variability and structures with variability

Feature modeling

Metamodel

abstract final Feature
abstract final FeatureModel

Model

WinFeatures : FeatureModel
manualUpDown : Feature
express : Feature ?
pinchProtection : Feature ?

Structural modeling

Metamodel

abstract final Component
abstract Port
abstract final Command
abstract State
abstract StateMachine

Model

Commands and requests.

motorUp : Command
motorStop : Command
motorDown : Command
abstract final UserRequest
expressUp : UserRequest ?
stop : UserRequest
down : UserRequest

Window motor

WinMotor : Component
cmd : Port -> Command

Window controller

abstract WinController : Component
final motor -> WinMotor
pinchDetector : Component ?
req : Port -> UserRequest ?
endOfTravel : Port ?
objectDetected : Port ?
final xor WinStates : StateMachine
xor movingUp : State
[ req = down --> movingDown ]
[ req = up --> movingUp ]
initial basic : State
[ req = stop --> stopped ]
movingUpX : State
[ this -[objectDetected]--> stopped ]
initial xor stopped : State
closed : State
[ req = down --> movingDown ]
[ req = up || req = stop --> closed ]
partlyOpen : State
[ req = up --> movingUp ]
[ req = down --> movingDown ]
[ req = stop --> partlyOpen ]
open : State
[ req = up --> movingUp ]
[ req = down || req = stop --> open ]
movingDown : State
[ req = up --> movingUp ]
[ endOfTravel --> open ]
[ req = stop --> stopped ]
[ req = down --> movingDown ]