Learn More
Dynamicity is an important requirement for critical software adaptation where a stop can be dangerous (e.g. for humans or environment) or costly (e.g. power plants or production lines). Adaptation at run-time is also required in context-aware applications where execution conditions often change. In this paper, we introduce MaD-cAr, an abstract model of(More)
In the context of meta-programming and reflective languages, classes are treated as full fledged objects which are instances of other classes named metaclasses. Meta-classes have proved to be useful for defining new class properties. Examples of such properties are lazy memory allocation, multiple inheritance, having a single instance. .. A class with some(More)
Maintaining the network connectivity in mobile Multi-Robot Systems (MRSs) is a key issue in many robotic applications. In our view, the solution to this problem consists of two main steps: (i) making robots aware of the network connectivity; and (ii), making use of this knowledge to plan robots tasks without compromising connectivity. In this paper, we view(More)
Exploration of an unknown environment is one of the major applications of Multi-Robot Systems. Many works have proposed multi-robot coordination algorithms to accomplish exploration missions based on multi-agent techniques. Some of these works focus on multi-robot exploration under communication constraints. In this paper, we propose an original way to(More)
Adaptive Object Models are a sophisticated way of building object-oriented systems that let non-programmers customize the behavior of the system and that are most useful for businesses that are rapidly changing. Although systems based on an Adaptive Object Model are often much smaller than competitors, they can be difficult to build and to learn. We believe(More)
Aspect-Oriented Programming (AOP) is a paradigm that aims at improving software modularization. Indeed, aspects are yet another dimension for structuring applications. The notion of aspect refers to any crosscutting property. Such cross-cutting can be either dynamic or static. Dynamic crosscutting refers to applications execution flow. While, static(More)
A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among(More)
Component-Based Software Development (CBSD) swears software reuse but it suffers from code scattering and tangling. Aspect Oriented Programming (AOP) deals with these problems. We present in this paper, Fractal-AOP, an add-on to the Frac-tal component model that combines AOP and CBSD into an overall model. Combining is achieved by applying AOP principles on(More)
Dans cet article, nous introduisons MADCAR, un modèle de moteurs dédiés à la construction et à la reconfiguration dynamique et automatique d'ap-plications à base de composants. Dans MADCAR, la description d'une application regroupe la définition des configurations valides et les règles de transfert de l'état de l'application lors des adaptations. Cette(More)