Program evolution: processes of software change
Program evolution: processes of software change
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
Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated support for encapsulating abstract data types
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Getting the most from paired-user testing
interactions
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Software Maintenance Management
Software Maintenance Management
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Supporting the restructuring of data abstractions through manipulation of a program visualization
Supporting the restructuring of data abstractions through manipulation of a program visualization
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
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Challenges of refactoring C programs
Proceedings of the International Workshop on Principles of Software Evolution
How Software Engineering Tools Organize Programmer BehaviorDuring the Task of Data Encapsulation
Empirical 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
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
AspectBrowser for Eclipse: a case study in plug-in retargeting
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Star diagram with automated refactorings for Eclipse
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Hi-index | 0.00 |
Restructuring software to improve its design can lower software maintenance costs. One problem in carrying out such a restructuring is planning the new detailed design. The star diagram manipulable visualization can help a programmer redesign a program based on abstract data types. However, our measurements revealed that the view can be too large for a programmer to effectively assimilate. Also, design plans can be expressed only by restructuring, although our studies revealed that it is beneficial to preplan a restructuring. Finally, the tool user can build a star diagram for only a single data structure, although an abstract data type might actually have several components or have multiple instantiations.Exploiting basic properties of the star diagram can mitigate these problems. First, programmer-controlled elision can remove clutter from the star diagram view. Second, elision and annotation of star diagram components can mimic restructuring, thereby supporting the planning of a restructuring. Such support also allows for the planning of a non-restructuring maintenance task. Finally, to dynamically control what data structures are visualized, the tool user can union star diagrams.We built a star diagram planning tool for C programs, measured its elision capabilities, and performed a programmer study for the encapsulation of a widely-used data structure in a 28,000 line program. We found that the amount of elision can be substantial, but is not always adequate. In the study we found that each programming team successfully planned their restructuring in rather different, unanticipated ways.