Adaptive Object-Oriented Software Patterns for Adaptive Programming (AP)
December 15th, 2007 | posted by adminAdaptive Programming ideas have been re-invented in many different domains (software engineering, data bases, meta-object protocols, attribute grammars, functional programming, digital signal processing) and since the idea has been used successfully it is time to formulate it in terms of patterns to isolate the key ideas and to make them easier to teach.
Patterns for Adaptive Programming (version 3). Those newer patterns replace some of the patterns below, except the Inventor's Paradox pattern.
We use five patterns to describe AP. The first pattern is called Inventor's Paradox. It has four subpatterns called Structure-Shy-Traversal, Structure-Shy Object and Context. The Class Graph pattern is about customizers for adaptive programs.
Those patterns are useful for designing software architectures, for designers who want to enlarge their design techniques, for methodologists who want to add adaptiveness to their methods, for programming language designers who want to support adaptiveness directly at the programming language level.
Two of the patterns: Structure-Shy-Traversal and Context are improvements of the Visitor pattern described in the Design Patterns book by Gamma et al. Structure-Shy-Traversal is good for describing traversals and Context allows to elegantly describe the visitor objects. Those two patterns are explained in the viewgraphs of the talk: Explaining Demeter/Adaptive Software with Patterns.
The Inventor's Paradox uses several loosely coupled concerns. Structure-Shy Traversal deals with only two concerns: traversals and class graphs. Structure-Shy Object uses also two concerns: textual object representations and extended class graphs. Context uses the two concerns: behavior and behavior modification.
To Download this E-Book Click Here.













Recent comments
3 weeks 6 days ago
12 weeks 4 days ago
17 weeks 2 days ago
18 weeks 3 days ago
18 weeks 3 days ago
18 weeks 3 days ago
29 weeks 3 days ago
29 weeks 4 days ago
29 weeks 5 days ago
30 weeks 2 days ago