You are on page 1of 9

The 4+1 View

Model of
Architecture
PHILIPPE B. KRUCHTEN, Rational Software

*The 4+1 V?ew Model e all have seen turely partitioning the software or
many books and articles in which a overemphasizing one aspect of devel-
organizes a description of a single diagram attempts to capture the opment (like data engineering or run-
sojimare architecture usingjive gist of a system architecture. But when time efficiency), development strategy,
you look carefully at the diagram’s or team organization. Other software
concurrent views, each of which boxes and arrows, it becomes clear that architectures fail to address the con-
the authors are struggling to represent cerns of all “customers.”
addressesa speczj%set of concerns. more in one diagram than is practical. Several authors have noted the
Architects capture their design Do the boxes revpresent running pro- problem of architectural representa-
grams? Chunks of source code? tion, including David Garlan and
decisions in four- views and use Physical computers? Or merely logical Mary Shaw,’ Gregory Abowd and
groupings of functionality? Do the Robert Allen,’ and Paul C1ements.j
thefiJZh view to illustrate and
arrows represent compilation depen- The 4 + I View Model was devel-
validate them. dencies? Control flows? Dataflows? oped to remedy the problem. The 4 +
Usually the answer is that they repre- 1 model describes software architec-
sent a bit of everything. ture using five concurrent views. As
Does an architecture need a single Figure 1 shows, each addresses a spe-
architectural style? Sometimes the cific set of concerns of interest to dif-
software architecture suffers from sys- ferent stakeholders in the system.
tem designers who go too far, prema- + The logical view describes the

42 O/407459/94/$04 00 0 1994 WE NOVEMBER 1995


design’s object model when an object-
oriented design method is used. To
use (components, containers, and con-
nectors), capture the forms and pat-
I ~~
Endusers Programmers
design an application that is very data- functionality l softwaremanagement
terns that work, and capture the ratio- l

driven, you can use an alternative nale and constraints, connecting the Logicalview . Development‘,~ew
approach to develop some other form architecture to some of the require- **.I)-=-. .<.?_
of logical view, such as an entity- ments. Scenarios
relationship diagram. Each view is described by what we ’ hb*.e _/- ’
+ The process view describes the call a “blueprint” that uses its own par- Processview - Physicalview
design’s concurrency and synchroniza- ticular notation. The architects can . IIexe ,_s_l .. - ” .wi ”
tion aspects. also pick a certain ahitectural style for Systemintegrators Systemengineers
l performance l systemtopology
+ The physical view describes the each view, thus allowing the coexis- l scolobility l delivery
mapping of the software onto the tence of multiple styles in one system. l throughput l installation

hardware and reflects its distributed The 4+1 View Model is rather l telecommunication

aspect. generic: You can use notations and


+ The development view describes tools other than those we describe, as Figure 1. The 4+1 View Model is
the software’s static organization in its well as other design methods, especial- used to organize the description of the
development environment. ly for the logical and process decom- architecture of a software-intensive
Software designers can organize the positions. system.
description of their architectural deci-
sions around these four views, and
then illustrate them with a few selected 4tl VIEW MODEL the major functionality and perfor-
use cases, or scenarios, which constitute mance requirements of the system as
a fifth view. The architecture is partial- Software architecture deals with well as other, nonfunctional require-
ly evolved from these scenarios. abstraction, decomposition and com- ments such as reliability, scalability,
At Rational, we apply Dewayne position, and style and aesthetics. It portability, and system availability.
Perry and Alexander Wolfs formula’ also deals with the design and imple-
Software architecture = [Elements, mentation of software’s high-level Logical view. The logical view pri-
Forms, Rationale/Constraints} structure. marily supports the functional require-
Designers build architectures using ments - the services the system
independently on each view. For each several architectural elements in well- should provide to its end users.
view we define the set of elements to chosen forms. These elements satisfy Designers decompose the system into

