Developing and Evolving a Multi-agent System Product Line: An Exploratory Study

Software Product Line (SPL) approaches motivate the development and implementation of a flexible and adaptable architecture to enable software reuse in organizations. The SPL architecture addresses a set of common and variable features of a family of products. Based on this architecture, products can be derived in a systematic way. A multi-agent system product line (MAS-PL) defines a SPL architecture, whose design and implementation is accomplished using software agents to address its common and variable features. This paper presents the evolutionary development of a MAS-PL from an existing web-based system. The MAS-PL architecture developed is composed of: (i) the core architecture represented by the web-based system that addresses the main mandatory features; and (ii) a set of software agents that extends the core architecture to introduce in the web system new optional and alternative autonomous behavior features. We report several lessons learned from this exploratory study of definition of a MAS-PL.

[1]  M.L. Griss,et al.  Software reuse architecture, process, and organization for business success , 1997, Proceedings of the Eighth Israeli Conference on Computer Systems and Software Engineering.

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[4]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[5]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[6]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[7]  NICHOLAS R. JENNINGS,et al.  An agent-based approach for building complex software systems , 2001, CACM.

[8]  Carlos José Pereira de Lucena,et al.  Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming , 2006, ICSR.

[9]  Carlos José Pereira de Lucena,et al.  Refactoring product lines , 2006, GPCE '06.

[10]  Manuel Resinas,et al.  Designing and managing evolving systems using a MAS product line approach , 2007, Sci. Comput. Program..

[11]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[12]  Maurizio Morisio,et al.  Reuse of Off-the-Shelf Components, 9th International Conference on Software Reuse, ICSR 2006, Turin, Italy, June 12-15, 2006, Proceedings , 2006, ICSR.

[13]  Carlos José Pereira de Lucena,et al.  GenArch-A Model-Based Product Derivation Tool , 2007, SBCARS.

[14]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[15]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[16]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[17]  Michael Wooldridge,et al.  Agent-Oriented Software Engineering: The State of the Art , 2009, AOSE.

[18]  Josh Dehlinger,et al.  A product-line requirements approach to safe reuse in multi-agent systems , 2005, ACM SIGSOFT Softw. Eng. Notes.

[19]  Carlos José Pereira de Lucena,et al.  The Role Aspect Pattern , 2005, EuroPLoP.

[20]  Carlos José Pereira de Lucena,et al.  A Product Derivation Tool Based on Model-Driven Techniques and Annotations , 2008, J. Univers. Comput. Sci..

[21]  Hong Mei,et al.  High Confidence Software Reuse in Large Systems, 10th International Conference on Software Reuse, ICSR 2008, Beijing, China, May 25-29, 2008, Proceedings , 2008, ICSR.

[22]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[23]  Carlos José Pereira de Lucena,et al.  Integrating Component and Product Lines Technologies , 2008, ICSR.

[24]  Donald D. Cowan,et al.  An interactive method for extracting grammar from programs , 2004 .

[25]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[26]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .

[27]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[28]  Krzysztof Czarnecki,et al.  Generative programming - principles and techniques of software engineering based on automated configuration and fragment-based component models , 1999 .

[29]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[30]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[31]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[32]  Antonio Ruiz Cortés,et al.  Multi-agent system product lines: challenges and benefits , 2006, CACM.

[33]  Carlos José Pereira de Lucena,et al.  Extending PASSI to model multi-agent systems product lines , 2009, SAC '09.

[34]  Carlos José Pereira de Lucena,et al.  On the Modularity Assessment of Aspect-Oriented Multi-Agent Systems Product Lines: a Quantitative Study , 2008, SBCARS.

[35]  Nicholas R. Jennings Agent-Oriented Software Engineering , 1999, MAAMAW.

[36]  Cláudio Sant'Anna,et al.  Evolving software product lines with aspects , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[37]  Carlos José Pereira de Lucena,et al.  Documenting and Modeling Multi-agent Systems Product Lines , 2008, SEKE.

[38]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[39]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[40]  Marco Sinnema,et al.  Product derivation in software product families: a case study , 2005, J. Syst. Softw..

[41]  Dirk Riehle,et al.  The Role Object Pattern , 1997 .

[42]  Colin Atkinson,et al.  Component-based product line development: the KobrA Approach , 2000, SPLC.

[43]  Charles W. Krueger,et al.  Easing the Transition to Software Mass Customization , 2001, PFE.