Experiences with planning techniques for assisting software design activities

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.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  Dennis Heimbigner,et al.  Deployment and dynamic reconfiguration planning for distributed software systems , 2003, Proceedings. 15th IEEE International Conference on Tools with Artificial Intelligence.

[3]  Analía Amandi,et al.  JavaLog: a framework-based integration of Java and Prolog for agent-oriented programming , 2005, Comput. Lang. Syst. Struct..

[4]  Maria Fox,et al.  Progress in AI Planning Research and Applications , 2002 .

[5]  Frank Buschmann,et al.  A system of patterns , 1995 .

[6]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[7]  Len Bass,et al.  Toward Deriving Software Architectures from Quality Attributes , 1994 .

[8]  Avrim Blum,et al.  Fast Planning Through Planning Graph Analysis , 1995, IJCAI.

[9]  John Levine,et al.  O-Plan: A Web-Based AI Planning Agent , 2000, AAAI/IAAI.

[10]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[11]  Marcelo R. Campo,et al.  Towards agent-oriented assistance for framework instantiation , 2000, OOPSLA '00.

[12]  Paolo Traverso,et al.  Automated Planning: Theory & Practice , 2004 .

[13]  Dana S. Nau,et al.  SHOP2: An HTN Planning System , 2003, J. Artif. Intell. Res..

[14]  Ke Xu,et al.  CaBMA: Case-Based Project Management Assistant , 2004, AAAI.

[15]  Marcelo R. Campo,et al.  Using Incremental Planning to Foster Application Framework Reuse , 2000, Int. J. Softw. Eng. Knowl. Eng..

[16]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[17]  John S. Gero,et al.  What does an artificial design agent mean by being ‘situated’? , 2005 .

[18]  Pattie Maes,et al.  Agents that reduce work and information overload , 1994, CACM.

[19]  Qiang Yang,et al.  Intelligent planning - a decomposition and abstraction based approach , 1997, Artificial intelligence.

[20]  Kai Koskimies,et al.  Generating Application Development Environments for Java Frameworks , 2001, GCSE.

[21]  Jason E. Robbins,et al.  Extending Design Environments to Software Architecture Design , 2004, Automated Software Engineering.

[22]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[23]  Steven J. Plimpton,et al.  Massively parallel methods for engineering and science problems , 1994, CACM.

[24]  Bedir Tekinerdogan,et al.  Synthesis - Based Software Architecture Design , 2001 .

[25]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[26]  Alison Cawsey,et al.  The essence of artificial intelligence , 1997 .

[27]  Daniel S. Weld An Introduction to Least Commitment Planning , 1994, AI Mag..

[28]  Tzilla Elrad,et al.  Designing an aspect-oriented framework in an object-oriented environment , 2000, CSUR.

[29]  Marcelo R. Campo,et al.  SmartBooks: a step beyond active-cookbooks to aid in framework instantiation , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

[30]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[31]  E. Yu,et al.  Using Non-Functional Requirementsto Systematically Select Among Alternativesin Architectural Design , 1994 .

[32]  Marcelo R. Campo,et al.  "Computer, please, tell me what I have to do...": an approach to agent-aided application composition , 2005, J. Syst. Softw..

[33]  Leonard J. Bass,et al.  Designing software architectures to achieve quality attribute requirements , 2005, IEE Proc. Softw..

[34]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[35]  David E. Wilkins,et al.  A Call for Knowledge-Based Planning , 2001, AI Mag..

[36]  Marcelo R. Campo,et al.  Analyzing the role of aspects in software design , 2001, CACM.

[37]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[38]  Marcelo R. Campo,et al.  Developing object‐oriented enterprise quality frameworks using proto‐frameworks , 2002, Softw. Pract. Exp..

[39]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .