Strategies for documenting delocalized plans
The Institute of Electrical and Electronics Engineers, Inc on Conference on software maintenance--1985
Cognitive processes in program comprehension
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
A field study of the software design process for large systems
Communications of the ACM
Breakdowns and processes during the early activities of software design by professionals
Empirical studies of programmers: second workshop
Change-episodes in coding: when and how do programmers change their code?
Empirical studies of programmers: second workshop
Some strategies of reuse in an object-oriented programming environment
CHI '89 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Knowledge exploited by experts during software system design
International Journal of Man-Machine Studies - What programmers know
Computer-aided vs. manual program restructuring
ACM SIGSOFT Software Engineering Notes
Analysing the novice analyst: cognitive models in software engineering
International Journal of Man-Machine Studies
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)
In search of design principles for programming environments
CHI '94 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Automated support for encapsulating abstract data types
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Discovering the way programmers think about new programming environments
Communications of the ACM
Getting the most from paired-user testing
interactions
Ecological studies of professional programmers
Communications of the ACM
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
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Software Maintenance Management
Software Maintenance Management
Active Programming Strategies in Reuse
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Supporting the restructuring of data abstractions through manipulation of a program visualization
Supporting the restructuring of data abstractions through manipulation of a program visualization
Supporting the restructuring of data abstractions through manipulation of a program visualization
ACM Transactions on Software Engineering and Methodology (TOSEM)
Empirical research in software engineering: a workshop
ACM SIGSOFT Software Engineering Notes
IEEE Transactions on Software Engineering
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Tool Support for Planning the Restructuring of Data Abstractions in Large Systems
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Tool-assisted meaning-preserving program restructuring has beenproposed to aid the evolution of large software systems. These systems aredifficult to modify because relevant information is often widelydistributed. We performed an exploratory study to determine how programmersused a restructuring tool interface called the ’’star diagram‘‘ to organizetheir behavior for the task of encapsulating a data structure. We videotapedsix pairs of programmers while they encapsulated and enhanced a datastructure in an existing program. Each team used one of three environments:standard UNIX tools, a restructuring tool with textual view of the sourcecode, or a restructuring tool using the star diagram view.We systematically analyzed the videotape transcripts to derive a model ofhow the programmers performed encapsulation. Each team opportunisticallyexploited the features of the tools (e.g., cursors) and the programrepresentation (e.g., ordering of lines in a file) to help them track thecurrent state of the activity. Each method of exploiting structure tracksstate in a way that decreases the likelihood of some types of oversights(e.g., missing a required change), but may not address others (e.g., makinga change incorrectly), hence requiring a separate check. We also observedthat programmers often preferred to design and restructure in an exploratoryfashion.The major challenge of restructuring, then, appears to arise from thefact that it is costly or haphazard to maintain some completeness andconsistency properties with the state-maintaining tactics that programmersemploy with current tools. The inherent invisibility of some informationmakes completeness even more costly. These insights have led us to redesignour restructuring tools to better support exploratory design and counterinvisibility.