Presentation is loading. Please wait.

Presentation is loading. Please wait.

27.08.2007 Stepan Potiyenko Verification of Specifications in Modeling Languages using Basic Protocols.

Similar presentations


Presentation on theme: "27.08.2007 Stepan Potiyenko Verification of Specifications in Modeling Languages using Basic Protocols."— Presentation transcript:

1 27.08.2007 Stepan Potiyenko Verification of Specifications in Modeling Languages using Basic Protocols

2 27.08.2007 2 Technology overview Basic Protocols (Hoare triples) Specialized verification tools (static checking, model checking, …) manual formalization Requirements Specifications English text Formal Model MSC, SDL, UML,... automatic translation

3 27.08.2007 3 Agents and Environment Environment with attributes a b x Agent states local attributes behavior

4 27.08.2007 4 Basic Protocols Basic Protocol is a triple where: x is a list of parameters,  – is a precondition, u – process (action),  – post condition Forall ms;

5 27.08.2007 MSC usage

6 27.08.2007 6 MSC diagram alt loop i=0,i<N opt Basic protocols

7 27.08.2007 7 alt loop i=0,i<N opt MSC diagram Basic protocols

8 27.08.2007 8 alt loop i=0,i<N opt MSC diagram Basic protocols

9 27.08.2007 9 alt loop i=0,i<N opt MSC diagram Basic protocols

10 27.08.2007 10 Basic Protocols for the MSC diagram MSC usage

11 27.08.2007 SDL usage

12 27.08.2007 12 SDL in terms of BP System specification – ENVIRONMENT Process, functional system component - AGENT Signals, timers – EVENTS SDL usage

13 27.08.2007 13 system block 1 envenv I I ronmen ronmen t tenvenv I I ronmen ronmen t t I t block 2 block 3 process 2 process 3 process 1 process 4 process 5 Example of structure description of SDL model Structure linearization system process 1 (block 1) process 2 (block 1,2) process 4 (block 3) process 3 (block 1,2) process 5 (block 3) e n v i r o n m e n t Linearized structure SDL usage

14 27.08.2007 14 p_1: state s1; input i; p_1_s_1: task x:=x+y; p_1_s_2: task call prc(x); p_1_s_3: nextstate s2; p_1: state s2... Control flow label is agent state expression state s1; input i; task x:=x+y; task call prc(x); nextstate s2; state s2... s1 i x := x+y; call prc(x); s2 SDL usage Control flow labeling

15 27.08.2007 15 task x:=x+y; p_1_s_2: task call prc(x); p_1_s_3: nextstate s2; States processing ProcP(p, p_1 ); (ProcP p.state = s1) & get_head(p.queue) = i ProcP(p, p_1_s_1 ); last_signal := i; SENDER := sender(i); remove_head(p.queue) ProcP#p p_1: state s1; input i; p_1_s_1: p_1: state s2; ProcP(p, p_1); (ProcP p.state = s2) &... SDL usage

16 27.08.2007 16 SDL usage Input and save processing state s1; save k; input i;... input j;... s1 ij k ProcP(p, p_1 ); (ProcP p.state = s1) & get_head(p.queue) = k ProcP(p, p_1 ); add_tail(p.saved, k); remove_head(p.queue) ProcP#p ProcP(p, p_1 ); (ProcP p.state = s1) & ~(get_head(p.queue) = i) & ~( … = j) & ~( … = k) ProcP(p, p_1_s_1 ); remove_head(p.queue) ProcP#p ProcP(p, p_1 ); (ProcP p.state = s1) & get_head(p.queue) = i ProcP(p, p_1_s_1 ); last_signal := i; SENDER := sender(i); remove_head(p.queue); copy_head(p.queue, p.saved); ProcP#p

17 27.08.2007 17 decision x; (1): task t1:=1; (<0): output sig; enddecision;... Decision processing (labeling) t1 := 1; x sig 1<0 p_1_d_1: decision x; (x=1):(task t1:=1; join p_1_d_2); (x<0): (output sig; join p_1_d_2); enddecision; p_1_d_2:... SDL usage

18 27.08.2007 18 Decision processing (BP) p_1_d_1: decision x; (x=1):(task t1:=1; join p_1_d_2 ); (x<0): (output sig; join p_1_d_2 ); enddecision; p_1_d_2:... ProcP(p, p_1_d_2 ); t1 := 1 ProcP(p, p_1_d_1 ); (x = 1) ProcP#p ProcP(p, p_1_d_2 ); add_tail(T1 P1.queue, sig) ProcP(p, p_1_d_1 ); (x < 0) ProcP#p SDL usage

19 27.08.2007 19 PROCEDURE fun_name FPAR loc_v; Local variables declaration start: desicion (loc_v) (1): task u:=1; (<0): task u:=0; enddecision; return; ENDPROCEDURE; task t1:=1; p_7: task call fun_name(t1); p_8: Procedure calls processing SDL usage ProcP(p, fun_name ); add_head(return_seq, p_8); loc_v := t1 ProcP(p, p_7 ) ProcP#p ProcP(p, head(return_seq)) ProcP(p, return ) ProcP#p ProcP(p, return ); [ret values]; [flush loc vars] return_seq: (ret_control_flow, …, Nil) return_val: (values_set, …, Nil) stack

20 27.08.2007 UML usage

21 27.08.2007 21 Diagram types and perspectives Sequence diagrams – analogously to MSC. Architecture diagrams, state chart diagrams – analogously to SDL system with blocks, processes and state transitions. Packages and classes structure is linearized (multiplicity, generalization). UML usage

22 27.08.2007 22 Plans It would be great completely to specify subset of UML notations that are translated to BPSL. The problem of N instances should be resolved.


Download ppt "27.08.2007 Stepan Potiyenko Verification of Specifications in Modeling Languages using Basic Protocols."

Similar presentations


Ads by Google