230 likes | 374 Views
WITUL04. Basic Protocols, Message Sequence Charts, and the Verification of Requirements Specifications. A. Letichevsky, J. Kapitonova, A. Letichevsky Jr., V. Volkov Glushkov Institute of Cybernetics, National Academy of Science, Kiev, Ukraine ISS Ltd S. Baranov, V. Kotlyarov
E N D
WITUL04 Basic Protocols, Message Sequence Charts, and the Verification of Requirements Specifications A. Letichevsky, J. Kapitonova, A. Letichevsky Jr., V. Volkov Glushkov Institute of Cybernetics, National Academy of Science, Kiev, Ukraine ISS Ltd S. Baranov, V. Kotlyarov Motorola, St.Petersburg, Russia T. Weigert Motorola, Schaumburg, Illinois, United States
Formalization Review Using formal methods in requirement capturing Testing scenarios START Checking consistency Informal reqs related to behavior Formal models Verdict MSC Basic Protocols Scenarios MSC UML Proving annotations MSC Formal Specs Generating traces Verified requirements Manual Automated WITUL
Logics Temporal Logic linear/branching, propositional/predicate -calculus propositional/predicate Dynamics Process Algebras CCS, CSP, pi-calculus,… Automata Buchi, Muller, … ASM Requirement Specification Languages Agents and Environments (insertion programming) Basic protocols Annotated scenarios Extended MSC,SDL,UML WITUL
Basic Protocols SYRaSRMenu 430Upon determining that the setup greeting prompt has been completedand if a Voice Recognition Session is active and menu level is “Main Phone Setup”then the system shall request the audio input channeland shall allow the user sessionsilence timeout time to speak a voice command. SYRaCSTATE 701 While in the no phone call stateand upon detecting that the SelectedDevice is set to a valid deviceand the Selected Device’s call status indicates a call inprogress, the system shall assume it is in cip. Process Attributes Precondition Parameters Postcondition WITUL
MS m ACG a DAP d precondition: DAP(d, paging m) & ACG(a, serving d) & (MS m.serving_acg = a) & valid m & not_empty(DAP d.page_list) Two basic protocols with MSC diagrams MS m ACG a DAP d precondition: MS(m, respond a) & ACG(a, serving d) postcondition: (DAP d.group_list := (m,DAP d.group_list) & MS(m, idle) postcondition: (DAP d.paging_ms := head (DAP d.page_list)) & (DAP d.page_list := tail (DAP d.page_list)) & MS (m, respond a) & DAP(d, paging(DAP d.paging_ms)) WITUL
What is new? Not Hoare like triples, but *Special language of pre- and postconditions based on the model of interaction of agents and environments * The algebra of basic protocols * Applications to real life projects Using MSC is not essential. It can be UCM, wave diagr,… Important is interpretation as behaviors of transition systems. WITUL
The logic language is based on interaction of Agents and Environments n environment agent environment Insertion function agent agent WITUL
a a b Δ a a Δ Agents Labeled or attributed (states are labeled by attribute values) transition systems with terminal and divergent statesconsidered up to bisimilarity (x1:z1,…,xn:zn) a s ' s Behaviors Continuous complete behavior algebra F(A) over action algebraА(vs. final coalgebra) term div Recursive definitions can be used to extend the signature: a.0+a.b.(a.0+a. Δ+ Δ) WITUL
Environments Agent Eover action set Cwithcontinuous insertion functionIns Insertion equivalence of agents: Multilevel environments: WITUL
Phone n Phone m Network Phone n Network phone(m,dial) phone(n,idle) dial(m,n) offhook n dialtone n phone(m, dial n) phone(n, dial) call setup initial call setup dialing 1 Two basic protocols for telephone system Precondition Postcondition WITUL
Phone m Network Phone n phone(m, dial n) & valid n ring ring phone(m, ringing n) & phone(n,ringing) Two more protocols Phone m Network Phone n phone(m, dial n) & ~(valid n) busy phone(m, busy) call setup dialing 2 call setup failure 2 WITUL
Phone m Network Phone n Annotatedscenario phone(m,idle) Guarded conditions Initial condition offhook dialtone dial(m,n) alt when valid n Annotations Постусловие ring ring anno phone(m, ringing n) when ~(valid n) busy anno phone(m, busy) WITUL
environment( attributes: obj(Nil); parameters: obj(Nil); agent_types: obj( phone:obj( valid:symb,cw:symb, twc:symb, connector:bool,onhook:int, number:int ) ); axioms:Nil; reductions:(x)( equ_zero(0)=1, equ_zero(x)=0 ); instances: … agents: … initial: … ); Environment description for telephone example instances: (Phone 1, Phone 2, Phone 3, Phone 4, Network); agents: obj( p1:phone, p2:phone, p3:phone, p4:phone ); initial: env( obj( attributes: obj(Nil); agent_attributes:obj( p1:obj(valid:1,cw:0,twc:0,connector:0,onhook:0,number:1), p2:obj(valid:1,cw:0,twc:0,connector:0,onhook:0,number:2), p3:obj(valid:1,cw:0,twc:0,connector:0,onhook:0,number:3), p4:obj(valid:1,cw:0,twc:0,connector:0,onhook:0,number:4) ); numeric_restrictions: 1; logic_restrictions:Nil ), state(phone(p1,idle),phone(p2,idle), phone(p3,idle),phone(p4,idle)) ) WITUL
System defined by basic protocols For MSC diagrams it is a weak sequential composition Behavior of a system in a state with property alpha Environment transition WITUL
Partially sequential composition permutability Permutable Not commute Not permutable WITUL
What will be after? Predicate transformers postcondition: (DAP d.paging_ms := head (DAP d.page_list)) & (DAP d.page_list := tail (DAP d.page_list)) & MS (m, respond a) & DAP(d, paging(DAP d.paging_ms)) easy case Predicate transformer: more general case Example: WITUL
Main verification problems • Consistency and completeness of basic protocols • Decomposition of scenarios to basic protocols • Annotation consistency of scenarios composed by basic protocols (implemented for MSC and SDL) • Reachability in the system defined by basic protocols Solved in verification environment of VRS. Integration of modeling and automatic theorem proving WITUL
Inconsistent protocols(feature interaction between 3way Calling and Call Waiting) Phone n Phone m Network Phone k Phone m Network Phone k Phone n phone(k,connected m)& phone(n,cw_wait k) phone(k,3way connect(m&n) ) onhook onhook dialtone busy dialtone flash phone(k, idle) phone(m, idle) phone(k,connected n)& phone k.cw:=0 phone(m,dial) & phone(n,dial) phone(n, dial) phone(m, dial) Protocol cw teardown 1 Protocol 3way teardown 2 WITUL
Phone m Phone z Network Phone k Phone n offhook dialtone offhook Scenarioconfirminginconsistency dialtone dial ring ring dial ring ring offhook offhook flash phone(z,connected m) dialtone dial k phone(k,connected n) ring ring phone(z,dial) pone(m, 3way wait z) flash flash phone(k,connected z) phone(n, cw wait k) annophone(z,3way connect(m&k)) annophone(k,connected z)&phone(n,cw wait k) Phone m WITUL
Inconsistent state onhook z ??? z <cw teardown 1> phone(k,connected n) 3 way connect m&k n k m n cw_wait k <3way teardown 2> phone(k,dial) WITUL
Piloting VRS WITUL
What next? Next project where VRS will be applied contains about 10 000 requirements. Special technology is under development to reduce states and trace spaces. More UML to logic language WITUL
Thank You! WITUL