In ADM steps E through F, the choice of building blocks may be affected by outside events, such as a change in the availability of products. They can also affect and be affected by issues such as the cost of retraining users during migration from one product to another. Perhaps the most important impact though is the effect that building block choice can have on other work in progress within an organization. This section shows how a diagrammatic representation of the building blocks in a system can be used to identify or prioritize future projects.
An important benefit of defining the building blocks and their linkages is that it becomes possible to pick out reusable components in the architecture. The best way to do this is to draw up a matrix of the building blocks used in an architecture and the applications that use them. Such a matrix for a simple subset of the XYZ case is shown in Figure J-11:
Figure J-11: Simple Component/Application Matrix
Careful ordering of the building blocks in the left hand column allows the architect to identify subsets of functionality common to a number of applications. Figure J-12 shows such a subset. In this case the subset of platform, network and customer information database gives a strong indication that the configurator, SOAP1 and customer information applications should be hosted on the same platform.
Figure J-12: Identifying Common Functionality
Such identifiable subsets of building blocks also serve another purpose, which is that they can draw attention to opportunities for component reuse. If in the future XYZ decide to implement a customer care system, adding that into the matrix reveals that there would be significant advantages to building the customer care system on the same building blocks used for the configurator, SOAP1 and customer information applications:
Figure J-13: Using the Matrix to Steer Future Procurement
The key to success in working with building blocks is to establish a useful level of granularity. Too much detail in the chosen set of building blocks will make the architecture unworkable, while too coarse a level of detail will make the work valueless.
Copyright © The Open Group, 1998, 1999