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.
Similar content being viewed by others
References
Vliet H. V. (2001) Software engineering: Principles and practice (2nd ed.). Wiley, Chichester
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
Rajlich V. (2006) Changing the paradigm of software engineering. Communications of the ACM 49(8): 67–70
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.
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
Henderson-Sellers, B., Giorgini, P. (eds) (2005) Agent-oriented methodologies. Idea Group Publishing, Hershey
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.
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
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
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.
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).
Luqi G. (1990) A graph model for software evolution. IEEE Transactions on Software Engineering, 16(8): 917–927
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.
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.
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.
Kleppe A. G., Warmer J. B., Bast W. (2003) MDA explained: The model driven architecture: Practice and promise. Addison-Wesley, Boston, MA
Mellor S. J., Clark A. N., Futagami T. (2003) Guest editors’ introduction: Model-driven development. IEEE Software 20(5): 14–18
Schmidt D. C. (2006) Guest editor’s introduction: Model-driven engineering. Computer 39(2): 25–31
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.
Mens T. (2008) Introduction and roadmap: History and challenges of software evolution. In: Mens T., Demeyer S. (eds) Software evolution. Springer, Berlin, Heidelberg
Bratman M. E. (1987) Intentions, plans, and practical reason. Harvard University Press, Cambridge, MA
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.
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.
Object Management Group. (2005). Unified Modeling Language (UML) 1.4.2 specification (ISO/IEC 19501). http://www.omg.org/technology/uml/.
Object Management Group. (2006). Object Constraint Language (OCL) 2.0 Specification. http://www.omg.org/docs/ptc/03-10-14.pdf.
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.
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).
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).
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.
Padgham, L., & Winikoff, M. (2004). Developing intelligent agent systems: A practical guide. Chichester: Wiley. ISBN 0-470-86120-7.
Jayatilleke, G. B. (2007). A model driven component agent framework for domain experts. Ph.D. thesis, RMIT University, Australia.
Object Management Group. (2004). UML 2.0 superstructure and infrastructure specifications. http://www.omg.org/technology/uml/.
Atkinson C., Kühne T. (2003) Model-driven development: A metamodeling foundation. IEEE Software 20(5): 36–41
Kruchten P. (1995) The 4+1 view model of architecture. IEEE Software 12(6): 42–50
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.
Gamma E., Helm R., Johnson R., Vlissides J. (1995) Design patterns. Addison-Wesley Professional, Reading
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.
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
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.
Dam, K. H. (2008). Support software evolution in agent systems. Ph.D. thesis, RMIT University, Australia.
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
Egyed A., Wile D. S. (2006) Support for managing design-time decisions. IEEE Transactions on Software Engineering 32(5): 299–314
Levenshtein V. I. (1966) Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady 10: 707–710
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.
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.
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
Opdyke, W. F. (1992). Refactoring: A program restructuring aid in designing object-oriented application frameworks. Ph.D. thesis, University of Illinois at Urbana-Champaign.
Fowler M., Beck K. (1999) Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc, Boston, MA, USA
Arnold R., Bohner S. (1996) Software change impact analysis. IEEE Computer Society Press, Los Alamitos
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.
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
Elaasar, M., & Briand, L. (2004). An overview of UML consistency management. Technical report SCE-04-18, Carleton University, Department of Systems and Computer Engineering.
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.
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.
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.
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.
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
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
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.
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
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.
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.
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).
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
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.
Moerkotte G., Lockemann P. C. (1991) Reactive consistency control in deductive databases. ACM Transaction Database Systems 16(4): 670–702
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.
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.
Horty J. F., Pollack M. E. (2001) Evaluating new options in the context of existing plans. Artificial Intelligence 127(2): 199–220
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.
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
Blythe J. (1999) Decision-theoretic planning. AI Magazine 20(2): 37–54
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.
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).
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.
Fickas, S., Feather, M., & Kramer, J. (Eds.). (1997). Proceedings of the workshop on living with inconsistency. Boston, USA.
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.
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10458-010-9163-0