Agility in Model-Driven Software Development ? Implications for Organization , Process , and Architecture

Agile and model-driven development exhibit different constraints with respect to how products should be developed that make the two difficult to reconcile under all circumstances. Model-driven development is most affected by a lack of guaranteed congruence between model and implementation, which can be the result of an agile approach. On the other hand, the model-driven approach tends to defer or complicate feedback, which is critical to agility. If a combination of both approaches is desired, these are some measures: equal importance for forward and reverse engineering, flexible merge and diff support, lightweight modeling languages and core assets, intensive use of interpreter technology, explicit consistency management and structured handling of inconsistencies.

[1]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[2]  David Kaufer,et al.  Flexible Diff-ing in a collaborative writing system , 1992, CSCW '92.

[3]  Regine Freitag,et al.  Making Use of Scenarios for Validating Analysis and Design , 1998, IEEE Trans. Software Eng..

[4]  Bashar Nuseibeh,et al.  Making inconsistency respectable in software development , 2001, J. Syst. Softw..

[5]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[6]  Martin Fowler. Refactoring Improving the Design of Existing Code , 1999 .

[7]  Jan Bosch,et al.  Software product lines: organizational alternatives , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[8]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[9]  Linda M. Northrop SEI's Software Product Line Tenets , 2002, IEEE Softw..

[10]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[11]  Dirk Riehle,et al.  The architecture of a UML virtual machine , 2001, OOPSLA '01.