Autonomous Agents and Multi-Agent Systems

, Volume 23, Issue 3, pp 384–452 | Cite as

An agent-oriented approach to change propagation in software maintenance

  • Hoa Khanh Dam
  • Michael WinikoffEmail author


Software maintenance and evolution is a lengthy and expensive phase in the life cycle of a software system. In this paper we focus on the change propagation problem: given a primary change that is made in order to meet a new or changed requirement, what additional, secondary, changes are needed? We propose a novel, agent-oriented, approach that works by repairing violations of desired consistency rules in a design model. Such consistency constraints are specified using the Object Constraint Language (OCL) and the Unified Modelling Language (UML) metamodel, which form the key inputs to our change propagation framework. The underlying change propagation mechanism of our framework is based on the well-known Belief-Desire-Intention (BDI) agent architecture. Our approach represents change options for repairing inconsistencies using event-triggered plans, as is done in BDI agent platforms. This naturally reflects the cascading nature of change propagation, where each change (primary or secondary) can require further changes to be made. We also propose a new method for generating repair plans from OCL consistency constraints. Furthermore, a given inconsistency will typically have a number of repair plans that could be used to restore consistency, and we propose a mechanism for semi-automatically selecting between alternative repair plans. This mechanism, which is based on a notion of cost, takes into account cascades (where fixing the violation of a constraint breaks another constraint), and synergies between constraints (where fixing the violation of a constraint also fixes another violated constraint). Finally, we report on an evaluation of the approach, covering effectiveness, efficiency and scalability.


