Architecture logicielle : quelques éléments
L'architecture informatique définit la structuration d'un système informatique (i.e. matériel et logiciel) en termes de composants et d'organisation de ses
Unified Software Development Process / Unified Process (UP)
14 oct. 2014 un processus de développement logiciel. - construit sur UML ... d'architecture logicielle (ou architecture logique) :.
Analyse et Conception avec UML
IUT Nice Sophia Antipolis. Site web du module : https://mbf-iut.i3s.unice.fr/. Page 2. Extrait d'un Rapport Polytech SI5 Architecture Logicielle
Untitled
Tests et Validation du logiciel http://home.nordnet.fr/~ericleleu pas de boucle dans l'architecture. ? c'est souvent possible.
Conception en UML Architecture n-tiers
https://mbf-iut.i3s.unice.fr/lib/exe/fetch.php?media=2014_2015:s3:concprogobjet:mvc-2014-2015.pdf
Mise en oeuvre dune méthode Agile -
10 sept. 2014 Un logiciel qui fonctionne est produit à chaque sprint ... Architecte concepteur
Plan Ainsi font font…. Attention
Nessus is very fast reliable and has a modular architecture that allows you to fit it to your needs. 134.59.134.215:mbf-iut.i3s.unice.fr.
Ecrire du bon code : Les principes S.O.L.I.D.
5 oct. 2014 d'architecture mais les principes présentés restent toujours vrais et ... Les entités logicielles doivent être ouvertes à l'extension.
GRASP : conception objet et responsabilités
En génie Logiciel un patron de conception (design pattern en anglais) est standards pour répondre à des problèmes d'architecture et de conception.
GRASP : conception objet et responsabilités Première approche des
10 sept. 2014 En génie Logiciel un patron de conception (design pattern en ... standards pour répondre à des problèmes d'architecture et de conception.
GRASP : conception objet et
responsabilits extrait de UML2 et les Design Patterns, Craig Larman design patterns 1Mireille Blay-Fornarino, Universit Nice Sophia Antipolis, Dpartement Info IUT, Septembre 2014
mercredi 10 septembre 14Bibliographie
Craig Larman, UML2 et les Design Patterns
Glenn D. Blank CSE432, Lehigh University
Sylvain Cherrier, Design Patterns
Laurent Henocque, Design Patterns
2 mercredi 10 septembre 14Design patterns ?
En gnie Logiciel, un patron de conception (design pattern en anglais) est paradigme objet. Les patrons de conception dcrivent des solutions des logiciels (source Wikipdia) ÒA pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.ÓChristopher Alexander, professor of architecture
3 mercredi 10 septembre 14Conception dirige par les
responsabilitsMtaphore
communaut dÕobjets responsables qui collaborent (cf. humains) :Anthropomorphism.
penser lÕorganisation des composants (logiciels ou autres) en termes de responsabilits par rapport des rles, au sein de collaborations.Responsabilit
abstraction de comportement (contrat, obligation par rapport un rle) une responsabilit nÕest pas une mthode; les mthodes sÕacquittent des responsabilits.Anthropomorphism: Object-oriented
programming works like human organizations.Each object will communicate with another one
by sending messages. So the software objects work by just sending those messages.Ron McFadyen, 2004
4 mercredi 10 septembre 14Conception dirige par les
responsabilits Les responsabilits de Faire dÕun objet peuvent tre : faire quelque chose (un calcul, crer un autre objet), dclencher une action sur un autre objet, contrler et coordonner les activits d'un autre objet Les responsabilits de savoir dÕun objet peuvent tre : conna"tre les valeurs de ses propres attributs (donnes prives encapsules), connaitre les objets qui lui sont rattachs, conna"tre les lments quÕil peut calculer ou driver. 5 mercredi 10 septembre 14GRASP : General Responsability
Assignment Software Patterns
Une approche mthodique de la COO
Patterns gnraux dÕaffectation des responsabilits pour aider la conception oriente-objet raisonner objet de faon mthodique, rationnelle, explicablePatterns fondamentaux, simples, basiques...
Utiles pour lÕanalyse et la conception
Rfrence : Larman 2004
6 mercredi 10 septembre 14GRASP : Un principe gnral
Toujours chercher rduire le dcalage des reprsentations entre la faon de penser le domaine (humaine)Ç un chiquier a des cases È
les objets logiciels correspondants un objet Echiquier contient des objets Case vs. un objet Echiquier contient 4 objets 16 Cases vs. un objet TYR43 contient des EE25 7 mercredi 10 septembre 14Des Patterns GRASP
Information Expert
Creator
Low Coupling
Controller
High Cohesion
Polymorphisme
Fabrication Pure
8 mercredi 10 septembre 14Expert en Information (GRASP)
Quel est le principe gnral dÕaffectation des responsabilits aux objets ?Solution
Affecter la responsabilit lÕexpert en information i.e. la classe qui responsabilit 9 mercredi 10 septembre 14Expert (GRASP) : Exemple
Monopoly : qui conna"t un objet Case tant donn une cl ? Qui est responsable de retrouver une case partir de son nom ? Sylvain Cherrier, Design Patterns???c= getCase(nom) 10 mercredi 10 septembre 14Expert (GRASP) : Exemple
Monopoly : qui conna"t un objet Case tant donn une cl ? Qui est responsable de retrouver une case partir de son nom ?Sylvain Cherrier, Design Patterns
11 mercredi 10 septembre 14Expert (GRASP) : Exemple
dÕexemplaires disponibles ? 12 mercredi 10 septembre 14Expert (GRASP) : Exemple
Commencer avec la question
De quelle information a-t-on besoin pour dterminer le nombre dÕexemplaires disponibles ? Disponibilit de toutes les instances dÕexemplaires PuisQui en est responsable ?
Sylvain Cherrier, Design Patterns
13Livre est lÕExpert pour cette information
mercredi 10 septembre 14Expert (GRASP) : Exemple
Sylvain Cherrier, Design Patterns
14 Qui est responsable de connaitre le nombre de livres en rayon? mercredi 10 septembre 14Expert (GRASP) : Exemple
Sylvain Cherrier, Design Patterns
15 mercredi 10 septembre 14Expert (GRASP) : Discussion
Le plus utilis de tous les patterns dÕattribution de responsabilitUn principe de base en OO
LÕaccomplissement dÕune responsabilit ncessite souvent que lÕinformation ncessaire soit rpartie entre diffrents objets.Sylvain Cherrier, Design Patterns
16 mercredi 10 septembre 14Expert (GRASP) : Discussions
Facilite lÕencapsulation et la cohsion
les objets utilisent leur propre information pour mener bien leurs tches Le comportement est distribu travers diffrentes classes qui ont lÕinformation ncessaire comprendre et maintenirAutres noms
Mettre les responsabilits avec les donnes
Qui sait, fait
Faire soi-mme
Sylvain Cherrier, Design Patterns
17 mercredi 10 septembre 14Crateur (GRASP)
Qui doit avoir la responsabilit de crer une nouvelle instance dÕune classe donne ?Solution
18 Affecter la classe B la responsabilit de crer une instance de la classe A si une - ou plusieurs - des conditions est vraie :B enregistre des objets A
B utilise troitement des objets A
B a les donnes dÕinitialisation qui seront transmises aux objets A lors de leur cration Ç B est un Expert en ce qui concerne la cration de AÈ mercredi 10 septembre 14Crateur (GRASP) : exemple
Monopoly : qui doit tre responsable de la cration des cases du jeu?Intuitivement ?
19 mercredi 10 septembre 14Crateur (GRASP) : exemple
Monopoly : qui doit tre responsable de la cration des cases du jeu? On conforte notre intuition par un diagramme de squence. 20 mercredi 10 septembre 14Crateur (GRASP) : exemple
Monopoly : qui doit tre responsable de la cration de la case du jeu? 21mercredi 10 septembre 14
Crateur (GRASP) : exemple
Sylvain Cherrier, Design Patterns
BasePret contient des Prts : elle doit les crer. 22mercredi 10 septembre 14
Crateur (GRASP) : discussion
Guide pour attribuer une responsabilit pour la cration dÕobjet Finalit : trouver un crateur pour qui il est ncessaire dÕtre connect aux objets crs favorise le Faible couplage Moins de dpendances de maintenance, plus dÕopportunits de rutilisationPattern lis
Faible couplage
Composite
Fabricant
Sylvain Cherrier, Design Patterns
23mercredi 10 septembre 14
Crateur (GRASP) : contre-
indicationCreation may require signiÞcant complexity:
recycling instances for performance reasons conditionally creating instances from a family of similar classes In these instances, other patterns are availableÉ WeÕll learn about Factory and other patterns laterÉGlenn D. Blank CSE432, Lehigh University
24mercredi 10 septembre 14
Faible couplage (GRASP)
Comment minimiser les dpendances, rduire lÕimpact des changements, et augmenter la rutilisation ?Solution
Affecter une responsabilit de sorte que le couplage reste faible. Appliquer ce principe pour valuer les solution possibles.Couplage
Mesure du degr auquel un lment est li un autre 25mercredi 10 septembre 14
Couplage
Exemples classiques de couplages de TypeX vers TypeY dans un langage OOTypeX a une mthode qui rfrence TypeY
TypeX est une sous-classe directe ou indirecte de TypeY TypeY est une interface et TypeX lÕimplmente 26Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Couplage
faible ? 27Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Couplage faible : Exemple
Exemplaire dans le Prt (...). Quelle classe en sera responsable ? 28Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14 Avoir un couplage faible signiÞe une faible dpendance aux autres classes Un changement dans une classe force changer toutes ou la plupart des classes lies Les classes prises isolment sont difÞciles comprendre Rutilisation difÞcile : lÕemploi dÕune classe ncessite celui des classes dont elle dpendBnÞces du couplage faible
Exactement lÕinverse
29Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Couplage faible : discussion
Pas de mesure absolue de Çquand un couplage est trop fortÈ stablesJava.util par exemple
30Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Couplage faible : discussion
Cas extrme de faible couplage
des objets incohrents, complexes, qui font tout le travail des objets isols, non coupls, qui servent stocker les donnes peu ou pas de communication entre objets une mauvaise conception qui va lÕencontre des principes OO (collaboration dÕobjets) Bref 31Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Contrleur (GRASP)
Quel est le premier objet au del de lÕIHM qui reoit et coordonneSolution
32Sylvain Cherrier, Design Patterns
Choisir ou Inventer un objet dans la couche
application pour grer le ÇcontrleÈ mercredi 10 septembre 14Contrleur (GRASP)
Quel est le premier objet au del de lÕIHM qui reoit et coordonne (contrle)Solution
Affecter cette responsabilit une classe qui correspond lÕun des cas suivants logiciel sÕexcute (eq. des variantes dÕun contrleur Faade) produit 33Sylvain Cherrier, Design Patterns
contrleur : objet n'appartenant pas lÕIHM ayant la responsabilit de recevoir ou de grer un vnement mercredi 10 septembre 14Contrleur : exemple
34mercredi 10 septembre 14
Contrleur : exemple (suite)
scnario? Quelle(s) classes connectent la couche ÇPrsentationÈ la couche charge de la logique applicative ? 35mercredi 10 septembre 14
Contrleur Facade
exemples : ProductController, etc.A utiliser quand
contrleur alternatif 36Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Contrleur Cas dÕutilisation
Utiliser le mme contrleur pour tous les vnements dÕun cas dÕutilisation Un contrleur diffrent pour chaque cas dÕutilisation contrleur artiÞciel (ÇHandlerÈ), pas un objet du domaineA utiliser quand
trop charg) rpartit la gestion entre des classes distinctes et faciles grer permet de conna"tre et dÕanalyser lÕtat du scnario en coursSylvain Cherrier, Design Patterns
37mercredi 10 septembre 14
Contrleur trop charg (mauvais)
Pas de focus, prend en charge de nombreux domaines de responsabilitle contrleur effectue la majorit des tches ncessaires pour rpondre aux vnements
un contrleur doit dlguer dÕautres objets les tches effectuer ces informations doivent tre distribues dans les autres objets ou doivent tre des duplications dÕinformations trouves dans dÕautres objetsSolution
ajouter des contrleurs concevoir des contrleurs dont la priorit est de dlguer 38Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Remarque : couche prsentation
Les objets dÕinterfaces graphique (fentres, applets) et la couche de cÕest la responsabilit de la couche domaine 39Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Contrleur : Avantages
Meilleur potentiel de rutilisation
moyen de sparer les connaissances du domaine de la couche prsentation/IHMCapture lÕtat dÕun Cas dÕUtilisation
ordre 40Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion (GRASP)
Cohsion
La cohsion (la cohsion fonctionnelle) est une mesure de lÕtroitesse des liens et de la spcialisation des responsabilits dÕun lment (dÕune classe) Une classe qui a des responsabilits troitement lies et nÕeffectue pas un travail gigantesque est fortement cohsive 41Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion (GRASP)
Comment parvenir maintenir la complexit grable ? Comment sÕassurer que les objets restent comprhensibles et faciles grer? quÕils contribuent au faible couplage ?Solution
Attribuer une responsabilit de telle sorte que la cohsion reste forte. Appliquer ce principe pour valuer les solutions possibles. 42Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion (suite)
Les classes ayant une faible cohsion effectuent des tches sans liens entre elles ou effectuent trop de tchesDifÞciles comprendre
DifÞciles rutiliser
DifÞciles maintenir
Fragiles, constamment affectes par le changement 43Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion : Exemple
GestionPret est partiellement responsable de la mise en place de lÕISBN GestionPret sera responsable de beaucoup dÕautres fonctions 44Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion : Exemple
Dlgation des responsabilits et coordination des tches 45mercredi 10 septembre 14
Forte Cohsion : discussion
Comme le couplage faible, un pattern dÕvaluation garder en tte pendant toute la conception [Booch] : Il existe une cohsion fonctionnelle quand les lments dÕun composant (eg. Les classes) travaillent toutes ensemble pour fournir un comportement bien dlimit È 46Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion
Une classe de forte cohsion a un petit nombre de mthodes, avec des fonctionnalits hautement lies entre elles, et ne fait pas trop de travailUn test
Dcrire une classe avec une seule phrase.
ensemble de modules cohsifs et peu coupls 47Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Forte Cohsion : discussion
BnÞces de la forte cohsion
Augmentation de la clart et de la comprhension de la conceptionMaintenance et amliorations simpliÞes
SigniÞe en gnral couplage faible
Meilleur potentiel de rutilisation
48Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Polymorphisme (GRASP)
Comment grer des alternatives dpendantes des types ? Comment crer des composants logiciels Ç enÞchables È ?Solution
Quand des fonctions ou des comportements connexes varient en fonction du type (classe), affectez les responsabilits - en utilisant des oprations polymorphes - aux types pour lesquels le comportement varie ne pas utiliser de test sur le type dÕun objet ou une logique conditionnelle (if/ then/else) pour apporter des alternatives bases sur le type 49Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Polymorphisme (GRASP)
Polymorphisme
donner le mme nom des ÇservicesÈ dans diffrents objets 50Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Polymorphisme : exemple
disponible ? 51Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Polymorphisme : exemple
Monopoly : En fonction de la case sur laquelle atterrit le joueur le comportement est diffrent : Sur la case dpart, le joueur reoit 200 $, Sur la case impt, le joueur paie 10% de son cash, sur la case AllezEnPrison, le joueur va sur la case Prison. 52mercredi 10 septembre 14
Polymorphisme : exemple
Monopoly : En fonction de la case sur laquelle atterrit le joueur le comportement est diffrent : Sur la case dpart, le joueur reoit 200 $, Sur la case impt, le joueur paie 10% de son cash, sur la case AllezEnPrison, le joueur va sur la case Prison. 53mercredi 10 septembre 14
Polymorphisme : exemple
Monopoly : En fonction de la case sur laquelle atterrit le joueur le comportement est diffrent : Sur la case dpart, le joueur reoit 200 $, Sur la case impt, le joueur paie 10% de son cash, sur la case AllezEnPrison, le joueur va sur la case Prison. 54mercredi 10 septembre 14
Polymorphisme : exemple
Monopoly : En fonction de la case sur laquelle atterrit le joueur le comportement est diffrent : Sur la case dpart, le joueur reoit 200 $, Sur la case impt, le joueur paie 10% de son cash, sur la case AllezEnPrison, le joueur va sur la case Prison. 55mercredi 10 septembre 14
Polymorphisme
Implique en gnral lÕutilisation de classes abstraites et dÕinterfacesAvantages
Les points dÕextension requis par les nouvelles variantes sont faciles ajouter On peut introduire de nouvelles implmentations sans affecter les clients 56Sylvain Cherrier, Design Patterns
mercredi 10 septembre 14Fabrication pure (GRASP)
Que faire quand les concepts du monde rel (objets du domaine) ne sont pas utilisables en respectant le Faible couplage et la Forte cohsion ?Solution
Affecter un ensemble fortement cohsif une classe artiÞcielle ou dequotesdbs_dbs23.pdfusesText_29[PDF] 1 Architecture traditionnelle et réhabilitation au Maroc - RehabiMed
[PDF] Le matériel : architecture des ordinateurs - Limuniv-mrsfr
[PDF] Architecture matériel et logiciel 2
[PDF] Architectures Logicielles et Matérielles - Verimag
[PDF] Vers une architecture n-tiers
[PDF] Les réseaux Peer-to-Peer
[PDF] L 'architecture postale - La Poste
[PDF] Partie 1 : Architecture et communications Client/Serveur - Univ Lyon 1
[PDF] Architecture Traditionnelle Méditerranéenne Méthode RehabiMed
[PDF] La fabrication de l architecture en Tunisie indépendante : une
[PDF] l 'architecture traditionnelle en tunisie : l 'habitat rural - RehabiMed
[PDF] Etude d une architecture IP intégrant un lien satellite - OATAO
[PDF] Les règles de classement et d 'archivage des documents d 'entreprise
[PDF] LES RECHERCHES CONCERNANT L ALGERIE - Archives nationales