Vous êtes sur la page 1sur 7

1ere partie :

Groupe Phoenix 3A11

Architecture logicielle (Les styles architecturaux + Les patrons de conceptions GoF)

Les Styles Architecturaux :

Définition :

L'architecture logicielle décrit d’une manière symbolique et schématique les différents éléments d’un ou de plusieurs systèmes informatiques, leurs relations et leurs interactions.

Le processus de l'architecture logicielle regroupe les exigences des clients, les analyse et produit la conception d'un élément du logiciel qui répondra à ces exigences.

La structuration du système peut être vue de deux manières :

– le découpage « logique » hors de tout contexte d’exécution (machines, OS et réseaux) – le découpage « physique » (prenant en compte le contexte d’exécution)

Modèle en 5 couches (découpage logique)

La structuration des applications se traduit par une décomposition logique de chaque

application en 5 couches Chaque couche a ses propres responsabilités et utilise la couche située en dessous d’elle

Le passage d’une couche vers une autre doit impérativement se faire via des interfaces.

une autre doit impérativement se faire via des interfaces . 1.Couche présentation : gère et assure

1.Couche présentation : gère et assure l'affichage de l'interface graphique utilisateurs et les

interfaces homme-machine (fenêtres, pages ….)

2.Couche contrôleur : gère le contrôle, les erreurs et les exception, les sessions …

3.Couche service : elle correspond aux traitement qu'effectue l'application et représente

l'implémentation de la logique des cas d'utilisations

4.Couche domaine : gère l'intégrité du modèle "métiers" (la gestion des règles élémentaires,

Page 1 sur 7

Groupe Phoenix 3A11

l'accès à l'information SGBD ….) 5.Couche persistance : elle offre les fonctionnalités de base qui permettent de créer, rechercher et permet d'utiliser le mapping Objet/relationnel.

Les avantages :

maîtriser la complexité des applications (développement, échanges entre les applications, interactions entre objets)

optimiser les temps de développement, en factorisant certains éléments

isoler les problématiques d’enchaînements de processus

favoriser la communication : à l’intérieur d’une application et entre les applications

Les inconvénients :

- Une expertise est requise

- Le cout du développement est élevé

- Difficulté de conception

- Empilement des couches

Exemple d'applications :

Le modèle 5 couches s’applique aux applications munies d’une interface graphique manipulant des données persistantes. Une pratique répandue dans l'architecture d'une application de gestion (utilisation des BD + interfaces graphiques )

Les Patrons de Conception :

Le patron de conception ou le design pattern est :

Un fragment d’architecture à objets qui présente une solution classique à un problème fréquent . Cette solution doit être indépendante des algorithmes qui découple les différents problèmes et leurs différentes réponses

Les patrons de conception GoF :

Ces patterns très célèbres ont été conçus par 4 informaticiens qui proposent eux aussi des

Page 2 sur 7

Groupe Phoenix 3A11

solutions élégantes, et toujours différentes pour résoudre différents problèmes récurrents

rencontrés par les architectes logiciels.

Ces patrons de conception sont classés en trois catégories :

Les patrons de création décrivent comment régler les problèmes d'instanciation de

classes

ils ont pour but de gérer les problèmes de création de nouveaux objets

Les patrons de structure décrivent comment structurer les classes afin d'avoir le

minimum de dépendance entre l'implémentation et l'utilisation dans différents cas.

ils servent à organiser les informations dans un graphe d’objets.

Les patrons de comportement décrivent une structure de classes pour le comportement

de l'application

ils servent à maîtriser les interactions entre objets

Patron prototype :

Catégorie : patron de création Objectifs : le pattern Prototype permet de créer de nouveaux objets à partir d'objets existants plutôt que produire de nouvelles instances. Ces objets sont appelés prototypes et possèdent une capacité de duplication.

Ce design pattern permet d'isoler l'appartenance à une classe

Exemple:

Prototype : définit l'interface de duplication de soi-même PrototypeA et prototypeB: sont des sous-classes concrètes de Prorotype. Elles implémentent l'interface de duplication. La partie client appelle la méthode clone() de la classe Prototype. Cette méthode retourne un double de l'instance

- On utilise le pattern Prototype :

double de l'instance - On utilise le pattern Prototype :  Quand on doit créer de

