180 likes | 679 Views
Summer School on Software Engineering and Verification (SSSEV) July 17-27, Moscow, Russia. VCC Case Study: Single-lane Bridge Problem . Formal2Normal team: Andrey Dereza * Anatoliy Gorbenko ** Lyubov Reva ** Leanid Vaitsekhovich *** Oleg Illiashenko ** Oleksii Starov **
E N D
Summer School on Software Engineering and Verification (SSSEV) July 17-27, Moscow, Russia VCC Case Study: Single-lane Bridge Problem Formal2Normal team: • Andrey Dereza * • Anatoliy Gorbenko ** • Lyubov Reva ** • Leanid Vaitsekhovich*** • Oleg Illiashenko ** • Oleksii Starov** • _________________________________________________________ • * - Caddiesoft, Ukraine • ** - National Aerospace University “KhAI”, Ukraine • *** - Brest State Technical University, Belarus Mentors: • StephanTobies • JohnWickerson
Abstract • The project is devoted to VCC case study development. • A system under study: • a real-time system that controls traffic on a single-lane bridge • The purpose of the project: • to demonstrate feasibility and usefulness of VCC tool • to compare different implementations and annotation techniques • Our approach: • to employ a stepwise (refined-based) development and verification
Single-lane bridge © J.-R. Abrial. Modeling in Event-B: System and Software Engineering
Abstract model • Events • driveOut • driveInto • Invariants • n >= 0 • n <= d
Refinement 1 • Events • m_out • m_in • i_in • i_out • Invariants • a, n, b >= 0 • a + n+ b<= MAX_COUNT • (a = 0) (b = 0)
Refinement 2 • Events • ML_out • ML_in • IN_in • IN_out • Invariants • a, n, b >= 0 • a + n+ b<= MAX_COUNT • (a = 0) (b = 0) • il_tl xor ml_tl • …
Lessons learned • If assertion involves a variable used in a cycle above, there should be a cycle’s invariant concerns this variable => Could be implemented in VCC • Usage of structures simplifies assertions. But hierarchy of structures sophisticates proof
Conclusion • Sometimes VСС requires assertions which are redundant • The complexity of the annotations depends on implementation features • To use VCC in an effective way it is necessary to work out a special coding style