Simple Subject-Observer system for 1 subject

Models

Component-Interaction automata model / Labelled Kripke structure model:

CI control component model - Subject CI user model - Observer

Size

size of the system with the control component and n users without symmetry reduction.

n 1 2 3 4 5 6 7
size of the system with n users 35 220 1 280 7 040 37 120 189 440 942 080

Extended information

- information involving verification of the reachability properties on the model.

Cutoffs

l 0 1 2 3 4 5
Cutoff 2 3 4 5 6 7

Reachable states, Unreachable l+1-tuples

- The following table describes all reachable states in the system with any number of clients. For example

              1 2 3 4 5 6 7
(3, 3, 1)  || * - * 1 * - *              ((3,3,1),2),   ((3,3,1),4,4), ((3,3,1),6)          

describe that of the control component is in the state (3, 3, 1) then it is possible that arbitrary number of users are in the local states 1, 3, 5, 7 (symbol "*"), no user is in the states 2, 6 (symbol "-"), and exactly one user must be in the state 4 (symbol "1").

- The (l+1)-tuples after each line denotes all unreachable (l+1)-tuples which do not contain an unreachable i+1-tuple for some i < l. Interesting fact is that such tuples are only 1+1-tuples and 2+1-tuples

       Reachable states                             Unreachable l+1-tuples 
              1 2 3 4 5 6 7                                                                              
(1, 1, 1)  || * - * - * - *              ((1,1,1),2),   ((1,1,1),4),   ((1,1,1),6)         
(1, 2, 1)  || * 1 * - * - *              ((1,2,1),2,2), ((1,2,1),4),   ((1,2,1),6)        
(1, 3, 1)  || * - * 1 * - *              ((1,3,1),2),   ((1,3,1),4,4), ((1,3,1),6)          
(1, 1, 2)  || * - * - * 1 *              ((1,1,2),2),   ((1,1,2),4),   ((1,1,2),6,6)         
(1, 2, 2)  || * 1 * - * 1 *              ((1,2,2),2,2), ((1,2,2),4),   ((1,2,2),6,6)          
(1, 3, 2)  || * - * 1 * 1 *              ((1,3,2),2),   ((1,3,2),4,4), ((1,3,2),6,6)          
(2, 1, 1)  || * - * - * - *              ((2,1,1),2),   ((2,1,1),4),   ((2,1,1),6)         
(2, 2, 1)  || * 1 * - * - *              ((2,2,1),2,2), ((2,2,1),4),   ((2,2,1),6)        
(2, 3, 1)  || * - * 1 * - *              ((2,3,1),2),   ((2,3,1),4,4), ((2,3,1),6)          
(2, 1, 2)  || * - * - * 1 *              ((2,1,2),2),   ((2,1,2),4),   ((2,1,2),6,6)         
(2, 2, 2)  || * 1 * - * 1 *              ((2,2,2),2,2), ((2,2,2),4),   ((2,2,2),6,6)          
(2, 3, 2)  || * - * 1 * 1 *              ((2,3,2),2),   ((2,3,2),4,4), ((2,3,2),6,6)          
(3, 1, 1)  || * - * - * - *              ((3,1,1),2),   ((3,1,1,1),4), ((3,1,1),6)         
(3, 2, 1)  || * 1 * - * - *              ((3,2,1),2,2), ((3,2,1),4),   ((3,2,1),6)        
(3, 3, 1)  || * - * 1 * - *              ((3,3,1),2),   ((3,3,1),4,4), ((3,3,1),6)          
(3, 1, 2)  || * - * - * 1 *              ((3,1,2),2),   ((3,1,2),4),   ((3,1,2),6,6)         
(3, 2, 2)  || * 1 * - * 1 *              ((3,2,2),2,2), ((3,2,2),4),   ((3,2,2),6,6)          
(3, 3, 2)  || * - * 1 * 1 *              ((3,3,2),2),   ((3,2,3),4,4), ((3,2,3),6,6)          
(4, 1, 1)  || * - * - * - *              ((4,1,1),2),   ((4,1,1),4),   ((4,1,1),6)         
(4, 2, 1)  || * 1 * - * - *              ((4,2,1),2,2), ((4,2,1),4),   ((4,2,1),6)        
(4, 3, 1)  || * - * 1 * - *              ((4,3,1),2),   ((4,3,2),4,4), ((4,3,1),6)          
(4, 1, 2)  || * - * - * 1 *              ((4,1,2),2),   ((4,1,2),4),   ((4,1,2),6,6)         
(4, 2, 2)  || * 1 * - * 1 *              ((4,2,2),2,2), ((4,2,2),4),   ((4,2,2),6,6)          
(4, 3, 2)  || * - * 1 * 1 *              ((4,3,2),2),   ((4,3,2),4,4), ((4,3,2),6,6)          
(5, 1, 1)  || * - * - * - *              ((5,1,1),2),   ((5,1,1),4),   ((5,1,1),6)         
(5, 2, 1)  || * 1 * - * - *              ((5,2,1),2,2), ((5,2,1),4),   ((5,2,1),6)        
(5, 3, 1)  || * - * 1 * - *              ((5,3,1),2),   ((5,3,1),4,4), ((5,3,1),6)          
(5, 1, 2)  || * - * - * 1 *              ((5,1,2),2),   ((5,1,2),4),   ((5,1,2),6,6)         
(5, 2, 2)  || * 1 * - * 1 *              ((5,2,2),2,2), ((5,2,2),4),   ((5,2,2),6,6)          
(5, 3, 2)  || * - * 1 * 1 *              ((5,3,2),2),   ((5,3,2),4,4), ((5,3,2),6,6)          
"*" - an arbitrary number of users, 
"-" - no user,
"1" - exactly one user.



[1] A. Poetzsch-Heffter, J. Aldrich, M. Barnett, D. Giannakopoulou, G. T. Leavens, and N. Sharygina http://www.cs.ucf.edu/~leavens/SAVCBS/2007/challenge.shtml

[2] P. Varekova and B. Zimmerova. Challenge problem: Subject-observer specification with component-interaction automata. In Proceedings of the ESEC/FSE Workshop on Specification and Verification of Component-Based Systems (SAVCBS'07), pages 75-81, Dubrovnik, Croatia, September 2007.