Displaynnd
user ~olerfote
ExternalInterfores/

Simulationand
Class ~~~~~ Assotiotion Translation : troining
Conversolion ~ services
.- xw&A-&1-
Containment,
-.
oggregotion
‘; Classutility Usage Connectioni, Flight Air troific
Terminal
services r: manogement monogement
-+ Inheritance .-+&J
*- 9 Y L . .a,
formalorguments
porometerized -- -~---, kiStontiOtiOn
Controller Aeronautical
class
mformotion

Classcategory

Figure 2. (A) Notation jh the logical blueprint; (B) logical blueprint for the Tt!lic PBX; (C) bluepht for an ail--traj
control system.

Best
----
Copy ~~Available
IEEE SOFTWARE 43
a set of key abstractions, taken mainly erably to account for only those items events, such as a “start,” “stop,” or
from the problem domain. These that are architecturally significant. The “digit.” The controller also bears all
abstractions are objects or object classes numerous adornments are not very the hard real-time constraints. This
that exploit the principles of abstrac- useful at this level of design. We use class has many subclasses that cater to
tion, encapsulation, and inheritance. In Rational Rose to support the logical- different interfaces.
addition to aiding functional analysis, view design. The Terminal object maintains the
decomposition identifies mechanisms state of a terminal and negotiates ser-
and design elements that are common Style.For the logical view, we use an vices on behalf of that line. For exam-
across the system. object-oriented style. The main design ple, it uses the services of the
We use the RationaUBooch guideline we follow is to keep a single, Numbering Plan object to interpret
approach’ to represent the logical view coherent object model across the dialing.
through class diagrams and templates. entire system, avoiding the premature The Conversation object represents
A class diagram shows a set of classes specialization of classes and mecha- a set of terminals engaged in a conver-
and their logical relationships: associa- nisms for each site or processor. sation. It uses the Translation Services
tion, usage, composition, inheritance, object (for accessing a directory, map-
and so on. Designers can group sets of Examples.Figure 2b shows the main ping a logical address to a physical one,
related classes into class categories. Class classes involved in a sample PBX archi- and routing) and the Connection
templates focus on each individual class; tecture we developed at Alcatel. A PBX Services object to establish a voice path
they emphasize the main class opera- establishes communication among ter- among the terminals.
tions and identify key object character- minals. A terminal might be a tele- Larger systems contain dozens of
istics. If an object’s internal behavior phone, a trunk line (a line to the cen- architecturally significant classes, such
must be defined, we use state-transi- tral of&e), a tie line (a private PBX-to- as the top-level class diagram of an air-
tion diagrams or state charts. Class util- PBX line), or a feature phone line. traffic control system’ in Figure 2c.
ities define common mechanisms or Different lines are supported by dif- The system, developed by Hughes
services. ferent line-interface cards. The Aircraft of Canada, contains eight class
Controller object decodes and injects categories.
NOM~OII.We derived the logical-view all the signals on the line-interface
notation in Figure 2a from the Booth card, translating card-specific signals to Processview. The process view takes
notation, which we simplified consid- and from a small, uniform set of into account some nonfunctional

Terminalprocess

-- .
Controllerprocess
Component Connectors
~~ Unspecified

Process

-wA.r
.

