There are several interdependent features that ought to
be developed in a general way as reusable frameworks.
How to structure the multiple frameworks that address a
possibly wide range of features while maintaining
generality and extensibility?
Forces or tradeoffs
The features implemented in the frameworks are
The frameworks must be flexible and extensible.
The merging of the features into a single framework
A complete separation of the frameworks makes them too
It is possible to identify a chain of dependency between
the features that can be repeated in the frameworks.
Therefore we create several layers that correspond to the
frameworks; each framework can be extended individually,
maintaining flexibility. The upper layers make use of the
lower layers, reducing the complexity of the corresponding
The negotiation framework and the booking framework of
this prototype are an example of this pattern.
The interdependency is unavoidable but is limited to a
chain of dependency instead of a web.
The framework layers are largely independent and can be
The basic idea is to simplify the dependency graph and
keep the frameworks as independent as possible.
Brugali, D. and Sycara, K. (1999) “A Model for Reusable Agent Systems”, in
Implementing Application Frameworks: Object Oriented Frameworks at Work ,
Fayad, M.E., Johnson, R.E. and Schmidt, D. (eds), John Wiley & Sons. 155 - 169.
Huhns, M.N. and Malhotra, A.K. (1999) “Negotiating for Goods and Services”, IEEE
Internet Computing , Vol. 3, No. 4, 97 - 99.
Triantaphyllou, E. and Shu, B. (2001) “On the Maximum Number of Feasible
Ranking Sequences in Multi-criteria Decision Making Problems”, European
Journal of Operational Research , No. 130, 665 - 678.