On convergence toward a database of program transformations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Program evolution: processes of software change
Program evolution: processes of software change
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
A mechanism for specifying the structure of large, layered systems
Research directions in object-oriented programming
The SCHEME programming language
The SCHEME programming language
Eliminating go to's while preserving program structure
Journal of the ACM (JACM)
Control flow analysis in scheme
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Assessing the quality of abstract data types written in ADA
ICSE '88 Proceedings of the 10th international conference on Software engineering
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the adequacy of program dependence graphs for representing programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The semantics of program dependence
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A program understanding support environment
IBM Systems Journal
Reconciling environment integration and component independence
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
IEEE Transactions on Software Engineering
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Reconciling environment integration and software evolution
ACM Transactions on Software Engineering and Methodology (TOSEM)
Computer-aided vs. manual program restructuring
ACM SIGSOFT Software Engineering Notes
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
IBM Systems Journal
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Assignment Commands with Array References
Journal of the ACM (JACM)
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Software Engineering Economics
Software Engineering Economics
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software Maintenance Management
Software Maintenance Management
Structured systems and their performance improvement through vertical migration
Structured systems and their performance improvement through vertical migration
Restructuring symbolic programs for concurrent execution on multiprocessors
Restructuring symbolic programs for concurrent execution on multiprocessors
A new algorithm for semantics-based program integration
A new algorithm for semantics-based program integration
Direct update of data flow representations for a meaning-preserving program restructuring tool
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Automated support for encapsulating abstract data types
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool
IEEE Transactions on Software Engineering - Special issue on software architecture
The design of whole-program analysis tools
Proceedings of the 18th international conference on Software engineering
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
Programming language requirements for the next millennium
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Just-in-time architecture: planning software in an uncertain world
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Software design: the options approach
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Small-scale structural reengineering of software
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
A practical framework for demand-driven interprocedural data flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Conceptual module querying for software reengineering
Proceedings of the 20th international conference on Software engineering
Promises: limited specifications for analysis and manipulation
Proceedings of the 20th international conference on Software engineering
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Component design of retargetable program analysis tools that reuse intermediate representations
Proceedings of the 22nd international conference on Software engineering
How Software Engineering Tools Organize Programmer BehaviorDuring the Task of Data Encapsulation
Empirical Software Engineering
Comments on "Language Design for Program Manipulation"
IEEE Transactions on Software Engineering
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
IEEE Transactions on Software Engineering
Coping with Crosscutting Software Changes Using Information Transparency
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Structural Views, Structural Evolution, and Product Families
Proceedings of the Second International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families
Template-based program restructuring - initial experience
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Supporting communications infrastructure evolution
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Tool support for refactoring functional programs
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Global Analysis and Transformations in Preprocessed Languages
IEEE Transactions on Software Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A technique for constructing aspect weavers using a program transformation engine
Proceedings of the 3rd international conference on Aspect-oriented software development
Untangling: a slice extraction refactoring
Proceedings of the 3rd international conference on Aspect-oriented software development
JIAD: a tool to infer design patterns in refactoring
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
An approach for categorizing end user programmers to guide software engineering research
WEUSE I Proceedings of the first workshop on End-user software engineering
Refactoring gcc using structure field access traces and concept analysis
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Star diagram with automated refactorings for Eclipse
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
From daikon to agitator: lessons and challenges in building a commercial tool for developer testing
Proceedings of the 2006 international symposium on Software testing and analysis
The composition refactoring triangle (CRT) practical toolkit: from spaghetti to lasagna
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Refactoring-based support for binary compatibility in evolving frameworks
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Assisting potentially-repetitive small-scale changes via semi-automated heuristic search
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
"Program, enhance thyself!": demand-driven pattern-oriented program enhancement
Proceedings of the 7th international conference on Aspect-oriented software development
Context-sensitive cut, copy, and paste
Proceedings of the 2008 C3S2E conference
A framework for the simulation of structural software evolution
ACM Transactions on Modeling and Computer Simulation (TOMACS)
The impact of static-dynamic coupling on remodularization
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Optimizing header file include directives
Journal of Software Maintenance and Evolution: Research and Practice
Perspectives on automated correction of bad smells
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Clone detection via structural abstraction
Software Quality Control
Empirical Software Engineering
Refactoring is not (yet) about transformation
Proceedings of the 2nd Workshop on Refactoring Tools
Re-approaching the refactoring Rubicon
Proceedings of the 2nd Workshop on Refactoring Tools
CScout: A refactoring browser for C
Science of Computer Programming
Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm
Advances in Engineering Software
Transformation for class immutability
Proceedings of the 33rd International Conference on Software Engineering
Refactoring Java programs for flexible locking
Proceedings of the 33rd International Conference on Software Engineering
Refactoring pipe-like mashups for end-user programmers
Proceedings of the 33rd International Conference on Software Engineering
Proceedings of the 33rd International Conference on Software Engineering
Refactoring functional programs
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Build code analysis with symbolic evaluation
Proceedings of the 34th International Conference on Software Engineering
Property-preserving program refinement
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
Hi-index | 0.00 |
Maintenance tends to degrade the structure of software, ultimately making maintenance more costly. At times, then, it is worthwhile to manipulate the structure of a system to make changes easier. However, manual restructuring is an error-prone and expensive activity. By separating structural manipulations from other maintenance activities, the semantics of a system can be held constant by a tool, assuring that no errors are introduced by restructuring. To allow the maintenance team to focus on the aspects of restructuring and maintenance requiring human judgment, a transformation-based tool can be provided—based on a model that exploits preserving data flow dependence and control flow dependence—to automate the repetitive, error-prone, and computationally demanding aspects of restructuring. A set of automatable transformations is introduced; their impact on structure is described, and their usefulness is demonstrated in examples. A model to aid building meaning-preserving restructuring transformations is described, and its realization in a functioning prototype tool for restructuring Scheme programs is discussed.