Adopting the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modelling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. In addition, very little attention has been paid by the conventional object-oriented development methodologies to the analysis and design of synchronisation constraints for concurrent objects. To address these problems, in this thesis the framework of composition-filters, an extension to the object-oriented model, is adopted. An analysis is presented of the problems involved in reusing and extending concurrent objects, in particular the so-called inheritance anomalies. Based on this analysis, a set of criteria for effective extensible concurrent object-oriented programming languages is formulated. The thesis introduces techniques for the creation of concurrency and the synchronisation of concurrent activities, fully integrated within the (object-oriented) composition-filters model. Important properties of the proposed object model are: all objects are -potentially- active, intra-object concurrency is supported and synchronisation specifications are fully separated from method implementations. The applicability and expressive power of the proposed technique are demonstrated, and it is shown how reusability and extensibility of concurrent objects are achieved. The implementation aspects that are involved in the proposed synchronisation scheme are addressed, and some optimisation techniques are presented. It is also shown how the synchronisation specifications can be translated into boolean synchronisation constraints on messages; this is applicable both for implementation purposes and for reasoning about synchronisation specifications. To employ these techniques for the development of concurrent applications, a software development method is introduced that focuses on the analysis and specification of synchronisation constraints for objects. This includes a graphical notation for specifying synchronisation and a number of method steps and hints for the derivation of reusable synchronisation specifications. The graphical notation can be translated algorithmically to composition-filters synchronisation specifications. The presented material can aid software engineers in the development of concurrent objectoriented applications in several ways: potential problems in reusing and extending concurrent objects are made explicit and analysed, a technique is presented to overcome these problems, and the analysis and design of synchronisation constraints, with the aid of an intuitive and precise notation, is addressed.
|Award date||4 Jun 1994|
|Place of Publication||Enschede|
|Publication status||Published - 4 Jun 1994|