Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Program evolution: processes of software change
Program evolution: processes of software change
The automatic restructuring of COBOL
The Institute of Electrical and Electronics Engineers, Inc on Conference on software maintenance--1985
The SCHEME programming language
The SCHEME programming language
Assessing the quality of abstract data types written in ADA
ICSE '88 Proceedings of the 10th international conference on Software engineering
The relationship between slices and module cohesion
ICSE '89 Proceedings of the 11th international conference on Software engineering
The PICASSO applications framework
UIST '91 Proceedings of the 4th annual ACM symposium on User interface software and technology
Computer-aided vs. manual program restructuring
ACM SIGSOFT Software Engineering Notes
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
A reverse engineering environment based on spatial and visual software interconnection models
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Managing design trade-offs for a program understanding and transformation tool
Journal of Systems and Software - Double issue on reengineering complex systems
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tool support for planning the restructuring of data abstractions in large systems
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Program Transformation Systems
ACM Computing Surveys (CSUR)
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
How Software Engineering Tools Organize Programmer BehaviorDuring the Task of Data Encapsulation
Empirical Software Engineering
Software Maintenance Management
Software Maintenance Management
IEEE Software
Program Restructuring via Design-Level Manipulation
ICSE '93 Selected papers from the Workshop on Studies of Software Design
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Reengineering procedural into object-oriented systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Augmenting Pattern-Based Architectural Recovery with Flow Analysis: Mosaic - a Case Study
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Fast, Flexible Syntactic Pattern Matching and Processing
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the Conference on The Future of Software Engineering
Component design of retargetable program analysis tools that reuse intermediate representations
Proceedings of the 22nd international conference on Software engineering
Challenges of refactoring C programs
Proceedings of the International Workshop on Principles of Software Evolution
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
IEEE Transactions on Software Engineering
Using Slicing to Identify Duplication in Source Code
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Detection of Redundant Code Using R2D2
Software Quality Control
Refactoring class hierarchies with KABA
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Incremental Maintenance of Software Artifacts
IEEE Transactions on Software Engineering
A General Framework for Overlay Visualization
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
With a meaning-preserving restructuring tool, a software engineer can change a program's structure to ease future modifications. However, deciding how to restructure the program requires a global understanding of the program's structure, which cannot be derived easily by directly inspecting the source code. We describe a manipulable program visualization—the star diagram—that supports the restructuring task of encapsulating a global data structure. The star diagram graphically displays information pertinent to encapsulation, and direct manipulation of the diagram causes the underlying program to be restructured. The visualization compactly presents all statements in the program that use the given global data structure, helping the programmer to choose the functions that completely encapsulate it. Additionally, the visualization elides code unrelated to the data structure and to the task and collapses similar expressions to help the programmer identify frequently occurring code fragments and manipulate them together. The visualization is mapped directly to the program text, so manipulation of the visualization also restructures the program. We present the star diagram concept and describe an implementation of the star diagram built upon a meaning-preserving restructuring tool for Scheme. We also describe our creation of star diagram generators for C programs, and we test the scalability of the star diagram using large C and MUMPS programs.