School of Computing

Process-Oriented Patterns for Concurrent Software Engineering

Adam Sampson

PhD thesis, Computing, University of Kent, CT2 7NF, September 2008.


Abstract Concurrency is unavoidable in modern software development, owing to the increasing complexity of computer systems and the widespread use of parallel computer hardware. Conventional approaches to concurrency are fraught with danger: in particular, uncontrolled access to shared resources, poor scalability and the inability of the programmer to reason about the correctness of a program. Process-oriented programming is a software design approach that offers solutions to many of these problems. A process-oriented program is constructed as a network of isolated, concurrent processes that interact only using synchronisation objects such as channels and barriers. Using techniques drawn from CSP and the p-calculus, design rules can be constructed that enable the programmer to easily build systems with known safety properties. Since process-oriented programs expose by their nature a high degree of explicit concurrency, they can be efficiently distributed across multiple processors and clusters of machines. This thesis describes a pattern language for the engineering of process-oriented programs. Design patterns describe reusable, adaptable solutions to common problems that may arise during the design and development of a system. A pattern language serves the dual purposes of documenting the proven design solutions developed by a community, and providing a common technical vocabulary. The patterns described in this thesis are drawn from a variety of existing processoriented real-world applications, and have been used to construct new applications in fields such as embedded systems, multimedia processing, and complex systems simulation. While much of this work has been conducted using the occam-p programming language, the patterns�and the new language and library facilities they inform�are applicable to process-oriented systems built in any language. ii

Download publication 2401 kbytes (PDF)

Bibtex Record

author = {Adam Sampson},
title = {Process-Oriented Patterns for Concurrent Software Engineering},
month = {September},
year = {2008},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {phdthesis},
    submission_id = {18804_1288351449},
    school = {Computing},
    address = {University of Kent, CT2 7NF},
    publisher = {University of Kent},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014