Abstract
When an agent program exhibits unexpected behaviour, a developer needs to locate the fault by debugging the agent’s source code. The process of fault localisation requires an understanding of how code relates to the observed agent behaviour. The main aim of this paper is to design a source-level debugger that supports single-step execution of a cognitive agent program. Cognitive agents execute a decision cycle in which they process events and derive a choice of action from their beliefs and goals. Current state-of-the-art debuggers for agent programs provide insight in how agent behaviour originates from this cycle but less so in how it relates to the program code. As relating source code to generated behaviour is an important part of the debugging task, arguably, a developer also needs to be able to suspend an agent program on code locations. We propose a design approach for single-step execution of agent programs that supports both code-based as well as cycle-based suspension of an agent program. This approach results in a concrete stepping diagram ready for implementation and is illustrated by an implementation of a source-level debugger for the GOAL agent programming language in the Eclipse development environment.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bordini, R.H., Dastani, M., Dix, J., Seghrouchni, A.E.F. (eds.): Multi-Agent Programming: Languages, Platforms and Applications. Springer, US (2005)
Bordini, R.H., Hübner, J.F., Wooldridge, M.: Programming Multi-Agent Systems in AgentSpeak using Jason. John Wiley & Sons, Ltd, October 2007
Collier, R.: Debugging agents in agent factory. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) PROMAS 2006. LNCS (LNAI), vol. 4411, pp. 229–248. Springer, Heidelberg (2007)
Dastani, M.: 2apl: a practical agent programming language. Autonomous Agents and Multi-Agent Systems 16(3), 214–248 (2008)
Eisenstadt, M.: My hairiest bug war stories. Communications of the ACM 40(4), 30–37 (1997)
Gilmore, D.J.: Models of debugging. Acta Psychologica 78(1–3), 151–172 (1991)
Hindriks, K.V.: Programming rational agents in goal. In: Seghrouchni, E.F.A., Dix, J., Dastani, M., Bordini, R.H. (eds.) Multi-Agent Programming: Languages, Tools and Applications, pp. 119–157. Springer, US (2009)
Hindriks, K.V.: Debugging is explaining. In: Rahwan, I., Wobcke, W., Sen, S., Sugawara, T. (eds.) PRIMA 2012. LNCS, vol. 7455, pp. 31–45. Springer, Heidelberg (2012)
Hindriks, K.V.: The shaping of the agent-oriented mindset. In: Dalpiaz, F., Dix, J., van Riemsdijk, M.B. (eds.) EMAS 2014. LNCS, vol. 8758, pp. 1–14. Springer, Heidelberg (2014)
ISO: ISO/IEC/IEEE 24765:2010 systems and software engineering - vocabulary. Technical report, Institute of Electrical and Electronics Engineers, Inc. (2010)
Katz, I.R., Anderson, J.R.: Debugging: An analysis of bug-location strategies. Human-Computer Interaction 3(4), 351–399 (1987)
Koeman, V.J., Hindriks, K.V.: A fully integrated development environment for agent-oriented programming. In: Demazeau, Y., Decker, K.S., Bajo Pérez, J., De la Prieta, F. (eds.) PAAMS 2015. LNCS, vol. 9086, pp. 288–291. Springer, Heidelberg (2015)
Lam, D.N., Barber, K.S.: Comprehending agent software. In: Proceedings of the Fourth International Joint Conference on Autonomous Agents and Multiagent Systems. AAMAS 2005, pp. 586–593. ACM, New York (2005)
Lam, D.N., Barber, K.S.: Debugging agent behavior in an implemented agent system. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) PROMAS 2004. LNCS (LNAI), vol. 3346, pp. 104–125. Springer, Heidelberg (2005)
Lawrance, J., Bogart, C., Burnett, M., Bellamy, R., Rector, K., Fleming, S.: How programmers debug, revisited: An information foraging theory perspective. IEEE Transactions on Software Engineering 39(2), 197–215 (2013)
Layman, L., Diep, M., Nagappan, M., Singer, J., Deline, R., Venolia, G.: Debugging revisited: Toward understanding the debugging needs of contemporary software developers. In: ACM / IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 383–392, October 2013
Pokahr, A., Braubach, L., Lamersdorf, W.: Jadex: a bdi reasoning engine. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) Multi-Agent Programming, Multiagent Systems, Artificial Societies, and Simulated Organizations, vol. 15, pp. 149–174. Springer, US (2005)
Rajan, T.: Principles for the design of dynamic tracing environments for novice programmers. Instructional Science 19(4–5), 377–406 (1990)
Romero, P., du Boulay, B., Cox, R., Lutz, R., Bryant, S.: Debugging strategies and tactics in a multi-representation software environment. International Journal of Human-Computer Studies 65(12), 992–1009 (2007)
Seghrouchni, A.E.F., Dix, J., Dastani, M., Bordini, R.H. (eds.): Multi-Agent Programming: Languages. Tools and Applications. Springer, US (2009)
Sudeikat, J., Braubach, L., Pokahr, A., Lamersdorf, W., Renz, W.: Validation of BDI agents. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) PROMAS 2006. LNCS (LNAI), vol. 4411, pp. 185–200. Springer, Heidelberg (2007)
Ungar, D., Lieberman, H., Fry, C.: Debugging and the experience of immediacy. Communications of the ACM 40(4), 38–43 (1997)
Winikoff, M.: Jack intelligent agents: an industrial strength platform. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) Multi-Agent Programming, Multiagent Systems, Artificial Societies, and Simulated Organizations, vol. 15, pp. 175–193. Springer, US (2005)
Yoon, B.d., Garcia, O.: Cognitive activities and support in debugging. In: Proceedings of Fourth Annual Symposium on Human Interaction with Complex Systems, pp. 160–169, March 1998
Zacharias, V.: Tackling the debugging challenge of rule based systems. In: Filipe, J., Cordeiro, J. (eds.) Enterprise Information Systems. LNBIP, vol. 19, pp. 144–154. Springer, Heidelberg (2009)
Zeller, A.: Why Programs Fail, Second Edition: A Guide to Systematic Debugging, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Koeman, V.J., Hindriks, K.V. (2015). Designing a Source-Level Debugger for Cognitive Agent Programs. In: Chen, Q., Torroni, P., Villata, S., Hsu, J., Omicini, A. (eds) PRIMA 2015: Principles and Practice of Multi-Agent Systems. PRIMA 2015. Lecture Notes in Computer Science(), vol 9387. Springer, Cham. https://doi.org/10.1007/978-3-319-25524-8_21
Download citation
DOI: https://doi.org/10.1007/978-3-319-25524-8_21
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25523-1
Online ISBN: 978-3-319-25524-8
eBook Packages: Computer ScienceComputer Science (R0)