Revealer: a lexical pattern matcher for architecture recovery

Program comprehension is crucial for software maintenance activities and is supported by reverse engineering techniques. Many of them analyze source code and use parsers to create higher-level representations of software systems that are more meaningful to engineers. But the application of parsers is for some reasons not always desirable. In this paper, we introduce Revealer a lightweight source model extraction tool that combines advantages of lexical analysis with syntactical analysis. It uses an easy-to-use pattern language that supports engineers in defining pattern definitions of diverse granularity depending on the problem at hand In this way our tool enables fast extraction of simple and complex code patterns that allow engineers a quick insight into particular architectural aspects that are expressed via source code patterns.

[1]  Larry Wall,et al.  Programming Perl , 1991 .

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

[3]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[4]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[5]  Alfred V. Aho,et al.  Awk — a pattern scanning and processing language , 1979, Softw. Pract. Exp..

[6]  E. Schmidt,et al.  Lex—a lexical analyzer generator , 1990 .

[7]  Harald C. Gall,et al.  Pattern-supported architecture recovery , 2002, Proceedings 10th International Workshop on Program Comprehension.

[8]  Roland Mittermeir,et al.  Pattern-Driven Reverse Engineering , 1995, SEKE.

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

[10]  David Notkin,et al.  Lightweight lexical source model extraction , 1996, TSEM.

[11]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

[12]  William G. Griswold,et al.  The design of whole-program analysis tools , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[13]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[14]  William G. Griswold,et al.  Fast, flexible syntactic pattern matching and processing , 1996, WPC '96. 4th Workshop on Program Comprehension.

[15]  Christopher Krügel,et al.  SPARTA, a Mobile Agent Based Instrusion Detection System , 2001, Network Security.

[16]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[17]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[18]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[19]  M. N. Armstrong,et al.  Evaluating architectural extractors , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[20]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[21]  Mehdi Jazayeri,et al.  Software Architecture for Product Families: Principles and Practice , 2000 .

[22]  Charles L. A. Clarke,et al.  A comparative evaluation of techniques for syntactic level source code analysis , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[23]  Giuliano Antoniol,et al.  Augmenting pattern-based architectural recovery with flow analysis: Mosaic-a case study , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[24]  Leon Moonen,et al.  Generating robust parsers using island grammars , 2001, Proceedings Eighth Working Conference on Reverse Engineering.