An observer design-pattern detection technique

The paper presents an approach for design patterns recognition in legacy code by the combination of static and dynamic analysis techniques. The implement process has three steps: static parser, SWRL rules and dynamic validation. The static parser translates the input source code into the AST. The protégé tool defines programming concepts with ontology model and design pattern into SWRL rules, and these SWRL rules are defined in OWL format, and then the code instances are constructed as OWL individuals and map to the individuals of the program ontology model. Finally, subsequent dynamic analysis is employed to confirm or weaken the results from static analysis. We discuss our approach for the Observer design pattern on a Java system.

[1]  Michele Risi,et al.  Behavioral Pattern Identification through Visual Language Parsing and Code Instrumentation , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[2]  Jens Dietrich,et al.  A formal description of design patterns using OWL , 2005, 2005 Australian Software Engineering Conference.

[3]  Jing Dong,et al.  Architecture and Design Pattern Discovery Techniques - A Review , 2007, Software Engineering Research and Practice.

[4]  Michele Risi,et al.  Design pattern recovery through visual language parsing and source code analysis , 2009, J. Syst. Softw..

[5]  Danko Basch,et al.  Ontology-Based Design Pattern Recognition , 2008, KES.

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

[7]  Tian Zhao,et al.  Using ontology reasoning for reverse engineering design patterns , 2009, MODELS'09.

[8]  Jun Zhou,et al.  Ontology Model-Based Static Analysis on Java Programs , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[9]  Niklas Pettersson,et al.  Measuring precision for static and dynamic design pattern recognition as a function of coverage , 2005 .

[10]  Dirk Beyer,et al.  CrocoPat: efficient pattern analysis in object-oriented programs , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[11]  Rudolf Ferenc,et al.  Mining design patterns from C++ source code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..