Concurrent Class Machines are a novel state-machine model that directly
captures a variety of object-oriented concepts, including classes and inheritance,
objects and object creation, methods, method invocation and exceptions,
multithreading and abstract collection types. The model can be understood
as a precise definition of UML activity diagrams which, at the same time,
offers an executable, object-oriented alternative to event-based statecharts.
It can also be understood as a visual, combined control and data flow model
for multithreaded object-oriented programs.
We first introduce a visual notation and tool for Concurrent Class
Machines and discuss their benefits in enhancing system design. We then
equip this notation with a precise semantics that allows us to define refinement
and modular refinement rules. Finally, we summarize our work on generation
of optimized code, implementation and experiments, and compare with related
work.
Automated Software Enfineering, Proceedings of the 16th IEEE International
Conference on Automated Software Engineering (ASE01), San Diego, USA, November
26-29, 2001.