A survey of agent-oriented programming from software engineering perspective

Agent-oriented programming (AOP) represents a novel programming paradigm that adopts concepts and technologies of multi-agent system to implement software. It has gained great attentions of researchers and practitioners from both artificial intelligence field and software engineering field. Dozens of AOP languages have been proposed in the past two decades. However the acceptance and adoption of AOP in software engineering community remain limited and the current practices of applying AOP do not convince such paradigm has extensively exploited its technical advantages and potentials. The experiences and practices of programming language researches in software engineering field can give us some inspirations to get out of the dilemma. The paper aims at providing a survey of AOP from software engineering perspectives, including its research history and the state-of-the-art of researches on agent-oriented programming concepts and models, languages, CASE tools and running manners. We investigate how current AOP studies satisfy design principles of programming language like simplicity, regularity, maintainability, expressiveness, reliability and efficiency, discuss several challenges of AOP researches and practices, and point out some directions for future studies.

[1]  Franco Zambonelli,et al.  Challenges and Research Directions in Agent-Oriented Software Engineering , 2004, Autonomous Agents and Multi-Agent Systems.

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

[3]  W. van der Hoek,et al.  Agent Programming with Declarative Goals , 2000, ATAL.

[4]  M. Birna van Riemsdijk,et al.  Agent Programming in Dribble: From Beliefs to Goals with Plans , 2002, FAABS.

[5]  Guo Lei,et al.  An Agent-Oriented Programming Language with Intention Driver , 2003 .

[6]  Marc Esteva,et al.  AMELI: an agent-based middleware for electronic institutions , 2004, Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, 2004. AAMAS 2004..

[7]  Brian Logan,et al.  A Future for Agent Programming , 2015, EMAS@AAMAS.

[8]  Koen V. Hindriks,et al.  Programming organization-aware agents a research agenda , 2009 .

[9]  O. Zohreh Akbari,et al.  A survey of agent-oriented software engineering paradigm: Towards its industrial acceptance , 2010 .

[10]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[11]  Jörg P. Müller,et al.  Application Impact of Multi-agent Systems and Technologies: A Survey , 2014, Agent-Oriented Software Engineering.

[12]  Rem W. Collier,et al.  Exploring AOP from an OOP perspective , 2015, AGERE!@SPLASH.

[13]  Mehdi Dastani,et al.  Agent Programming Languages Requirements for Programming Autonomous Robots , 2012, ProMAS.

[14]  Mehdi Dastani,et al.  Programming norm-aware agents , 2012, AAMAS.

[15]  Yoav Shoham,et al.  Agent-Oriented Programming , 1992, Artif. Intell..

[16]  Rafael H. Bordini,et al.  Programming Institutional Facts in Multi-Agent Systems , 2012, COIN@AAMAS.

[17]  Olivier Boissier,et al.  A Normative Organisation Programming Language for Organisation Management Infrastructures , 2009, COIN@AAMAS&IJCAI&MALLOW.

[18]  Olivier Boissier Multi-agent Oriented Programming and Intelligent Environments , 2013, 2013 19th International Conference on Control Systems and Computer Science.

[19]  Hector J. Levesque,et al.  ConGolog, a concurrent programming language based on the situation calculus , 2000, Artif. Intell..

[20]  Robert W. Floyd The paradigms of programming , 2007 .

[21]  Bin Zhou,et al.  A Virtual Machine for Distributed Agent-oriented Programming , 2008, SEKE.

[22]  Stefania Costantini,et al.  The DALI Logic Programming Agent-Oriented Language , 2004, JELIA.

[23]  João Leite,et al.  A Survey of Programming Languages and Platforms for Multi-Agent Systems , 2006, Informatica.

[24]  Hong Zhu,et al.  Agent oriented programming based on SLABS , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[25]  Gregory M. P. O'Hare,et al.  AF-APL - Bridging Principles and Practice in Agent Oriented Languages , 2004, PROMAS.

[26]  Jürgen Dix,et al.  GOAL: A Multi-agent Programming Language Applied to an Exploration Game , 2014, Agent-Oriented Software Engineering.

[27]  Michael Fisher,et al.  Language Constructs for Multi-agent Programming , 2008, CLIMA.

[28]  Mehdi Dastani,et al.  Roles and norms for programming agent organizations , 2009, AAMAS.

[29]  Rafael H. Bordini,et al.  BDI agent programming in AgentSpeak using Jason , 2006 .

[30]  David A. Watt,et al.  Programming language design concepts , 2004 .

[31]  Michael Thielscher,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming Flux: a Logic Programming Method for Reasoning Agents , 2003 .

[32]  F. S. deBoer Agent Programming in 3APL , 1999 .

[33]  Axel Heßler,et al.  Multi-Agent Programming Contest 2013: TUB Team Description , 2013, EMAS@AAMAS.

[34]  Olivier Boissier,et al.  Unravelling Multi-agent-Oriented Programming , 2014, Agent-Oriented Software Engineering.

[35]  Wamberto Weber Vasconcelos,et al.  Constraint rule-based programming of norms for electronic institutions , 2009, Autonomous Agents and Multi-Agent Systems.

[36]  Brian Logan,et al.  Programming Deliberation Strategies in Meta-APL , 2015, PRIMA.

