  The development of concurrent applications is challenging because of the
complexity of concurrent designs and the hazards of concurrent programming.
Architectural modeling using the Unified Modeling Language (UML) can support
the development process, but the problem of mapping the model to a concurrent
implementation remains. This paper addresses this problem by defining a scheme
to map concurrent UML designs to a concurrent object-oriented program. Using
the COMET method for the architectural design of concurrent object-oriented
systems, each component and connector is annotated with a stereotype indicating
its behavioral design pattern. For each of these patterns, a reference
implementation is provided using SCOOP, a concurrent object-oriented
programming model. We evaluate this development process using a case study of
an ATM system, obtaining a fully functional implementation based on the
systematic mapping of the individual patterns. Given the strong execution
guarantees of the SCOOP model, which is free of data races by construction,
this development method eliminates a source of intricate concurrent programming
errors.

Software Engineering