PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
The use of program dependence graphs in software engineering
ICSE '92 Proceedings of the 14th international conference on Software engineering
The early history of Smalltalk
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
ACM Transactions on Computer-Human Interaction (TOCHI)
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
On the correct translation of update operations on relational views
ACM Transactions on Database Systems (TODS)
Designing components versus objects: a transformational approach
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Static and dynamic structure in design patterns
Proceedings of the 24th International Conference on Software Engineering
Browsing and searching source code of applications written using a GUI framework
Proceedings of the 24th International Conference on Software Engineering
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
IEEE Software
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Reverse Engineering to Achieve Maintainable WWW Sites
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Migrating COBOL Systems to the WEB by Using the MVC Design Pattern
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
GUI Ripping: Reverse Engineering of Graphical User Interfaces for Testing
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
Using GUI Run-Time State as Feedback to Generate Test Cases
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Static Analysis of Programs with Graphical User Interface
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
SelfSync: a dynamic round-trip engineering environment
MoDELS'05 Proceedings of the 8th international conference on Model Driven Engineering Languages and Systems
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Dynamic round-trip GUI maintenance
Proceedings of the 30th international conference on Software engineering
The impact of static-dynamic coupling on remodularization
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
User interface model discovery: towards a generic approach
Proceedings of the 2nd ACM SIGCHI symposium on Engineering interactive computing systems
Automated GUI refactoring and test script repair
Proceedings of the First International Workshop on End-to-End Test Script Engineering
Combining static and dynamic analysis for the reverse engineering of web applications
Proceedings of the 5th ACM SIGCHI symposium on Engineering interactive computing systems
Automatically repairing broken workflows for evolving GUI applications
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
One difficulty in software maintenance is that the relationship between observed program behavior and source code is not always clear. In this paper we are concerned specifically with the maintenance of graphical user interfaces (GUIs). User interface code can crosscut the decomposition of applications making GUIs hard to maintain. A popular approach to develop and maintain GUIs is to use "What you see is what you get" editors. They allow developers to work directly with a graphical design view instead of scattered source elements. Unfortunately GUI editors are limited by their ability to statically reconstruct dynamic collaborations between objects. In this paper we investigate the combination of a hybrid dynamic and static approach to allow for view-based maintenance of GUIs. Dynamic analysis reconstructs object relationships, providing a concrete context in which maintenance can be performed. Static checking restricts that only changes in the design view which can meaningfully be translated back to source are allowed. We implemented a prototype IDE plug-in and evaluate our approach by applying it to five open source projects.