Abstract
Software Quality is one of the most important subjects in the Process Development Software, especially in large and complex systems. Much effort has been devoted to the development of techniques and concepts to improve software quality over the years. We are especially interested on smells, which represent anomalies or flaws in the design/code that can have serious consequences in maintenance or future development of the systems. These techniques have a strong development in the Object Oriented paradigm, however, very few studies were conducted in the agent oriented paradigm. In this paper we focus on the detection of design smells applied to multi-agent systems models based on the organizational approach, named Organizational Design Smells (ODS). Early and automatic detection of these ODS allows reducing the costs and development times, while increasing the final product’s quality. To achieve this objective, validation rules were defined based in the EVL language. The approach is illustrated with two examples, their validation rules, and the refactoring solutions proposed.
Similar content being viewed by others
Notes
Graphical Modeling Framework, http://www.eclipse.org/modeling/gmp.
Epsilon Validation Language, www.eclipse.org/epsilon/doc/evl/.
Eclipse Modeling Project, www.eclipse.org/modeling/.
Object Management Group, www.omg.org.
Agent Oriented Test Driven Development.
References
Al-Hashel E, Balachandran BM, Sharma D (2007) A comparison of three agent-oriented software development methodologies: roadmap, prometheus, and mase. In: Apolloni B, Howlett RJ, Jain L (Eds.) Knowledge-based intelligent information and engineering systems, no. 4694. Lecture Notes in Computer Science, Springer Berlin Heidelberg, 2007, pp. 909–916. http://link.springer.com/chapter/10.1007/978-3-540-74829-8_111
Araujo P, Lizondo D, Rodriguez S, Hilaire V (2015) An approach for organizational design smells identification within multi-agent systems. In: International workshop on coordination, organisation, institutions and norms in multi-agent systems
Araujo P, Rodriguez S (2013) Janeiro studio. In: Congreso Nacional de Ingeniería Informática/Sistemas de Información, Córdoba, Argentina, 2013
Bellifemine F, Poggi A, Rimassa G (2001) Jade: a fipa2000 compliant agent development environment. Proceedings of the fifth international conference on Autonomous agents, ACM 2001:216–217
Bresciani P, Perini A, Giorgini P, Giunchiglia F, Mylopoulos J (2004) Tropos: an agent-oriented software development methodology. Auton Agents Multi-Agent Syst 8(3):203–236
Budinsky F, Brodsky SA, Merks E (2003) Eclipse modeling framework. Pearson Education, Upper Saddle River
Busetta P, Rönnquist R, Hodgson A, Lucas A (1999) Jack intelligent agents-components for intelligent agents in java. AgentLink News Lett 2(1):2–5
Carneiro GdF, Silva M, Mara L, Figueiredo E, Sant’Anna C, Garcia A, Mendonca M (2010) Identifying code smells with multiple concern views. In: 2010 Brazilian symposium on software engineering (SBES), 2010, pp. 128–137. doi:10.1109/SBES.2010.21
Cernuzzi L, Zambonelli F (2009) Gaia4e: a tool supporting the design of mas using gaia. In: ICEIS (4), Citeseer, 2009, pp. 82–88
Chella A, Cossentino M, Sabatucci L (2004) Tools and patterns in designing multi-agent systems with passi. WSEAS Trans Commun 3(1):352–358
Cossentino M, Gaud N, Hilaire V, Galland S, Koukam A (2010) Aspecs: an agent-oriented software process for engineering complex systems. Auton Agents Multi-Agent Syst 20(2):260–304. doi:10.1007/s10458-009-9099-4
Cossentino M, Hilaire V, Molesini A, Seidita V (2014) Handbook on agent-oriented design processes. Springer, Berlin
Cossentino M, Potts C (2002) PASSI: a process for specifying and implementing multi-agent systems Using UML
Counsell S, Hamza H, Hierons R (2010) The ‘deception’ of code smells: an empirical investigation. In: 2010 32nd international conference on information technology interfaces (ITI), 2010, pp. 683–688
Criado N, Argente E, Botti V (2011) Thomas: an agent platform for supporting normative multi-agent systems, J Log Comput 23(11):309–333. doi:10.1093/logcom/exr025
Criado N, Julián V, Botti V, Argente E (2010) A norm-based organization management system. In: Padget J, Artikis A, Vasconcelos W, Stathis K, Silva VTd, Matson E, Polleres A (Eds.) Coordination, organizations, institutions and norms in agent systems V, no. 6069. Lecture notes in computer science, Springer Berlin Heidelberg, 2010, pp. 19–35. http://link.springer.com/chapter/10.1007/978-3-642-14962-7_2
DeLoach SA, Garcia-Ojeda JC (2010) O-mase: a customisable approach to designing and building complex, adaptive multi-agent systems. Int J Agent-Oriented Softw Eng 4(3):244–280
Emden Ev, Moonen L (2002) Java quality assurance by detecting code smells. In: Ninth working conference on reverse engineering, 2002. Proceedings, 2002, pp. 97–106. doi:10.1109/WCRE.2002.1173068
Fagan M (1976) Design and code inspections to reduce errors in program development, IBM Syst 15(3):182–211
Ferber J, Gutknecht O, Michel F (2004) From agents to organizations: an organizational view of multi-agent systems. In: Giorgini P, Müller J, Odell J (eds) Agent-oriented software engineering IV, vol 2935. Lecture notes in computer scienceSpringer, Berlin Heidelberg, pp 214–230
Ferber J (1998) Gutknecht O (1998) A meta-model for the analysis and design of organizations in multi-agent systems. Proceedings of the 3rd international conference on multi agent systems, ICMAS ’98. IEEE Computer Society, Washington, DC, USA, p 128
Fontana F, Zanoni M (2011) On investigating code smells correlations. In: 2011 IEEE fourth international conference on software testing, verification and validation workshops (ICSTW), 2011, pp. 474–475. doi:10.1109/ICSTW.2011.14
Fortino G, Russo W (2012) Eldameth: an agent-oriented methodology for simulation-based prototyping of distributed agent systems. Inf Softw Technol 54(6):608–624. doi:10.1016/j.infsof.2011.08.006 http://www.sciencedirect.com/science/article/pii/S0950584911001960
Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring: improving the design of existing code, 1st Edition, Addison-Wesley Professional, Boston. http://www.amazon.com/exec/obidos/redirect?tag=citeulike07-20&path=ASIN/0201485672
Galland S, Gaud N, Rodriguez S, Hilaire V (2010) Janus: another yet general-purpose multiagent platform. In: 7th agent-oriented software engineering technical forum (TFGAOSE-10), Agent Technical Fora, 2010
Garcia E, Argente E, Giret A (2009) A modeling tool for service-oriented open multiagent systems. In: Yang J-J, Yokoo M, Ito T, Jin Z, Scerri P (Eds.) Principles of practice in multi-agent systems, no. 5925. Lecture notes in computer science, Springer Berlin Heidelberg, 2009, pp. 345–360. http://link.springer.com/chapter/10.1007/978-3-642-11161-7_24
Garcia E, Giret A, Botti V (2015) Romas methodology. In: Regulated open multi-agent systems (ROMAS), Springer International Publishing, 2015, pp. 51–95. http://link.springer.com/chapter/10.1007/978-3-319-11572-6_6
Garcia E, Giret A, Botti V (2015) Romas modeling language. In: Regulated open multi-agent systems (ROMAS), Springer International Publishing, 2015, pp. 43–49. http://link.springer.com/chapter/10.1007/978-3-319-11572-6_5
Garcia-Ojeda JC, DeLoach SA (2009) Robby, agenttool iii: From process definition to code generation. In: Proceedings of the 8th international conference on autonomous agents and multiagent systems - Volume 2, AAMAS ’09, international foundation for autonomous agents and multiagent systems, Richland, SC, 2009, pp. 1393–1394. http://dl.acm.org/citation.cfm?id=1558109.1558311
Garcia-Ojeda J, DeLoach S, Robby Oyenan W, Valenzuela J (2008) O-mase: a customizable approach to developing multiagent development processes. In: Luck M, Padgham L (eds) Agent-oriented software engineering VIII, vol 4951. Lecture notes in computer scienceSpringer, Berlin Heidelberg, pp 1–15
Gómez-Sanz JJ, Fernóndez CR, Arroyo J (2010) Model driven development and simulations with the ingenias agent framework. Simul Modell Pract Theory 18(10):1468–1482. doi:10.1016/j.simpat.2010.05.012 http://www.sciencedirect.com/science/article/pii/S1569190X10001024
Gomez-Sanz JJ, Fuentes R, Pavón J, García-Magariño I (2008) Ingenias development kit: a visual multi-agent system development environment. In: Proceedings of the 7th international joint conference on autonomous agents and multiagent systems: Demo Papers, AAMAS ’08. International foundation for autonomous agents and multiagent systems, Richland, SC, 2008, pp. 1675–1676. http://dl.acm.org/citation.cfm?id=1402744.1402760
Guo Y, Seaman C, Zazworka N, Shull F (2010) Domain-specific tailoring of code smells: an empirical study. In: 2010 ACM/IEEE 32nd international conference on software engineering, Vol. 2, 2010, pp. 167–170. doi:10.1145/1810295.1810321
Gutknecht O, Ferber J (2000a) Madkit: a generic multi-agent platform. In: Proceedings of the fourth international conference on autonomous agents, AGENTS ’00, ACM, New York, NY, USA, 2000, pp. 78–79. doi:10.1145/336595.337048
Gutknecht O, Ferber J (2000b) The madkit agent platform architecture. In: Wagner T, Rana OF (Eds.), Infrastructure for agents, multi-agent systems, and scalable multi-agent systems, no. 1887. Lecture notes in computer science, Springer Berlin, 2000, pp. 48–55. http://link.springer.com/chapter/10.1007/3-540-47772-1_5
Hübner JF, Sichman JS, Boissier O (2002) Moise+: towards a structural, functional, and deontic model for mas organization. In: Proceedings of the first international joint conference on autonomous agents and multiagent systems: part 1, AAMAS ’02, ACM, New York, NY, USA, 2002, pp. 501–502. doi:10.1145/544741.544858
Isern D, Sánchez D, Moreno A (2011) Organizational structures supported by agent-oriented methodologies. J Syst Softw 84(2):169–184. doi:10.1016/j.jss.2010.09.005 http://www.sciencedirect.com/science/article/pii/S0164121210002451
Juan T, Pearce AR, Sterling L (2002) ROADMAP: extending the gaia methodology for complexopen systems. In: AAMAS, ACM, 2002, pp. 3–10. http://doi.acm.org/10.1145/544741.544744
Khomh F, Vaucher S, Gueheneuc Y-G, Sahraoui H (2009) A bayesian approach for the detection of code and design smells. In: 9th international conference on quality software, 2009. QSIC ’09, 2009, pp. 305–314. doi:10.1109/QSIC.2009.47
Lanza M, Marinescu R (2006) Object-oriented metrics in practice, Springer Berlin Heidelberg, Berlin, Heidelberg, 2006. http://link.springer.com/10.1007/3-540-39538-5
Mantyla MV, Vanhanen J, Lassenius C (2004) Bad smells–humans as code critics. In: 20th IEEE international conference on software maintenance, 2004. Proceedings, 2004, pp. 399–408. doi:10.1109/ICSM.2004.1357825
Mantyla M, Vanhanen J, Lassenius C (2003) A taxonomy and an initial empirical study of bad smells in code. In: International conference on software maintenance, 2003. ICSM 2003. Proceedings, 2003, pp. 381–384. doi:10.1109/ICSM.2003.1235447
McAffer J, Lemieux J-M, Aniszczyk C (2010) Eclipse rich client platform, 2nd edn. Addison-Wesley Professional, Upper Saddle River, NJ
Moha N, Gueheneuc YG, Duchien L, Meur AFL (2010) Decor: a method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36(1):20–36. doi:10.1109/TSE.2009.50
Morandini M, Nguyen DC, Penserini L, Perini A, Susi A (2011) Tropos modeling, code generation and testing with the taom4e tool. In: CEUR proceedings of the 5th international i* workshop (iStar 2011), Citeseer, 2011, pp. 172–174
Nunes I, Cirilo E, de Lucena CJ, Sudeikat J, Gómez-Sanz CHJJ (2009) A survey on the implementation of agent oriented specifications. In: Gleizes MP, Gómez-Sanz JJ (Eds.) AOSE, Vol. 6038 of lecture notes in computer science, Springer, 2009, pp. 169–179. http://dx.doi.org/10.1007/978-3-642-19208-1
Object Constraint Language (OCL) 2.3.1 Specification, version 2.3.1 (ja 2012)
Omicini A (2000) Soda: societies and infrastructures in the analysis and design of agent-based systems. In this volume, Springer-Verlag 2000:185–193
Padgham L, Winikoff M (2003) Prometheus: a methodology for developing intelligent agents. In: Giunchiglia F, Odell J, Weiß G (eds) Agent-oriented software engineering III, vol 2585. Lecture notes in computer scienceSpringer, Berlin Heidelberg, pp 174–185
Pavón J, Gómez-Sanz J (2003) Agent oriented software engineering with ingenias, In: Mařík V, Pěchouček M, Müller J (Eds.) Multi-agent systems and applications III, no. 2691. Lecture notes in computer science, Springer Berlin Heidelberg, 2003, pp. 394–403. http://link.springer.com/chapter/10.1007/3-540-45023-8_38
Picard G, Gleizes M-P (2004) The adelfe methodology, In: Bergenti F, Gleizes M-P, Zambonelli F(Eds.) Methodologies and software engineering for agent systems, no. 11 in multiagent systems, artificial societies, and simulated organizations, Springer US, 2004, pp. 157–175. http://link.springer.com/chapter/10.1007/1-4020-8058-1_11
Pokahr A, Braubach L, Lamersdorf W (2005) Jadex: a bdi reasoning engine. Multi-agent programming, Springer 2005:149–174
Rodriguez S, Gaud N, Hilaire V, Galland S, Koukam A (2007) An analysis and design concept for self-organization in holonic multi-agent systems. In: Proceedings of the 4th international conference on Engineering self-organising systems, ESOA’06, Springer-Verlag, Berlin, Heidelberg, 2007, pp. 15–27
Rose LM, Paige RF, Kolovos DS, Polack FA (2008) The epsilon generation language. Model driven architecture-foundations and applications, Springer 2008:1–16
Sierra C, Rodriguez-Aguilar JA, Noriega P, Esteva M, Arcos JL (2004) Engineering multi-agent systems as electronic institutions. Eur J Inform Prof 4(4):33–39
Thangarajah J, Padgham L, Winikoff M (2005) Prometheus design tool. In: Proceedings of the fourth international joint conference on autonomous agents and multiagent systems, AAMAS ’05, ACM, New York, NY, USA, 2005, pp. 127–128
Tiryaki AM, Ekinci EE, Dikenelli O (2008) Refactoring in multi agent system development. In: Bergmann R, Lindemann G, Kirn S, Pěchouček M (Eds.) Multiagent system technologies, no. 5244. Lecture notes in computer science, Springer Berlin Heidelberg, 2008, pp. 183–194. http://link.springer.com/chapter/10.1007/978-3-540-87805-6_17
Tiryaki AM, Öztuna S, Dikenelli O, Erdur RC (2007) Sunit: a unit testing framework for test driven development of multi-agent systems. In: Padgham L, Zambonelli F(Eds.) Agent-oriented software engineering VII, no. 4405. Lecture notes in computer science, Springer Berlin Heidelberg, 2007, pp. 156–173. http://link.springer.com/chapter/10.1007/978-3-540-70945-9_10
Unified modeling language (uml), infrastructure, version 2.4.1 (aug 2011)
Yamashita A, Moonen L (2012) Do code smells reflect important maintainability aspects?. In: 2012 28th IEEE international conference on software maintenance (ICSM), 2012, pp. 306–315. doi:10.1109/ICSM.2012.6405287
Zambonelli F, Jennings NR, Wooldridge M (2003) Developing multiagent systems: the gaia methodology. ACM Trans Softw Eng Methodol (TOSEM) 12(3):317–370
Acknowledgments
Authors would like to thank Gilda Moreno and Nicolás Majorel Padilla for their reviews and suggestions to this paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Araujo, P., Rodríguez, S. & Hilaire, V. A metamodeling approach for the identification of organizational smells in multi-agent systems: application to ASPECS. Artif Intell Rev 49, 183–210 (2018). https://doi.org/10.1007/s10462-016-9521-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10462-016-9521-7