Monday, October 11, 2010

Software Architecture and Design – How to Change!

With time everything changes, so the architecture and design of any software. To avoid Architectural Erosion, one has to manage Architectural changes with great care. To do required changes following are the few techniques:

1. Adaptation: In this technique, single implementation is maintained but it offers interfaces to adopt demanded behavior. To accomplish this configuration parameters (design or compile/build or deployment or run time) are adjusted. Even reimplementation or patch to source code is used. Adapter and Inversion of Control pattern is most used example of this technique. Inheritance is also one of the popular way to achieve adaptation.


2. Replacement: In this technique, various implementations are available. As per the need specific implementation is used.

3. Extension: In this technique, component provides facility to add additional components as and when required (design or compile/build or deployment or run time). This is also called plug-in approach.
To understand Architectural Erosion one can use Inter Service Dependency Model.

Reference:

1. http://architecture-soa-bpm-eai.blogspot.com/2009/01/inter-service-dependency-model.html
2. http://www.methodsandtools.com/archive/archive.php?id=85
3. http://www.lattix.com/g_architecture
4. http://blog.softwarearchitecture.com/2009/04/10-principles-of-change-management.html

No comments:

Post a Comment