IBM Views and Viewpoints
IBM Views and Viewpoints
December 2007
Contents
Abstract ........................................................................................................................... 2
Background and current context ..................................................................................... 2
Viewpoint framework ....................................................................................................... 5
IT System Viewpoint library............................................................................................. 6
Basic viewpoints.............................................................................................................. 7
Requirements viewpoint............................................................................................................................................8
Functional viewpoint ................................................................................................................................................9
Operational viewpoint ..............................................................................................................................................9
Validation viewpoint ...............................................................................................................................................10
Abstract
In 1995, Philippe Kruchten of Rational Software Corporation published his now-famous
paper, "The '4+1' View Model of Software Architecture" (see below in Citations in this
article for references). It presented a model for describing the architecture of softwareintensive systems based on the use of multiple, concurrent views that allowed the
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
performance of the system (a Performance Architect) would have a viewpoint that would
define all of the required information about performance. This viewpoint might specify
how to write performance use cases and how to construct a performance model.
A view is the actual architecture description itself (in the context of a related set of
concerns) that is created according to a viewpoint. Therefore, using the previous
example, the performance model artifact would be considered a view of the functional
and operational models, with only the performance-related elements from the system
being a part of the view.
Figure 1 illustrates how viewpoints and views can help address stakeholders' concerns.
It shows how we construct models, which are abstractions of the systems that we are
trying to build. A model is documented through a view, which t conforms to a viewpoint
that addresses the stakeholders' concerns.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
has
Stakeholder
WWW
PC
ON-LINE Browse,
select, Order
creation
Home
Shopping
conforms to
Kiosk
PC
OFF-LINE Browse,
select, Order
creation
Non-food order
creation in-store
Viewpoint
3rd Pty
AmGro
Call Centre
Books &
CDs
e-Services
ManagementR eplenishment
Informat ion
Product
Management
Existing Central
Systems
Warehouse
Credit Agency
Home Shopping
Order Management
Services
System
Catalogue
Development
abstraction of
Model
View
Viewpoint framework
It is impossible to create a single comprehensive model for a complex system that
captures all of its functionality and quality properties and can also be understood by all
of its stakeholders (see Rozanski, Nick and Woods, Eoin). Therefore, the viewpoint
framework partitions the description of a system into a number of separate but
interrelated views that, collectively, describe the whole system.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
This framework consists of a library of basic viewpoints. When those associated views
are combined, they form a representation of the whole system model. Basic viewpoints
are focused on fundamental areas of concern that are applicable to all ways of looking
at a system (for example, everything about the system related to its requirements). They
allow you to reason independently about a particular, fundamental aspect of the system.
The basic viewpoints are augmented by cross-cutting viewpoints that address all
possible information within that cross-cutting context. Cross-cutting viewpoints address
stakeholder concerns, and, in many cases, are associated with the quality properties of
a system. For example, a security cross-cutting viewpoint could filter security
requirements from a requirements basic viewpoint but filter security components from a
functional basic viewpoint.
Basic viewpoints focus on fundamental areas of concern about a system, while crosscutting viewpoints define specific ways of looking at a system considering all possible
information in that context.
Figure 2 provides a visual representation of basic and cross-cutting viewpoints within
the framework.
Figure 2. A framework of basic and cross-cutting viewpoints
Solution: Model elements that capture the solution that satisfies these
requirements and constraints, further organized into these two categories:
o Functional: Focuses on the model elements that are the structural
elements from which the system is built and their relationships (both static
and dynamic)
o Operational: Focuses on how the target system is built from the structural
elements modeled in the functional view and how it integrates into its
environment
Validation: Model elements related to assessing whether a system will deliver its
intended functionality with the expected quality of service
There are, potentially, any number of cross-cutting viewpoints. For example, the IBM IT
System Viewpoint library includes these typical viewpoints.
Basic viewpoints
Basic viewpoints address fundamental areas of concern about the system. They are
supported by one or more "complete" basic models (complete in that they address all
possible cross-cutting concerns). For example, the Requirements basic viewpoint would
specify the conventions and notation for the development of a use-case model that
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
refers to all of the use cases for the system, spanning business purpose, security,
availability, and other cross-cutting concerns.
This section describes each of the basic viewpoints included in the IBM IT System
Viewpoint library:
Requirements viewpoint
Functional viewpoint
Operational viewpoint
Validation viewpoint
Basic viewpoints are supported by complete basic models. These models are complete
in the sense that they address all possible stakeholder concerns associated with the
basic viewpoint. By filtering these complete basic models, you can arrive at partial basic
models that address the concerns of a particular stakeholder and, hence, support crosscutting viewpoints. Both complete and partial basic models reference model elements
(and model element relationships) that are owned by the System model.
The key concepts appearing in the complete basic models associated with the basic
viewpoints are identified in the following section. Notice that the concepts have been
associated with the basic viewpoints that they are most closely identified with through
custom and practice, and that model elements can be referenced by all basic models
when they are useful in those models.
Requirements viewpoint
The Requirements viewpoint describes all of the requirements and constraints placed
on the system. Requirements are either functional or nonfunctional (relevant to either
the qualities that the system has or the constraints imposed on the system).
Table 1 shows the key elements of the Requirements viewpoint.
Table 1. Key elements of the Requirements viewpoint
Element
Description
Actor
Describes a role that a user type or an external system plays with respect to the
target system
Use case
User type
Nonfunctional
requirement
In principle, a complete basic model for the Requirements viewpoint (for example, a use
case model) would contain all of the use cases for the system.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Functional viewpoint
The Functional viewpoint describes the structural elements from which the system is
built and their relationships (both static and dynamic). Table 2 shows the key elements
of the Functional viewpoint.
Table 2. Key elements of the Functional viewpoint
Element
Description
Component
A modular part of a system that encapsulates its content, with a manifestation that is a
replaceable within its environment. A component defines its behavior in terms of provided
and required interfaces. (UML05)
Interface
Specifies one or more operations and is both offered and used by a component.
Operation
Data type
Interaction
Identifies the messages exchanged between one or two components in the context of a
collaboration.
Collaboration Captures the exchange of messages between components in the context of a particular
scenario.
Message
Locality
A modular unit of functionality, which reflects that its functionality will be jointly distributed
but without indicating an exact geographic location. This functionality is made available
through interfaces.
In principle, a complete basic model for the Functional viewpoint (for example, a
component model) would contain all of the components of the system.
Operational viewpoint
The Operational viewpoint describes how the target system is built from the structural
elements modeled in the Functional view and how the target system integrates into its
environment. Table 3 shows the key elements.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Description
Node
Location
A geographical area or position (defines the places where users work and nodes are
located)
Zone
Boundary
The transition between two zones associated with a change in value for a particular
nonfunctional requirement or characteristic
Border
Connection
Deployment
unit
In principle, a complete basic model for the Operational viewpoint (an operational model,
for example) would contain all of the operational elements of the system (nodes, zones,
and so on).
Validation viewpoint
The Validation viewpoint describes the concepts related to assessing and capturing the
outcome of whether a system will deliver its intended functionality with the expected
quality of service. Table 4 shows the key elements.
Table 4. Key elements of the Validation viewpoint
Element
Description
Risk
A risk is a potential event or future situation that may adversely affect the project.
Issue
Finding
Cross-cutting viewpoints
Cross-cutting viewpoints address the concerns that different stakeholders have about
the various qualities of the system. They Cross- define views that filter according to the
information that the different stakeholders are interested in, and they are meant to
answer these kinds of questions:
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
The IBM IT System Viewpoint library includes six cross-cutting viewpoints, but it can be
extended as required. Each of the cross-cutting viewpoints has a different impact on the
basic viewpoints. By applying a cross-cutting viewpoint to a Basic viewpoint, we hope to
draw new insights into the system. Some of these insights will be captured as new
artifacts that provide stakeholders with the additional information they need to address
their concerns. The remainder of this section covers the impacts that the cross-cutting
viewpoints have on the basic viewpoints and what new insights might be obtained by
applying them.
Impact
Requirements
Functional
Operational
Validation
The focus of this view is validating that the proposed solution meets
the business requirements.
Examples
The use-case model shown in Figure 3 is for the Lifestyles is US (LiUS) Home
Shopping System. This example will be used throughout the paper to illustrate its
concepts. While this example is based on an actual customer engagement, it has been
significantly reduced in scope so that important concepts can be explained without
having to involve the reader in too much business detail.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
There is a separate use case description for each of the business use cases shown in
Figure 3. This description will show the steps in the use case, together with alternative
flows. The goal of the Check Stock Availability use case is for the customer to find out
whether an item is available in her local LiUS store. The main flow (only) for that use
case involves these steps:
1. The Actor requests a stock query.
2. The system prompts the Actor to select a store name and enter either an article
or the product name or number.
3. The Actor selects a store name and enters an article or product name. If a
product name is entered, the user may also be required to specify further
selection (color, for example) for that product.
4. The system searches for the selected article or product in the named store and
checks whether it is available or not.
5. The system indicates that the article or product is available.
6. The system returns the availability information for the article or product.
7. The use case ends successfully.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Collaborations between components that explain how they satisfy use cases are shown
by using Unified Modeling Language (UML) sequence diagrams. Figure 5 shows a
sample sequence diagram for the Check Stock Availability use case.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Figure 5. Sequence diagram for the Check Stock Availability use case
Impact
Requirements
Functional
The Functional view is where the static and dynamic behaviors of the technical
components of the system are captured. It includes component and data models
that address the nonfunctional requirements of the system or that address
application-independent requirements, such as intercomponent communication
and persistence or transaction handling mechanisms.
Operational
Validation
The Validation view is concerned with the validation of the technical constraints
imposed on the solution.
Examples
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
The Operational model defines how the system's components get deployed to
geographically distributed nodes and the connections between those nodes. Figure 6
shows the Operational model for the LiUS system, depicting the placement of technical
components that support the business purpose of the system. Nodes are allocated to
various locations (for example, L1.1 Local Customer, L4.1 Application Services, and so
forth). Locations are separated by borders, which are solid or broken lines.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Impact
Requirements
Functional
The Functional view includes guidelines for how to ensure that the right components
and data structures are in place to support the system management requirements.
Examples are components that provide event notification and logging or database
tables that support error logs, and so on.
Operational
This view includes guidelines that show how to define nodes that support system
management products and packages in the deployed system.
Validation
The Validation view describes how to verify that the system management functional
requirements and constraints have been satisfied.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Table 8. Impact of the Availability Cross Cutting viewpoint on the Basic viewpoints
Basic viewpoint
Impact
Requirements
The Requirements view ensures that the availability requirements of the proposed
solution have been adequately stated. For example: "The system must be available
to take orders between the hours of 0600 and 2200."
Functional
The Functional view includes guidelines that show how the systems components
need to provide additional functionality that enable the availability requirements to be
met. For example, when the system is unavailable because of network downtime,
the users may need a method of working in an offline mode, and that may
necessitate identifying additional components that will be required in such instances.
Operational
Validation
The Validation view describes how to validate that the availability requirements have
been satisfied.
Impact
Functional
The Functional view may indicate that some tradeoffs need to be considered, so that
the system meets performance requirements. For example, a strict layering
approach that has components in one layer communicating only with components in
the same layer or the one directly below it may perform very poorly, thus resulting in
a compromise that introduces a less-strict layering policy.
Operational
The Operational view is critical to the systems overall performance. This viewpoint
includes performance models that show how the system will perform for a given set
of inputs, plus Operational models that show how the system needs to be configured
to support the performance requirements. This is usually decided by analyzing the
results of executing the Performance model with different parameters.
Validation
The Validation view describes how to validate that the system performance
requirements have been satisfied.
Examples
In this example. we consider what a (partial) Performance model for the LiUS system
might look like and what information is needed to build it. A Performance model shows
different performance results that could be achieved for different business processes by
varying the fundamental units of work associated with components and nodes of the
system. These fundamental units of work are referred to as the atomic characteristics of
the system. They refer to the various units of work and their associated costs, which are
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
used when describing and measuring the qualities of an IT system. The Performance
cross-cutting viewpoint would describe which atomic characteristics are important for
building Performance models. In the case of LiUS system, these viewpoints could
include the following characteristics:
Static and dynamic page requests per hour and per visit
Requests involving legacy calls per hour and per visit
Searches per hour and per visit
HTTP request size
HTTP response size
After gathering the atomic characteristics, the next step is to map the key business
processes to the underlying technical components (nodes and connections, for
instance) that support the execution of those processes. This is necessary to
understand the impact of executing a business process on the underlying technical
components that make up an IT system. If you know the atomic characteristics and
understand how business processes map to components and nodes, it is possible to
create a cross-cutting Performance view of the basic Operational view by building a
Performance model of the system.
The simplest way to do this is to put the information into a spreadsheet that enables you
to illustrate the results graphically. By feeding different configurations of the Operational
model into the Performance model and adjusting the atomic characteristics as required,
it is possible to perform different analyses of the performance of the system and look at
the expected results of each.
Figure 7 shows the results from one run of the Performance model for the LiUS system.
This particular model shows the overall response time for several different processes
(load country home page, search, a request involving the legacy system, dynamic and
static page requests), plus how that response time is allocated to different components
and nodes in the system (user system, Internet, LIUS WAN, application server,
database server, legacy system), based on the atomic characteristics exhibited by those
nodes and a particular configuration of the system.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Load country
home page
Internet
LiUS
WAN
Search
App
Server
Request
involving legacy
DB
Server
Dynamic
page request
Legacy
Static page
request
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
Impact
Requirements
The Requirements view ensures that the security requirements of the proposed
solution have been adequately stated. Security requirements may be functional in
nature, such as how users authenticate themselves to the system, or they may be
constraints that are placed on the system, such and what strength of encryption
must be used when encrypting data in the system.
Functional
The Functional view ensures that the right components have been identified to
implement the security requirements, for example components that handle
authentication, authorization, auditing, nonrepudiation, and such. This viewpoint
may also show which components and data elements need to be protected.
Operational
The Operational view will include guidelines that show how the systems
operational environment can be affected by security requirements, including the
need for specialized hardware or software (for example, firewalls).
Validation
The Validation view describes how to validate that the systems security
requirements and constraints have been satisfied.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Tier 2
Tier 3
Content
Management
Cache
Presentation
Content
Static HTML
Templates
Stylesheets
Presentation
Integration &
Delivery
Tier 4
Product
Import
Commerce
Category
Product
Article
Customer
Rules
Application
Integration
Session
Cart
Rules
Read/Write Data
LiUS Services
Transient Data
Read Only Data
Press
Subscription
Summary
The framework presented in this article is an evolution of Philippe Kruchten's 4+1
View Model of Software Architecture. IEEE 1471 advanced and standardized the
concepts introduced by that model, thereby providing a foundation for the IBM
framework of views and viewpoints. This framework provides an extensible way to
organize the description of a system so that aspects of it can be thought through and
understood by all of its stakeholders.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
The IBM IT System Viewpoint library is a catalog of viewpoints built on that framework
for the description of IT systems. Its basic and cross-cutting viewpoints specify different
representations of an IT system to address stakeholder concerns.
By providing a standard way to organize a system description, as well as a set of
conventions for notation, terminology, and semantics to be used in that description, the
framework and the viewpoint library enable consistency for IT system description across
IBM unified methods.
Acknowledgements
The authors thank the following Unified Method Framework team members who
contributed to the ideas in this article:
From IBM Global Business Services: Bruce Anderson, Ian Charters, and
Nicholas Whidborne
From IBM Global Technology Services: Adam Newth
From IBM Rational: David L. Brown, Peter Eeles, Margaret Hedstrom, and Kelli
Houston
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
Logical
Functional
Process
Functional
Operational
Performance
Availability
Physical
Operational
Development
Functional
Use Case
Requirements
Logical view
The Logical view describes the functional aspects of the system and defines its main
subsystems and classes. These concerns are addressed by the static models of the
Functional viewpoint.
Process view
The Process view captures the dynamic aspects of the system, and it is concerned with
nonfunctional requirements, such as performance, scalability, availability, concurrency
and distribution, and fault tolerance.
Many of these concerns are addressed by cross-cutting viewpoints in the IBM IT
System Viewpoint library, but some are addressed solely by basic viewpoints. These
distinctions are made according to the definitions of basic as opposed to cross-cutting
views in the IBM Views and Viewpoints Model of IT Systems framework.
The concurrency aspect of the Process view addresses the concerns of application
architects who need to understand the processes and threads the system will use and
the communication mechanisms used to coordinate their operation. The Functional
viewpoint addresses the process interaction aspects of the Process view through
interaction diagrams within a functional model. Components are mapped to concurrency
elements to describe what parts of the system will run concurrently and what
communication takes place to coordinate their execution. Although the Logical view was
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.
focused primarily on the static description of a system, the Functional viewpoint also
describes its dynamic aspects.
The performance and availability concerns of the Process view are addressed by crosscutting viewpoints referenced in the main article that this appendix is intended to
accompany. Scalability and fault-tolerance are likely candidates for additional crosscutting viewpoints.
Physical view
The Physical view (called the Deployment view in RUP v2003) defines the hardware
topology on which the system is executed. This view shows how the various runtime
components are deployed and how they communicate.
The Operational viewpoint addresses the concerns of the Physical view and broadens
its scope. It is also concerned with the necessary systems management functions and
activities needed to maintain components (for example, software distribution,
responding to alerts, and so forth).
Development view
The Development view (called the Implementation view in RUP v2003) focuses on the
organization of the software in its development environment. The software is packaged
into modules that can be developed by one or a small team of developers, and
subsystems are organized into layers.
The Development views concerns are addressed by the Functional viewpoint. In terms
of artifacts, the packaging structure should be visible at the physical level
(implementation-specific model) of the component model.
Copyright 2007, IBM Corporation. All rights reserved. Published by IBM developerWorks.