Program evolution: processes of software change
Program evolution: processes of software change
Implementation of a compiler for a semantic data model: Experiences with taxis
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Types and persistence in database programming languages
ACM Computing Surveys (CSUR)
Literate programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Specifying Distributed Software Architectures
Proceedings of the 5th European Software Engineering Conference
Avoiding Confusion in Metacircularity: The Meta-Helix
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
Eclipse Modeling Framework
Towards a Precise Definition of the OMG/MDA Framework
Proceedings of the 16th IEEE international conference on Automated 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
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
OMeta: an object-oriented language for pattern matching
Proceedings of the 2007 symposium on Dynamic languages
Highly dynamic behaviour adaptability through prototypes with subjective multimethods
Proceedings of the 2007 symposium on Dynamic languages
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
Domain specific language implementation via compile-time meta-programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transactional memory in a dynamic language
Computer Languages, Systems and Structures
Practical, pluggable types for a dynamic language
Computer Languages, Systems and Structures
Exploiting Runtime Information in the IDE
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Change-Enabled Software Systems
Software-Intensive Systems and New Computing Paradigms
Accomplishments and research challenges in meta-programming
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Framework-Specific modeling languages with round-trip engineering
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
SC'06 Proceedings of the 5th international conference on Software Composition
Magritte: a meta-driven approach to empower developers and end users
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Integrated definition of abstract and concrete syntax for textual languages
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and 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
Self-adaptive architectures for autonomic computational science
SOAR'09 Proceedings of the First international conference on Self-organizing architectures
Hi-index | 0.00 |
Software must be constantly adapted to changing requirements. The time scale, abstraction level and granularity of adaptations may vary from short-term, fine-grained adaptation to long-term, coarse-grained evolution. Fine-grained, dynamic and context-dependent adaptations can be particularly difficult to realize in long-lived, large-scale software systems. We argue that, in order to effectively and efficiently deploy such changes, adaptive applications must be built on an infrastructure that is not just model-driven, but is both model-centric and context-aware . Specifically, this means that high-level, causally-connected models of the application and the software infrastructure itself should be available at run-time, and that changes may need to be scoped to the run-time execution context. We first review the dimensions of software adaptation and evolution, and then we show how model-centric design can address the adaptation needs of a variety of applications that span these dimensions. We demonstrate through concrete examples how model-centric and context-aware designs work at the level of application interface, programming language and runtime. We then propose a research agenda for a model-centric development environment that supports dynamic software adaptation and evolution.