A Domain Engineering Process for MAS-PLs


Over the past decades, agents have become a powerful software abstraction to support the development of complex and distributed systems. They are a natural metaphor to understand systems that present some particular characteristics such as high interactivity and multiple loci of control. These systems can be decomposed in several autonomous and pro-active agents comprising a Multi-agent System (MAS). This autonomy property refers to agents able to act without the intervention of humans or other systems: they have control both over their own internal state, and over their behavior. In order to develop agent-based systems, adequate techniques that explore their benefits and their peculiar characteristics are required. In this context, Agent-oriented Software Engineering (AOSE) has emerged as a new software engineering paradigm to support the development of MASs and to help on the industrial exploitation of agent technology; and then several research work has been proposed in this direction, such as methodologies, modeling languages, development platforms, tools and programming languages. As a consequence, MASs are gaining wide acceptance in both industry and academia; however, although many agent-oriented methodologies have been proposed, none is mature enough to be used in industrial and commercial environments.

The main aims of software engineering is to produce methods, techniques and tools to develop software systems with high levels of quality and productivity. Software reuse is one of the main strategies proposed to address these software engineering goals. Software reuse techniques have contributed for significant improvements to reduce both time and cost of software development. Over the last years many reuse techniques have been proposed and refined by the software engineering community. Examples of these techniques are: component-based development, object-oriented application frameworks and libraries, software architectures and patterns. In addition, some research work has been published in order to bring the advantages of software reuse to the MAS development. Several of these works are exploiting patterns reuse; however, most of the agent-oriented methodologies do not take into account the adoption of extensive reuse practices, and address the development of single systems.

In the context of software reuse, the concepts of system families and Software Product Lines (SPLs) have gained a significant popularity throughout the software industry and research community, leading to the emergence of a new field called Software Product Line Engineering (SPLE). In this approach, reuse evolves from an ad-hoc to a systematic way. A SPL refers to a family of systems sharing a common, managed set of features that satisfy the needs of a selected market. The systems are developed from a common set of core assets in a prescribed way. SPLE aims at exploring existing common and variable features of the set of systems, in such way that different customized applications can be developed from a reusable set of artifacts with a reduced time-to-market. A feature is a property or functionality of the SPL that is relevant to some stakeholder. The development of a SPL is typically divided into two key processes: (i) domain engineering - the commonality and the variability of the SPL are defined and realized; and (ii) application engineering - the applications of the SPL are built by reusing domain artifacts and exploiting the product line variability.

Over the last years, several approaches for developing system families and SPLs have been proposed. The main goal of most of these approaches is to define, model and implement a common and flexible architecture, which addresses the common and variable features of the SPL. In order to develop such architecture, current approaches either provide high-level guidelines to implement SPLs or use different existing technologies, such as component-based, object-oriented, code generation and Aspect-oriented Programming (AOP).

Only recent research has explored the integration synergy of SPLs and MASs technologies, by incorporating their respective benefits. This integration results in product lines that present features that take advantage of agent technology, comprising Multi-agent System Product Lines (MAS-PLs). These features, named agent features, present an autonomous or pro-active behavior; therefore the agent abstraction is appropriate for their development.

© Copyright 2008 Ingrid Nunes. All rights reserved.