Download presentation
Presentation is loading. Please wait.
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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.