16th European Conference on Object-Oriented Programming
University of Málaga, Spain
June 10-14, 2002
Technical programme > posters
You are the visitor number
email@example.com, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org, email@example.com
2 Oblog Software SA, Alameda António Sérgio
3 Dep. de Informática, Fac. de Ciências,
Univ. de Lisboa,
4 Dep. de Informática,
The engineering of Business Systems is under the increasing
pressure to come up with software solutions that allow companies to face
very volatile and turbulent environments (as in the telecommunications
domain). This means that the complexity of software has definitely
Most often, the nature of changes that occur in the
business are not at the level of the components that model business entities,
but at the level of the business rules that regulate the interactions
between the entities. Therefore, we believe that successful methodologies
In our opinion, the lack of abstractions for supporting the modelling of interactions and architectures explains why component-based and object-oriented approaches have not been able to deliver their full promise regarding system evolution. Usually, interactions are coded in the way messages are passed, features are called, and objects are composed, leading to intricate spaghetti-like structures that are difficult to understand, let alone change. Moreover, new behaviour is often introduced through new subclasses which do not derive from the "logic" of the business domain, widening the gap between specification and design.
The approach we have been developing builds on previous work on coordination models and languages, software architecture, and parallel program design languages. Instead of delegation we use explicit architectural connectors that encapsulate coordination aspects: this makes a clear separation between computations and interactions and externalises the architecture of the system. Instead of subclassing we advocate superposition as a structuring principle: interactions are superposed on components in a non-intrusive and incremental way, allowing evolution through reconfiguration, even at run-time.
The main advantages of our approach are adequacy and flexibility. The former is achieved by having a strict separation of computation, coordination, and configuration, with one primitive for each concept, stating clearly the pre-conditions for each coordination and reconfiguration rule. As for flexibility, interactions among components can be easily altered at run-time through (un)plugging of coordination rules, and it is possible to state exactly which coordination rules are in effect for which components, and which configuration policies apply to which parts of the system.
In the following sections we briefly summarise our
approach for different phases of software development. More details are
provided by the publications available at the ATX website by tutorial
11 at this conference.