localized to facilitate the introduction of higher-capacity replacements. If the project needs to deliver incremental subsets of the system, intercomponent usage must be carefully managed. If the elements of the system are required to be re-usable in other systems, restrict inter-element coupling so that when an element is extracted, it does
not come out with too many attachments to its current environment to be useful. d. Predicting System Qualities by Studying the Architecture It is possible to make quality predictions about a system based solely on an evaluation of its architecture. Architecture evaluation techniques such as the Architecture Tradeoff Analysis Method support top-down insight into the attributes of software product quality that is made possible by software architectures. e. The Architecture Makes It Easier to Reason about and Manage Change Software systems change over their lifetimes. They do so often and often with difficulty. Every architecture partitions possible changes into three categories local, nonlocal, and architectural. A local change can be accomplished by modifying a single element. A nonlocal change requires multiple element modifications but leaves the underlying architectural approach intact. An architectural change affects the fundamental ways in which the elements interact with each other. So an effective architecture is one in which the most likely changes are also the easiest to make. Reasoning about the architecture can provide the insight necessary to make decisions about proposed changes.
f. The Architecture Helps in Evolutionary Prototyping Once an architecture has been defined, it can be analyzed and prototyped as a skeletal system. This helps in two ways The system is executable early in the product's life cycle. Its fidelity increases as prototype parts are replaced by complete versions of the software. A special case of having the system executable early is that potential performance problems can be identified early in the product's life cycle. Each of these benefits reduces the risk in the project. g. The Architecture Enables More Accurate Cost and Schedule Estimates Cost and schedule estimates are an important management tool to enable the manager to acquire the necessary resources and to understand whether a project is in trouble. Cost estimations based on an understanding of the system pieces are, inherently, more accurate than those based on overall system knowledge. Each team will be able to make more accurate estimates for its piece than a project manager will and will feel more ownership in making the estimates come true.
3. Architecture as a transferable, re-usable model The earlier in the life cycle re-use is applied, the greater the benefit that can be achieved. While code re-use is beneficial, re-use at the architectural level provides tremendous leverage for systems with similar requirements. a. Software Product Lines Share a Common Architecture