'''Author:''' GerardMeszaros '''Context:''' You are capturing the architecture of a system, for the purpose of communicating the architecture to others. '''Problem:''' How do you present the architecture of the system to audiences with potentially diverse needs? '''Forces:''' * There are many potential audiences. * Providing a view for each audience could be very expensive indeed. * The views must somehow be reconciled, at least when the system software is defined. '''Solution:''' Pick a small set of views of the system architecture which satisfy as many of the audiences as possible. The minimum recommended set of views are: * The DeliveryView, which describes the relationships between the various fragments of code. * The InteractionView, which describes the interactions between distinct components in a running instance of the system. In addition to these, the following views may be useful: * The RequirementsView, which describes the relationships between various pieces of the system requirements. * The HierarchyView, which describes the commonality of behavior amongst various system components. Together, this set of views should present a complete picture of the system without creating so many views as to be unmanageable. Of the four views, the first one is the most essential, with the second and third becoming increasingly important as systems become more complex. The HierarchyView is most common in Object Oriented programming languages which support inheritance, but can be quite useful even when the programming language does not support inheritance. -- 19970312 ---- CategorySoftwareArchitecture