1 / 22

Verification of Specifications in Modeling Languages using Basic Protocols

Verification of Specifications in Modeling Languages using Basic Protocols. Stepan Potiyenko. Technology overview. Requirements Specifications English text. Formal Model MSC, SDL, UML,. manual formalization. automatic translation. Basic Protocols (Hoare triples).

varden
Download Presentation

Verification of Specifications in Modeling Languages using Basic Protocols

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. MSC usage 27.08.2007

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

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

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

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

  10. Basic Protocols for the MSC diagram MSC usage

  11. SDL usage 27.08.2007

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

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

  14. 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 Control flow labeling SDL usage 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

  15. 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) States processing SDL usage task x:=x+y; p_1_s_2: task call prc(x); p_1_s_3: nextstate s2; p_1: state s1; input i; p_1_s_1: p_1: state s2; ProcP(p, p_1); (ProcP p.state = s2) & ...

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

  17. x 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: ... t1 := 1; sig Decision processing (labeling) SDL usage decision x; (1): task t1:=1; (<0): output sig; enddecision; ...

  18. ProcP#p ProcP(p, p_1_d_1 ); (x = 1) ProcP(p, p_1_d_2 ); t1 := 1 ProcP#p ProcP(p, p_1_d_1 ); (x < 0) ProcP(p, p_1_d_2 ); add_tail(T1 P1.queue, sig) Decision processing (BP) SDL usage 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: ...

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

  20. UML usage 27.08.2007

  21. Diagram types and perspectives UML usage • 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).

  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.

More Related