Information systems are deeply linked to human activities. Unfortunately, development methodologies have been traditionally inspired by programming concepts and not by organizational and enterprise ones. This leads to ontological and semantic gaps between the systems and their environments. The adoption of Multi- Agent Systems (MAS) helps to reduce these gaps by offering modeling tools based on organizational concepts (actors, agents, goals, objectives, responsibilities, social dependencies, etc.) as fundamentals to conceive systems through a development process. Socio-technical design is concerned with the direct involvement of users in software design. To this respect the DesCARTES framework presented in this paper offers three main contributions: 1) the use of agents modeled according to organizational concepts, 2) the use of social patterns in software design that better match with users’ organization structures, and 3) the inclusion in an iterative development methodology that involves the user intensively in software development.
If you think good architecture is expensive, try bad architecture.
—Brian Foote and Joseph YoderTop
Information systems are deeply linked to human activities. Unfortunately, development methodologies have been traditionally inspired by programming concepts and not by organizational and enterprise ones. This leads to ontological and semantic gaps between the systems and their environments. The adoption of Multi-Agent Systems (MAS) helps to reduce these gaps by offering modeling tools based on organizational concepts (actors, agents, goals, objectives, responsibilities, social dependencies, etc.) as fundamentals to conceive systems through all development process. Moreover, software development is becoming increasingly complex. Stakeholder expectations are ever more demanding, while development times are supposed to be shorter. Project managers, analysts and software developers need adequate processes to model the organizational context, capture requirements and build efficient and flexible software systems. Those methodologies have to cover the whole life cycle (Kruchten, 2003) of the project while reducing risk as much as possible, offer tools to manage the complexity of human organizations and provide features to develop applications in a correct way.
At the architectural design level, an important technique that helps handle software construction and documentation complexity is the reuse of development experience and know-how. Styles and patterns have become an attractive approach to reusing architectural design knowledge. Architectural styles are intellectually manageable abstractions of system structure that describe how system components interact and work together (Shaw & Garlan, 1996). Design patterns describe a problem commonly found in software designs and prescribe a flexible solution for the problem, so as to ease the reuse of that solution. This solution is repeatedly applied from one design to the next, producing design structures that look quite similar across different applications (Gamma, Helm, Johnson, & Vlissides, 1995).
Taking real-world social structures as metaphors, the DesCARTES1 (Faulkner, Kolp, Coyette & Do, 2004) framework proposes a set of generic architectural structures (Kolp, Giorgini & Mylopoulos, 2001). It, as well as i*, Tropos and SPEM, is supported by the DesCARTES tool (Kolp & Wautelet, 2007). The aim is to offer and validate a software architectural design process specifically for agent-based systems:
At the architectural level, organizational styles inspired from organization theory and strategic alliances are used to design the overall MAS architecture. Styles from organization theory describe the internal structure and design of the MAS architecture, while styles from strategic alliances model the cooperation of independent architectural organizational entities that pursue shared goals.
At the detailed design level, social design patterns drawn from research on cooperative and distributed architectures, offer a more microscopic view of the social MAS architecture description. They define the agents and the social dependencies that are necessary for the achievement of agent goals.
The paper uses a running example to illustrate our approach: E-Media is a typical business-to-consumer application supporting the following features:
An on-line web interface allows customers to examine the items in the E-Media catalogue, and place orders;
Customers can search the on-line store by either browsing the catalogue or querying the item database. An online search engine allows customers to search title, author/artist and description fields trough keywords or full-text search;
Internet communications are supported;
On-line financial transactions including credit card and anonymity are protected;
All web information (e.g., product and customer turnover, sales average, …) of strategic importance is recorded for monthly or on-demand statistical analysis;
Based on this statistical and strategic information, the system permanently manages and adapts the stock, pricing and promotions policy. For example, for each product, the system can decide to increase or decrease stocks or profit margins. It can also adapt the customer on-line interface with new product promotions.
Key Terms in this Chapter
Tropos: Tropos is a novel methodology for building agent-oriented software systems. Tropos is based on two key ideas. First, the notion of agent and all related mentalistic notions (for instance goals and plans) are used in all phases of software development, from early analysis down to the actual implementation. Second, Tropos covers also the very early phases of requirements analysis, thus allowing for a deeper understanding of the environment where the software must operate, and of the kind of interactions that should occur between software and human agents.
Architectural Design: The objective of Architectural Design is to organize the dependencies between the various sub-actors identified in the previous phases in order to meet functional and non-functional requirements of the system.
DesCARTES: Design CASE Tool for Agent-Oriented Repositories, Techniques, Environments and Systems (DesCARTES) is a framework proposes a set of generic architectural structures. It is also constituted of the DesCARTES Architect, a CASE Tool for the edition of i* and other Tropos diagrams.
Detailed Design: in Detailed Design the behavior of each architectural component is defined in further detail. This discipline is concerned with the specification of the agent micro level taking into account the implementation platforms. The objective is to perform a design that will map directly to the code.