• Publications
  • Influence
A reverse-engineering approach to subsystem structure identification
It is shown how top-down decompositions of a subject system can be (re)constructed via bottom-up subsystem composition, which involves identifying groups of building blocks using composition operations based on software engineering principles such as low coupling and high cohesion.
Composing subsystem structures using (k,2)-partite graphs
A clustering method that uses equivalence relations for identifying subsystem structures is described, intended to embody the software engineering principles that concern module interactions, such as low coupling, high strength, small interfaces, and few interfaces.
Compile-Time Analysis of Object-Oriented Programs
An analysis algorithm is presented which discovers the potential classes of each object in an object-oriented program as well as a safe approximation of their lifetimes using abstract domains that approximate memory configurations and interprocedural call patterns of the program.
A Reverse Engineering Approach to Subsystem Structure Identiication a Reverse Engineering Approach to Subsystem Structure Identiication
This paper describes the approach to creating higher-level abstract representations of a subject system, which involves the identiication of related components and dependencies, the construction of layered subsystem structures, and the computation of exact interfaces among subsystems.
An attribute grammar for Ada
The development of a formal specification of the static semantics of Ada in form of an attribute grammar is described, and was tested extensively with automatically generated equivalent Pascal programs.
Flow Grammars - a Flow Analysis Methodology
Flow grammars provide a new mechanism for modeling control flow in flow analyzers and code optimizers and are well-suited to the specification and solution of data flow analysis problems.