Vous êtes sur la page 1sur 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

Vous aimerez peut-être aussi