Transaction flows and executable models: formalization and analysis of message-passing protocols

The lack of appropriate models is often the biggest hurdle in applying formal methods in the industry. Creating executable models of industrial designs is a challenging task, one that we believe has not been sufficiently addressed by existing research. We address this problem for distributed message passing protocols by showing how to synthesize executable models of such protocols from transaction message flows, which are readily available in architecture descriptions. We present industrial case studies showing that this approach to creating formal models is effective in practice. We also show that going the other way, i.e., extracting flows from executable models, is at least as hard as the model-checking problem. These results indicate that transaction flows may provide a superior approach to capture design intent than executable models.

[1]  Rajeev Alur,et al.  Synthesizing Finite-State Protocols from Scenarios and Requirements , 2014, Haifa Verification Conference.

[2]  Myla Archer,et al.  Tools for constructing requirements specifications: the SCR Toolset at the age of nine , 2005, Comput. Syst. Sci. Eng..

[3]  Mark R. Tuttle,et al.  Protocol verification using flows: An industrial experience , 2009, 2009 Formal Methods in Computer-Aided Design.

[4]  Mark R. Tuttle,et al.  Going with the Flow: Parameterized Verification Using Message Flows , 2008, 2008 Formal Methods in Computer-Aided Design.

[5]  David Harel,et al.  LSC'S: BREATHING LIFE INTO MESSAGE SEQUENCE CHARTS , 2022 .

[6]  Sriram K. Rajamani,et al.  The SLAM Toolkit , 2001, CAV.

[7]  永田 守男,et al.  Verifying Properties of Parallel Programs : An Axiomatic Approach , 1976 .

[8]  Dawson R. Engler,et al.  A few billion lines of code later , 2010, Commun. ACM.

[9]  A. Gupta,et al.  The Stanford FLASH multiprocessor , 1994, Proceedings of 21 International Symposium on Computer Architecture.

[10]  Rajeev Alur,et al.  TRANSIT: specifying protocols with concolic snippets , 2013, PLDI.

[11]  Mark R. Tuttle,et al.  Extracting models from design documents with mapster , 2008, PODC '08.

[12]  Anna Slobodová,et al.  Replacing Testing with Formal Verification in Intel CoreTM i7 Processor Execution Engine Validation , 2009, CAV.

[13]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[14]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[15]  Amir Pnueli,et al.  Automatic Deductive Verification with Invisible Invariants , 2001, TACAS.

[16]  Anoop Gupta,et al.  The Stanford FLASH Multiprocessor , 1994, ISCA.

[17]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[18]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..