Abstract
We investigated the relationship between various design approaches of AgentSpeak code for Jason Beliefs-Desires-Intentions (BDI) agents and their performance in a simulated automotive collision avoidance scenario. Also explored was how the approaches affected software maintainability, assessed through coupling, cohesion, and cyclomatic complexity. We then compared each agent’s performance, specifically their reasoning cycle duration and their responsiveness. Our findings revealed that agents with looser coupling and higher cohesion are more responsive to stimuli, implying that more maintainable AgentSpeak code can result in better performing agents. Performance was inversely related to cyclomatic complexity.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Data Availability
The datasets generated during and/or analysed during the current study are available in on GitHub at: https://github.com/NMAI-lab/AirSimNavigatingCar/ [24].
References
Bordini, R.H., Hübner, J.F., Wooldridge, M.: Programming Multi-Agent Systems in AgentSpeak Using Jason (Wiley Series in Agent Technology). Wiley (2007)
Hübner, J.F., Bordini, R.H.: Jason: a Java-based interpreter for an extended version of AgentSpeak. http://jason.sourceforge.net. Accessed 16 Feb 2019
Lazarin, N.M., Pantoja, C.E.: A robotic-agent platform for embedding software agents using raspberry pi and arduino boards. 9th Software Agents, Environments and Applications School (2015)
Pantoja, C.E., Stabile, M.F., Lazarin, N.M., Sichman, J.S.: ARGO: An Extended Jason Architecture that Facilitates Embedded Robotic Agents Programming. In: Baldoni, M.,Müller, J.P., Nunes, I., Zalila-Wenkstern, R. (eds.) Engineering Multi-Agent Systems, pp. 136–155. Springer, (2016)
Soza, H.: Quality measures for agent-oriented software. In: Shikhin, V. (ed.) Multi-Agent Systems. IntechOpen, (2019). Chap. 2. https://doi.org/10.5772/intechopen.79741
Wooldridge, M., Jennings, N.R., Kinny, D.: The gaia methodology for agent-oriented analysis and design. Auton. Agents Multi-Agent Syst. 3(3), 285–312 (2000). https://doi.org/10.1023/A:1010071910869
Kinny, D., Georgeff, M., Rao, A.: A methodology and modelling technique for systems of bdi agents. In: Proceedings of the 7th European Workshop on Modelling Autonomous Agents in a Multi-Agent World: Agents Breaking Away. MAAMAW ’96, pp. 56–71. Springer, (1996)
Miles, S., Joy, M., Luck, M.: Designing agent-oriented systems by analysing agent interactions. In: Ciancarini, P., Wooldridge, M.J. (eds.) Agent-Oriented Software Engineering, pp. 171–183. Springer, (2001)
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974). https://doi.org/10.1147/sj.132.0115
Barnes, D.J., Kolling, M.: Objects First with Java: A Practical Introduction Using BlueJ, pp. 287–288. Pearson, (2017)
Habiba, M.: Metrics for evaluating agent oriented software engineering model. In: 2012 International Conference on Informatics, Electronics Vision (ICIEV), pp. 17–22. (2012). https://doi.org/10.1109/ICIEV.2012.6317459
Kramer, S., Kaindl, H.: Coupling and cohesion metrics for knowledge-based systems using frames and rules. ACM Trans. Softw. Eng. Methodol. 13(3), 332–358 (2004). https://doi.org/10.1145/1027092.1027094
Serebrenik, A., Schrijvers, T., Demoen, B.: Improving prolog programs: Refactoring for prolog. In: ICLP (2004)
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. SE-2(4), 308–320 (1976). https://doi.org/10.1109/TSE.1976.233837
Far, B.H., Wanyama, T.: Metrics for agent-based software development. In: CCECE 2003 - Canadian Conference on Electrical and Computer Engineering. Toward a Caring and Humane Technology (Cat. No.03CH37436), vol. 2, pp. 1297–13002. (2003). https://doi.org/10.1109/CCECE.2003.1226137
Moores, T.T.: Applying complexity measures to rule-based prolog programs. J. Syst. Softw. 44(1), 45–52 (1998). https://doi.org/10.1016/S0164-1212(98)10042-0
Stabile, M.F., Sichman, J.S.: Evaluating Perception Filters in BDI Jason Agents. In: 2015 Brazilian Conference on Intelligent Systems (BRACIS), pp. 116–121. (2015). https://doi.org/10.1109/BRACIS.2015.18
Miller, J., Esfandiari, B.: Analysis of the execution time of the jason bdi reasoning cycle. In: Alechina, N., Baldoni, M., Logan, B. (eds.) Engineering Multi-Agent Systems, pp. 218–236. Springer, (2022)
Cardoso, R.C., Ferrando, A., Dennis, L.A., Fisher, M.: An interface for programming verifiable autonomous agents in ros. In: Bassiliades, N., Chalkiadakis, G., de Jonge, D. (eds.) Multi-Agent Systems and Agreement Technologies, pp. 191–205. Springer, (2020)
Wesz, R.: Integrating Robot Control Into The AgentSpeak(L) Programming Language. Master’s thesis, Pontifical Catholic University of Rio Grande do Sul, Porto Alegre, Brazil (2015)
Microsoft.: AirSim. https://github.com/Microsoft/AirSim. Accessed 27 Mar 2019
Shah, S., Dey, D., Lovett, C., Kapoor, A.: AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles. In: Field and Service Robotics. (2017). https://arxiv.org/abs/1705.05065
Gavigan, P.: SAVI_ROS_BDI. https://github.com/NMAI-lab/savi_ros_bdi. Accessed 18 Feb 2020
Gavigan, P.: AirSim Navigating Car. https://github.com/NMAI-lab/AirSimNavigatingCar/. Accessed 19 Feb 2021
Gavigan, P.: Agent in a Box Demo - Car Lane Keep and Obstacle Avoidance. https://youtu.be/tvqkNnpKIPo. Accessed 05 Apr 2021
Gavigan, P.: Jason Car Agent - Crash Case. https://www.youtube.com/watch?v=vfc_YLg0X2I. Accessed 08 Apr 2022
Gavigan, P.: Jason Car Agent - Stop Case. https://www.youtube.com/watch?v=Rlp2wY3FDJU. Accessed 08 Apr 2022
Gavigan, P.: AgentSpeak Properties. https://github.com/NMAI-lab/AgentSpeakProperties. Accessed 04 July 2020
Ricci, A., Bordini, R.H., Hübner, J.F., Collier, R.: AgentSpeak(ER): An Extension of AgentSpeak(L) Improving Encapsulation and Reasoning about Goals. In: Proceedings of the 17th International Conference on Autonomous Agents and MultiAgent Systems. AAMAS ’18, pp. 2054–2056. International Foundation for Autonomous Agents and Multiagent Systems, (2018)
Acknowledgements
We acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC), [funding reference number 518212].
Cette recherche a été financée par le Conseil de recherches en sciences naturelles et en génie du Canada (CRSNG), [numéro de référence 518212].
Author information
Authors and Affiliations
Corresponding authors
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Gavigan, P., Esfandiari, B. Quantifying the relationship between software design principles and performance in Jason: a case study with simulated mobile robots. Ann Math Artif Intell 92, 775–795 (2024). https://doi.org/10.1007/s10472-023-09844-3
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10472-023-09844-3