Assisting novice software designers by an expert designer agent

Object-oriented patterns are enjoying much popularity as mechanisms to address flexibility and reusability in object-oriented designs. Consequently, many troubles have appeared to incorporate these practices to novice designers. The selection of appropriate patterns for a given design context is left to the developer's criterion. This activity can be problematic for the developer, and thus, he/she is amenable for tool assistance. Along this line, this paper proposes the use of interface agents, describing an agent called PatternAdvisor that is able to help a novice developer with the application of design patterns in his/her projects. This agent works on expert knowledge captured in a Bayesian network, which models knowledge from both design pattern catalogs and expert developer's feedback.

[1]  Serge Demeyer,et al.  Making design patterns explicit in FACE: a frame work adaptive composition environment , 1997, ESEC '97/FSE-5.

[2]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[3]  Juha Hautamäki,et al.  Pattern-based tool support for frameworks towards architecture-oriented software development environment , 2005 .

[4]  Alain Pirotte,et al.  Reifying Design Patterns as Metalevel Constructs , 1999 .

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

[6]  David Chek Ling Ngo,et al.  Formal Specification of Design Patterns - A Balanced Approach , 2003, J. Object Technol..

[7]  Marcelo R. Campo,et al.  ArchMatE: from architectural styles to object-oriented models through exploratory tool support , 2005, OOPSLA '05.

[8]  Kostas Kontogiannis,et al.  Improving design quality using meta-pattern transformations: a metric-based approach: Research Articles , 2004 .

[9]  Michael P. Wellman,et al.  Bayesian networks , 1995, CACM.

[10]  Tommi Mikkonen,et al.  Formalizing design patterns , 1998, Proceedings of the 20th International Conference on Software Engineering.

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

[12]  Finn Verner Jensen,et al.  Introduction to Bayesian Networks , 2008, Innovations in Bayesian Networks.

[13]  Ladan Tahvildari,et al.  Journal of Software Maintenance and Evolution: Research and Practice Improving Design Quality Using Meta-pattern Transformations: a Metric-based Approach , 2022 .

[14]  Marco Meijers,et al.  Tool Support for Object-Oriented Patterns , 1997, ECOOP.

[15]  Don S. Batory,et al.  Evolving Object-Oriented Designs with Refactorings , 2004, Automated Software Engineering.

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

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

[18]  Ladan Tahvildari,et al.  On the role of design patterns in quality-driven re-engineering , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[19]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[20]  Analía Amandi,et al.  Interface agents personalizing Web-based tasks , 2004, Cognitive Systems Research.

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

[22]  大西 仁,et al.  Pearl, J. (1988, second printing 1991). Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan-Kaufmann. , 1994 .

[23]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).