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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
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
AOSD homepage. Tools for Developers. http://www.aosd.net/wiki/index.php?title=Tools_for_Developers
Arshad N, Heimbigner D, Wolf A (2003) Deployment and dynamic reconfiguration planning for distributed software systems. In: Proceedings ICTAI 2003: pp 39–46
AspectJ homepage. http://www.eclipse.org/aspectj/
AspectWerkz homepage. http://aspectwerkz.codehaus.org/
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
Bass L, Clement P, Kazman R (2003) Software architecture in practice, 2nd edn. Addison–Wesley, Reading
Blum A, Furst M (1997) Fast planning through planning graph analysis. Artif Intell 90:281–300
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal John M (1996) Pattern-oriented software architecture. A system of patterns. Wiley, New York
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
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
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
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
Cawsey A (1997) Essence of artificial intelligence. Prentice-Hall, New York
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
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
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
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
Elrad T, Filman R, Bader A (2001) Aspect-oriented programming—introduction. Commun ACM 44(10):29–32
Fayad M, Schmidt D, Johnson R (1999) Building application frameworks: object-oriented foundations of framework design. Wiley, New York
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns, elements of reusable object-oriented software. Addison–Wesley, Reading
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
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
Kazman R, Bass L (1994) Toward deriving software architectures from quality attributes. Technical Report CMU/SEI-94-TR-10
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
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
Long D, Fox M (2002) Progress in AI planning research and applications. In: Upgrade /Novatica 159. III (5), pp 10–25
Maes P (1994) Agents that reduce work and information overload. Commun ACM 37(7):31–40
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
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
Nau D, Ghallab M, Traverso P (2004) Automated planning: theory & practice. Kaufmann, San Francisco. ISBN:1558608567
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
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
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
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
Shaw M, Garlan D (1996) Software architecture, perspectives on an emerging discipline. Prentice-Hall, New York
Smith G, Gero J (2005) What does an agent mean by being “situated”? In: Design studies, vol 26, pp 535–561
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
Tekinerdogan B (2000) Synthesis-based software architecture design. PhD dissertation, University of Twente, Enschede, The Netherlands. ISBN 90-365-1430-4
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
Weld D (1994) An introduction to least commitment planning. AI Mag 15(14):27–61
Wilkins D, desJardins M (2001) A call for knowledge-based planning. AI Mag 22(1):99–115
Yang Q (1997) Intelligent planning: a decomposition and abstraction based approach. Springer, New York
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10489-007-0081-z