[37]  Roberto Micalizio,et al.  Empowering Agent Coordination with Social Engagement , 2015, AI*IA.

[38]  A. S. Roa,et al.  AgentSpeak(L): BDI agents speak out in a logical computable language , 1996 .

[39]  Gary T. Leavens,et al.  Introduction to the Literature on Programming Language Design , 1996 .

[40]  Pengfei Hao,et al.  A Heading Maintaining Oriented Compression Algorithm for GPS Trajectory Data , 2019, Informatica.

[41]  Amal El Fallah Seghrouchni,et al.  A Planning Based Agent Programming Language Supporting Environment Modeling , 2015, 2015 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT).

[42]  Peter Edwards,et al.  Agent-K: An Integration of AOP and KQML , 1994 .

[43]  Frank Dignum,et al.  Enacting and Deacting Roles in Agent Programming , 2004, AOSE.

[44]  Michael Winikoff,et al.  JACKTM Intelligent Agents: An Industrial Strength Platform , 2005, Multi-Agent Programming.

[45]  M. Birna van Riemsdijk,et al.  20 years of agent-oriented programming in distributed AI: history and outlook , 2012, AGERE! 2012.

[46]  Gregory M. P. O'Hare,et al.  A Role-based Approach to Reuse in Agent-Oriented Programming , 2005, AAAI 2005.

[47]  Mehdi Dastani,et al.  Modularity in Agent Programming Languages , 2008, PRIMA.

[48]  Mehdi Dastani,et al.  2APL: a practical agent programming language , 2008, Autonomous Agents and Multi-Agent Systems.

[49]  Amal El Fallah Seghrouchni,et al.  CLAIM: A Computational Language for Autonomous, Intelligent and Mobile Agents , 2003, PROMAS.

[50]  Federico Bergenti,et al.  An Introduction to the JADEL Programming Language , 2014, 2014 IEEE 26th International Conference on Tools with Artificial Intelligence.

[51]  Jan Keiser,et al.  A Multi-agent Approach to Professional Software Engineering , 2013, EMAS@AAMAS.

[52]  Mehdi Dastani,et al.  A Survey of Multi-agent Programming Languages and Frameworks , 2014, Agent-Oriented Software Engineering.

[53]  Stefania Costantini,et al.  A Logic Programming Language for Multi-agent Systems , 2002, JELIA.

[54]  Mehdi Dastani,et al.  Normative Multi-agent Programs and Their Logics , 2009, KRAMAS.

[55]  Michael Fisher,et al.  A Survey of Concurrent METATEM - the Language and its Applications , 1994, ICTL.

[56]  Steve McConnell,et al.  Software Engineering Principles , 1999, IEEE Software.

[57]  Karen L. Myers,et al.  The SPARK agent framework , 2004, Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, 2004. AAMAS 2004..

[58]  Alessandro Ricci,et al.  Designing a general-purpose programming language based on agent-oriented abstractions: the simpAL project , 2011, SPLASH Workshops.

[59]  Ali Mili,et al.  An empirical study of programming language trends , 2005, IEEE Software.

[60]  Eric S. K. Yu,et al.  Organizational and Social Concepts in Agent Oriented Software Engineering , 2004, AOSE.

[61]  M. Birna van Riemsdijk,et al.  Agent programming in dribble: from beliefs to goals using plans , 2003, AAMAS '03.

[62]  Jürgen Dix,et al.  Multi-Agent Programming: Languages, Tools and Applications , 2009 .

[63]  S. Rebecca Thomas,et al.  The PLACA Agent Programming Language , 1995, ECAI Workshop on Agent Theories, Architectures, and Languages.

[64]  Mengjun Li,et al.  Organization-based agent-oriented programming: model, mechanisms, and language , 2013, Frontiers of Computer Science.

[65]  Thomas Lukasiewicz,et al.  Adaptive Multi-agent Programming in GTGolog , 2006, KI.

[66]  Mehdi Dastani,et al.  A Framework for Programming Norm-Aware Multi-agent Systems , 2013, COIN@AAMAS/PRIMA.

[67]  Michael Winikoff Future directions for agent-based software engineering , 2009, Int. J. Agent Oriented Softw. Eng..

[68]  Nick A. M. Tinnemeier Organizing agent organizations : syntax and operational semantics of an organization-oriented programming language , 2011 .

[69]  Stéphane Galland,et al.  SARL: A General-Purpose Agent-Oriented Programming Language , 2014, 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT).

[70]  Keith L. Clark,et al.  Go! — A Multi-Paradigm Programming Language for Implementing Multi-Threaded Agents , 2004, Annals of Mathematics and Artificial Intelligence.

[71]  Alessandro Ricci,et al.  simpA-WS: A Simple Agent-Oriented Programming Model & Technology for Developing SOA & Web Services , 2007, WOA.

[72]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[73]  Koen V. Hindriks,et al.  Modules as Policy-Based Intentions: Modular Agent Programming in GOAL , 2007, PROMAS.

[74]  Yin Chen,et al.  OrgMAP: an organization-based approach for multi-agent programming , 2012, AAMAS.

[75]  Koen V. Hindriks,et al.  Agent Programming in 3APL , 1999, Autonomous Agents and Multi-Agent Systems.