tontroller tosk “...S (ontroller task


[high rate)
(low rote)
.&‘YS.-

&we 3. (A) Notation for the process view; (B) partial process blueprint for the Tt!lic PBX.

Best Copy Available NOVEMBER 1995


requirements, such as performance and the same process or processing node. Example.Figure 3b shows a partial
system availability. It addresses con- + Minor tasks are additional tasks process view for the PBX introduced
currency and distribution, system introduced locally for implementation in Figure 2b. All terminals are handled
integrity, and fault-tolerance. The reasons such as cyclical activities, by a single terminal process that is dri-
process view also specifies which buffering, and time-outs. They can be ven by messages in its input queues.
thread of control executes each opera- implemented as Ada tasks or light- The Controller objects are executed
tion of each class identified in the logi- weight threads, for example, and com- on one of three tasks that comprise the
cal view. municate bvi rendezvous or shared controller m-ocess: a low cvcle-rate
Designers describe the process view memorv. ’ task, which scans all
at several levels of abstraction, each We ‘use the process inactive terminals (200
one addressing a different concern. At blueprint to estimate TODEVELOP ms) and puts any termi-
the highest level, the process view can
be seen as a set of independently exe-
message flow and
process loads. It is also
THEPROCESS
VIEW , nal becoming active in
the scan list of the high
cuting logical networks of communi- possible to implement THEDESIGNER cycle-rate task (10 ms),
cating programs (“processes”) that are
distributed across a set of hardware
a “hollow”
view with
process
dummy
PARTITIONS
THE which detects any signif-
icant changes of state
resources, which in turn are connected process loads and mea- SOFTWARE
INTO and passes them to the
by a bus or local area network or wide
area network. Multiple logical net-
sure its performance
on a target system.’
SEPARATE
TASKS. main controller
which interprets
task,
the
works may exist simultaneously, shar- changes and communi-
ing the same physical resources. For Ivofufion.Our process-view notation is cates them by message to the corre-
example, you can use independent log- expanded from Booth’s original nota- sponding terminal. Message passing
ical networks to separate on- and off- tion for Ada tasking and focuses on within the controller nrocess is done
1

line operational systems and to repre- architecturally significant elements, as through shared memory.
sent the coexistence of simulation or Figure 3a shows.
test versions of the software. We have used TRW’s Universal Development view. The develonment
A process is a group of tasks that Network Architecture Services to view foc&es on the organizationLof the
form an executable unit. Processes rep- build and implement the processes and actual software modules in the soft-
resent the level at which the process tasks (and their redundancies) into net- ware-development environment. The
view can be tactically controlled (start- works of m-ocesses. UNAS contains a 1 software is nackaged in small chunks
I

ed, recovered, reconfigured, shut tool - the Software Architects - program’ librahes or subsystems -
down, and so on). In addition, process- Lifecycle Environment - that sup- that can be developed by one or more
es can be replicated to distribute pro- ports our notation. SALE lets us depict developers. The subsystems are orga-
cessing load or improve system avail- the process view graphically, including nized in a hierarchy of layers, each
ability. specifications of the possible intertask- layer providing a narrow and well-
communication paths. It can then defined interface to the layers above it.
fortifioning. To develop the process automatically generate the correspond- The development view takes into
view, designers partition the software ing Ada or C++ source code. Because it account internal requirements related
into a set of independent tasks: separate supports automatic code generation, to ease of development, software man-
threads of control that can be individu- SALE makes it easier to change the agement, reuse or commonality, and
ally scheduled on separate processing nrocess view.
I
constraints imnosed bv, the toolset or
nodes. the program;ning language. The
We separate tasks into two groups: Style. Several styles would fit the development view supports the alloca-
+ Major tasks are the architectural process view. For example, picking tion of requirements and work to
elements that can be uniquely from Garlan and Shaw’s taxonomy- 1 teams, and supports cost evaluation,
addressed (designated from another you can use pipes and filters or planning, monitoring of project
task). They communicate through a client/server, with variants of multi- progress, and reasoning about software
set of well-defined intertask-commu- ple-client/single-server and multiple- reuse, portability, and security. It is the
nication mechanisms: synchronous clients/multiple-servers. For more basis for establishing a line of product.
and asynchronous message-based complex systems, you can use a style The development view is represent-
communication services, remote pro- similar to the ISIS system’s process ed by module and subsystem diagrams
cedure calls, event broadcasts, and so groups, as described by Kenneth that show the system’s export and
on. Major tasks should not make Birman using another notation and import relationships. You can describe
assumptions about their collocation in toolset.* the complete development view only

IEEE SOFTWARE 45
Components connector
.
Reference
lomp~lation
Module
dependency
(include,“with”)
after you have identified all the soft- favor of a simpler, layer-by-layer
ware elements. However, you can list release strategy.
the rules that govern the development
view - partitioning, grouping, and Examples. As Figure 5 shows, the
visibility - before you know every ele- Hughes Air Traffic System has five
ment. development layers.’ Layers 1 and 2 -
utilities and support mechanisms -
Layer
Ivotahr. As Figure 4 shows, we again constitute a domain-independent, dis-
use a variation of the Booth notation, tributed infrastructure that is common
Figure 4. Notation for a developmen; limited to architecturally significant across the line of products. These lay-
blueprint. items. Rational’s Apex development ers shield the application from varia-
environment supports the definition tions in hardware platforms, operating
and implementation of the develop- systems, or off-the-shelf products such
ment view, the layering strategy as database-management systems. To
Human-computer interface described above, and design-rule this infrastructure, layer 3 adds an air-
Layer ’ Externolrvrtemr enforcement. Rational Rose can draw traffic control framework to form a
ATCfu&onal areas:flight manage- the development blueprints for Ada domain-specific software architecture.
Layer4 ment, sectormonogement,ond IO on. and C++ at the module and subsystem Layer 4 adds a palette of functionality,
level, in forward engineering, and by and layer 5 contains most of the user
Aeronouticolclosles
‘Oyer 3 ATt classes reverse engineering from the develop- interface and the interfaces to external
ment source code. systems. This top layer is customer-
Supportmechanisms:
and product-dependent. Spread across
Layer 2 communication,time, storoge,
resourcemanagement,and so on Style. We recommend you define the five layers are some 72 subsystems,
four to six layers of subsystems in the each containing from 10 to 50 mod-
Layer 1
Bindings
Commonutilities ,ow~,eve,rerviter
development view. One design rule we ules. We represent these subsystems
follow here is that a subsystem can on additional, more detailed blue-
only depend on subsystems in the same prints.
or lower layers. This minimizes the
Figure fi. The five layers of Hughes development of very complex networks Physical view. The physical view
Air Trafic System. of dependencies between modules in takes into account the system’s non-

Components

Communicafion
line
mm*, . *.v
Processor Communication
(non-permanent)
-A .A
- * Unidirectionalcommunication
F F
primary * ) backup
,a-- - High-bondwidthcommunication,
*&SW V,‘S “’
Otherdevice BUS

