During the past twenty years, concurrency theory has produced a mature but loose collection of models, theorems, algorithms, and tools. The collection is mature because it is based on a solid mathematical foundation and has made possible documented successes in system design and analysis. The collection is loose because a theoretical result or a practical application is typically carried out within a particular formalism, whose idiosyncrasies may support the result or application in undeclared ways.
Overall, the explosion of formalisms has led to healthy diversity rather than fragmentation of the discipline: the existing variety of individual concurrency theories has proved suitable for a wide range of application domains, and comparative concurrency theory has identified deep mathematical relationships between individual theories.
Yet, potential customers, such as designers of communication protocols and embedded systems, have been reluctant in applying concurrency-theoretic methods. This reluctance is reinforced by the perceived need of having to buy into one particular formalism and tool from what must seem, to the bystander, a bewildering, unstructured array of possible choices.