SAIP (Chapter 10): Reconstructing Software Architecture
Chapter 10 sends us to every architect's nightmare--the challenge of unveiling another architect's bride. Consider the abstract nature of a software architecture and the various iterations that an architecture goes through before being handed over to a development team, then consider the decisions lost in translation during implementation, and then the enhansment and bug fixes that take place over the years, not to mention upgrades to resources in the environment and the loss of members of the original development team, it is imperative that reconstructing a software architecture from the existing application is a very challenging task.
It becomes a question of degree of difficult when reconstructing an architecture. The quest is less difficult if you can round up important contributors to the original application--specifically the original architect or a team lead. Anytime a reconstructor can find some one who is able to answer questions pertaining to the architecture, the easier it is to reproduce the archictural documentation. However, we find in most cases that the original architect is no longer with the organization and various teams of developers have tailored the system in various ways, so more often than not, there is hardly anyone belonging to the original team of developers available for a reconstruction. This is where I disagree quite a bit with Bass et al., because in their suggested approaches, they seem to assume that there is an architect of the existing system present to answer questions.
The authors also suggest the use of tools to reverse engineer the system and to extract the architecture of the sytsem. In an environment that is built on a single platform with a single language, these tools can be very productive, but they are much less productive when the system is made up of different languages --since these tools are normally language specific. Also the author mentions that these tools run against the code base often miss extraction of the runtime objects, especially in a system where polymorphism is greatly used.
Ultimately, although reconstructing an architecture is not a simple task, it is an unavoidable task if a legacy system is to be reengineered successfully from a system that lacks proper documentation. There are several approaches that can be considered to ease up the process of reconstruction, and the more tools available the better.
It becomes a question of degree of difficult when reconstructing an architecture. The quest is less difficult if you can round up important contributors to the original application--specifically the original architect or a team lead. Anytime a reconstructor can find some one who is able to answer questions pertaining to the architecture, the easier it is to reproduce the archictural documentation. However, we find in most cases that the original architect is no longer with the organization and various teams of developers have tailored the system in various ways, so more often than not, there is hardly anyone belonging to the original team of developers available for a reconstruction. This is where I disagree quite a bit with Bass et al., because in their suggested approaches, they seem to assume that there is an architect of the existing system present to answer questions.
The authors also suggest the use of tools to reverse engineer the system and to extract the architecture of the sytsem. In an environment that is built on a single platform with a single language, these tools can be very productive, but they are much less productive when the system is made up of different languages --since these tools are normally language specific. Also the author mentions that these tools run against the code base often miss extraction of the runtime objects, especially in a system where polymorphism is greatly used.
Ultimately, although reconstructing an architecture is not a simple task, it is an unavoidable task if a legacy system is to be reengineered successfully from a system that lacks proper documentation. There are several approaches that can be considered to ease up the process of reconstruction, and the more tools available the better.

0 Comments:
Post a Comment
<< Home