.. .C 4. . . PC .C .I .*
K K K K K K K K

(Al (Bl , ._

‘igure 6. (A) Notation fey a physical blueprint; (@ a PBX physical blueprint.

46 Best
---
Copy Available NOVEMBER 1995
F (
hverralion
process prorerr
w* _q * v--w--
v
Termlnol
F * F *
proteir Pseudo-tentrol keudo-cenrrol
functional requirements such as system .__ I - prOtW pot&S
availability, reliability (fault-tolerance), ‘* “?’r-=- A
performance (throughput), and scala- . .
bility. The software executes on a net- K ’
Controller (onveriotion hrerrotion
work of computers (the processing prorerr prow prow5
nodes). The various elements identi- b_,i-” *‘A - I *
(Al
fied in the logical, process, and devel- . 7
opment views - networks, processes, Terminal Terminal
tasks, and objects - must be mapped process prow
onto the various nodes. Several differ- ~‘?c p”- ‘. A=
ent physical configurations will be used
- some for development and testing,
others for system deployment at vari-
ous sites or for different customers. process proterr prcters
The mapping of the software to the ’ =‘** L _‘-” *-“x-- ,
nodes must therefore be highly flexible
and have a minimal impact on the . .
source code itself. tw tine *tardr he turds he cords

Notation.Because physical blueprints ___ ___


can become very messy in large sys- Fip-e 7. (A) A small PBX physical view with process allocation; (B) a physical
terns, we organize them in several blueprint for a larger- PBX; C, F, and K are three types of computers that have
forms, with or without the mapping different capacities azd support three different executables.
from the process view, as Figures 6 and
7 show.
UNAS provides us with a data-dri- ers discover architectural elements 5. When a valid sequence of digits
ven means of mapping the process during the architecture design, and has been entered, the terminal opens a
view onto the physical view. This lets + it validates and illustrates the conversation.
us make many changes to the mapping architecture design, both on paper and
without modifying the source code. as the starting point for the tests of an
Figure 6b shows a possible hard- architectural prototype. CORRESPONDENCE
AMONG VIEWS
ware configuration for a large PBX;
Figures 7a and 7b show mappings of Nototion. The scenario notation is The various views are not fully
the process view on two different phys- very similar to that used for the logical independent. Elements of one view are
ical views, a small and a large PBX. view, except that it uses the connectors connected to elements in other views,
from the process view to indicate following certain design rules and
Scenarios. We use a small subset of object interactions. As for the logical heuristics.
important scenarios - instances of use view, we manage object-scenario dia-
cases - to show that the elements of grams using Rational Rose. Figure 8 From logical view to process view. We
the four views work together seamless- shows a fragment of a scenario for the identify several important characteris-
ly. For each scenario, we describe the small PBX. The corresponding script tics of the logical view classes: autono-
corresponding scripts (sequences of reads: my, persistence, subordination and dis-
interactions between objects and 1. The controller of Joe’s phone tribution.
between processes) as described by detects and validates the transition Autonomy identifies whether objects
Ken Rubin and Adele Goldberg.’ The from on-hook to off-hook and sends a are active, passive, or protected. An
scenarios are in some sense an abstrac- message to wake the corresponding active object invokes other objects’
tion of the most important require- terminal object. operations or its own operations, and
ments. Their design is expressed using 2. The terminal allocates some has full control over other objects
object-scenario and object-interaction resources and tells the controller to invoking its operations. Apassive object
diagrams.’ emit a dial tone. never spontaneously invokes any oper-
This view is redundant with the 3. The controller receives digits ations, and has no control over other
other ones (hence the “+l”), but it and transmits them to the terminal. objects invoking its operations. A pro-
plays two critical roles: 4. The terminal uses the number- tected object never invokes sponta-
+ it acts as a driver to help design- ing plan to analyze the digit flow. neously any operations but arbitrates

IEEE SOFTWARE 47
Best Copy Available
--
-

(1) off-hook )

loe:tonlroller . (‘) diol ‘One (4) digit


c 1oe:terminol * Numberingplan
(3) digit

(5) open tonverrotion


.
mapped onto a single agent either to
tonverrotion assure sequential execution or because
the class operations are infrequently
invoked.
Figure 8. A scenario example from a local-call selectiolz phase. Finally, this is not a linear, deter-
ministic process leading to an optimal
process view; it requires a few itera-
the invocation of its own operations. ing additional processes sharing the tions to reach an acceptable compro-
Persistence identifies whether objects load); mise. There are numerous other ways
are transient or permanent. Do they + separate concerns between differ- to proceed.‘,‘”
survive the failure of a process or ent areas of the software; and
processor? Subordination determines if + achieve a higher system availabili- Exumple.The exact method used to
the existence or persistence of an ty (with backup processes). construct the mapping is complex.
object depends upon another object. However, a brief example from a hypo-
Distribution determines if the object’s Determining concurrency. We use two thetical air-traffic control system can
state or operations are accessible from strategies simultaneously to determine illustrate it. Figure 9 shows how a
many nodes in the physical view and the “right” amount of concurrency and small set of classes from the system can
from several processes in the process define the set of necessary processes. be mapped onto processes.
view. Keeping in mind the set of potential The flight class is mapped onto a set
In the logical view of the architec- physical target views, we can proceed of flight agents that must quickly
ture, we could consider each object as either from the inside out or the out- process many flights and spread the
active and potentially concurrent; that side in. load across multiple CPUs while con-
is, behaving in parallel with other + Inside out. Starting from the logi- tending with large numbers of external
objects and paying no more attention cal view, we define agent tasks that stimuli. The persistence and distribu-
to the exact degree of concurrency than multiplex a single thread of control tion aspects of the flight processing are
it needs to achieve this effect. Hence across multiple active objects of a given deferred to a flight serve?‘, which is
the logical view takes into account only class. We execute subordinate objects duplicated to assure system availability.
the requirements’ functional aspects. on the same agent as their parent. Flight profile or jhgbt clearance is always
However, when we define the Classes that must be executed in mutu- subordinate to a flight, and although
process view, it is not practical to al exclusion, or that require a minimal there are complex classes, they share
implement each object with its own amount of processing share a single the processes of the flight class. Flights
thread of control (such as its own Unix agent. This clustering proceeds until are distributed to several other
process or Ada task) because of the we have reduced the processes to a processes, notably for display and
huge overhead this imposes. More small number that still allows distribu- external interfaces.
over, if objects are concurrent, there tion and use of the physical resources. A sectorization class establishes a par-
must be some form of arbitration for + Outside in. Starting with the physi- titioning of airspace to assign con-
invoking their operations. cal view, we identify external stimuli troller jurisdiction over flights. Because
On the other hand, multiple threads (requests) to the system, and then of its integrity constraints, this class
of control are needed to define client processes to handle the must be handled by a single agent, but
+ react rapidly to certain classes of stimuli and server processes that pro- it can share the server process with the
external stimuli, including time-relat- vide (rather than initiate) services. We flight, as updates are infrequent.
ed events; use the problem’s data integrity and Locations, airspace, and other static
+ take advantage of multiple CPUs serialization constraints to define the aeronautical information are protected
in a node or multiple nodes in a dis- right set of servers and allocate objects objects, shared among several classes.
tributed system; to the client and servers agents. We These are rarely updated and mapped
+ increase CPU utilization by allo- then identify which objects must be on their own server and distributed to
cating CPUs to other activities when a distributed. other processes.
thread of control is suspended during The result is a mapping of classes
another activity (such as access to some (and their objects) onto a set of tasks From logical view to development view. A
external device or access to some other and processes of the process view. class is usually implemented as a mod-
active object); Typically, there is an agent task for an ule, and large classes are decomposed
+ prioritize activities (and thus active class, with some variations, such into multiple packages. Collections of
potentially improve responsiveness); as several agents for a given class to closely related classes - class cate-
+ support system scalability (by hav- increase throughput or several classes gories - are grouped into subsystems.

48 Best Copy Available NOVEMBER 1995


flight ierlorizotion
0 l 0

rleoronce profile

l ’

To define subsystems, we must consid-


er additional constraints, such as team ~orotlon girspote
organization, expected magnitude of (Al
code (typically 5,000 to 20,000 lines of
code per subsystem), degree of expect-
ed reuse and commonality, as well as flight
strict layering principles (visibility
Sotkup
issues), release policy, and configura- .
tion management. Thus, we usually proflle .
v
end up with a view that does not have a
one-to-one correspondence with the
clearonte Multiple flight ogents Flightserver
logical view. I

General issues. The logical and devel-


jettorlzotlon .
opment views are very close, but
address very different concerns. We
have found that the larger the project, Singlesectorizotionagent
the greater the distance between these lototion
views. This also holds for the process
and physical views. For example, com-
paring Figure 2c with Figure 5, there is riirrpote
no one-to-one mapping from the class Aeronouwi info server
categories to the layers. The External
Interface/Gateway category is spread
across several layers: communications Figure 9. Mappingfi-om the (A) logical to the (B) process view.
protocols are in subsystems in or below
layer 1, general gateway mechanisms
are in subsystems in layer 2, and the known at the end of the phases to vali- create a strawman architecture and
actual specific gateways are in layer 5 date the architecture. We advocate a script the scenarios, identifying major
subsystems. more iterative development, in which abstractions (such as classes, mecha-
Processes and process groups are the architecture is actually prototyped, nisms, processes, subsystems)” and
mapped onto the available physical tested, measured, and analyzed, and decomposing them into sequences of
hardware in various configurations for then refined in subsequent iterations. pairs (object, operation).
testing or deployment. Birman Our approach not only mitigates Next, organize the architectural
describes some very elaborate schemes the risks associated with the architec- elements into the four views, imple-
for this mapping in the ISIS project.” ture, it also helps build teams and ment the architecture, test it, and
In terms of which classes are used, improves training, architecture famil- measure it. This analysis helps you
scenarios relate mainly to the logical iarity, tool acquisition, the initial run- detect flaws or potential enhance-
view, or to the process view when in period for procedures and tools, and ments. Finally, capture lessons
interactions between objects involve so on. (This holds for evolutionary, learned.
more than one thread of control. rather than throwaway prototypes.) An Begin the next iteration by reassess-
iterative approach also helps you refine ing the risks, extending the scenarios
and better understand the require- to consider, and selecting a few addi-
ITERATIVEPROCESS ments. tional scenarios on the basis of risk or
extending architecture coverage. Then
Bernard Witt and his colleagues Scenario-driven approach. Scenarios try to script those scenarios in the pre-
describe four phases for architectural capture the system’s critical functional- liminary architecture and discover
design - sk e t c h’mg, organizing, speci- ity - functions that are the most additional architectural elements - or
fying, and optimizing - and subdivide important, are used most frequently, significant architectural changes -
them into 12 steps. lo Although they do or present significant technical risk. that must occur to accommodate these
indicate that some backtracking may To begin, select a few scenarios on scenarios. Update the four views and
be needed, we think their approach is the basis of risk and criticality. You revise the existing scenarios on the
too linear for ambitious or unprece- may synthesize a scenario by abstract- basis of these changes. Next, upgrade
dented projects, because too little is ing several user requirements. Then the implementation (the architectural

IEEE SOFTWARE
Best Copy Available
~-~
49
prototype) to support the new extend- development organization. Hence the respected to maintain the architectural
ed set of scenarios. iteration may last two to three weeks integrity of the system.
At this point, you should test the for a small project (10,000 lines of
architecture by measuring under load
(in the target environment, if possible)
and review all five views to detect
code), or from six to nine months for a
large command-and-control
(700,000 lines of code or larger).
system W e have used the 4+1 View Model
on several large projects, cus-
tomizing it and adjusting the termi-
potential simplifications, commonali- nology somewhat.5 We have found
ties, and opportunities for reuse. Then Tailoring the model. Not all software that the model actually allows the vari-
update the design guidelines and ratio- architectures need every view in the ous stakeholders to find what they
nale and capture lessons learned. And 4+1 View Model. Views that are use- need in the software architecture.
then loop again. less can be omitted. For example, you System engineers approach it first
Finally, the initial architectural pro- could eliminate the physical view if from the physical view, then the
totype evolves to become the real sys- there is only one processor or the process view; end users, customers,
tem. After two or three iterations, the process view if there is only one and data specialists approach it from
architecture itself should become sta- process or program. For very small the logical view; and project managers
ble, and you should find no new major systems, logical and development views and software-configuration staff mem-
abstractions, subsystems, processes, or are sometimes so similar that they can bers approach it from the develop-
interfaces. The rest is in the realm of be described together. The scenarios ment view.
software design - where you can con- are useful in all circumstances. Other sets of views have been pro-
tinue development using very similar posed and discussed at our company
methods and process. Documentation. The documentation and elsewhere, but we have found that
produced during the architectural proposed views can usually be folded
Timetable. The duration of these iter- design is captured in two documents: into one of the four existing views. A
ations varies considerably, depending + a software architecture document, cost and schedule view, for example,
on the size of the project, the number organized by the 4+ 1 views, and folds into the development view, a data
of people involved, and their expertise 6 a software design guideline, which view into the logical view, and an exe-
in the domain and the development captures (among other things) impor- cution view into a combination of the
method. It also varies relative to the tant design decisions that must be process and physical view. +

ACKNOWLEDGMENTS Philippe Kmchten is a


senior technical consultant
For their help in shaping or experimenting with the 4+1 View Model I thank m y many
at Rational Software,
colleagues at Rational, Hughes Aircraft of Canada, CelsiusTech AB, Alcatel, and elsewhere, where he is in charge of
and in particular, Chris Thompson, Alex Bell, Mike Devlin, Grady Booth, Walker Royce, the Software Architecture
Joe Marasco, Rich Reitman, Viktor Ohnjec, Ulf Olson, and Ed Schonberg. Practice area. Kruchten
has 20 years experience in
REFERENCES software development. He
has been associated with
1. D. Garlan and M. Shaw, “An Introduction to Software Architecture,” A&wnce.r in SgFu(nre
Engineering and fiwmledge Engnzeel-ing,Vol. 1, World Scientific Publishing Co., Singapore, 1993. several large-scale soft-
ware-intensive projects
2. G. Abowd, R. Allen, and D. Garlan, “Using Style tu Understand Descriptions of Software
Architecture,” A C M Sofnuwe Eng. Notes, Dec. 1993, pp. 9-20. around the world, including the Alcatel2505 and
Alcatel 2600 private telephone exchanges in France,
3. Paul Clements, “From Domain Model to Architectures,” A. Abd-Allah et al., eds., FocusedWorkshop
the Ship System 2000 command-and-control sys-
on Sofinr-e Architemwe, 1994, pp. 404-420.
tem in Sweden, and several other projects in avion-
4. D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” A C M Sojhwe
ics, defense, transportation, and compilation. Since
Eng. Xm, Oct. 1992, pp. 40.52.
August 1992, he has been the lead software archi-
5. G. Booth, Objecr-OrrentedAnal and Design with ,4pplications, 2nd. ed., Benjamin-Cummings,
tect for the Canadian Automated Air Traffic
Redwood City, Calif., 1993.
System, developed by Hughes Aircraft of Canada in
6. P. Kruchten and C. Thompson, “An Object-Oriented, Distributed Architecture for Large Scale Ada
VXKOUVeI.
Systems,” Pnx. TRLAdu ‘94, A C M Press, New York, 1994, pp. 262-27 1.
Kruchten received an M.Sc. in mechanical engi-
7. A. Filarey et al., “Software First: Applying Ada Megaprogramming Technology to Target Platform neering from Ecole Centrale de Lyon, France, and
Selection Trades,” Proc. TN-Ada ‘91, A C M Press, New York, 1993.
a PhD in information technology from the French
8. K.P. Birman and R. Van Renesse, Reliable Distributed Computmg with the Isn Toolkit, IEEE CS Press, National Institute of Telecommunications, Paris.
Los Alamitos, Calif. 1994. IIe is a member of the IEEE Computer Society and
9. K. Rubin and A. Goldberg, “Object Behavior Analysis,” Comnz. ACl!I, Sept. 1992, pp. 48-62. the ACM.
10. B. I. Witt, F. T. Baker, and E.W. Merritt, Sojiware Architectwe and Design Pmzciples..2i[odel.r,and Address questions about this article to Kruchten
Methods, Van Nostrand Reinholt, New York, 1994. at Rational Software Corp., 240-10711 Cambie Rd.,
Richmond BC V6X 3GS; pkruchten9rational.com

50 NOVEMBER 1995

You might also like