This document summarizes the automatic generation of Promela models with probes from SDL system specifications. It describes inserting probes into generated models to detect invalid states, semantic rule violations, and potentially erroneous executions. A case study on formally verifying the V.76 telecommunications protocol specification is presented, where probes revealed implicit signaling, ignored commands, and violations of temporal properties. The approach supports modeling SDL concepts like processes, data types, communication, and verification with the Spin model checker.
How to Troubleshoot Apps for the Modern Connected Worker
Toward Automatic Generation of Models with Probes from the SDL System Specification
1. Toward Automatic Generation of Models with Probes from the SDL System Specification University of Maribor Faculty of Electrical Engineering and Computer Science Boštjan Vlaovič , Ph. D. [email_address] Workshop on Formal Verification of Telecommunication Systems , Part I Zagreb, 5. 11. 2004 UM FERI
7. Model Checking Technique system specification requirements model of the system model with probes formal verification tool SDL Promela claims, temporal formulas Şpin violation of the requirements counter-example
8.
9.
10.
11.
12. Promela Model of the System proctype dataLink__AtoB(pt__chan input; pt__pid parent){ pt__pid offspring, sender; byte pv__ptr, pv__cur; xr input; V76paramTyp V76par; goto ready; ready: end_1: do :: table_channum_ptr[input] > pv__cur -> table_channum_prio[input]=false; pv__cur++; pv__ptr=0; atomic{ do :: pv__ptr <= cv__buff-1 -> if :: else -> set__clear(); fi; pv__ptr++ ; :: else -> goto ready_start; od; } ready_start: if :: table_channum_prio[input]==true -> pv__ptr=0; do :: (pv__ptr <= cv__buff-1) && (table_channum_nsp[input].data[pv__ptr].prio==true) -> if /* PRIORITY INPUT */ :: else -> skip; fi; :: (pv__ptr == cv__buff) -> break; :: else -> pv__ptr++ od; :: else -> pv__ptr=0; do :: (pv__ptr <= cv__buff-1) -> if :: skip__save() :: else -> . . . }