In this project we investigate solutions to the problem of implementing robust, efficient global synchronization policies in concurrent object-oriented software.
Synchronization is an important aspect in the design of complex, concurrent embedded systems.
Object-oriented analysis and design techniques have been used successfully to design and maintain large software systems, but multiple shortcomings in their treatment of synchronization aspects limit their effectiveness in many applications. To meet these challenges, we will develop techniques, tools and methodologies that support high-level specifications of synchronization aspects, derivation and weaving of aspect code into core functional code written in languages commonly used for embedded applications. This will involve the following activities. Static analysis and program specialization techniques will be used to weave synchronization aspects with core functionality code to achieve efficient implementations. A repository of high-level synchronization specification patterns will be provided for common synchronization problems.