Using Association Aspects to Implement Organisational Contracts

The maintenance of organisation is a prerequisite for all viable systems in dynamic environments. In many living systems this organisation is, in part, achieved through coordination systems such as the nervous or endocrinic systems that can be seen as separate from the functional systems they coordinate. As software systems become more open and complex, the definition of separate organisational structures may prove a useful way to maintain their viability while managing their complexity. In this paper we show how a coordination system can be implemented as a separate concern, and posterior, to the definition of the functional system it controls and regulates. Such functional systems are loosely coupled collections of roles played by objects. We show how association-aspects can be used to create contracts that bind these roles together into an organisation. These contracts regulate the flow of control through a structure of roles in the organisation, and allow performance to be specified and monitored. These contracts also bind clusters of roles into self-managed composites - each composite with its own organiser role. The organiser roles can control, create, abrogate and reassign contracts. This ability enables organisers to reconfigure the system in response to changes in external conditions or changes in performance requirements.

[1]  Elizabeth A. Kendall,et al.  Role model designs and implementations with aspect-oriented programming , 1999, OOPSLA '99.

[2]  Doo-Hwan Bae,et al.  An enhanced role model for alleviating the role‐binding anomaly , 2002, Softw. Pract. Exp..

[3]  H. Van Dyke Parunak,et al.  Changing Roles: Dynamic Role Assignment , 2003, J. Object Technol..

[4]  Roles Conceptual Abstraction Theory Practical Language Issues , 1996 .

[5]  Jun Han,et al.  Coordination Systems in Role-Based Adaptive Software , 2005, COORDINATION.

[6]  Gianluigi Zavattaro,et al.  From Endogenous to Exogenous Coordination Using Aspect-Oriented Programming , 2004, COORDINATION.

[7]  Franco Zambonelli,et al.  Developing multiagent systems: The Gaia methodology , 2003, TSEM.

[8]  Jun Han,et al.  Operational management contracts for adaptive software organisation , 2005, 2005 Australian Software Engineering Conference.

[9]  Elizabeth A. Kendall,et al.  Role modelling for agent system analysis, design, and implementation , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[10]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[11]  M. Wooldridge,et al.  Organisational Abstractions for the Analysis and Design of Multi-Agent Systems , 2000 .

[12]  Yuanfang Cai,et al.  Non-modularity in aspect-oriented languages: integration as a crosscutting concern for AspectJ , 2002, AOSD '02.

[13]  Michel Wermelinger,et al.  Separation of Core Concerns: Computation, Coordination, and Configuration , 2001 .

[14]  Michel Wermelinger,et al.  Patterns for Coordination , 2000, COORDINATION.

[15]  Hridesh Rajan,et al.  Eos: instance-level aspects for integrated system design , 2003, ESEC/FSE-11.

[16]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .

[17]  Leon Sterling,et al.  ROADMAP: extending the gaia methodology for complex open systems , 2002, AAMAS '02.

[18]  Martin Fowler,et al.  Dealing with Roles , 1997 .

[19]  Kasper Østerbye,et al.  Roles: Conceptual Abstraction Theory and Practical Language Issues , 1996, Theory and Practice of Object Systems.

[20]  Naoyasu Ubayashi,et al.  Association aspects , 2004, AOSD '04.

[21]  F. Arbab What Do You Mean , Coordination ? , 1998 .

[22]  José Luiz Fiadeiro,et al.  Separating computation, coordination and configuration , 2002, J. Softw. Maintenance Res. Pract..

[23]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[24]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .