Académique Documents
Professionnel Documents
Culture Documents
Accueil ALM Java .NET Dv.Web EDI Programmation SGBD Office Solutionsd'entreprise
UML2
Del'apprentissagelapratique
Tabledesmatires
1.Chapitre1Introductionlamodlisationobjet
11.Legnielogiciel
111.L'informatisation
L'informatisationestlephnomneleplusimportantdenotrepoque.Elles'immisce
maintenantdanslaplupartdesobjetsdelaviecouranteetce,quecesoitdansl'objet
proprementdit(1),oubiendansleprocessusdeconceptionoudefabricationdecetobjet.
Actuellement,l'informatiqueestaucurdetouteslesgrandesentreprises.Lesystme
d'informationd'uneentrepriseestcomposdematrielsetdelogiciels.Plusprcisment,les
investissementsdanscesystmed'informationserpartissentgnralementdelamanire
suivante:20%pourlematrielet80%pourlelogiciel.Eneffet,depuisquelquesannes,la
fabricationdumatrielestassureparquelquesfabricantsseulement.Cematrielest
relativementfiableetlemarcheststandardis.Lesproblmeslisl'informatiquesont
essentiellementdesproblmesdelogiciel.
112.Leslogiciels
Unlogicielouuneapplicationestunensembledeprogrammes,quipermetunordinateurou
unsystmeinformatiqued'assurerunetcheouunefonctionenparticulier(exemple:logiciel
decomptabilit,logicieldegestiondesprts).
Leslogiciels,suivantleurtaille,peuventtredveloppsparunepersonneseule,unepetite
quipe,ouunensembled'quipescoordonnes.Ledveloppementdegrandslogicielsparde
grandesquipesposed'importantsproblmesdeconceptionetdecoordination.Or,le
dveloppementd'unlogicielestunephaseabsolumentcrucialequimonopolisel'essentieldu
cotd'unproduit(2)etconditionnesarussiteetsaprennit.
En1995,unetudeduStandishGroupdressaituntableauaccablantdelaconduitedesprojets
informatiques.Reposantsurunchantillonreprsentatifde365entreprises,totalisant8380
applications,cettetudetablissaitque:
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 1/15
7/27/2017 UML 2 - de l'apprentissage la pratique
16,2%seulementdesprojetstaientconformesauxprvisionsinitiales,
52,7%avaientsubidesdpassementsencotetdlaid'unfacteur23avecdiminution
dunombredesfonctionsoffertes,
31,1%onttpurementabandonnsdurantleurdveloppement.
Pourlesgrandesentreprises(quilancentproportionnellementdavantagedegrosprojets),le
tauxdesuccsestde9%seulement,37%desprojetssontarrtsencoursderalisation,50%
aboutissenthorsdlaiethorsbudget.
L'examendescausesdesuccsetd'checestinstructif:laplupartdeschecsproviennentnon
del'informatique,maisdelamatrised'ouvrage(3)(i.e.leclient).Pourcesraisons,le
dveloppementdelogicielsdansuncontexteprofessionnelsuitsouventdesrglesstrictes
encadrantlaconceptionetpermettantletravailengroupeetlamaintenance(4)ducode.Ainsi,
unenouvelledisciplineestne:legnielogiciel.
113.Legnielogiciel
Legnielogicielestundomainederecherchequiatdfini(faitrare)du7au11octobre
1968,GarmischPartenkirchen,sousleparrainagedel'OTAN.Ilapourobjectifderpondre
unproblmequis'nonaitendeuxconstatations:d'unepartlelogicieln'taitpasfiable,
d'autrepart,iltaitincroyablementdifficilederaliserdansdesdlaisprvusdeslogiciels
satisfaisantleurcahierdescharges.
L'objectifdugnielogicielestd'optimiserlecotdedveloppementdulogiciel.L'importance
d'uneapprochemthodologiques'estimposelasuitedelacrisedel'industriedulogiciella
findesannes1970.Cettecrisedel'industriedulogicieltaitprincipalementdue:
l'augmentationdescots
lesdifficultsdemaintenanceetd'volution
lanonfiabilit
lenonrespectdesspcifications
lenonrespectdesdlais.
Lamaintenanceestdevenueunefacettetrsimportanteducycledevied'unlogiciel.Eneffet,
uneenquteeffectueaux.U.en1986auprsde55entreprisesrvleque53%dubudget
totald'unlogicielestaffectlamaintenance.Cecotestrparticommesuit:
34%maintenancevolutive(modificationdesspcificationsinitiales)
10%maintenanceadaptative(nouvelenvironnement,nouveauxutilisateurs)
17%maintenancecorrective(correctiondesbogues)
16%maintenanceperfective(amliorerlesperformancessanschangerles
spcifications)
6%assistanceauxutilisateurs
6%contrlequalit
7%organisation/suivi
4%divers.
Pourapporterunerponsetouscesproblmes,legnielogiciels'intresseparticulirement
lamaniredontlecodesourced'unlogicielestspcifipuisproduit.Ainsi,legnielogiciel
toucheaucycledeviedeslogiciels:
l'analysedubesoin,
l'laborationdesspcifications,
laconceptualisation,
ledveloppement,
laphasedetest,
lamaintenance.
Lesprojetsrelatifsl'ingnierielogiciellesontgnralementdegrandeenvergureetdpassent
souventles10000lignesdecode.C'estpourquoicesprojetsncessitentunequipede
dveloppementbienstructure.Lagestiondeprojetseretrouvenaturellementintimementlie
augnielogiciel.
114.Notiondequalitpourunlogiciel
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 2/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Engnielogiciel,diverstravauxontmenladfinitiondelaqualitdulogicielentermesde
facteurs,quidpendent,entreautres,dudomainedel'applicationetdesoutilsutiliss.Parmi
cesderniersnouspouvonsciter:
Validit:
aptituded'unproduitlogicielremplirexactementsesfonctions,dfiniesparlecahierdes
chargesetlesspcifications.
Fiabilitourobustesse:
aptituded'unproduitlogicielfonctionnerdansdesconditionsanormales.
Extensibilit(maintenance):
facilitaveclaquelleunlogicielseprtesamaintenance,c'estdireunemodification
ouuneextensiondesfonctionsquiluisontdemandes.
Rutilisabilit:
aptituded'unlogicieltrerutilis,entoutouenpartie,dansdenouvellesapplications.
Compatibilit:
facilitaveclaquelleunlogicielpeuttrecombinavecd'autreslogiciels.
Efficacit:
Utilisationoptimaledesressourcesmatrielles.
Portabilit:
facilitaveclaquelleunlogicielpeuttretransfrsousdiffrentsenvironnements
matrielsetlogiciels.
Vrifiabilit:
facilitdeprparationdesprocduresdetest.
Intgrit:
aptituded'unlogicielprotgersoncodeetsesdonnescontredesaccsnonautoriss.
Facilitd'emploi:
facilitd'apprentissage,d'utilisation,deprparationdesdonnes,d'interprtationdes
erreursetderattrapageencasd'erreurd'utilisation.
Cesfacteurssontparfoiscontradictoires,lechoixdescompromisdoits'effectuerenfonctiondu
contexte.
12.Modlisation,cyclesdevieetmthodes
121.Pourquoietcommentmodliser?
121a.Qu'estcequ'unmodle?
Unmodleestunereprsentationabstraiteetsimplifie(i.e.quiexclutcertainsdtails),d'une
entit(phnomne,processus,systme,etc.)dumonderelenvuedeledcrire,del'expliquer
oudeleprvoir.Modleestsynonymedethorie,maisavecuneconnotationpratique:un
modle,c'estunethorieorienteversl'actionqu'elledoitservir.
Concrtement,unmodlepermetderduirelacomplexitd'unphnomneenliminantles
dtailsquin'influencentpassoncomportementdemaniresignificative.Ilrefltecequele
concepteurcroitimportantpourlacomprhensionetlaprdictionduphnomnemodlis.Les
limitesduphnomnemodlisdpendantdesobjectifsdumodle.
Voiciquelquesexemplesdemodles:
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 3/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Modlemtorologique
partirdedonnesd'observation(satellite),ilpermetdeprvoirlesconditions
climatiquespourlesjoursvenir.
Modleconomique
peutparexemplepermettredesimulerl'volutiondecoursboursiersenfonction
d'hypothsesmacroconomiques(volutionduchmage,tauxdecroissance).
Modledmographique
dfinitlacompositiond'unpaneld'unepopulationetsoncomportement,danslebutde
fiabiliserdestudesstatistiques,d'augmenterl'impactdedmarchescommerciales,etc.
Plans
Lesplanssontdesmodlesquidonnentunevued'ensembledusystmeconcern.Par
exemple,danslebtiment,pourlaconstructiond'unimmeuble,ilfautpralablement
laborerdenombreuxplans:
plansd'implantationdubtimentdanssonenvironnement
plansgnrauxdubtimentetdesastructure
plansdtaillsdesdiffrentslocaux,bureaux,appartements
plansdescblageslectriques
plansd'coulementsdeseaux,etc.
Lestroispremiersexemplessontdesmodlesquel'onqualifiedeprdictifs.Ledernier,plus
conceptuel,possdediffrentsniveauxdevuescommelaplupartdesmodlesengnielogiciel.
121b.Pourquoimodliser?
Modliserunsystmeavantsaralisationpermetdemieuxcomprendrelefonctionnementdu
systme.C'estgalementunbonmoyendematrisersacomplexitetd'assurersacohrence.
Unmodleestunlangagecommun,prcis,quiestconnupartouslesmembresdel'quipeetil
estdonc,cetitre,unvecteurprivilgipourcommuniquer.Cettecommunicationest
essentiellepouraboutirunecomprhensioncommuneauxdiffrentespartiesprenantes
(notammententrelamatrised'ouvrageetlamatrised'uvreinformatique)etprcised'un
problmedonn.
Dansledomainedel'ingnieriedulogiciel,lemodlepermetdemieuxrpartirlestcheset
d'automatisercertainesd'entreelles.C'estgalementunfacteurderductiondescotsetdes
dlais.Parexemple,lesplateformesdemodlisationsaventmaintenantexploiterlesmodles
pourfairedelagnrationdecode(aumoinsauniveaudusquelette)voiredesallersretours
entrelecodeetlemodlesansperted'information.Lemodleestenfinindispensablepour
assurerunbonniveaudequalitetunemaintenanceefficace.Eneffet,unefoismiseen
production,l'applicationvadevoirtremaintenue,probablementparuneautrequipeet,qui
plusest,pasncessairementdelammesocitquecelleayantcrl'application.
Lechoixdumodleadoncuneinfluencecapitalesurlessolutionsobtenues.Lessystmesnon
triviauxsontmieuxmodlissparunensembledemodlesindpendants.Selonlesmodles
employs,ladmarchedemodlisationn'estpaslamme.
121c.Quidoitmodliser?
Lamodlisationestsouventfaiteparlamatrised'uvreinformatique(MOE).C'est
malencontreux,carlesprioritsdelaMOErsidentdanslefonctionnementdelaplateforme
informatiqueetnondanslesprocessusdel'entreprise.
Ilestprfrablequelamodlisationsoitraliseparlamatrised'ouvrage(MOA)desorteque
lemtiersoitmatredesespropresconcepts.LaMOEdoitintervenirdanslemodlelorsque,
aprsavoirdfinilesconceptsdumtier,ondoitintroduirelescontraintespropresla
plateformeinformatique.
Ilestvraiquecertainsmtiers,dontlesprioritssontoprationnelles,nedisposentpastoujours
delacapacitd'abstractionetdelarigueurconceptuellencessaireslaformalisation.La
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 4/15
7/27/2017 UML 2 - de l'apprentissage la pratique
professionnalisationdelaMOAapourbutdelesdoterdecescomptences.Cette
professionnalisationrsideessentiellementdansl'aptitudemodliserlesystmed'information
dumtier:lematremotestmodlisation.Lorsquelemodledusystmed'informationestde
bonnequalit,sobre,clair,stable,lamatrised'uvrepeuttravaillerdansdebonnesconditions.
Lorsquecetteprofessionnalisationalieu,ellemodifielesrapportsavecl'informatiqueetdplace
lafrontiredesresponsabilits,cequicontrarieparfoislesinformaticiensdansunpremier
temps,avantqu'ilsn'envoientapparatrelesbnfices.
121d.Matrised'ouvrageetmatrised'uvre
Matred'ouvrage(MOA):
LeMOAestunepersonnemorale(entreprise,direction,etc.),uneentitdel'organisation.
Cen'estjamaisunepersonne.
Matred'uvre(MOE):
LeMOEestunepersonnemorale(entreprise,direction,etc.)garantedelabonne
ralisationtechniquedessolutions.Ila,lorsdelaconceptionduSI,undevoirdeconseil
visvisduMOA,carleSIdoittirerlemeilleurpartidespossibilitstechniques.
LeMOAestclientduMOEquiilpassecommanded'unproduitncessairesonactivit.
LeMOEfournitceproduitsoitilleraliseluimme,soitilpassecommandeunouplusieurs
fournisseurs(entreprises)quilaborentleproduitsoussadirection.
LarelationMOAetMOEestdfinieparuncontratquiprciseleursengagementsmutuels.
Lorsqueleproduitestcompliqu,ilpeuttrencessairedefaireappelplusieursfournisseurs.
LeMOEassureleurcoordinationilveillelacohrencedesfournituresetleurcompatibilit.
Ilcoordonnel'actiondesfournisseursencontrlantlaqualittechnique,enassurantlerespect
desdlaisfixsparleMOAetenminimisantlesrisques.
LeMOEestresponsabledelaqualittechniquedelasolution.Ildoit,avanttoutelivraisonau
MOA,procderauxvrificationsncessaires(recetteusine).
122.Lecycledevied'unlogiciel
Lecycledevied'unlogiciel(enanglaissoftwarelifecycle),dsignetouteslestapesdu
dveloppementd'unlogiciel,desaconceptionsadisparition.L'objectifd'unteldcoupageest
depermettrededfinirdesjalonsintermdiairespermettantlavalidationdudveloppement
logiciel,c'estdirelaconformitdulogicielaveclesbesoinsexprims,etlavrificationdu
processusdedveloppement,c'estdirel'adquationdesmthodesmisesenuvre.
L'originedecedcoupageprovientduconstatqueleserreursontuncotd'autantpluslev
qu'ellessontdtectestardivementdansleprocessusderalisation.Lecycledeviepermetde
dtecterleserreursauplusttetainsidematriserlaqualitdulogiciel,lesdlaisdesa
ralisationetlescotsassocis.
Lecycledeviedulogicielcomprendgnralementauminimumlestapessuivantes:
Analysedesbesoinsetfaisabilit
c'estdirel'expression,lerecueiletlaformalisationdesbesoinsdudemandeur(leclient)
etdel'ensembledescontraintes,puisl'estimationdelafaisabilitdecesbesoins
Spcificationsouconceptiongnrale
ils'agitdel'laborationdesspcificationsdel'architecturegnraledulogiciel
Conceptiondtaille
cettetapeconsistedfinirprcismentchaquesousensembledulogiciel
Codage(Implmentationouprogrammation)
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 5/15
7/27/2017 UML 2 - de l'apprentissage la pratique
c'estlatraductiondansunlangagedeprogrammationdesfonctionnalitsdfinieslorsde
phasesdeconception
Testsunitaires
ilspermettentdevrifierindividuellementquechaquesousensembledulogicielest
implmentconformmentauxspcifications
Intgration
l'objectifestdes'assurerdel'interfaagedesdiffrentslments(modules)dulogiciel.
Ellefaitl'objetdetestsd'intgrationconsignsdansundocument
Qualification(ourecette)
c'estdirelavrificationdelaconformitdulogicielauxspcificationsinitiales
Documentation
elleviseproduirelesinformationsncessairespourl'utilisationdulogicieletpourdes
dveloppementsultrieurs
Miseenproduction
c'estledploiementsursitedulogiciel
Maintenance
ellecomprendtouteslesactionscorrectives(maintenancecorrective)etvolutives
(maintenancevolutive)surlelogiciel.
Lasquenceetlaprsencedechacunedecesactivitsdanslecycledeviedpendentduchoix
d'unmodledecycledevieentreleclientetl'quipededveloppement.Lecycledeviepermet
deprendreencompte,enplusdesaspectstechniques,l'organisationetlesaspectshumains.
123.Modlesdecyclesdevied'unlogiciel
123a.Modledecycledevieencascade
Figure1.1:Modleducycledevieencascade.
Lemodledecycledevieencascade(cf.figure1.1)atmisaupointds1966,puisformalis
auxalentoursde1970.
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 6/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Danscemodleleprincipeesttrssimple:chaquephasesetermineunedateprciseparla
productiondecertainsdocumentsoulogiciels.Lesrsultatssontdfinissurlabasedes
interactionsentretapes,ilssontsoumisunerevueapprofondieetonnepasselaphase
suivanteques'ilssontjugssatisfaisants.
Lemodleoriginalnecomportaitpasdepossibilitderetourenarrire.Celleciatrajoute
ultrieurementsurlabasequ'unetapeneremetencausequel'tapeprcdente,cequi,dans
lapratique,s'avreinsuffisant.
L'inconvnientmajeurdumodledecycledevieencascadeestquelavrificationdubon
fonctionnementdusystmeestralisetroptardivement:lorsdelaphased'intgration,ou
pire,lorsdelamiseenproduction.
123b.ModledecycledevieenV
Figure1.2:ModleducycledevieenV.
LemodleenV(cf.figure1.2)demeureactuellementlecycledevieleplusconnuet
certainementleplusutilis.Ils'agitd'unmodleencascadedanslequelle
dveloppementdestestsetdulogicielsonteffectusdemaniresynchrone.
Leprincipedecemodleestqu'avectoutedcompositiondoittredcritelarecompositionet
quetoutedescriptiond'uncomposantestaccompagnedetestsquipermettrontdes'assurer
qu'ilcorrespondsadescription.
Cecirendexplicitelaprparationdesderniresphases(validationvrification)parlespremires
(constructiondulogiciel),etpermetainsid'viteruncueilbienconnudelaspcificationdu
logiciel:noncerunepropritqu'ilestimpossibledevrifierobjectivementaprslaralisation.
Cependant,cemodlesouffretoujoursduproblmedelavrificationtroptardivedubon
fonctionnementdusystme.
123c.Modledecycledevieenspirale
ProposparB.Boehmen1988,cemodleestbeaucoupplusgnralqueleprcdent.Ilmet
l'accentsurl'activitd'analysedesrisques:chaquecycledelaspiralesedrouleenquatre
phases:
1.Dtermination,partirdesrsultatsdescyclesprcdents,oudel'analyseprliminaire
desbesoins,desobjectifsducycle,desalternativespourlesatteindreetdescontraintes
2.Analysedesrisques,valuationdesalternativeset,ventuellementmaquettage
3.Dveloppementetvrificationdelasolutionretenue,unmodleclassique(cascadeou
enV)peuttreutilisici
4.Revuedesrsultatsetvrificationducyclesuivant.
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 7/15
7/27/2017 UML 2 - de l'apprentissage la pratique
L'analyseprliminaireestaffineaucoursdespremierscycles.Lemodleutilisedesmaquettes
exploratoirespourguiderlaphasedeconceptionducyclesuivant.Lederniercyclesetermine
parunprocessusdedveloppementclassique.
123d.Modleparincrment
Danslesmodlesprcdents,unlogicielestdcomposencomposantsdveloppssparment
etintgrslafinduprocessus.
Danslesmodlesparincrmentunseulensembledecomposantsestdvelopplafois:des
incrmentsviennents'intgrerunnoyaudelogicieldveloppaupralable.Chaqueincrment
estdveloppselonl'undesmodlesprcdents.
Lesavantagesdecetypedemodlesontlessuivants:
chaquedveloppementestmoinscomplexe
lesintgrationssontprogressives
ilestainsipossibledelivreretdemettreenservicechaqueincrment
ilpermetunmeilleurlissagedutempsetdel'effortdedveloppementgrcela
possibilitderecouvrement(paralllisation)desdiffrentesphases.
Lesrisquesdecetypedemodlesontlessuivants:
remettreencauselesincrmentsprcdentsoupirelenoyau
nepaspouvoirintgrerdenouveauxincrments.
Lesnoyaux,lesincrmentsainsiqueleursinteractionsdoiventdonctrespcifisglobalement,
audbutduprojet.Lesincrmentsdoiventtreaussiindpendantsquepossible,
fonctionnellement,maisaussisurleplanducalendrierdudveloppement.
124.Mthodesd'analyseetdeconception
Lesmthodesd'analyseetdeconceptionfournissentunemthodologieetdesnotations
standardsquiaidentconcevoirdeslogicielsdequalit.Ilexistediffrentesmanirespour
classercesmthodes,dont:
Ladistinctionentrecompositionetdcomposition:
Ellemetenoppositiond'unepartlesmthodesascendantesquiconsistentconstruireun
logicielparcompositionpartirdemodulesexistantset,d'autrepart,lesmthodes
descendantesquidcomposentrcursivementlesystmejusqu'arriverdesmodules
programmablessimplement
Ladistinctionentrefonctionnelle(dirigeparletraitement)etorienteobjet:
Danslastratgiefonctionnelle(galementqualifiedestructure)unsystmeestvu
commeunensemblehirarchiqued'unitseninteraction,ayantchacuneunefonction
clairementdfinie.Lesfonctionsdisposentd'untatlocal,maislesystmeauntat
partag,quiestcentralisetaccessibleparl'ensembledesfonctions.Lesstratgies
orientesobjetconsidrentqu'unsystmeestunensembled'objetsinteragissants.
Chaqueobjetdisposed'unensembled'attributsdcrivantsontatetl'tatdusystmeest
dcrit(defaondcentralise)parl'tatdel'ensemble.
13.Delaprogrammationstructurel'approcheorienteobjet
131.Mthodesfonctionnellesoustructures
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 8/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Figure1.3:Reprsentationgraphiqued'uneapprochefonctionnelle.
Lesmthodesfonctionnelles(galementqualifiesdemthodesstructures)trouventleur
originedansleslangagesprocduraux.Ellesmettentenvidencelesfonctionsassureret
proposentuneapprochehirarchiquedescendanteetmodulaire.
Cesmthodesutilisentintensivementlesraffinementssuccessifspourproduiredes
spcificationsdontl'essentielestsousformedenotationgraphiqueendiagrammesdeflotsde
donnes.Leplushautniveaureprsentel'ensembleduproblme(sousformed'activit,de
donnesoudeprocessus,selonlamthode).Chaqueniveauestensuitedcomposen
respectantlesentres/sortiesduniveausuprieur.Ladcompositionsepoursuitjusqu'arriver
descomposantsmatrisables(cf.figure1.3).
L'approchefonctionnelledissocieleproblmedelareprsentationdesdonnes,duproblmedu
traitementdecesdonnes.Surlafigure1.3,lesdonnesduproblmesontreprsentessurla
gauche.Desflchestransversalesmatrialisentlamanipulationdecesdonnespardessous
fonctions.Cetaccspeuttredirect(c'estparfoislecasquandlesdonnessontregroupes
dansunebasededonnes),oupeuttreralisparlepassagedeparamtredepuisle
programmeprincipal.
LaSADT(StructuredAnalysisDesignTechnique)estprobablementlamthoded'analyse
fonctionnelleetdegestiondeprojetslaplusconnue.Ellepermetnonseulementdedcrireles
tchesduprojetetleursinteractions,maisaussidedcrirelesystmequeleprojetvise
tudier,creroumodifier,enmettantnotammentenvidencelespartiesquiconstituentle
systme,lafinalitetlefonctionnementdechacune,ainsiquelesinterfacesentrecesdiverses
parties.Lesystmeainsimodlisn'estpasunesimplecollectiond'lmentsindpendants,
maisuneorganisationstructuredeceuxcidansunefinalitprcise.
Enrsum,l'architecturedusystmeestdicteparlarponseauproblme(i.e.la
fonctiondusystme).
132.L'approcheorienteobjet
L'approcheconsidrelelogicielcommeunecollectiond'objetsdissocis,identifisetpossdant
descaractristiques.Unecaractristiqueestsoitunattribut(i.e.unedonnecaractrisantl'tat
del'objet),soituneentitcomportementaledel'objet(i.e.unefonction).Lafonctionnalitdu
logicielmergealorsdel'interactionentrelesdiffrentsobjetsquileconstituent.L'unedes
particularitsdecetteapprocheestqu'ellerapprochelesdonnesetleurstraitementsassocis
auseind'ununiqueobjet.
Commenousvenonsdeledire,unobjetestcaractrisparplusieursnotions:
L'identit
l'objetpossdeuneidentit,quipermetdeledistinguerdesautresobjets,
indpendammentdesontat.Onconstruitgnralementcetteidentitgrceun
identifiantdcoulantnaturellementduproblme(parexempleunproduitpourratre
reprparuncode,unevoitureparunnumrodesrie,etc.)
Lesattributs
ils'agitdesdonnescaractrisantl'objet.Cesontdesvariablesstockantdesinformations
surl'tatdel'objet
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 9/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Lesmthodes
lesmthodesd'unobjetcaractrisentsoncomportement,c'estdirel'ensembledes
actions(appelesoprations)quel'objetestmmederaliser.Cesoprations
permettentdefaireragirl'objetauxsollicitationsextrieures(oud'agirsurlesautres
objets).Deplus,lesoprationssonttroitementliesauxattributs,carleursactions
peuventdpendredesvaleursdesattributs,oubienlesmodifier.
Ladifficultdecettemodlisationconsistecrerunereprsentationabstraite,sousforme
d'objets,d'entitsayantuneexistencematrielle(chien,voiture,ampoule,personne)oubien
virtuelle(client,temps).
LaConceptionOrienteObjet(COO)estlamthodequiconduitdesarchitectureslogicielles
fondessurlesobjetsdusystme,pluttquesurlafonctionqu'ilestcensraliser.
Enrsum,l'architecturedusystmeestdicteparlastructureduproblme.
133.Approchefonctionnellevsapprocheobjet
SelonlathsedeChurchTuring,toutlangagedeprogrammationnontrivialquivautune
machinedeTuring.Ilenrsultequetoutprogrammequ'ilestpossibled'criredansunlangage
pourraitgalementtrecritdansn'importequelautrelangage.Ainsi,toutcequel'onfaitavec
unlangagedeprogrammationparobjetspourraittrefaitenprogrammationimprative.La
diffrenceentreuneapprochefonctionnelleetuneapprocheobjetn'estdoncpasd'ordre
logique,maispratique.
L'approchestructureprivilgielafonctioncommemoyend'organisationdulogiciel.Cen'estpas
pourcetteraisonquel'approcheobjetestuneapprochenonfonctionnelle.Eneffet,les
mthodesd'unobjetsontdesfonctions.Cequidiffrenciesurlefondl'approcheobjetde
l'approchefonctionnelle,c'estquelesfonctionsobtenuesl'issuedelamiseenuvredel'une
oul'autremthodesontdistinctes.L'approcheobjetestuneapprocheorientedonne.Dans
cetteapproche,lesfonctionssedduisentd'unregroupementdechampsdedonnesformant
uneentitcohrente,logique,tangibleetsurtoutstablequantauproblmetrait.L'approche
structureclassiqueprivilgieuneorganisationdesdonnespostrieureladcouvertedes
grandes,puispetitesfonctionsquilesdcomposent,l'ensembleconstituantlesservicesqui
rpondentauxbesoins.
Enapprocheobjet,l'volutiondesbesoinsauraleplussouventtendanceseprsentercomme
unchangementdel'interactiondesobjets.S'ilfautapporterunemodificationauxdonnes,seul
l'objetincrimin(encapsulantcettedonne)seramodifi.Touteslesfonctionsmodifiersont
bienidentifies:ellessetrouventdanscemmeobjet:cesontsesmthodes.Dansune
approchestructure,l'volutiondesbesoinsentranesouventunedgnrescence,ouune
profonderemiseenquestion,delatopologietypiquedelafigure1.3,carladcompositiondes
unitsdetraitement(duprogrammeprincipalauxsousfonctions)estdirectementdictepar
cesbesoins.D'autrepart,unemodificationdesdonnesentranegnralementunemodification
d'unnombreimportantdefonctionsparpillesetdifficilesidentifierdanslahirarchiede
cettedcomposition.
Enfait,lamodularitn'estpasantinomiquedel'approchestructure.Lesmodulesrsultantde
ladcompositionobjetsonttoutsimplementdiffrentsdeceuxmanantdel'approche
structure.Lesunitsdetraitement,etsurtoutleurdpendancedanslatopologiedelafigure
1.3sontinitialementbonnes.C'estleurrsistanceautemps,contrairementauxmodulesobjet,
quiestsourcedeproblme.Lastructured'unlogicielissued'uneapprochestructureest
beaucoupmoinsmallable,adaptable,quecelleissued'uneapprocheobjet.
Ainsilatechnologieobjetestlaconsquenceultimedelamodularisationdulogiciel,dmarche
quivisematrisersaproductionetsonvolution.Maismalgrcettecontinuitlogiqueles
langagesobjetontapportenpratiqueunprofondchangementdansl'artdelaprogrammation:
ilsimpliquenteneffetunchangementdel'attitudementaleduprogrammeur.
134.Conceptsimportantsdel'approcheobjet
Danslasection1.3.2L'approcheorienteobjet,nousavonsditquel'approcheobjetrapproche
lesdonnesetleurstraitements.Maiscetteapprochenefaitpasquea,d'autresconcepts
importantssontspcifiquescetteapprocheetparticipentlaqualitdulogiciel.
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 10/15
7/27/2017 UML 2 - de l'apprentissage la pratique
134a.Notiondeclasse
Toutd'abord,introduisonslanotiondeclasse.Uneclasseestuntypededonnesabstraitqui
prcisedescaractristiques(attributsetmthodes)communestouteunefamilled'objetset
quipermetdecrer(instancier)desobjetspossdantcescaractristiques.Lesautresconcepts
importantsqu'ilnousfautmaintenantintroduiresontl'encapsulation,l'hritageetl'agrgation.
134b.Encapsulation
L'encapsulationconsistemasquerlesdtailsd'implmentationd'unobjet,endfinissantune
interface.L'interfaceestlavueexterned'unobjet,elledfinitlesservicesaccessibles(offerts)
auxutilisateursdel'objet.
L'encapsulationfacilitel'volutiond'uneapplication,carellestabilisel'utilisationdesobjets:on
peutmodifierl'implmentationdesattributsd'unobjetsansmodifiersoninterface,etdoncla
faondontl'objetestutilis.
L'encapsulationgarantitl'intgritdesdonnes,carellepermetd'interdire,ouderestreindre,
l'accsdirectauxattributsdesobjets.
134c.Hritage,spcialisation,gnralisationetpolymorphisme
L'hritageestunmcanismedetransmissiondescaractristiquesd'uneclasse(sesattributset
mthodes)versunesousclasse.Uneclassepeuttrespcialiseend'autresclasses,afind'y
ajouterdescaractristiquesspcifiquesoud'enadaptercertaines.Plusieursclassespeuventtre
gnralisesenuneclassequilesfactorise,afinderegrouperlescaractristiquescommunes
d'unensembledeclasses.
Ainsi,laspcialisationetlagnralisationpermettentdeconstruiredeshirarchiesdeclasses.
L'hritagepeuttresimpleoumultiple.L'hritageviteladuplicationetencouragela
rutilisation.
Lepolymorphismereprsentelafacultd'unemthodepouvoirs'appliquerdesobjetsde
classesdiffrentes.Lepolymorphismeaugmentelagnricit,etdonclaqualit,ducode.
134d.Agrgation
Ils'agitd'unerelationentredeuxclasses,spcifiantquelesobjetsd'uneclassesontdes
composantsdel'autreclasse.Unerelationd'agrgationpermetdoncdedfinirdesobjets
compossd'autresobjets.L'agrgationpermetdoncd'assemblerdesobjetsdebase,afinde
construiredesobjetspluscomplexes.
135.Historiquelaprogrammationparobjets
LespremierslangagesdeprogrammationquiontutilisdesobjetssontSimulaI(196164)et
Simula67(1967),conusparlesinformaticiensnorvgiensOleJohanDahletKristanNygaard.
Simula67contenaitdjlesobjets,lesclasses,l'hritage,l'encapsulation,etc.
AlanKay,duPARCdeXerox,avaitutilisSimuladanslesannes1960.Ilralisaen1976
Smalltalkquireste,auxyeuxdecertainsprogrammeurs,lemeilleurlangagedeprogrammation
parobjets.
BjarneStroustrupamisaupointC++,uneextensiondulangageCpermettantla
programmationorienteobjet,auxBellLabsd'AT&Ten1982.C++deviendralelangageleplus
utilisparlesprogrammeursprofessionnels.Ilarriveramaturiten1986,sastandardisation
ANSI/ISOdatede1997.
JavaestlancparSunen1995.CommeilprsenteplusdescuritqueC++,ildeviendrale
langagefavoridecertainsprogrammeursprofessionnels.
14.UML
141.Introduction
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 11/15
7/27/2017 UML 2 - de l'apprentissage la pratique
Ladescriptiondelaprogrammationparobjetsafaitressortirl'tenduedutravailconceptuel
ncessaire:dfinitiondesclasses,deleursrelations,desattributsetmthodes,desinterfaces,
etc.
Pourprogrammeruneapplication,ilneconvientpasdeselancerttebaissedansl'crituredu
code:ilfautd'abordorganisersesides,lesdocumenter,puisorganiserlaralisationen
dfinissantlesmodulesettapesdelaralisation.C'estcettedmarcheantrieurel'criture
quel'onappellemodlisationsonproduitestunmodle.
Lesspcificationsfourniesparlamatrised'ouvrageenprogrammationimprativetaient
souventfloues:lesarticulationsconceptuelles(structuresdedonnes,algorithmesde
traitement)s'exprimantdanslevocabulairedel'informatique,lemodledevaitsouventtre
laborparcelleci.L'approcheobjetpermetenprincipelamatrised'ouvragedes'exprimer
defaonprciseselonunvocabulairequi,toutentranscrivantlesbesoinsdumtier,pourra
treimmdiatementcomprisparlesinformaticiens.Enprincipeseulement,carlamodlisation
demandeauxmatrisesd'ouvrageunecomptenceetunprofessionnalismequinesontpas
aujourd'huirpandus.
142.Histoiredesmodlisationsparobjets
Lesmthodesutilisesdanslesannes1980pourorganiserlaprogrammationimprative
(notammentMerise)taientfondessurlamodlisationsparedesdonnesetdes
traitements.Lorsquelaprogrammationparobjetsprenddel'importanceaudbutdesannes
1990,lancessitd'unemthodequiluisoitadaptedevientvidente.Plusdecinquante
mthodesapparaissententre1990et1995(Booch,ClasseRelation,Fusion,HOOD,OMT,OOA,
OOD,OOM,OOSE,etc.),maisaucuneneparvients'imposer.En1994,leconsensussefait
autourdetroismthodes:
OMTdeJamesRumbaugh(GeneralElectric)fournitunereprsentationgraphiquedes
aspectsstatique,dynamiqueetfonctionneld'unsystme
OODdeGradyBooch,dfiniepourleDepartmentofDefense,introduitleconceptde
paquetage(package)
OOSEd'IvarJacobson(Ericsson)fondel'analysesurladescriptiondesbesoinsdes
utilisateurs(casd'utilisation,ouusecases).
Chaquemthodeavaitsesavantagesetsespartisans.Lenombredemthodesencomptition
s'taitrduit,maislerisqued'unclatementsubsistait:laprofessionpouvaitsediviserentre
cestroismthodes,crantautantdecontinentsintellectuelsquiauraientdumal
communiquer.
vnementconsidrableetpresquemiraculeux,lestroisgourousquirgnaientchacunsurl'une
destroismthodessemirentd'accordpourdfinirunemthodecommunequifdreraitleurs
apportsrespectifs(onlessurnommedepuistheAmigos).UML(UnifiedModelingLanguage)
estndeceteffortdeconvergence.L'adjectifunifiedestlpourmarquerqu'UMLunifie,etdonc
remplace.
Enfait,etcommesonnoml'indique,UMLn'apasl'ambitiond'treexactementunemthode:
c'estunlangage.
L'unificationaprogresspartapes.En1995,BoochetRumbaugh(etquelquesautres)sesont
misd'accordpourconstruireunemthodeunifie,UnifiedMethod0.8en1996,Jacobsonlesa
rejointspourproduireUML0.9(notezleremplacementdumotmthodeparlemotlangage,
plusmodeste).Lesacteurslesplusimportantsdanslemondedulogiciels'associentalors
l'effort(IBM,Microsoft,Oracle,DEC,HP,Rational,Unisys,etc.)etUML1.0estsoumis
l'OMG(5).L'OMGadopteennovembre1997UML1.1commelangagedemodlisationdes
systmesd'informationobjets.Laversiond'UMLencoursen2008estUML2.1.1etles
travauxd'amliorationsepoursuivent.
UMLestdoncnonseulementunoutilintressant,maisunenormequis'imposeentechnologie
objetsetlaquellesesontrangstouslesgrandsacteursdudomaine,acteursquiontd'ailleurs
contribusonlaboration.
143.UMLenuvre
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 12/15
7/27/2017 UML 2 - de l'apprentissage la pratique
UMLn'estpasunemthode(i.e.unedescriptionnormativedestapesdelamodlisation):ses
auteursonteneffetestimqu'iln'taitpasopportundedfinirunemthodeenraisondela
diversitdescasparticuliers.Ilsontprfrsebornerdfinirunlangagegraphiquequi
permetdereprsenteretdecommuniquerlesdiversaspectsd'unsystmed'information.Aux
graphiquessontbiensrassocisdestextesquiexpliquentleurcontenu.UMLestdoncun
mtalangage,carilfournitleslmentspermettantdeconstruirelemodlequi,lui,serale
langageduprojet.
Ilestimpossiblededonnerunereprsentationgraphiquecomplted'unlogiciel,oudetout
autresystmecomplexe,demmequ'ilestimpossibledereprsenterentirementunestatue
(troisdimensions)pardesphotographies(deuxdimensions).Maisilestpossiblededonner
suruntelsystmedesvuespartielles,analogueschacuneunephotographied'unestatue,et
dontlaconjonctiondonnerauneideutilisableenpratiquesansrisqued'erreurgrave.
UML2.0comporteainsitreizetypesdediagrammesreprsentantautantdevuesdistinctespour
reprsenterdesconceptsparticuliersdusystmed'information.Ilsserpartissentendeux
grandsgroupes:
Diagrammesstructurelsoudiagrammesstatiques(UMLStructure)
diagrammedeclasses(Classdiagram)
diagrammed'objets(Objectdiagram)
diagrammedecomposants(Componentdiagram)
diagrammededploiement(Deploymentdiagram)
diagrammedepaquetages(Packagediagram)
diagrammedestructurescomposites(Compositestructurediagram)
Diagrammescomportementauxoudiagrammesdynamiques(UMLBehavior)
diagrammedecasd'utilisation(Usecasediagram)
diagrammed'activits(Activitydiagram)
diagrammed'tatstransitions(Statemachinediagram)
Diagrammesd'interaction(Interactiondiagram)
diagrammedesquence(Sequencediagram)
diagrammedecommunication(Communicationdiagram)
diagrammeglobald'interaction(Interactionoverviewdiagram)
diagrammedetemps(Timingdiagram)
Cesdiagrammes,d'uneutilitvariableselonlescas,nesontpasncessairementtousproduits
l'occasiond'unemodlisation.Lesplusutilespourlamatrised'ouvragesontlesdiagrammes
d'activits,decasd'utilisation,declasses,d'objets,desquenceetd'tatstransitions.Les
diagrammesdecomposants,dedploiementetdecommunicationsontsurtoututilespourla
matrised'uvrequiilspermettentdeformaliserlescontraintesdelaralisationetlasolution
technique.
143a.Diagrammedecasd'utilisation
Lediagrammedecasd'utilisation(cf.section2Chapitre2Diagrammedecasd'utilisation(Use
CaseDiagram))reprsentelastructuredesgrandesfonctionnalitsncessairesauxutilisateurs
dusystme.C'estlepremierdiagrammedumodleUML,celuios'assurelarelationentre
l'utilisateuretlesobjetsquelesystmemetenuvre.
143b.Diagrammedeclasses
Lediagrammedeclasses(cf.section3Chapitre3Diagrammedeclasses(ClassDiagram))est
gnralementconsidrcommeleplusimportantdansundveloppementorientobjet.Il
reprsentel'architectureconceptuelledusystme:ildcritlesclassesquelesystmeutilise,
ainsiqueleursliens,queceuxcireprsententunembotageconceptuel(hritage)ouune
relationorganique(agrgation).
143c.Diagrammed'objets
Lediagrammed'objets(cf.section3.53.5Diagrammed'objets(objectdiagram))permet
d'clairerundiagrammedeclassesenl'illustrantpardesexemples.Ilest,parexemple,utilis
pourvrifierl'adquationd'undiagrammedeclassesdiffrentscaspossibles.
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 13/15
7/27/2017 UML 2 - de l'apprentissage la pratique
143d.Diagrammed'tatstransitions
Lediagrammed'tatstransitions(cf.section5Chapitre5Diagrammed'tatstransitions(State
machinediagram))reprsentelafaondontvoluent(i.e.cycledevie)lesobjetsappartenant
unemmeclasse.Lamodlisationducycledevieestessentiellepourreprsenteretmettreen
formeladynamiquedusystme.
143e.Diagrammed'activits
Lediagrammed'activits(cf.section6Chapitre6Diagrammed'activits(Activitydiagram))
n'estautrequelatranscriptiondansUMLdelareprsentationduprocessustellequ'elleat
laborelorsdutravailquiaprparlamodlisation:ilmontrel'enchanementdesactivitsqui
concourentauprocessus.
143f.Diagrammedesquenceetdecommunication
Lediagrammedesquence(cf.section7.3Diagrammedesquence(Sequencediagram))
reprsentelasuccessionchronologiquedesoprationsralisesparunacteur.Ilindiqueles
objetsquel'acteurvamanipuleretlesoprationsquifontpasserd'unobjetl'autre.Onpeut
reprsenterlesmmesoprationsparundiagrammedecommunication(cf.section
7.2Diagrammedecommunication(Communicationdiagram)),graphedontlesnudssontdes
objetsetlesarcs(numrotsselonlachronologie)leschangesentreobjets.Enfait,
diagrammedesquenceetdiagrammedecommunicationsontdeuxvuesdiffrentes,mais
logiquementquivalentes(onpeutconstruirel'unepartirdel'autre)d'unemmechronologie.
Cesontdesdiagrammesd'interaction(section7Chapitre7Diagrammesd'interaction
(Interactiondiagram)).
144.CommentprsenterunmodleUML?
Laprsentationd'unmodleUMLsecomposedeplusieursdocumentscritsenlangagecourant
etd'undocumentformalis:ellenedoitpasselimiterauseuldocumentformalis,carceluici
estpratiquementincomprhensiblesionleprsenteseul.UnexpertenUMLseracapabledans
certainscasdereconstituerlesintentionsinitialesenlisantlemodle,maispastoujoursetles
expertsenUMLsontrares.Voicilalistedesdocumentsquiparaissentncessaires:
Prsentationstratgique:
elledcritpourquoil'entrepriseavoulusedoterdel'outilconsidr,lesbutsqu'elle
chercheatteindre,lecalendrierderalisationprvu,etc.
Prsentationdesprocessusdetravailparlesquelslastratgieentendseraliser:
pourpermettreaulecteurdevoircommentl'applicationvafonctionnerenpratique,elle
doittreillustreparuneesquissedescransquiserontaffichsdevantlesutilisateursde
terrain
Explicationdeschoixquiontguidlamodlisationformelle:
ils'agitdesynthtiser,souslesyeuxdulecteur,lesdiscussionsquiontprsidces
choix
Modleformel:
c'estledocumentlepluspaisetleplusdifficilelire.Ilestprfrabledeleprsentersur
l'Intranetdel'entreprise.Eneffet,lesdiagrammespeuventtrealorsquipsdeliens
hypertextespermettantl'ouverturedediagrammesplusdtaillsoudecommentaires.
Ondoitprsenterenpremierlediagrammedecasd'utilisationquimontrel'enchanementdes
casd'utilisationauseinduprocessus,enchanementimmdiatementcomprhensiblepuisle
diagrammed'activits,quimontrelecontenudechaquecasd'utilisationpuislediagrammede
squence,quimontrel'enchanementchronologiquedesoprationsl'intrieurdechaquecas
d'utilisation.Enfin,lediagrammedeclasses,quiestleplusprcisconceptuellement,maisaussi
leplusdifficilelire,carilprsentechacunedesclassesetleursrelations(agrgation,hritage,
association,etc.).
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 14/15
7/27/2017 UML 2 - de l'apprentissage la pratique
(1)
Parexemple,aujourd'hui,90%desnouvellesfonctionnalitsdesautomobilessontapportespar
l'lectroniqueetl'informatiqueembarques.Ilya,ouauraterme,dulogicielpartout:
ampouleslectriques,fourmicroondes,tissusdesvtements,stylos,livres,etc.
(2)
Comparativementsaproduction,lecotdudveloppementd'unlogicielestextrmement
important.Nousverronsparlasuitequelamaintenancecotegalementtrscher.
(3)
cf.section1.2.1.dMatrised'ouvrageetmatrised'uvre<<Matrised'ouvrageetmatrise
d'uvre>>pourunedfinitiondeceterme.
(4)
Souvent,lespersonnesquidoiventoprerdesmodificationsultrieuresdanslecodenesont
pluslespersonnesquil'ontdvelopp.
(5)
L'OMG(ObjectManagementGroup)estuneassociationamricainebutnonlucratifcreen
1989dontl'objectifestdestandardiseretpromouvoirlemodleobjetsoustoutessesformes.
L'OMGestnotammentlabasedesspcificationsUML,MOF,CORBAetIDL.L'OMGestaussi
l'originedelarecommandationMDA.
Lessourcesprsentessurcettepagesontlibresdedroitsetvouspouvezlesutiliservotre
convenance.Parcontre,lapagedeprsentationconstitueuneuvreintellectuelleprotgeparles
droitsd'auteur.Copyright2013LaurentAUDIBERT.Aucunereproduction,mmepartielle,nepeut
trefaitedecesiteetdel'ensembledesoncontenu:textes,documents,images,etc.sans
l'autorisationexpressedel'auteur.Sinonvousencourezselonlaloijusqu'troisansdeprisonet
jusqu'300000dedommagesetintrts.
ContacterleresponsabledelarubriqueUML
http://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet 15/15