86 research outputs found
Aspect-oriented interaction in multi-organisational web-based systems
Separation of concerns has been presented as a promising tool to tackle the design of complex systems in which
cross-cutting properties that do not fit into the scope of a class must be satisfied. Unfortunately, current proposals
assume that objects interact by means of object-oriented method calls, which implies that they embed interactions with
others into their functional code. This makes them dependent on this interaction model, and makes it difficult to reuse
them in a context in which another interaction model is more suited, e.g., tuple spaces, multiparty meetings, ports, and
so forth. In this paper, we show that functionality can be described separately from the interaction model used, which
helps enhance reusability of functional code and coordination patterns. Our proposal is innovative in that it is the first
that achieves a clear separation between functionality and interaction in an aspect-oriented manner. In order to show
that it is feasible, we adapted the multiparty interaction model to the context of multiorganisational web-based systems
and developed a class framework to build business objects whose performance rates comparably to handmade implementations;
the development time, however, decreases significantly.Comisión Interministerial de Ciencia y Tecnología TIC2000-1106-C02-0
Objects and polymorphism in system programming languages: a new approach
A low-level data structure always has a predefined representation which does not fit into an object of traditional object-oriented languages, where explicit type tag denotes its dynamic type. This is the main reason why the advanced features of object-oriented programming cannot be fully used at the lowest level. On the other hand, the hierarchy of low-level data structures is very similar to class-trees, but instead of an explicit tag-field the value of the object determines its dynamic type. Another peculiar requirement in system programming is that some classes have to be polymorphic by-value with their ancestor: objects must fit into the space of a superclass instance. In our paper we show language constructs which enable the system programmer to handle all data structures as objects, and exploit the advantages of object-oriented programming even at the lowest level. Our solution is based on Predicate Dispatching, but adopted to the special needs of system programming. The techniques we show also allow fo
r some classes to be polymorphic by-value with their super. We also describe how to implement these features without losing modularity
Introduction to the Literature on Semantics
An introduction to the literature on semantics. Included are pointers to the literature on axiomatic semantics, denotational semantics, operational semantics, and type theory
Structuring fault-tolerant object-oriented systems using inheritance and delegation
PhD ThesisMany entities in the real world that a software system has to interact with, e.g.,
for controlling or monitoring purposes, exhibit different behaviour phases in their
lifetime, in particular depending on whether or not they are functioning correctly.
That is, these entities exhibit not only a normal behaviour phase but also one or
more abnormal behaviour phases associated with the various faults which occur
in the environment. These faults are referred to as environmental faults. In the
object-oriented software, real-world entities are modeled as objects. In a classbased
object-oriented language, such as C++, all objects of a given class must
follow the same external behaviour, i.e., they have the same interface and associated
implementation. However this requires that each object permanently belong
to a particular class, imposing constraints on the mutability of the behaviour for
an individual object. This thesis proposes solutions to the problem of finding
means whereby objects representing real-world entities which exhibit various behaviour
phases can make corresponding changes in their own behaviour in a clear
and explicit way, rather than through status-checking code which is normally
embedded in the implementation of various methods.
Our proposed solution is (i) to define a hierarchy of different subclasses related to
an object which corresponds to an external entity, each subclass implementing a
different behaviour phase that the external entity can exhibit, and (ii) to arrange
that each object forward the execution of its operations to the currently appropriate
instance of this hierarchy of subclasses. We thus propose an object-oriented
approach for the provision of environmental fault tolerance, which encapsulates
the abnormal behaviour of "faulty" entities as objects (instances of the above
mentioned subclasses). These abnormal behaviour variants are defined statically,
and runtime access to them is implemented through a delegation mechanism which
depends on the current phase of behaviour. Thus specific reconfiguration changes
at the level of objects can be easily incorporated to a software system for tolerating
environmental faults
- …