The symbiosis of concurrency and verification: teaching and case studies
The symbiosis of concurrency and verification: teaching and case studies
复制标题
并发与验证的共生:教学与案例研究
DOI:
10.1007/s00165-017-0447-x
复制
发表时间:
2018
影响因子:
1
通讯作者:
Pedersen J
中科院分区:
文献类型:
--
作者:
Pedersen J
Concurrency is beginning to be accepted as a core knowledge area in the undergraduate CS curriculum—no longer isolated, for example, as a support mechanism in a module on operating systems or reserved as anadvanceddiscipline for later study. Formal verification of system properties is often considered adifficultsubject area, requiring significant mathematical knowledge and generally restricted to smaller systems employing sequential logic only. This paper presents materials, methods and experiences of teaching concurrency and verification as a unified subject, as early as possible in the curriculum, so that they becomefundamentalelements of our software engineering tool kit—to be used together every day as a matter of course. Concurrency and verification should live in symbiosis. Verification is essential for concurrent systems as testing becomes especially inadequate in the face of complex non-deterministic (and, therefore, hard to repeat) behaviours. Concurrency shouldsimplifythe expression of most scales and forms of computer system by reflecting the concurrency of the worlds in which they operate (and, therefore, have to model); simplified expression leads to simplified reasoning and, hence, verification. Our approach lets these skills be developed without requiring students to be trained in the underlying formal mathematics. Instead, we build on the work of those who have engineered that necessary mathematics into the concurrency models we use (CSP,-calculus), the model checker (FDR) that lets us explore and verify those systems, and the programming languages/libraries (occam-, Go, JCSP, ProcessJ) that let us design and build efficient executable systems within these models. This paper introduces a workflow methodology for the development and verification of concurrent systems; it also presents and reflects on two open-ended case studies, using this workflow, developed at the authors’ two universities. Concerns analysed include safety(don’t do bad things), liveness(do good things)and low probability deadlock(that testing fails to discover). The necessary technical background is given to make this paper self-contained and its work simple to reproduce and extend.
登录
查看更多内容
DOI:
--
发表时间:
2004
期刊:
25 Years Communicating Sequential Processes
影响因子:
--
作者:
Steve A. Schneider;Rob Delicata
通讯作者:
Rob Delicata
DOI:
--
发表时间:
1988
期刊:
影响因子:
--
作者:
T. Patten
通讯作者:
T. Patten
DOI:
--
发表时间:
2006
期刊:
Communicating Process Architectures Conference
影响因子:
--
作者:
F. Barnes
通讯作者:
F. Barnes
DOI:
10.1007/bfb0000463
发表时间:
1997
期刊:
2010 Third International Joint Conference on Computational Science and Optimization
影响因子:
--
作者:
B. Buth;M. Kouvaras;J. Peleska;Hui Shi
通讯作者:
Hui Shi
DOI:
10.1145/1713254.1713265
发表时间:
2010
期刊:
ACM SIGOPS Operating Systems Review
影响因子:
--
作者:
Barnes F
通讯作者:
Barnes F