Home > Articles > Software Development & Management > Architecture and Design

  • Print
  • + Share This
This chapter is from the book

Our Viewpoint Catalog

Part III of this book presents our catalog of seven core viewpoints for information systems architecture: the Context, Functional, Information, Concurrency, Development, Deployment, and Operational viewpoints. Although the viewpoints are (largely) disjoint, we find it convenient to group them as shown in Figure 3-2.

Figure 3-2

Figure 3-2. Viewpoint Groupings

  • The Context viewpoint describes the relationships, dependencies, and interactions between the system and its environment (the people, systems, and external entities with which it interacts).
  • The Functional, Information, and Concurrency viewpoints characterize the fundamental organization of the system.
  • The Development viewpoint exists to support the system’s construction.
  • The Deployment and Operational viewpoints characterize the system once in its live environment.

You can use the shape and position of the icons in Figure 3-2 to help understand how our viewpoints are related to one another. We have put the Context viewpoint at the top of the diagram to indicate its role as the “overarching” viewpoint that informs the scope and content of all the others. We group the Functional, Information, and Concurrency viewpoints together at the left, to highlight that between them they define how the system provides its functionality.

The viewpoints on the right-hand side are to some extent driven by those on the left; for example, the Development viewpoint defines standards and models for the construction of the architecture’s functional, information, and concurrency elements. We have further grouped the Deployment and Operational viewpoints, since between them, these views define the system’s production environment.

Viewpoint Overview

Table 3–1 briefly describes our viewpoints.

Table 3–2. Viewpoint Catalog

Viewpoint

Definition

Context

Describes the relationships, dependencies, and interactions between the system and its environment (the people, systems, and external entities with which it interacts). The Context view will be of interest to many of the system's stakeholders and plays an important role in helping them to understand its responsibilities and how it relates to their organization.

Functional

Describes the system's runtime functional elements, their responsibilities, interfaces, and primary interactions. A Functional view is the cornerstone of most ADs and is often the first part of the description that stakeholders try to read. It drives the shape of other system structures such as the information structure, concurrency structure, deployment structure, and so on. It also has a significant impact on the system's quality properties such as its ability to change, its ability to be secured, and its runtime performance.

Information

Describes the way that the system stores, manipulates, manages, and dis-tributes information. The ultimate purpose of virtually any computer system is to manipulate information in some form, and this viewpoint develops a complete but high-level view of static data structure and information flow. The objective of this analysis is to answer the big questions around content, structure, ownership, latency, references, and data migration.

Concurrency

Describes the concurrency structure of the system and maps functional elements to concurrency units to clearly identify the parts of the system that can execute concurrently and how this is coordinated and controlled. This entails the creation of models that show the process and thread structures that the system will use and the interprocess communication mechanisms used to coordinate their operation.

Development

Describes the architecture that supports the software development process. Development views communicate the aspects of the architecture of interest to those stakeholders involved in building, testing, maintaining, and enhancing the system.

Deployment

Describes the environment into which the system will be deployed and the dependencies that the system has on elements of it. This view captures the hardware environment that your system needs (primarily the processing nodes, network interconnections, and disk storage facilities required), the technical environment requirements for each element, and the mapping of the software elements to the runtime environment that will execute them.

Operational

Describes how the system will be operated, administered, and supported when it is running in its production environment. For all but the simplest systems, installing, managing, and operating the system is a significant task that must be considered and planned at design time. The aim of the Operational viewpoint is to identify system-wide strategies for addressing the operational concerns of the system's stakeholders and to identify solutions that address these.

Of course, not all of these viewpoints may apply to your architecture, and some will be more important than others. You may not need views of all of these types in your AD, and in some cases there may be other viewpoints that you need to identify and add yourself. This means that your first job is to understand the nature of your architecture, the skills and experience of the stakeholders, and the time available and other constraints, and then to come up with an appropriate selection of views.

While it can be hard to generalize, and it is important to choose your set of views for the specific context in which you find yourself, Table 3–2 lists the relative importance that we have often found each view to have for some typical types of information systems. We suggest you use this table as a starting point when choosing the views to include in your AD.

Table 3–2. Most Important Views for Typical System Types

OLTP Information System

Calculation Service/Middleware

DSS/MIS System

High-Volume Web Site

Enterprise Package

Context

High

Low

High

Medium

Medium

Functional

High

High

Low

High

High

Information

Medium

Low

High

Medium

Medium

Concurrency

Low

High

Low

Medium

Varies

Development

High

High

Low

High

High

Deployment

High

High

High

High

High

Operational

Varies

Low

Medium

Medium

High

  • + Share This
  • 🔖 Save To Your Account