A Java-based approach for teaching principles of adaptive and evolvable software

https://doi.org/10.1016/j.scico.2004.02.005Get rights and content
Under an Elsevier user license
open archive

Abstract

The ability to adapt a software artifact is essential toward handling evolving stakeholder requirements. Adaptation is also vital in many areas where software is required to adjust to changing environment conditions (e.g., the growing presence of embedded systems). Current techniques for supporting adaptability and evolvability can be categorized as static (happening at compile-time or design-time), or dynamic (adaptation during the actual execution of the system). This paper describes a special-topics software engineering course that uses Java as a foundation for teaching concepts of static and dynamic adaptation. The course surveys Java-related research in the areas of meta-programming and reflection, aspect-oriented software development, model-driven computing, and adaptive middleware.

Keywords

Java education
Evolvable software
Aspect-oriented software development
Model-integrated computing
Adaptive middleware

Cited by (0)