@inbook{208, author = {Bruce Watson}, title = {Using CSP to Develop Quality Concurrent Software}, abstract = {A method for developing concurrent software is advocated that centres on using CSP to specify the behaviour of the system. A small example problem is used to illustrate the method. The problem is to develop a simulation system that keeps track of and reports on the least unique bid of multiple streams of randomly generated incoming bids. The problem’s required high-level behaviour is specified in CSP, refined down to the level of interacting processes and then verified for refinement and behavioural correctness using the FDR refinement checker. Heuristics are used to map the CSP processes to a GO implementation. Interpretive reflections are offered of the lessons learned as a result of the exercise.}, year = {2018}, journal = {Principled Software Development}, chapter = {165-184}, publisher = {Springer}, address = {Switzerland}, isbn = {978-3-319-98046-1}, url = {https://doi.org/10.1007/978-3-319-98047-8}, }