Recently, object-oriented specifications of distributed systems has gained more attention. The object-oriented approach is known for its flexibility for system construction. However, one of the major challenges is to provide facilities for the dynamic modifications of such specifications during the development and maintenance process. Yet, current work has not addressed the dynamic modifications of specifications of distributed systems. In this paper, we are concerned with formal description techniques that allow for the development and dynamic modification of executable specifications. A two-level model for the evolution of large object-oriented specifications is introduced. The first deals with the dynamic modifications of types (classes), while the second deals with modifications of modules. We have defined a set of structural and behavioral constraints to ensure specification consistency after modification at both levels. To allow dynamic modification of types and modules, we have developed a reflective object-oriented specification language which uses meta-objects to support the modification operations. In this language, types and modules are objects.
This paper describes the design of the reflective concurrent object-oriented specification language RMondel. RMondel is designed for the specification and modeling of distributed systems. It allows the development of executable specifications which may be modified dynamically. Reflection in RMondel is supported by two fundamental features that are: Structural Reflection (SR) and Behavioral Reflection (BR). Reflection is the capability to monitor and modify dynamically the structure and the behavior of the system. We show how the features of the language are enhanced using specific meta-operations and meta-objects, to allow for the dynamic modification of types (classes) and instances using the same language. RMondel specification can be modified by adding or modifying types and instances to get a new adapted specification. Consistency is checked dynamically at the type level as well as at the specification level. At the type level, structural and behavioral constraints are defined to preserve the conformance of types. At the specification level, a transaction mechanism and a locking protocol are defined to ensure the consistency of the whole specification.
RMondel (Reflective Mondel) is a reflective object-oriented specification language developed for the description of distributed systems. The objective of RMondel is to allow the development of dynamically modifiable specifications. Reflection in RMondel is supported by two fundamental features of reflection related to object oriented languages: structural reflection and computational reflection. The focus is mainly on structural reflection. With respect to computational reflection, the objects in the system are considered to share one interpreter. The main issue is to show how structural reflection can be useful to change dynamically a specification. The need for validation of the changes to maintain system consistency is also discussed.< >