This paper gives a taxonomy Ior the evaluation ol object-oriented design methods and implementation languages ]or the construction o] distributed real-time systems. This taxonomy is aimed at answering the following main questions: (I) how well do current approaches support the design of non-~anctional system features like concurrency and the specification ol allocation, timing and fault tolerance constraints and (2) how can we discern essential properties ol such methods and languages in order to point out the strengths and weaknesses of contemporary approaches.1 Introduction The use of object-oriented systems for real-time applications still bears many challenges. Among the most important problems are (1) the achievement of predictability and efficient parallel execution in the presence of dynamic object creation and dynamic binding, (2) the specification of timing and reliability constraints, (3) the implementation of timing constraints via static (off-line) and dynamic (on-line) scheduling techniques, (4) the implementation of reliability constraints via static (component redundancy based) and dynamic (recovery based) fault tolerance techniques, (5) efficient inter-process/processor communication based on remote procedure calls and travelling intelligent agents and (6) the efficient implementation of system-wide object references and garbage collection. In addition, it is not yet clear what the optimal models for concurrency, timing, fault-tolerance and object allocation are and how these models can be integrated in a consistent way.Before these questions can be addressed, it is very useful to evaluate the various contemporary approaches. Such an evaluation can best be carried out using a sufficiently detailed taxonomy. In this paper we define a taxonomy that can be employed for both object-oriented design methods and implementation languages. Our main aims are (1) to summarize concisely the most important concepts and models used, (2) to indicate the main application areas like hardware, software and complete systems, (3) to discriminate between different languages, and (4) to evaluate the coherence between the concepts present in a language. Our taxonomy concentrates on truly object-oriented approaches. We also focus on distribution and exclude all approaches that cannot be naturally extended to a distributed environment. We must emphasize that in the limited space available it is nor possible to present all the details of the taxonomy nor possible to show the effectiveness of the taxonomy with regard to the above mentioned goals. Those will be the aims of a larger paper that is in preparation [4].The rest of the paper is structured as follows. The next section gives a brief description of the features of our taxonomy. Section three discusses a number of open research questions that axe important for the further development of the taxonomy. We also discuss a comparisson of two programming languages carried out using the taxonomy.
2Definitions In this section we present a number of criteria and related defini...