ReBA: refactoring-aware binary adaptation of evolving libraries
Proceedings of the 30th international conference on Software engineering
Refactoring sequential Java code for concurrency via concurrent libraries
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Relooper: refactoring for loop parallelism in Java
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Inferring Method Effect Summaries for Nested Heap Regions
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
ReAssert: Suggesting Repairs for Broken Unit Tests
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Transformation for class immutability
Proceedings of the 33rd International Conference on Software Engineering
Automated detection of refactorings in evolving components
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
How do developers use parallel libraries?
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Refactoring meets spreadsheet formulas
ICSM '12 Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)
Practical static race detection for Java parallel loops
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Crossing the gap from imperative to functional programming through refactoring
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
CHECK-THEN-ACT Misuse of Java Concurrent Collections
ICST '13 Proceedings of the 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation
Hi-index | 0.00 |
Change is the heart of software development. As new platforms appear, some batch systems have been retrofitted with first a web interface, then a web service interface, and now interfaces to mobile devices. Unfortunately, programmers perform most software changes manually, through low-level text edits, which are almost never reused. This makes software development time-consuming, error-prone, and expensive. It is widely known that at least two thirds of software costs are due to evolution, with some industrial surveys claiming 90%. In this talk I will present our ever-growing toolset of interactive program transformations. It currently automates changes from the domains of parallelism [5-8, 10-12], software upgrades [3, 4], testing [2, 9], and end-user programming [1]. I will muse on lessons that can be learned as we move onto automated transformations for mobility.