0% found this document useful (0 votes)
139 views

The 4+1 View Model of Software Architecture - DZone Java

The "4+1" view model of software architecture proposes separating a system's architecture into 5 views: the logical view, process view, development view, physical view, and use case view. The use case view describes system functionality and guides the other views, which are the logical, process, development, and physical views. These other four views are known as the "4+1" since the use case view is separate but guides the other views. The views separate architectural concerns to provide relevant information to different stakeholders.

Uploaded by

....
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
139 views

The 4+1 View Model of Software Architecture - DZone Java

The "4+1" view model of software architecture proposes separating a system's architecture into 5 views: the logical view, process view, development view, physical view, and use case view. The use case view describes system functionality and guides the other views, which are the logical, process, development, and physical views. These other four views are known as the "4+1" since the use case view is separate but guides the other views. The views separate architectural concerns to provide relevant information to different stakeholders.

Uploaded by

....
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

11/2/2015 The4+1ViewModelofSoftwareArchitectureDZoneJava

The4+1ViewModelof
SoftwareArchitecture
byAlexStaveley Dec.28,11JavaZone

Like(0) Comment(1) Save Tweet 17.73kViews

DiscoverhowyoucanskipthebuildandredeployprocessbyusingJRebelby
ZeroTurnaround.

InNovember1995,whileworkingasLeadsoftwarearchitectatHughesAircraft
OfCanadaPhilippeKruchtenpublishedapaperentitled:"Architectural
BlueprintsThe4+1ViewModelofSoftwareArchitecture".Theintentwasto
comeupwithamechanismtoseparatethedifferentaspectsofasoftwaresystem
intodifferentviewsofthesystem.Why?Becausedifferentstakeholdersalways
havedifferentinterestinasoftwaresystem.Someaspectsofasystemare
relevanttotheDevelopersothersarerelevanttoSystemadministrators.The
DeveloperswanttoknowaboutthingslikeclassesSystemadministratorswant
toknowaboutdeployment,hardwareandnetworkconfigurationsanddon'tcare
aboutclasses.SimilarpointscanbemadeforTesters,ProjectManagersand
Customers.Kruchtenthoughtitmadesensetodecomposearchitectureinto
distinctviewssostakeholderscouldgetwhattheywanted.Intotaltherewere5
viewsinhisapproachbuthedecidedtocallit4+1.We'lldiscusswhyit'scalled
4+1later!Butfirst,let'shavealookateachofthedifferentviews.

Thelogicalview
Thiscontainsinformationaboutthevariouspartsofthesystem.InUML
thelogicalviewismodelledusingClass,Object,Statemachineand
Interactiondiagrams(e.gSequencediagrams).It'srelevanceisreallyto
developers.
Theprocessview
Thisdescribestheconcurrentprocesseswithinthesystem.Itencompasses
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22header%22%20style%3D%22boxsizing%3A%20borderbox%3B%20display%3A%20block%3B%20cl 1/4
11/2/2015 The4+1ViewModelofSoftwareArchitectureDZoneJava

somenonfunctionalrequirementssuchasperformanceand
availability.InUML,Activitydiagramswhichcanbeusedtomodel
concurrentbehaviourareusedtomodeltheprocessview.
Thedevelopmentview
Thedevelopmentviewfocussesonsoftwaremodulesandsubsystems.In
UML,PackageandComponentdiagramsareusedtomodelthe
developmentview.
Thephysicalview
Thephysicalviewdescribesthephysicaldeploymentofthesystem.For
example,howmanynodesareusedandwhatisdeployedonwhatnode.
Thus,thephysicalviewconcernssomenonfunctionalrequirementssuchas
scalabilityandavailability.InUML,
Deploymentdiagramsareusedtomodelthephysicalview.
Theusecaseview
Thisviewdescribesthefunctionalityofthesystemfromtheperspective
fromoutsideworld.Itcontainsdiagramsdescribingwhatthesystemis
supposedtodofromablackboxperspective.Thisviewtypicallycontains
UseCasediagrams.Allotherviewsusethisviewtoguidethem.

Whyisitcalledthe4+1insteadofjust5?
Wellthisisbecauseofthespecialsignificancetheusecaseviewhas.Whenall
otherviewsarefinished,it'seffectivelyredundant.However,allotherviews
wouldnotbepossiblewithoutit.Itdetailsthehighlevelsrequirementsofthe
system.Theotherviewsdetailhowthoserequirementsarerealised.

4+1camebeforeUML
It'simportanttorememberthe4+1approachwasputforwardtwoyearsbefore
thefirsttheintroductionofUMLwhichdidnotmanifestinitsfirstguiseuntil
1997.UMLishowmostenterprisearchitecturesaremodelledandthe4+1
approachstillplaysarelevancetoUMLtoday.UML2.0has13differenttypesof
diagramseachdiagramtypecanbecategorisedintooneofthe4+1
views.UMLis4+1friendly!
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22header%22%20style%3D%22boxsizing%3A%20borderbox%3B%20display%3A%20block%3B%20cl 2/4
11/2/2015 The4+1ViewModelofSoftwareArchitectureDZoneJava

Soisitimportant?
The4+1approachisn'tjustaboutsatisfyingdifferentstakeholders.Itmakes
modellingeasiertodobecauseitmakesiteasiertoorganise.Atypicalproject
willcontainnumerousdiagramsofthevarioustypes.Forexample,aprojectmay
containafewhundredsequencediagramsandseveralclassdiagrams.Grouping
diagramsofsimilartypesandpurposemeansthereisanemphasisinseparating
concerns.Sureisn'titjustthesamewithJava?GroupingJavaclassesofsimilar
purposeandrelatedresponsibilitiesintopackagesmeansorganisationisbetter.
Similarly,groupingdifferentcomponentsintodifferentjarfilesmeans
organisationisbetter.Modellingtoolswillusuallysupportthe4+1approach
andthismeansprojectswillhavetemplatesforhowtosplitthevarioustypesof
diagrams.Inacompanywhenprojectsfollowindustrystandardtemplatesagain
itmeansthingsarebetterorganised.

The4+1approachalsoprovidesawayforarchitectstobeabletoprioritise
modellingconcerns.Itisrarethataprojectwillhaveenoughtimetomodel
everysinglediagrampossibleforanarchitecture.Architectscanprioritise
differentviews.Forexample,forabusinessdomainintensiveprojectitwould
makesensetoprioritisethelogicalview.Inaprojectwithhighconcurrencyand
complextimingitwouldmakesensetoensuretheprocessviewgetsampletime.
Similarly,the4+1approachmakesitpossibleforstakeholderstogettheparts
ofthemodelthatarerelevanttothem.

References:

1. ArchitecturalBlueprintsThe4+1View
ModelofSoftwareArchitecturePaper
http://www.cs.ubc.ca/~gregor/teaching/papers/4+1viewarchitecture.pdf

2. LearningUML2.0byRussMiles&KimHamilton.O'Reilly


data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22header%22%20style%3D%22boxsizing%3A%20borderbox%3B%20display%3A%20block%3B%20cl 3/4
11/2/2015 The4+1ViewModelofSoftwareArchitectureDZoneJava

Fromhttp://dublintech.blogspot.com/2011/05/41viewmodelofsoftware
architecture.html

DiscoverhowyoucanskipthebuildandredeployprocessbyusingJRebelby
ZeroTurnaround.

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22header%22%20style%3D%22boxsizing%3A%20borderbox%3B%20display%3A%20block%3B%20cl 4/4

You might also like