Recasting Program Reverse Engineering through On-Line Analytical Processing

Program reverse engineering is the task that helps software engineers understand the architecture of large software systems. We study how the data modeling techniques known as On{Line Analytical Processing (OLAP) can be used to enhance the sophistication and range of reverse engineering tools. This is the rst comprehensive examination of the similarities and diierences in these tasks, both in how OLAP techniques meet (or fail to meet) the needs of reverse engineering and in how reverse engineering can be recast as data analysis. We identify limitations in the data modeling tools of OLAP that are required in the area of reverse engineering. Speciically, multidimensional models assume that while facts may change dynamically, the structure of dimensions are relatively static (both in their dimension values and their relative orderings). We show both why this is required in current OLAP solutions and provide new solutions that eeectively manage dynamic dimensions. ii Contents

[1]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[2]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

[3]  Spiros Mancoridis,et al.  Automatic clustering of software systems using a genetic algorithm , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[4]  Richard C. Holt,et al.  Linux as a case study: its extracted software architecture , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Thomas W. Reps,et al.  Identifying modules via concept analysis , 1997, 1997 Proceedings International Conference on Software Maintenance.

[6]  Brian Kernighan,et al.  An efficient heuristic for partitioning graphs , 1970 .

[7]  Richard D. Hackathorn,et al.  Using the Data Warehouse , 1994 .

[8]  Panos Vassiliadis,et al.  Modeling multidimensional databases, cubes and cube operations , 1998, Proceedings. Tenth International Conference on Scientific and Statistical Database Management (Cat. No.98TB100243).

[9]  Glenn S. Fowler,et al.  Ciao: a graphical navigator for software and document repositories , 1995, Proceedings of International Conference on Software Maintenance.

[10]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[11]  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).

[12]  Laks V. S. Lakshmanan,et al.  What can Hierarchies do for Data Warehouses? , 1999, VLDB.

[13]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[14]  Joseph M. Firestone Dimensional Modeling and E-R Modeling In The Data Warehouse , 2002 .

[15]  Surajit Chaudhuri,et al.  An overview of data warehousing and OLAP technology , 1997, SGMD.

[16]  Torben Bach Pedersen,et al.  Multidimensional data modeling for complex data , 1999, Proceedings 15th International Conference on Data Engineering (Cat. No.99CB36337).

[17]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[18]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[19]  Scott R. Tilley Management decision support through reverse engineering technology , 1992, CASCON.

[20]  J. Moon,et al.  On cliques in graphs , 1965 .

[21]  Raghu Ramakrishnan,et al.  Database Management Systems , 1976 .

[22]  T. A. Wiggerts,et al.  Using clustering algorithms in legacy systems remodularization , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[23]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[24]  Luca Cabibbo,et al.  Querying Multidimensional Databases , 1997, DBPL.

[25]  Scott Tilley,et al.  A Reverse-Engineering Environment Framework , 1998 .

[26]  Hausi A. Müller,et al.  Composing subsystem structures using (k,2)-partite graphs , 1990, Proceedings. Conference on Software Maintenance 1990.

[27]  Hausi A. Müller,et al.  Understanding Software Systems Using Reverse Engineering Technology , 1994, COODBSE.

[28]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[29]  Rokia Missaoui,et al.  INCREMENTAL CONCEPT FORMATION ALGORITHMS BASED ON GALOIS (CONCEPT) LATTICES , 1995, Comput. Intell..

[30]  Anil K. Jain,et al.  Algorithms for Clustering Data , 1988 .

[31]  J. Paul Tremblay,et al.  Discrete Mathematical Structures with Applications to Computer Science , 1975 .

[32]  Steven Skiena,et al.  The Algorithm Design Manual , 2020, Texts in Computer Science.

[33]  Kathryn Fraughnaugh,et al.  Introduction to graph theory , 1973, Mathematical Gazette.

[34]  Melissa P. Chase,et al.  Manipulating Recovered Software Architecture Views , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[35]  Sunita Sarawagi,et al.  Modeling multidimensional databases , 1997, Proceedings 13th International Conference on Data Engineering.