An object-oriented language for software reuse and distribution

Colin Atkinson · Spiral (Imperial College London) · 1990

There are currently two important challenges facing the developers of large-scale, embedded software systems: one is to increase the extent to which existing software components are reused in the development of new applications, and the other is to take advantage of the prospects for dynamic reconfiguration and fault tolerance made possible by the advent of cheap and powerful distributed processing systems.Until now, however, there has been no single, coherent framework for addressing both these issues.Ada, which was conceived as a standard language for embedded systems development has been found to be lacking in its support for both reuse and distribution, whereas specialised languages, by definition, focus only on one aspect.This is particularly true of object-oriented languages which provide some of the most powerful reuse mechanisms, but which have not previously been extended in a satisfactory way to the realms of concurrency and distribution.This thesis describes a language, called DRAGOON, which provides a uniform and coherent vehicle for supporting reuse, distribution and reconfiguration in largescale, embedded systems.The language is primarily "object-oriented", providing the powerful reuse mechanisms of inheritance, polymorphism and dynamic binding, but is also highly "Ada-oriented" in that it incorporates many Ada features for "programming in the small", and can be translated into standard Ada for execution in a natural and straightforward way.In order to support the development of concurrent and distributed systems the language incorporates two new extensions to the inheritance mechanism of con ventional object-oriented languages.In concurrent systems, the synchronisation conditions ruling the relative execution of methods are superimposed on purely "se quential" classes by the inheritance of special predefined "behavioural classes".In distributed systems, classes are endowed with the quality of executability, enabling instances to execute on independent network machines, by inheritance of suitable "execution support classes".By combining the advantages of the object-oriented and the Ada approaches to software engineering, and extending these into the domains of concurrency and dis tribution, DRAGOON provides a powerful, unified framework for the development of embedded and large-scale software systems.

Read the paper · More papers on PaperTik