Agent-oriented software engineering Software maintenance and evolution Change propagation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Vliet H. V. (2001) Software engineering: Principles and practice (2nd ed.). Wiley, ChichesterGoogle Scholar
  2. 2.
    Bennett K. H., Rajlich V. T. (2000) Software maintenance and evolution: A roadmap. In: Finkelstein A. (eds) The future of software engineering. ACM Press, Limerick, Ireland, pp 73–87Google Scholar
  3. 3.
    Rajlich V. (2006) Changing the paradigm of software engineering. Communications of the ACM 49(8): 67–70CrossRefGoogle Scholar
  4. 4.
    Jennings, N. R., & Wooldridge, M. (1999). Agent-oriented software engineering. In F. J. Garijo & M. Boman (Eds.), Proceedings of the 9th European workshop on modelling autonomous agents in a multi-agent world: Multi-agent system engineering (MAAMAW-99) (Vol. 1647, pp. 1–7). Heidelberg, Germany: Springer-Verlag.Google Scholar
  5. 5.
    Bergenti, F., Gleizes, M. P., Zambonelli, F. (eds) (2004) Methodologies and software engineering for agent systems. The agent-oriented software engineering handbook. Kluwer Publishing, New YorkzbMATHGoogle Scholar
  6. 6.
    Henderson-Sellers, B., Giorgini, P. (eds) (2005) Agent-oriented methodologies. Idea Group Publishing, HersheyGoogle Scholar
  7. 7.
    Dam, K. H., & Winikoff, M. (2003). Comparing agent-oriented methodologies. In P. Giorgini, B. Henderson-Sellers, & M. Winikoff (Eds.), Agent-oriented information systems. Lecture notes in computer science (Vol. 3030, pp. 78–93). Springer.Google Scholar
  8. 8.
    Tran Q. N. N., Low G. C. (2005) Comparison of ten agent-oriented methodologies. In: Henderson-Sellers B., Giorgini P. (eds) Agent-oriented methodologies, Chap. XII. Idea Group Publishing, Hershey, pp 341–367CrossRefGoogle Scholar
  9. 9.
    Buckley J., Mens T., Zenger M., Rashid A., Kniesel G. (2005) Towards a taxonomy of software change. Journal on Software Maintenance and Evolution: Research and Practice 17(5): 309–332CrossRefGoogle Scholar
  10. 10.
    Rajlich, V. (1997). A model for change propagation based on graph rewriting. In Proceedings of the international conference on software maintenance (ICSM) (pp. 84–91). IEEE Computer Society.Google Scholar
  11. 11.
    Yau, S., Collofello, J., & MacGregor, T. (1978). Ripple effect analysis of software maintenance. In IEEE Computer software and applications conference (COMPSAC ’78) (pp. 60–65).Google Scholar
  12. 12.
    Luqi G. (1990) A graph model for software evolution. IEEE Transactions on Software Engineering, 16(8): 917–927CrossRefGoogle Scholar
  13. 13.
    Rajlich, V. (2001). A methodology for incremental changes. In Proceedings of the 2nd international conference on extreme programming and flexible process in software engineering (pp. 10–13). Cagliary, Italy.Google Scholar
  14. 14.
    Gwizdala, S., Jiang, Y., & Rajlich, V. (2003). JTracker—a tool for change propagation in Java. In 7th European conference on software maintenance and reengineering (CSMR 2003) (pp. 223–229). Benevento, Italy: IEEE Computer Society.Google Scholar
  15. 15.
    Hassan, A. E., & Holt, R. C. (2004). Predicting change propagation in software systems. In ICSM ’04: Proceedings of the 20th IEEE international conference on software maintenance (pp. 284–293). Washington, DC, USA: IEEE Computer Society.Google Scholar
  16. 16.
    Kleppe A. G., Warmer J. B., Bast W. (2003) MDA explained: The model driven architecture: Practice and promise. Addison-Wesley, Boston, MAGoogle Scholar
  17. 17.
    Mellor S. J., Clark A. N., Futagami T. (2003) Guest editors’ introduction: Model-driven development. IEEE Software 20(5): 14–18CrossRefGoogle Scholar
  18. 18.
    Schmidt D. C. (2006) Guest editor’s introduction: Model-driven engineering. Computer 39(2): 25–31CrossRefGoogle Scholar
  19. 19.
    van Deursen, A., Visser, E., & Warmer, J. (2007). Model-driven software evolution: A research agenda. In D. Tamzalit (Ed.), Proceedings 1st international workshop on model-driven software evolution (MoDSE) (pp. 41–49). University of Nantes.Google Scholar
  20. 20.
    Mens T. (2008) Introduction and roadmap: History and challenges of software evolution. In: Mens T., Demeyer S. (eds) Software evolution. Springer, Berlin, HeidelbergGoogle Scholar
  21. 21.
    Bratman M. E. (1987) Intentions, plans, and practical reason. Harvard University Press, Cambridge, MAGoogle Scholar
  22. 22.
    Nentwich, C., Emmerich, W., & Finkelstein, A. (2003). Consistency management with repair actions. In ICSE ’03: Proceedings of the 25th international conference on software engineering (pp. 455–464). IEEE Computer Society.Google Scholar
  23. 23.
    Egyed, A. (2007). Fixing inconsistencies in UML models. In Proceedings of the 29th international conference on software engineering (ICSE ’07) (pp. 292–301). Washington, DC, USA: IEEE Computer Society.Google Scholar
  24. 24.
    Object Management Group. (2005). Unified Modeling Language (UML) 1.4.2 specification (ISO/IEC 19501).
  25. 25.
    Object Management Group. (2006). Object Constraint Language (OCL) 2.0 Specification.
  26. 26.
    Padgham, L., Thangarajah, J., & Winikoff, M. (2005). Tool support for agent development using the Prometheus methodology. In First international workshop on integration of software engineering and agent technology (ISEAT 2005). Melbourne, Australia.Google Scholar
  27. 27.
    Dam, H. K., & Winikoff, M. (2010). Supporting change propagation in UML models. In Proceedings of the 26th IEEE international conference on software maintenance (ICSM 2010).Google Scholar
  28. 28.
    Dam, H. K., Le, L. S., & Ghose, A. (2010). Supporting change propagation in the evolution of enterprise architectures. In Proceedings of the 14th IEEE international enterprise distributed object computing conference (EDOC).Google Scholar
  29. 29.
    Mathieson, I., Dance, S., Padgham, L., Gorman, M., & Winikoff, M. (2004). An open meteorological alerting system: Issues and solutions. In V. Estivill-Castro (Ed.), Proceedings of the 27th Australasian computer science conference (pp. 351–358). Dunedin, New Zealand.Google Scholar
  30. 30.
    Padgham, L., & Winikoff, M. (2004). Developing intelligent agent systems: A practical guide. Chichester: Wiley. ISBN 0-470-86120-7.Google Scholar
  31. 31.
    Jayatilleke, G. B. (2007). A model driven component agent framework for domain experts. Ph.D. thesis, RMIT University, Australia.Google Scholar
  32. 32.
    Object Management Group. (2004). UML 2.0 superstructure and infrastructure specifications.
  33. 33.
    Atkinson C., Kühne T. (2003) Model-driven development: A metamodeling foundation. IEEE Software 20(5): 36–41CrossRefGoogle Scholar
  34. 34.
    Kruchten P. (1995) The 4+1 view model of architecture. IEEE Software 12(6): 42–50CrossRefGoogle Scholar
  35. 35.
    Spanoudakis, G., & Zisman, A. (2001). Inconsistency management in software engineering: Survey and open research issues. In K. S. Chang (Ed.), Handbook of software engineering and knowledge engineering (pp. 24–29). World Scientific.Google Scholar
  36. 36.
    Gamma E., Helm R., Johnson R., Vlissides J. (1995) Design patterns. Addison-Wesley Professional, ReadingGoogle Scholar
  37. 37.
    Rao, A. S. (1996). AgentSpeak(L): BDI agents speak out in a logical computable language. In MAAMAW ’96: Proceedings of the 7th European workshop on Modelling autonomous agents in a multi-agent world: Agents breaking away (pp. 42–55). Springer-Verlag.Google Scholar
  38. 38.
    Padgham L., Winikoff M., Poutakidis D. (2005) Adding debugging support to the Prometheus methodology. Engineering Applications of Artificial Intelligence, special issue on Agent-oriented Software Development 18(2): 173–190Google Scholar
  39. 39.
    Poutakidis, D., Padgham, L., & Winikoff, M. (2002). Debugging multi-agent systems using design artifacts: The case of interaction protocols. In AAMAS ’02: Proceedings of the first international joint conference on autonomous agents and multiagent systems (pp. 960–967). New York, NY, USA: ACM. doi: 10.1145/544862.544966.
  40. 40.
    Dam, K. H. (2008). Support software evolution in agent systems. Ph.D. thesis, RMIT University, Australia.Google Scholar
  41. 41.
    Nentwich C., Capra L., Emmerich W., Finkelstein A. (2002) xlinkit: A consistency checking and smart link generation service. ACM Transactions on Internet Technology 2(2): 151–185CrossRefGoogle Scholar
  42. 42.
    Egyed A., Wile D. S. (2006) Support for managing design-time decisions. IEEE Transactions on Software Engineering 32(5): 299–314CrossRefGoogle Scholar
  43. 43.
    Levenshtein V. I. (1966) Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady 10: 707–710MathSciNetGoogle Scholar
  44. 44.
    Egyed, A. (2006). Instant consistency checking for the UML. In Proceedings of the 28th international conference on software engineering (ICSE ’06) (pp. 381–390). New York, NY, USA: ACM.Google Scholar
  45. 45.
    Dam, K. H., Winikoff, M., & Padgham, L. (2006). An agent-oriented approach to change propagation in software evolution. In Proceedings of the Australian software engineering conference (ASWEC) (pp. 309–318). IEEE Computer Society.Google Scholar
  46. 46.
    Chapin N., Hale J. E., Kham K. M., Ramil J. F., Tan W. G. (2001) Types of software evolution and software maintenance. Journal of Software Maintenance 13(1): 3–30CrossRefzbMATHGoogle Scholar
  47. 47.
    Opdyke, W. F. (1992). Refactoring: A program restructuring aid in designing object-oriented application frameworks. Ph.D. thesis, University of Illinois at Urbana-Champaign.Google Scholar
  48. 48.
    Fowler M., Beck K. (1999) Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc, Boston, MA, USAGoogle Scholar
  49. 49.
    Arnold R., Bohner S. (1996) Software change impact analysis. IEEE Computer Society Press, Los AlamitosGoogle Scholar
  50. 50.
    Padgham, L., Winikoff, M., DeLoach, S., & Cossentino, M. (2008). A unified graphical notation for AOSE. In M. Luck, & J. J. Gomez-Sanz (Eds.), Proceedings of the ninth international workshop on agent oriented software engineering (pp. 61–72). Estoril, Portugal.Google Scholar
  51. 51.
    Finkelstein A. C. W., Gabbay D., Hunter A., Kramer J., Nuseibeh B. (1994) Inconsistency handling in multiperspective specifications. IEEE Transactions on Software Engineering 20(8): 569–578CrossRefGoogle Scholar
  52. 52.
    Elaasar, M., & Briand, L. (2004). An overview of UML consistency management. Technical report SCE-04-18, Carleton University, Department of Systems and Computer Engineering.Google Scholar
  53. 53.
    Kuzniarz, L., Reggio, G., Sourrouille, J. L., & Huzar, Z. (Eds.). (2003). UML 2003, Modeling languages and applications. Workshop on consistency problems in UML-based software development II, 2003:06. Ronneby: Blekinge Institute of Technology.Google Scholar
  54. 54.
    Bodeveix, J. P., Millan, T., Percebois, C., Camus, C. L., Bazex, P., & Feraud, L. (2002). Extending OCL for verifying UML models consistency. In L. Kuzniarz, G. Reggio, J. L. Sourrouille, & Z. Huzar (Eds.), UML 2002, model engineering, concepts and tools. Workshop on consistency problems in UML-based software development, 2002:06 (pp. 75–90). Ronneby: Blekinge Institute of Technology.Google Scholar
  55. 55.
    Engels, G., Kuster, J. M., Heckel, R., & Groenewegen, L. (2002). Towards consistency-preserving model evolution. In Proceedings of the international workshop on principles of software evolution (IWPSE) (pp. 129–132). ACM Press.Google Scholar
  56. 56.
    Van Der Straeten, R., Mens, T., Simmonds, J., & Jonckers, V. (2003). Using description logics to maintain consistency between UML models. In P. Stevens, J. Whittle, & G. Booch (Eds.), UML 2003—the unified modeling language (pp. 326–340). LNCS 2863. Springer-Verlag.Google Scholar
  57. 57.
    Mens T., Straeten R. V. D., Simmonds J. (2005) A framework for managing consistency of evolving UML models. In: Yang H. (eds) Software evolution with UML and XML. Idea Group Publishing, Hershey, pp 1–31Google Scholar
  58. 58.
    Grundy J., Hosking J., Mugridge W. B. (1998) Inconsistency management for multiple-view software development environments. IEEE Transactions on Software Engineering 24(11): 960–981CrossRefGoogle Scholar
  59. 59.
    Liu, W., Easterbrook, S., & Mylopoulos, J. (2002). Rule based detection of inconsistency in UML models. In L. Kuzniarz, G. Reggio, J. L. Sourrouille, & Z. Huzar (Eds.), UML 2002, model engineering, concepts and tools. Workshop on consistency problems in UML-based software development, 2002:06 (pp. 106–123). Ronneby: Blekinge Institute of Technology.Google Scholar
  60. 60.
    Briand L. C., Labiche Y., O’Sullivan L., Sowka M. M. (2006) Automated impact analysis of UML models. Journal of Systems and Software 79(3): 339–352CrossRefGoogle Scholar
  61. 61.
    Mens, T., Van Der Straeten, R., & D’Hondt, M. (2006). Detecting and resolving model inconsistencies using transformation dependency analysis. In O. Nierstrasz, J. Whittle, D. Harel, & G. Reggio (Eds.), Model driven engineering languages and systems (Vol. 4199, pp. 200–214). Springer-Verlag.Google Scholar
  62. 62.
    Egyed, A., Letier, E., & Finkelstein, A. (2008). Generating and evaluating choices for fixing inconsistencies in UML design models. In Proceedings of the 23rd IEEE/ACM international conference on automated software engineering (ASE ’08) (pp. 99–108). Washington, DC, USA: IEEE Computer Society.Google Scholar
  63. 63.
    Urban, S., Karadimce, A., & Nannapaneni, R. (1992). The implementation and evaluation of integrity maintenance rules in an object-oriented database. In Proceedings of the eighth international conference on data engineering (pp. 565–572).Google Scholar
  64. 64.
    Ceri S., Fraternali P., Paraboschi S., Tanca L. (1994) Automatic generation of production rules for integrity maintenance. ACM Transaction Database Systems 19(3): 367–422CrossRefGoogle Scholar
  65. 65.
    Gertz, M., & Lipeck, U. W. (1997). An extensible framework for repairing constraint violations. In: Proceedings of the IFIP TC11 working group 11.5, first working conference on integrity and internal control in information systems (pp. 89–111). Chapman & Hall, Ltd.Google Scholar
  66. 66.
    Moerkotte G., Lockemann P. C. (1991) Reactive consistency control in deductive databases. ACM Transaction Database Systems 16(4): 670–702CrossRefGoogle Scholar
  67. 67.
    Clement, B. J., & Durfee, E. H. (1999). Top-down search for coordinating the hierarchical plans of multiple agents. In AGENTS ’99: Proceedings of the third annual conference on autonomous agents (pp. 252–259). ACM Press.Google Scholar
  68. 68.
    Thangarajah, J., Winikoff, M., Padgham, L., & Fischer, K. (2002). Avoiding resource conflicts in intelligent agents. In Proceedings of the 15th European conference on artificial intelligence, ECAI’2002 (pp. 18–22). IOS Press.Google Scholar
  69. 69.
    Horty J. F., Pollack M. E. (2001) Evaluating new options in the context of existing plans. Artificial Intelligence 127(2): 199–220MathSciNetCrossRefzbMATHGoogle Scholar
  70. 70.
    Dasgupta, A., & Ghose, A. K. (2006). CASO: a framework for dealing with objectives in a constraint-based extension to AgentSpeak(L). In Twenty-Ninth Australasian computer science conference (ACSC 2006) (pp. 121–126). Australian Computer Society, Inc.Google Scholar
  71. 71.
    Nau D. S., Au T. C., Ilghami O., Kuter U., Murdock J. W., Wu D., Yaman F. (2003) SHOP2: An HTN planning system. Journal of Artificial Intelligence Research (JAIR) 20: 379–404zbMATHGoogle Scholar
  72. 72.
    Blythe J. (1999) Decision-theoretic planning. AI Magazine 20(2): 37–54Google Scholar
  73. 73.
    Williamson, M. (1994). Optimal planning with a goal-directed utility model. In K. J. Hammond (Ed.), Proceedings of the second international conference on AI planning systems (pp. 176–181). AAAI.Google Scholar
  74. 74.
    Ephrati, E., Pollack, M. E., & Milshtein, M. (1996). A cost-directed planner: Preliminary report. In Proceedings of the 14th national conference on artificial intelligence (AAAI) (pp. 1223–1228).Google Scholar
  75. 75.
    Jayatilleke, G., Padgham, L., & Winikoff, M. (2005). Component agent framework for non-experts (CAFnE) toolkit. In R. Unland, M. Calisti, & M. Klusch (Eds.), Software agent-based applications, platforms and development kits, Whitestein series in Software Agent Technologies and Autonomic Computing (pp. 169–195). Basel: Birkhauser.Google Scholar
  76. 76.
    Fickas, S., Feather, M., & Kramer, J. (Eds.). (1997). Proceedings of the workshop on living with inconsistency. Boston, USA.Google Scholar
  77. 77.
    Kuzniarz, L., Reggio, G., Sourrouille, J. L., & Huzar, Z. (Eds.). (2002). UML 2002, model engineering, concepts and tools. Workshop on consistency problems in UML-based software development, 2002:06. Ronneby: Blekinge Institute of Technology.Google Scholar

Copyright information

© The Author(s) 2010

Authors and Affiliations

  1. 1.University of WollongongWollongongAustralia
  2. 2.RMIT UniversityMelbourneAustralia
  3. 3.University of OtagoDunedinNew Zealand

Personalised recommendations