Computational reflection in class based object-oriented languages
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
A simple and unifying approach to subjective objects
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Higher-Order and Symbolic Computation
FEAT: a tool for locating, describing, and analyzing concerns in source code
Proceedings of the 25th International Conference on Software Engineering
Extending object oriented programming in Smalltalk
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Polymetric Views-A Lightweight Visual Approach to Reverse Engineering
IEEE Transactions on Software Engineering
Partial behavioral reflection: spatial and temporal selection of reification
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Using events to debug Java programs backwards in time
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
A survey of trace exploration tools and techniques
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Detecting Implicit Collaboration Patterns
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
The Class Blueprint: Visually Supporting the Understanding of Classes
IEEE Transactions on Software Engineering
Characterizing the Evolution of Class Hierarchies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
Proceedings of the 27th international conference on Software engineering
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
NavTracks: Supporting Navigation in Software Maintenance
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Identifying traits with formal concept analysis
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
How Developers Drive Software Evolution
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
Modeling history to analyze software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Refactoring-Aware Configuration Management for Object-Oriented Programs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
How Developers Develop Features
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Example-Driven Reconstruction of Software Models
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Tracking Objects to Detect Feature Dependencies
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Characterizing and Understanding Development Sessions
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Using concept analysis to detect co-change patterns
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Unanticipated partial behavioral reflection: Adapting applications at runtime
Computer Languages, Systems and Structures
Encapsulating and exploiting change with changeboxes
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Transactional memory for smalltalk
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Taking an object-centric view on dynamic information with object flow analysis
Computer Languages, Systems and Structures
Practical Object-Oriented Back-in-Time Debugging
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Exploiting Runtime Information in the IDE
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
On the revival of dynamic languages
SC'05 Proceedings of the 4th international conference on Software Composition
Software Engineering for Ensembles
Software-Intensive Systems and New Computing Paradigms
Model-Centric, Context-Aware Software Adaptation
Software Engineering for Self-Adaptive Systems
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Hi-index | 0.01 |
Few real software systems are built completely from scratch nowadays. Instead, systems are built iteratively and incrementally, while integrating and interacting with components from many other systems. Adaptation, reconfiguration and evolution are normal, ongoing processes throughout the lifecycle of a software system. Nevertheless the platforms, tools and environments we use to develop software are still largely based on an outmoded model that presupposes that software systems are closed and will not significantly evolve after deployment. We claim that in order to enable effective and graceful evolution of modern software systems, we must make these systems more amenable to change by (i) providing explicit, first-class models of software artifacts, change, and history at the level of the platform, (ii) continuously analysing static and dynamic evolution to track emergent properties, and (iii) closing the gap between the domain model and the developers' view of the evolving system. We outline our vision of dynamic, evolving software systems and identify the research challenges to realizing this vision.