Visualizing and querying software structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
A relational approach to support software architecture analysis
Software—Practice & Experience
IBM Systems Journal
Introduction to set constraint-based program analysis
Science of Computer Programming
Flow equations as a generic programming tool for manipulation of attributed graphs
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
A Technique for Drawing Directed Graphs
IEEE Transactions on Software Engineering
Using Graph Rewriting to Specify Software Architectural Transformations
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Automatic Detection of Design Problems in Object-Oriented Reengineering
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Structural Manipulations of Software Architecture Using Tarski Relational Algebra
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
On Modeling Software Architecture Recovery as Graph Matching
ICSM '03 Proceedings of the International Conference on Software Maintenance
Language-independent detection of object-oriented design patterns
Computer Languages, Systems and Structures
Empirical-based recovery and maintenance of input error-correction features
Journal of Software Maintenance and Evolution: Research and Practice
Applying static analysis for automated extraction of database interactions in web applications
Information and Software Technology
Hi-index | 0.00 |
We address the problem of refining and completing a partially specified high-level design model and a partially-defined mapping from source code to design model. This is related but not identical to tasks that have been automated with a variety of reverse engineering tools to support software modification tasks. We posited that set-based flow analysis algorithms would provide a convenient and powerful basis for refining an initial rough model and partial mapping, and in particular that the ability to compute fixed points of set equations would be useful in propagating constraints on the relations among the model, the mapping, and facts extracted from the implementation. Here we report our experience applying this approach to a modest but realistic example problem. We were successful in expressing a variety of useful transformations very succinctly as flow equations, and the propagation of recursively-defined constraints was indeed useful in refining the mapping from implementation to model. On the other hand, our experience highlights remaining challenges to make this an attractive approach for general use. Special measures are required to identify and remove inconsistent constraints before they propagate through a system. Also, while the required flow equations are succinct, they are also rather opaque; it is not obvious how their expressive power might be preserved in a more accessible notation.