ROOM


ROOM basic elements


ROOM protocols


ROOM Modelling Structure


ROOM Actors


ROOM Composition: Binding



ROOM Composition: Layer connections


ROOM containment: Aggregation


ROOM OO features


ROOM Dynamic Features


ROOM behavior


RoomCharts


StateCharts


StateChart FSMs


Transitions:  alpha [C]/ beta 
   where  alpha  is the triggering event
      C is a conditions that guards the event
       beta  is the action carried out when the transition is taken
Example:
    entered(S)[in(T) and not active (C)]/
       suspend(C); X := Y + 7

Referring ToEventsConditionsActions
stateentered(S)in(S)
Sexited(S)
started(A)active(A)start(A)
activitystopped(A)hanging(A)stop(A)
Asuspend(A)
resume(A)
data itemread(D)D=FD:=exp
D,Fwritten(D)D < F
conditiontrue(C)D > Fmake_true(C)
Cfalse(C) . . . make_false(C)
event E, actiontimeout(E,)schedule(A,n)
A, n time units


ROOM/StateChart References


CHAM -- CHemical Abstract Machine


CHAM Software Architectures

  1. description of the syntax by which components of the architecture (i.e. molecules) can be represented;
  2. a solution representing the intial state of the architecture;
  3. set of reaction rules describing how the components interact to achieve the dynamic behavior of the system.

The Compressing Proxy


Problem


CHAM Molecules


 M    ::=    P | C | E | M ^  M 
 P    ::=    CFu   |   CFd   |   AD  |   GZ          Components
 C    ::=    i(N) | o(N)     Communication channels
 N    ::=    1 | 2 | 3 | 4 
 E    ::=    eof-i   |   eof-o     Control signals

CHAM Solutions

Initial Solution:

 S0    =    CFu   ^   o(3) ,
            CFd   ^   i(4) ,
            i(1) ^   eof-i   ^ o(2) ^   eof-o   ^   GZ, 
            i(3) ^ o(1) ^   eof-o   ^   AD
Example:

CHAM Laws


Applying rules


 S0    =    CFu   ^   o(3) ,
            CFd   ^   i(4) ,
            i(1) ^   eof-i   ^ o(2) ^   eof-o   ^   GZ, 
            i(3) ^ o(1) ^   eof-o   ^   AD

 S0 -->{T6} S1 , where
 S1    =     o(3) ^   CFu ,
            CFd   ^ i(4), 
            i(3) ^ o(1) ^    eof-o   ^   AD,
            i(1) ^    eof-i   ^ o(2) ^   eof-o   ^   GZ

 S1 -->{T1} S2 , where
 S2    =    CFu   ^ o(3) ,
            CFd   ^ i(4), 
            o(1) ^    eof-o   ^   AD  ^ i(3) 
            i(1) ^    eof-i   ^ o(2) ^   eof-o   ^   GZ

 S2 -->{T1} S3 , where
 S3    =    CFu   ^ o(3) ,
            CFd   ^ i(4), 
            eof-o   ^   AD  ^ i(3) ^ o(1) 
            eof-i   ^ o(2) ^   eof-o   ^   GZ  ^ i(1) 
At this point, T2 , T3 or T4 can occur nondeterministically.