Software reflexion models: bridging the gap between source and high-level models

Software engineers often use high-level models (for instance, box and arrow sketches) to reason and communicate about an existing software system. One problem with high-level models is that they are almost always inaccurate with respect to the system's source code. We have developed an approach that helps an engineer use a high-level model of the structure of an existing software system as a lens through which to see a model of that system's source code. In particular, an engineer de nes a high-level model and speci es how the model maps to the source. A tool then computes a software re exion model that shows where the engineer's high-level model agrees with and where it di ers from a model of the source. The paper provides a formal characterization of reexion models, discusses practical aspects of the approach, and relates experiences of applying the approach and tools to a number of di erent systems. The illustrative example used in the paper describes the application of re exion models to NetBSD, an implementation of Unix comprised of 250,000 lines of C code. In only a few hours, an engineer computed several re exion models that provided him with a useful, global overview of the structure of the NetBSD virtual memory subsystem. The approach has also been applied to aid in the understanding and experimental reengineering of the Microsoft Excel spreadsheet product. This research was funded in part by the NSF grant CCR-8858804 and a Canadian NSERC post-graduate scholarship. 0 Permission to make digital/hard copies of all or part of this material without fee is granted provided that the copies are not made or distributed for pro t or commercial advantage, the ACM copyright/server notice, the title of the publication and its date appear, and notice is given that copyright is by permission of the Association for Computing Machinery, Inc. (ACM). To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior speci c permission and/or a fee. SIGSOFT '95 Washington, D.C., USA c 1995 ACM 0-89791-716-2/95/0010...$3.50

[1]  R. Dreisbach,et al.  STANFORD UNIVERSITY. , 1914, Science.

[2]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

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

[4]  Harold Ossher Grids: A new program structuring mechanism based on layered graphs , 1984, POPL '84.

[5]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[6]  Harold Leon Ossher,et al.  A new program structuring mechanism based on layered graphs (programming languages, structure, software engineering) , 1985 .

[7]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[8]  Harold Ossher,et al.  A Mechanism for Specifying the Structure of Large, Layered Systems , 1987, Research Directions in Object-Oriented Programming.

[9]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[10]  Hausi A. Müller,et al.  A System for Programming-in-the-large* , 1988 .

[11]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[12]  Michael Z. Spivey,et al.  The Z notation , 1989 .

[13]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[14]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[15]  R. W. Schwanke,et al.  An Intelligent Tool For Reengineering Software Modularity , 1991, ICSE 1991.

[16]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[17]  Daniel Jackson Abstract analysis with aspect , 1993, ISSTA '93.

[18]  Daniel Jackson,et al.  Semantic Diff: a tool for summarizing the effects of modifications , 1994, Proceedings 1994 International Conference on Software Maintenance.

[19]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[20]  Steven P. Reiss The Field Programming Environment: A Friendly Integrated Environment for Learning and Development , 1994 .

[21]  William G. Griswold,et al.  Correction to "Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool" , 1995, IEEE Trans. Software Eng..

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