Achieving 20/20 Vision Through Architecture Viewpoints

Domain Model Viewpoint

The Domain Model Viewpoint is a depiction of the high level business domain and problem space. It includes the major entities such as customer, supplier, purchase order, and so forth, and their relationships with one another.

UML Class Diagrams or Entity-Relationship diagrams may be used to document the high level business domain. From an architecture perspective, the domain model viewpoint is not about detailed class diagrams of the system or data model diagrams. The purpose is to understand the business problem which needs to be solved.

The domain model viewpoint will be helpful in the solution in many ways, including:

Naming architecture components

Understanding how data will be mapped back to operational systems

Developing message formats for integrating with other systems

Understanding multiplicities between entities such as purchase order and order item which might affect performance

The "How" Viewpoints

You showed restraint and didn't prematurely jump to a solution. With an understanding of the Functional Requirements, Non Functional Qualities and Domain Model viewpoints, you have a good understanding of the "what" and are now ready to consider the "how." There are four viewpoints to consider for articulating the solution.

Conceptual Viewpoint

The Conceptual Viewpoint provides a static view of the solution and the major architectural components. This viewpoint is the central viewpoint. All of the "what" views flow into the conceptual view. All of the "how" views flow from the conceptual view.

To arrive at the chosen solution, a number of candidate solutions should be considered. In evaluating the architectures, particular consideration should be given to how the architecture meets the needs articulated in the functional requirements and non functional qualities. The domain model view will help to name architectural components appropriately. Another key consideration in evaluating alternatives is cost and time constraints. However, try to think more long term about the solution and its total cost over time, not just the initial cost to deliver.

There are a number of diagramming techniques that might be used to represent the conceptual architecture view, including boxes imposed over architecture layers, UML package, or component diagrams; or simple boxes and lines. Often, the conceptual viewpoint is initially formed from white board discussions.

Figure 3: Sample Conceptual Diagram

Architecture Scenario Viewpoint

Whereas the Conceptual Viewpoint is a static view of the solution architecture, the Architecture Scenario Viewpoint is a dynamic view that illustrates how the architecture components interact to perform business or technical functions.

There should be several architecturally significant scenarios from logging on to the system, to making a purchase, and so on. Each scenario can be depicted through UML Sequence Diagrams to show the messages passed between architecture components.

Figure 4: Sample sequence diagram

Architecture scenarios help to identify areas of architecture risk that may need to be proven out through an architecture baseline or performance testing.