Skip to main content

Experiences with planning techniques for assisting software design activities

  • Published:
Applied Intelligence Aims and scope Submit manuscript

Abstract

Any software design process can be seen as a workflow of design tasks, in which the developer makes different decisions regarding both functionality and quality-attribute properties of the intended system. However, ensuring the right compromises among design solutions is always a problematic and error-prone activity for the developer. Furthermore, he/she may get overwhelmed by the diversity of design techniques and technologies nowadays available. Along this line, we believe that it is possible to provide a declarative representation of this knowledge, so as to apply AI techniques when searching for solutions in the design space. Specifically, mixed-initiative planning algorithms are an interesting approach to automate some aspects of that search. In this paper, we report on three successful experiences with planning to assist the developer in decision-making for architectural and object-oriented design contexts. We also analyze the perspectives of a planning-based approach in the development of software design tools.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  1. Amandi A, Campo M, Zunino A (2004) JavaLog: a framework-based integration of Java and Prolog for agent-oriented programming. In: Ledley RS (ed) Computer languages, systems and structures. Elsevier Science, Amsterdam. ISSN: 0096-0551

    Google Scholar 

  2. AOSD homepage. Tools for Developers. http://www.aosd.net/wiki/index.php?title=Tools_for_Developers

  3. Arshad N, Heimbigner D, Wolf A (2003) Deployment and dynamic reconfiguration planning for distributed software systems. In: Proceedings ICTAI 2003: pp 39–46

  4. AspectJ homepage. http://www.eclipse.org/aspectj/

  5. AspectWerkz homepage. http://aspectwerkz.codehaus.org/

  6. Bachmann F, Bass L, Klein M, Shelton C (2005) Designing software architectures to achieve quality attribute requirements. In: IEE Proceedings on Software, August 2005, pp 153–165

  7. Bass L, Clement P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison–Wesley, Reading

    Google Scholar 

  8. Blum A, Furst M (1997) Fast planning through planning graph analysis. Artif Intell 90:281–300

    Article  MATH  Google Scholar 

  9. Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal John M (1996) Pattern-oriented software architecture. A system of patterns. Wiley, New York

    Google Scholar 

  10. Campo M, Price T (1999) Luthier----building framework visualization tools. In: Fayad M, Johnson R (eds) Implementing object-oriented application frameworks, frameworks at work. Wiley, New York

    Google Scholar 

  11. Campo M, Díaz Pace A (2001) Analyzing the role of aspects in software design. Commun ACM, special issue on Aspect-oriented programming 44(10):66–73

    Google Scholar 

  12. Campo M, Díaz Pace A, Zito M (2002) Developing object-oriented enterprise quality frameworks using proto-frameworks. In: Software: Practice and Experience, vol. 32. Wiley, New York, pp 837–843

    Google Scholar 

  13. Campo M, Díaz Pace A, Trilnik F (2004) “Computer, please, tell me what I have to do …” An approach to agent-aided application composition. Int J Soft Syst 74:55–64

    Article  Google Scholar 

  14. Cawsey A (1997) Essence of artificial intelligence. Prentice-Hall, New York

    Google Scholar 

  15. Chung L, Nixon B, Yu E (1995) Using non-functional requirements to systematically select among alternatives in architectural design. In: Proceedings 1st international workshop on architectures for software systems, Seattle, 14–28 April 1995, pp 31–43

  16. Constantinides C, Bader A, Elrad T, Netinant P, Fayad M (2000) Designing an aspect-oriented framework in an object-oriented environment. ACM Comput Surv 32:41

    Article  Google Scholar 

  17. Díaz Pace A (2004) A planning-based approach for the exploration of quality-driven design alternatives in software architectures. PhD thesis, Faculty of Sciences, UNICEN University, Tandil, Argentina, September 2004

  18. Díaz Pace A, Campo M, Trilnik F (2004) A knowledge-driven approach for aspect composition. In: Aspect-oriented software development. Addison–Wesley, Reading. ISBN 0-321-6-7

    Google Scholar 

  19. Elrad T, Filman R, Bader A (2001) Aspect-oriented programming—introduction. Commun ACM 44(10):29–32

    Article  Google Scholar 

  20. Fayad M, Schmidt D, Johnson R (1999) Building application frameworks: object-oriented foundations of framework design. Wiley, New York

    Google Scholar 

  21. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns, elements of reusable object-oriented software. Addison–Wesley, Reading

    Google Scholar 

  22. Hakala M, Hautamäki J, Koskimies K, Paakki J, Viljamaa A, Viljamaa J (2001) Generating application development environments for Java frameworks. In: Proceedings of the 3rd international conference on generative and component-based software engineering (GCSE’01), Erfurt, Germany, September 2001. Lecture notes in computer science vol 2186. Springer, Berlin pp 163–176

    Chapter  Google Scholar 

  23. Johnson R (1992) Documenting frameworks using patterns. In: Proceedings OOPSLA 1992. Conference on object oriented programming systems languages and applications, Vancouver, BC, Canada. ACM Press, New York, pp 63–76. ISBN:0-201-53372-3

    Chapter  Google Scholar 

  24. Kazman R, Bass L (1994) Toward deriving software architectures from quality attributes. Technical Report CMU/SEI-94-TR-10

  25. Kiczales G, Lamping J, Mendhekar J, Maeda C, Videira Lopes C, Loingtier J, Irwin J Aspect-oriented programming. (1997) In: Proceedings of the European conference on object-oriented programming (ECOOP), Finland, June 1997. Lecture notes in computer science, vol. 1241. Springer, Berlin

    Google Scholar 

  26. Liu W, Easterbrook S (2003) Eliciting architectural decisions from requirements using a rule-based framework. In: Proceedings of the 2nd international workshop from software requirements to architectures (STRAW’03), co-location with ICSE 2003, Portland, OR, USA, May 2003

  27. Long D, Fox M (2002) Progress in AI planning research and applications. In: Upgrade /Novatica 159. III (5), pp 10–25

  28. Maes P (1994) Agents that reduce work and information overload. Commun ACM 37(7):31–40

    Article  Google Scholar 

  29. Xu K, Muñoz-Avila H (2004) CaBMA: case-based project management assistant. In: Proceedings of the sixteenth innovative applications of artificial intelligence conference (IAAI-04). AAAI Press, Menlo Park

    Google Scholar 

  30. Nau D, Au T-C, Ilghami O, Kuter U, Murdock JW, Wu D, Yaman F (2003) SHOP2: an HTN planning system. J Artif Intel Res 20:379–404

    MATH  Google Scholar 

  31. Nau D, Ghallab M, Traverso P (2004) Automated planning: theory & practice. Kaufmann, San Francisco. ISBN:1558608567

    MATH  Google Scholar 

  32. Ortigosa A, Campo M, Moriyón R (2000) Towards agent-oriented assistance for framework instantiation. In: OOPSLA 2000 (Conference on object-oriented programming, systems, languages, and applications), October 2000, ACM SIGPLAN, vol 35, pp 253–263

  33. Ortigosa A, Campo M (1999) Smartbooks: a step beyond active cookbooks to aid in framework instantiation. In: Technology of object-oriented languages and systems, TOOLS’99. IEEE Press, New York, July 1999

    Google Scholar 

  34. Ortigosa A, Marcelo M (1999) Using incremental planning to foster application frameworks reuse. In: International conference on software engineering & knowledge engineering. SEKE’99, 16–19 June 1999, pp 362–369

  35. Robbins J, Hilbert D, Redmiles D (1996) Extending design environments to software architecture design. Int J Autom Softw Eng, special issue: The Best of KBSE ’96

  36. Shaw M, Garlan D (1996) Software architecture, perspectives on an emerging discipline. Prentice-Hall, New York

    Google Scholar 

  37. Smith G, Gero J (2005) What does an agent mean by being “situated”? In: Design studies, vol 26, pp 535–561

  38. Tate A, Dalton J, Levine J (2000) O-plan: a web-based AI planning agent. In: AAAI-2000 intelligent systems demonstrator. Proceedings of the national conference of the American association of AI (AAAI-2000), Austin, TX, USA, July 2000

  39. Tekinerdogan B (2000) Synthesis-based software architecture design. PhD dissertation, University of Twente, Enschede, The Netherlands. ISBN 90-365-1430-4

  40. von Flach Garcia Chavez C (2004) A model-based approach to aspect-oriented design. PhD thesis, Pontifícia Universidade Católica do Rio de Janeiro, PUC/RJ, Brasil

  41. Weld D (1994) An introduction to least commitment planning. AI Mag 15(14):27–61

    Google Scholar 

  42. Wilkins D, desJardins M (2001) A call for knowledge-based planning. AI Mag 22(1):99–115

    Google Scholar 

  43. Yang Q (1997) Intelligent planning: a decomposition and abstraction based approach. Springer, New York

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to J. Andrés Díaz-Pace.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Díaz-Pace, J.A., Campo, M.R. Experiences with planning techniques for assisting software design activities. Appl Intell 29, 56–78 (2008). https://doi.org/10.1007/s10489-007-0081-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10489-007-0081-z

Keywords