Presentation: "Where Did My Architecture Go? Preserving software architecture in its implementation"
Time: Wednesday 16:50 - 17:50
Location: Elizabeth Windsor, Fifth Floor
One of the major problems with comprehending and evolving software systems is the difficultly in discerning the design and architecture of the system from the source code. Today’s programming languages do not allow concepts such as components, layers, patterns, mechanisms and so on to be clearly identified and so we rely on naming conventions, comments, package structures and so on. These are a first step but they quickly become overloaded with multiple meanings and often aren’t used consistently throughout the system. Of course if we have accurate, current documentation that matches the software then this resolves the problem, but how often is this the case?
In this talk I’ll provide some practical guidance as to how the architecture of a system can be represented in its implementation, how to keep it visible as a system evolves and how to recover design structures from the code of existing systems. The focus will be on enterprise Java systems, but most of the ideas can also be applied to systems implemented in other technologies such as .NET and C++.