Skip to main content
Log in

An agent-oriented approach to change propagation in software maintenance

Autonomous Agents and Multi-Agent Systems Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Vliet H. V. (2001) Software engineering: Principles and practice (2nd ed.). Wiley, Chichester

    Google Scholar 

  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–87

    Google Scholar 

  3. Rajlich V. (2006) Changing the paradigm of software engineering. Communications of the ACM 49(8): 67–70

    Article  Google Scholar 

  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.

  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 York

    MATH  Google Scholar 

  6. Henderson-Sellers, B., Giorgini, P. (eds) (2005) Agent-oriented methodologies. Idea Group Publishing, Hershey

    Google Scholar 

  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.

  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–367

    Chapter  Google Scholar 

  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–332

    Article  Google Scholar 

  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.

  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).

  12. Luqi G. (1990) A graph model for software evolution. IEEE Transactions on Software Engineering, 16(8): 917–927

    Article  Google Scholar 

  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.

  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.

  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.

  16. Kleppe A. G., Warmer J. B., Bast W. (2003) MDA explained: The model driven architecture: Practice and promise. Addison-Wesley, Boston, MA

    Google Scholar 

  17. Mellor S. J., Clark A. N., Futagami T. (2003) Guest editors’ introduction: Model-driven development. IEEE Software 20(5): 14–18

    Article  Google Scholar 

  18. Schmidt D. C. (2006) Guest editor’s introduction: Model-driven engineering. Computer 39(2): 25–31

    Article  Google Scholar 

  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.

  20. Mens T. (2008) Introduction and roadmap: History and challenges of software evolution. In: Mens T., Demeyer S. (eds) Software evolution. Springer, Berlin, Heidelberg

    Google Scholar 

  21. Bratman M. E. (1987) Intentions, plans, and practical reason. Harvard University Press, Cambridge, MA

    Google Scholar 

  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.

  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.

  24. Object Management Group. (2005). Unified Modeling Language (UML) 1.4.2 specification (ISO/IEC 19501). http://www.omg.org/technology/uml/.

  25. Object Management Group. (2006). Object Constraint Language (OCL) 2.0 Specification. http://www.omg.org/docs/ptc/03-10-14.pdf.

  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.

  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).

  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).

  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.

  30. Padgham, L., & Winikoff, M. (2004). Developing intelligent agent systems: A practical guide. Chichester: Wiley. ISBN 0-470-86120-7.

  31. Jayatilleke, G. B. (2007). A model driven component agent framework for domain experts. Ph.D. thesis, RMIT University, Australia.

  32. Object Management Group. (2004). UML 2.0 superstructure and infrastructure specifications. http://www.omg.org/technology/uml/.

  33. Atkinson C., Kühne T. (2003) Model-driven development: A metamodeling foundation. IEEE Software 20(5): 36–41

    Article  Google Scholar 

  34. Kruchten P. (1995) The 4+1 view model of architecture. IEEE Software 12(6): 42–50

    Article  Google Scholar 

  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.

  36. Gamma E., Helm R., Johnson R., Vlissides J. (1995) Design patterns. Addison-Wesley Professional, Reading

    Google Scholar 

  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.

  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–190

    Google Scholar 

  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. Dam, K. H. (2008). Support software evolution in agent systems. Ph.D. thesis, RMIT University, Australia.

  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–185

    Article  Google Scholar 

  42. Egyed A., Wile D. S. (2006) Support for managing design-time decisions. IEEE Transactions on Software Engineering 32(5): 299–314

    Article  Google Scholar 

  43. Levenshtein V. I. (1966) Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady 10: 707–710

    MathSciNet  Google Scholar 

  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.

  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.

  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–30

    Article  MATH  Google Scholar 

  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.

  48. Fowler M., Beck K. (1999) Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc, Boston, MA, USA

    Google Scholar 

  49. Arnold R., Bohner S. (1996) Software change impact analysis. IEEE Computer Society Press, Los Alamitos

    Google Scholar 

  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.

  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–578

    Article  Google Scholar 

  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.

  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.

  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.

  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.

  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.

  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–31

    Google Scholar 

  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–981

    Article  Google Scholar 

  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.

  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–352

    Article  Google Scholar 

  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.

  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.

  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).

  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–422

    Article  Google Scholar 

  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.

  66. Moerkotte G., Lockemann P. C. (1991) Reactive consistency control in deductive databases. ACM Transaction Database Systems 16(4): 670–702

    Article  Google Scholar 

  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.

  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.

  69. Horty J. F., Pollack M. E. (2001) Evaluating new options in the context of existing plans. Artificial Intelligence 127(2): 199–220

    Article  MathSciNet  MATH  Google Scholar 

  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.

  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–404

    MATH  Google Scholar 

  72. Blythe J. (1999) Decision-theoretic planning. AI Magazine 20(2): 37–54

    Google Scholar 

  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.

  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).

  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.

  76. Fickas, S., Feather, M., & Kramer, J. (Eds.). (1997). Proceedings of the workshop on living with inconsistency. Boston, USA.

  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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Winikoff.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Dam, H.K., Winikoff, M. An agent-oriented approach to change propagation in software maintenance. Auton Agent Multi-Agent Syst 23, 384–452 (2011). https://doi.org/10.1007/s10458-010-9163-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10458-010-9163-0

Keywords

Navigation