Académique Documents
Professionnel Documents
Culture Documents
Les applications informatiques Les applications informatiques sont de trois sortes: Les applications usage personnel Les application dentreprise Les progiciels
Application dentreprise Malgr les progr s du gnie logiciel! la russite des pro"ets informatiques reste faible# $es tudes rcentes montrent des dpassements de budget et dchance encore importants# %t ces drives affectent la ma"orit des pro"ets#
Les chiffres
&'( des pro"ets co)tent au moins *++( des estimations initiales# ,- billion de dollars ont t dpens en -..& au U#S#/# sur des pro"ets arr0ts avant la fin#
Arrt avant la fin 30%
Les c"iffres
Selon un rapport de la 'ritis" (omputer Societ) en *++*: -1( seulement des pro"ets aboutissent# &.( sont en dpassement budgtaire# '&( sont en dpassement de dlais# &2( des fonctionnalits attendues sont manquantes#
Succ3s complet
'udget dpass
'udget conforme
A,andonn
$.% %%
-.%
'udget infrieur
&%%
7&%
$&%
5ors dlai
6onctionnalits manquantes
6onctionnalits conformes
6onctionnalits supplmentaires
0$%
Les ,esoins
On confond souvent un besoin et une demande# Les utilisateurs e4priment une demande mais elle correspond rarement leurs besoins# On pense connatre parfaitement ses besoins mais 7a ne signifie pas que lon sache: Les e4primer clairement 5omment il sera possible de les satisfaire
La qualit
=rer ces contraintes revient dfinir le niveau de qualit dun logiciel > Les informaticiens ont tou"ours t confronts ces probl mes de qualit > Mais quest?ce que la qualit logicielle @ A 8SO ,2+*: %nsemble des caractristiques dune entit qui lui conf rent laptitude satisfaire des besoins e4prims et implicites B
La mt"odologie
Une mthodologie peut 0tre dfinie par la mise en Cuvre des trois outils suivants:
;ne notation visuelle pour modliser un s6st me et le communiquer ;n processus pour organiser les activits de dveloppement /es tec"niques danal)se et de conception pour prendre en charge les crit res de qualit
Processus
Techniques
La modlisation dingnierie
est
une
technique
qui permet de comprendre un s6st me par ltablissement de mod les pour mettre au point une solution un probl me#
4ourquoi modliser :
La modlisation nous aident reprsenter un s6st me en prcisant sa structure# en dfinissant ce quil faitG son comportement# en dterminant comment il le fait# en fournissant un canevas qui guide sa construction# en le documentant#
(omment modliser :
UML propose un mo6en pour reprsenter diverses pro"ections dun s6st me: les vues# %lles sont gnralement constitues dun ou plusieurs diagrammes UML : Hui sont des reprsentations graphiques qui sintressent un aspect prcis du mod le# $ont chaque t6pe est compos dlments de modlisation prdfinis# $ont la combinaison offre une vue compl te des aspects fonctionnels! statiques et d6namiques dun s6st me#
Statique
Diagramme Diagramme Diagramme Diagramme de classes de composants de dploiement dobjets
Dynamique
Diagramme dactivits (Diagramme dtats transitions) (Diagramme de squences) Diagramme de collaboration
<la,oration de la modlisation
UML est une avance importante pour le gnie logiciel mais ce nest ni une mthode! ni un processus# Si UML permet de modliser un s6st me! il ne dfinit pas le processus dlaboration des mod les# $ans quel ordre doit?on utiliser les neufs t6pes de diagrammes @ / quel moment de la conception dun s6st me doivent?ils intervenir @ Seul un processus de dveloppement peut rpondre ces questions >
Le4pression des besoins consiste pour le client laborer un cahier des charges dcrivant: Les fonctionnalits du s6st me tudi La fa7on dutiliser le s6st me
La spcification des ,esoins La spcification des besoins permet au4 utilisateurs! e4perts! et au4 informaticiens de finaliser le cahier des charges en levant les ambiguJts en liminant les redondances
La conception
La conception ou A le comment B concerne les e4perts informatiques# On 6 dtermine la mani re de rsoudre techniquement le probl me pos# 5omment raliser les fonctionnalits attendues#
Limplmentation
Limplmentation consiste / construire les programmes dans un langage de programmation donn# / organiser logiquement les programmes en fonction de larchitecture logique choisie# / distribuer les programmes sur le s6st me informatique selon larchitecture ph6sique retenue#
Les tests sont de deu4 sortes# 6onctionnels= 8ls vrifient que le s6st me implmente bien les fonctionnalits attendues# *ec"niques= 8ls vrifient que limplmentation des fonctionnalits est techniquement correcte# La maintenance traite les volutions etKou les corrections apporter au s6st me#
4rocessus de fa,rication
4roduit 4rocess ;sine LLigneM
> !v A 9 !v ' > 4i3ce $ 9 Sous9ens $ 4i3ce 4i3ce 3 (aractristiques fa,= 4t soudure $
4t soudure -
5atalogue de Mo6ens
Spcification Analyse
Validation
Conception prliminaire
Conception dtaille
Tests unitaires
Implmentation
;4 le processus unifi
U9 est un processus de t6pe adaptatif! il est 8tratif et incrmental =uid par les besoins des utilisateurs 5entr sur larchitecture 9ilot par les risques On le reprsente selon la4e statique et d6namique des processus de dveloppement#
!eprsentation du processus ;4
/isciplines et artefacts
/isciplines Artefacts %4pression des besoins ;ision du pro"et Spcifications Mod le des cas dutilisation Spcifications supplmentaires =lossaire /nal6se Mod le du domaine 5onception Mod le de conception /rchitecture logicielle Mod le de donnes Mise en oeuvre Mod le dimplmentation Eests Mod le de tests =estion de pro"ets 9lan de dveloppement %nvironnement 5as de dveloppement
a a a a
Mod3le du domaine Mod3le de conception Mod3le dimplmentation Mod3le darc"itecture Mod3le de tests
/plo)s par
Mod3le de dploiement
Les considrations de dploiement et les besoins non fonctionnels La performance! la fiabilit! la robustesse! etc#
Les adaptations de ;4
gnrique
de
8l doit 0tre adapte au conte4te du pro"et! de lquipe et de lorganisation concerne# 8l e4iste donc des adaptations dU9 dont les plus connues sont: Le Qational Unified 9rocess LQU9M LeRtreme 9rogramming LR9M Le ESo EracTs Unified 9rocess L*EU9M
La modlisation du s)st3me
La connaissance dun modlisation comme UML langage de
La mise en Cuvre dun processus de dveloppement adaptatif comme U9 Ue disent pas ce que doit faire le s6st me ni comment le modliser > Uous avons besoin de techniques pour le spcifier! lanal6ser et le concevoir#
Mod3le du domaine Mod3le de conception Mod3le dimplmentation Mod3le darc"itecture Mod3le de tests
/plo)s par
Mod3le de dploiement
Les scnarios
Un scnario est un chemin particulier pris lors de le4cution dun use case# Iominal ? cest le scnario t6pique de succ s# Alternatif 3 il correspond au4 traitements alternatifs possibles# /c"ec 3 il recensent les checs dans le droulement dune tape de scnario# scnario
Le format rsum
Le format rsum dcrit bri vement! le comportement du cas dutilisation# 8l ne mentionne que lactivit et les checs les plus significatifs# On les labore en tendant la liste des ob"ectifs par acteur#
Les patterns
Larchitecte 5hristophe /le4ander est le premier les avoirs voqus en rponse la question suivante# Les individus dune m0me culture sont?ils tous daccord sur ce qui peut?0tre considr comme une bonne conception @ La rponse la conduit dcouvrir des mod les pouvant servir de base ob"ective lvaluation dune conception: les patterns
Anal)ss par
(onGus par !aliss par
Mod3le du domaine
Mod3le de conception Mod3le dimplmentation Mod3le darc"itecture Mod3le de tests
/plo)s par
Mod3le de dploiement
8,Eectif de lanal)se
/nal6ser les besoins! cest rechercher les ob"ets du domaine! leurs proprits et leurs relations# Le diagramme de classe issu de cette activit reprsente: les classes conceptuelles ou les ob"ets du domaine# les attributs de ces classes# les associations entre ces classes#
Mode opratoire
9our chaque cas dutilisation! on droule les tapes des scnarios que lon anal6se: 9our identifier les classes du domaine# 9our rechercher les attributs de ces classes# 9our recherches les associations entre ces classes# 9our t6per ces associations#
Les attri,uts
Un attribut est la valeur dune donne logique dun ob"et# Une personne par e4emple un nom et un prnom qui doivent 0tre connus# La classe conceptuelle Personne doit donc avoir des attributs Nom et Prnom.
Les associations
Une association est une significative entre des classes# relation
$ans un Mod le du $omaine! on ne retient que deu4 sortes dassociations# Les associations mmorables# Les associations issues de la liste des associations courantes#
Mod3le du domaine
Enre istre!la!#ente!de
Est!dcrit!par
Catalogue Produits
())*
(
#rticle
())*
%egistre vente-&ente
Paiement montant
(
Est!paye!par
Eechnique de conception
La conception gnrique
$ocument de vision
Anal)ss par
Mod3le du domaine
(onGus par
!aliss par Structurs par *ests par /iagramme des ;(s
Mod3le de conception
Mod3le dimplmentation Mod3le darc"itecture Mod3le de tests
/plo)s par
Mod3le de dploiement
Lactivit de conception
La spcification et lanal6se des besoins ont permis de dfinir quel s6st me construire# Lactivit de conception! sintresse la fa7on de construire le s6st me# %lle vise construire une solution qui satisfasse au4 besoins du s6st me#
Les
patterns
daffectation
des
responsabilits
&Syst'me
creer(ou#elleVente)* saisirArticles)codeArticle+ quantite* Descriptif+ total ,-autres articles. terminerVente)* Total a#ec taxes creer/aiement)montant* 0onnaie 1 rendre+ re2u
Ces vnements s.st/me entrants invoquent des oprations s.st/me) '#nement syst'me creerNouvelleVente invoque une opration syst'me appele creerNouvelleVente() et ainsi de suite)
!alisation SaisirArticle
Anal)se Une ligne article doit 0tre cre et associe une spcification produit et la vente en cours# La quantit de la ligne article doit 0tre renseigne# !esponsa,ilit qui doit crer la ligne article @ qui connait la spcification darticle associer la ligne article @ qui doit transmettre la quantit la ligne article @
Mod3le de conception
&3e istre &Catalo ue /roduit &Specification /roduit &Vente
creer'igne#rticle(spec0 qte)
create(spec0qte) -'igne#rticle
/iagramme de conception
Enre istre!la!#ente!de
Est!dcrit!par
Catalogue Produits
())*
( get,peci!ication(code)
( +))( ( ( 4tilis!par *
#rticle
%ournalise ())* * ( (
Est!paye!par
La modlisation architecturale
La modlisation arc"itecturale
$ocument de vision
Structurs par
!aliss par *ests par /iagramme des ;(s /plo)s par
Mod3le darc"itecture
Mod3le dimplmentation Mod3le de tests Mod3le de dploiement
8rigine Larchitecture cest A lart de concevoir et de construire un bItiment selon un esthtisme et des r gles techniques dtermines# B 5ette dfinition peut sappliquer la fabrication du logiciel# / linstar dun bItiment! un logiciel est: structur par un plan! illustr par une maquette! ralis par des procds et des outils adapts#
/imension arc"itecturale Larchitecture dun s6st me peut 0tre vue selon deu4 angles principau4# La vue logique qui concerne lorganisation conceptuelle ou la structure du s6st me# La vue de dploiement qui concerne lorganisation ph6sique du s6st me: Machines! OS! Qseau4! etc <
La vue logique
La vue logique ou larchitecture logicielle dcrit: Lorganisation gnrale dun s6st me# Les lments qui le structurent et leurs interfaces# Les proprits et les collaborations des lments qui le composent# %lle contribue une meilleure qualit du Logiciel en terme de: maintenance! volutivit! rutilisation! performance! etc#
Le mod3le '(F/
8l sinspire de lapproche M;5 et du mod le & couches# $ans ce mod le! on factorise les classes dune application en quatre catgories: 5lasse boundar6 ou ;?# 5lasse control ou ;?4# 5lasse entit6 ou 'F# 5lasse database interface ou /AL# 8l facilite le dploiement en permettant de crer des composants se dplo6ant naturellement#
La modlisation '(F/
La classe ,oundar) reprsente une interface entre un acteur et le s6st me# %lle appartient la couche prsentation# La classe control intercepte les vnements et contrPle la logique de lapplication# %lle appartient la couche de coordination# La classe entit) dcrit les ob"ets du domaine# %lle reprsente les donnes de la base de donnes et appartient la couche $omaine#
2 db inter!ace 3 Database%eader
La classe $/L dcrit les interfaces avec la base de donnes# %lle appartient la couche persistance#
La vue de dploiement
La vue par niveau ou Eiers donne la vision ph6sique dun s6st me# %lle distribue les couches logiques dun s6st me sur ses lments ph6siques# 9lusieurs de ces mod les ont vu le "our: Le mod le - Eiers# Le mod le * Eiers ou 5lientKServeur ou EhicT client# Le mod le ' Eiers aussi appel U?Eiers ou Ehin client#
Le mod3le $ tiers
8l correspond un seul niveau ph6sique oF sont hberges toutes les couches du s6st me# Les applications monopostes ou sur s6st me central sont de ce t6pe#
U4 56 D#' U4P U4 56 D#' U4P
Le mod3le - *iers
Le mod le 5lientKServeur repose sur lutilisation de bases de donnes relationnelles# Eoutes les couches sont distribues sur deu4 entits: le client et le serveur#
3seau
U4 56 D#' 5D U4P
/oste client
Ser#eur 56D6
Le mod3le I9*iers
$ans ce mod le on rpartit les couches logiques en trois niveau4 ou plus# 5est le mod le applications V%O# par
3seau
Ser#eur 8indo9s
U4 U4 U4P
e4cellence
pour
les
Client 7
Client 8indo9s
56 D#'
O$
La conception dtaille
La conception dtaille
$ocument de vision
Anal)ss par
Mod3le du domaine
(onGus par
Structurs par !aliss par *ests par /iagramme des ;(s /plo)s par
Les classes danal)se $ans le mod le O5%$! on a identifi quatre catgories de classes: %ntit6! Ooundar6! 5ontrol! $ata/ccesLa6er# On les appelle des classes danal6se# %t ce sont les ' derni res qui vont nous aider finaliser la ralisation des cas dutilisation#
pour les classes dialogues# pour les classes charges de la coordination entre les classes dialogues et les classes entit6# pour les classes mtier ou classes du domaine# 9our les classes dacc s au4 donnes#
A control B
A entit6 B
A $/L B
des
%elation bidirectionnelle
%elations unidirectionnelles
Application
5onception SaisirArticle#
-%egistre saisir#rticle(code0 qte) ,pec-1 get,peci!ication(code) ,pec-1 chercher(code) creer'igne#rticle(spec0 qte) create(spec0qte) -'igne #rticle
de
-Catalogue Produit
lopration
-,peci!ication Produit
s6st me
-&ente
Domaine
clic8
9rameTraiter&ente
,ervice Dal7'ine#rticle