Quand on doit créer de nouveaux objets à partir d'objets existants soit par copie, soit par clonage.

Quand la création d'un objet est plus coûteuse que de le copier.

Page 3 sur 7

Exemple d'application :

La classe Prototype est le squelette principal qui permet de créer les nouvelles copies. Les classes BonCommande, Facture et Notice sont les sous-classes spéficiques ayant leurs propres attributs. La méthode Clone() retourne une copie de l'objet.

Groupe Phoenix 3A11

ayant leurs propres attributs. La méthode Clone() retourne une copie de l'objet. Groupe Phoenix 3A11 Page

Page 4 sur 7

Groupe Phoenix 3A11

2ème partie : la gestion de configuration logicielle (GCL)

Intérêt de la GCL :

La gestion de configuration est la discipline qui permet de contrôler l'évolution d'un système, durant les diverses phases de développement et de maintenance et d'assurer l'intégrité et la cohérence des versions livrées tout en tenant compte des modifications apportées et des fonctionnalités ajoutées.

Objectifs :

Contrôler les évolutions durant tout le cycle de vie Archiver chacun des états successifs Vérifier que chaque état est cohérent et complet la maitrise des mises a jours

Pourquoi gérer en configuration ? Pour éviter que:

Le même fichier modifié par des développeurs différents pour des correction redondantes. Des anomalies corrigées qui réapparaissent à la suite d'une nouvelle amélioration La perte du programme source, de la bonne version de l'outil de développement L'incapacité de connaitre la version livrée et en exploitation Le blocage de l'application lors d'une mise a jour du système

Le processus de gestion de configuration

on retrouve 4 fonctions principales :

Le processus de gestion de configuration on retrouve 4 fonctions principales : Qu'offre la GCL? Page

Qu'offre la GCL?

Le processus de gestion de configuration on retrouve 4 fonctions principales : Qu'offre la GCL? Page

Page 5 sur 7

Groupe Phoenix 3A11

Travailler à plusieurs: chaque développeur utilise les 2 fonctions principale d’un GCL :

-le ckeckout qui permet de récupérer la dernière version d’un projet depuis un dépôt -le commit qui permet d’envoyer les modifications sur le dépôt

Conserver l’ensemble des versions d’un ensemble de fichiers : cela permet de revenir en arrière en cas de problème sur la version actuelle

Conserver l’identité des développeurs: la journalisation

Gérer les conflits: Lorsque plusieurs modifications ont lieu sur un même fichier, elle permet de ne pas voir son travail écrasé par un collègue qui n’avait pas effectué un checkout.

Il existe 2 types de GCL :

Centralisée : Un seul dépôt des versions faisant référence. Exp: CVS, Subversion(SVN). + Simple de mise en place

- Pas de développement hors connexion

Décentralisée : Plusieurs dépots pour un même logiciel. Exp : Git + Permet de travailler de manière indépendante des autres .

- ne permet pas de fusionner 2 versions différentes

Les principes de base :

La journalisation : permet de contrôler les modifications apportées à chaque fichier ou composant d’un logiciel:

Historique d’accès : Qui? Quand? Nature(Création/modification/destruction). Détail de la modification( par des outils intelligents de comparaison des sources).

Le versionning : Un logiciel évolue d’une version à l’autre en subissant une suite de changements Les principes de base du versionning :

- Il faut s’imaginer les relations entre versions comme un arbre (appelé arbre de gestion de versions) avec un tronc, des branches et des sous-branches

versions) avec un tronc, des branches et des sous-branches Tag: L’étiquetage (tag) consiste à associer un

Tag: L’étiquetage (tag) consiste à associer un nom à une version donnée

Page 6 sur 7

Groupe Phoenix 3A11

La gestion des conflits : La GCL permet de travailler de façon concurrente sur les mêmes fichiers. Si les portions modifiées diffèrent, il n'y a pas de problème. Si des portions modifiées sont communes, il y a problème. Les conflits se résolvent manuellement. Il existe 2 types de gestion de conflits :

- Pessimiste : impose à chaque utilisateur de demander un verrou avant de modifier une ressource ; ce verrou lui garantit qu'il sera le seul à modifier la ressource -Optimiste : Les développeurs peuvent éditer en même temps le même fichier : le logiciel de gestion de version s’occupe de fusionner toutes les versions du même fichier en un seul.

Page 7 sur 7