Concevoir l architecture d un système



Documents pareils
UML (Paquetage) Unified Modeling Language

Identification du module

Rational Unified Process

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Patrons de Conception (Design Patterns)

IFT2255 : Génie logiciel

ITIL V3. Objectifs et principes-clés de la conception des services

Introduction au Génie Logiciel

NFP111 Systèmes et Applications Réparties

Gestion des Identités et des Autorisations: Modèle générique

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Université de Bangui. Modélisons en UML

Comité Français des Tests Logiciels. Testeur Certifié. Version 2012

Guide d Intégration PPM et ERP:

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Analyse structurée de solutions pour BMC Remedy IT Service Management v 7

Rendez-vous la liberté avec Rational Quality Manager

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

S organiser pour le Cloud

Vos outils de messagerie dans le Cloud avec LotusLive Notes. Session LOT12 Xavier Défossez - Lotus Technical Sales

Programme d'amélioration continue des services

Diagramme de classes

Optimisez vos processus informatiques, maximisez le taux de rendement de vos actifs et améliorez les niveaux de service

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Master Informatique et Systèmes. Architecture des Systèmes d Information. 02 Architecture Applicative

Le Guide Pratique des Processus Métiers

Automatisation de l administration système

CQP Développeur Nouvelles Technologies (DNT)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Le Processus Unifié. Une Démarche Orientée Modèle. IUP NTIE - Master 1 - Jérémie Guiochet - 4/11/09

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Description de la formation

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Diagrammes de Package, de déploiement et de composants UML

Composants Logiciels. Le modèle de composant de CORBA. Plan

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Développement itératif, évolutif et agile

Prise en compte des ressources dans les composants logiciels parallèles

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Évaluation et implémentation des langages

RTDS G3. Emmanuel Gaudin

UML (Diagramme de classes) Unified Modeling Language

Bases de données cours 1

Tsoft et Groupe Eyrolles, 2005, ISBN :

Modélisation et évaluation de performance des systèmes basés composants

Environnements de Développement

Les méthodes itératives. Hugues MEUNIER

CORBA. (Common Request Broker Architecture)

Introduction à LDAP et à Active Directory Étude de cas... 37

Chapitre 9. Assistance à l évolution du logiciel dirigée par la qualité

CONFIGURER ET DÉPLOYER UN CLOUD PRIVÉ AVEC SYSTEM CENTER 2012

Analyse,, Conception des Systèmes Informatiques

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

OpenText StreamServe Cours Customer Communication Management L essentiel

Vérifier la qualité de vos applications logicielle de manière continue

Disponibilité 24-7/365

TechSoftware Présentations

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

4. SERVICES WEB REST 46

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Retek Data Warehouse 11.0 Guide d'installation du Middle Tier

Projet Active Object

Services technologiques mondiaux IBM Canada Services de personnel d appoint. Catalogue des fonctions techniques

CEG4566/CSI4541 Conception de systèmes temps réel

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Ingénierie des Modèles. Méta-modélisation

SOA : une brique de la 4 ième génération de l architecture informatique? Hervé Crespel Président du club urba-ea

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Introduction aux systèmes temps réel. Iulian Ober IRIT

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Planifier la migration des applications d entreprise dans le nuage

Le pilotage des collaborations et l interopérabilité des systèmes d information Vers une démarche intégrée

DEFINITIONS et REGLES RELATIVES AUX LICENCES

CNAM cours NFE107 : Urbanisation et architecture des SI Xavier Godefroy, Rapport sur le BPM, mai Le BPM

Alpha PRIMO 58 boulevard baron du Marais Roanne / / contact@alphaprimo.fr

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Liste des Formations

DESCRIPTION DES PRODUITS ET MÉTRIQUES

J2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet

Cours STIM P8 TD 1 Génie Logiciel

DotNet. Plan. Les outils de développement

Bien architecturer une application REST

ITIL V3. Transition des services : Principes et politiques

EXALOGIC ELASTIC CLOUD MANAGEMENT

Didacticiel du service cartographique en cache

Architecture d'entreprise : Guide Pratique de l'architecture Logique

L A B U S I N E S S. d a t a g i n f o r m a t i o n g a c t i o n

Groupe Eyrolles, 2004 ISBN :

PERFORMANCE BASE DE DONNÉES

Bases de Données. Plan

Transcription:

Concevoir l architecture d un système Hafedh Mili 2007 Concevoir l architecture d un système Le système doit réaliser un ensemble de fonctions ayant des dépendances logiques entre elles Architecture fonctionnelle Il faut réaliser ces fonctions de sorte à satisfaire les exigences non-fonctionnelles Les divers scénarios de qualité La façon de répondre à ces exigences (tactiques et styles architecturaux) est indépendant des fonctions Hafedh Mili Copyright 2007 2 1

Concevoir l architecture d un système La conception de l architecture d un système consiste à associer («mapper») l architecture fonctionnelle du système à un (des) moule/patron(s) architectural(aux) Hafedh Mili Copyright 2007 3 Concevoir l architecture d un système 1. Architecture fonctionnelle 2. Attribute-riven esign (A) 3. ocumenter l architecture 4. Conception en couches Hafedh Mili Copyright 2007 4 2

Architecture fonctionnelle L architecture fonctionnelle dépend de la structure des tâches et processus d affaires sous-jacents à l application Indépendante de la conception Elle est apparente aux niveaux exigences et analyse Hafedh Mili Copyright 2007 5 1. Architecture fonctionnelle A. Paquetages dans UML B. Relations entre paquetages C. éfinir l architecture fonctionnelle Hafedh Mili Copyright 2007 6 3

Paquetages («Package») Un «package»: un groupement logique d éléments de modèles UML, constituant un espace de nommage Hafedh Mili Copyright 2007 7 Package Éléments publics (exportés) Éléments privés Nom package + classe 1 + classe 2 + classe 3 + use case 1 + règles d affaires 1 - classe 4 - classe 5 Hafedh Mili Copyright 2007 8 4

1. Architecture fonctionnelle A. Paquetages dans UML B. Relations entre paquetages C. éfinir l architecture fonctionnelle Hafedh Mili Copyright 2007 9 Relations entre paquetages (1/4) Inclusion Pack A Pack A Pack B Pack C Pack B Pack C Hafedh Mili Copyright 2007 10 5

Relations entre packages (2/4) Hafedh Mili Copyright 2007 11 Relations entre paquetages (3/4) «use»: un élément de A utilise («use») un élément public de B (superclasse, interface, paramètre, attribut, composant, etc.) «import»: les éléments public de B sont ajoutés comme éléments publics à A, et on y fait référence sans qualification «access»: les éléments publics de B sont ajoutés comme éléments privés de A, et on y fait référence sans qualification «trace»: montre un historique de développement (e.g. analyse conception) Hafedh Mili Copyright 2007 12 6

Relations entre paquetages (4/4) Transitivité: d après les définitions La composition est transitive «use» n est pas transitive «import» est transitive «access» n est pas transitive «trace» est transitive Hafedh Mili Copyright 2007 13 1. Architecture fonctionnelle A. Paquetages dans UML B. Relations entre paquetages C. éfinir l architecture fonctionnelle Hafedh Mili Copyright 2007 14 7

Architecture fonctionnelle Objectif: organiser les classes d analyse en un ensemble de paquetages (modules) cohésifs, lesquels sont organisés en partitions et couches Qu est ce qu une bonne modularisation: Une bonne cohésion des modules Un faible couplage entre modules Hafedh Mili Copyright 2007 15 Exemple Partitions Couches Hafedh Mili Copyright 2007 16 8

Trouver les paquetages (1/3) Identifier les groupes de classes exhibant un lien sémantique assez fort eux critères: Regroupement de classes dans le modèle: beaucoup de liens / associations entre éléments du même groupe candidat, peu de liens entre éléments appartenant à deux groupes candidats différents Manipulés par les mêmes cas d utilisation Hafedh Mili Copyright 2007 17 Trouver les paquetages (2/3) Commencer par un premier découpage Raffiner le découpage pour maximiser la cohésion et minimiser le couplage entre paquetages: Minimiser le nombre d éléments publics Minimiser les dépendances Enlever les dépendances cycliques Hafedh Mili Copyright 2007 18 9

Enlever les dépendances cycliques (3/3) Hafedh Mili Copyright 2007 19 Concevoir l architecture d un système 1. Architecture fonctionnelle 2. Attribute-riven esign (A) 3. ocumenter l architecture 4. Conception en couches Hafedh Mili Copyright 2007 20 10

Attribute-riven esign - Conception architecturale orientée attributs (de qualité) Une approche récursive de décomposition architecturale basée sur les scénarios de qualité Les scénarios de qualité sont pris par ordre décroissant de priorité On produit les premiers niveaux de: La vue «décomposition de modules» Autres vues au besoin Hafedh Mili Copyright 2007 21 A (CAOAQ ) Pour chaque composant/sous-système/le système au complet: On prend le(s) prochain(s) scénario(s) de qualité dans l ordre de priorité On choisit les tactiques ou le patron architectural qui répond le mieux au scénario On distribue la fonctionnalité du composant/soussystème/système au complet entre différences instances du patron architectural patron Hafedh Mili Copyright 2007 22 11

Une étape de A cénario(s) de qualité Composant fonctionnel élection du patron architectural écomposition fonctionnelle Instanciation du patron Hafedh Mili Copyright 2007 23 Une itération de A 1. Choisir le prochain module à décomposer; s assurer que les exigences fonctionnelles, de qualité, et les contraintes sont connues 2. Raffiner le module selon les étapes suivantes: a. Identifier les «architectural drivers» parmi les scénarios de qualité et les exigences fonctionnelles b. Choisir ou créer un patron architectural qui satisfait les «architectural drivers», et identifier les composantes du patron c. Instancier les composantes du patron et distribuer la fonctionnalité du module à décomposer et représenter avec différentes vues d. éfinir les interfaces pour les sous-modules. e. Vérifier et raffiner les cas d utilisation (fonctionnels) et les scénarios de qualité en fonction de la décomposition 3. Répéter les étapes pour chaque module qui a besoin d être décomposé davantage Hafedh Mili Copyright 2007 24 12

Choisir le prochain module à décomposer Le terme «Module» fait référence à, i) système au complet, ii) sous-système, et iii) sous-module On commence avec le système au complet En plus des exigences fonctionnelles et de qualité, on peut avoir aussi des contraintes, e.g., le besoin d inter-opérer avec un système externe Hafedh Mili Copyright 2007 25 2.a) choisir les «architectural drivers» Une combinaison d exigences fonctionnelles et de qualité qui influencent l architecture ou le module sous considération Les exigences n ont pas la même priorité / importance L importance relative des exigences permet de départager des solutions partielles Hafedh Mili Copyright 2007 26 13

2.a) Exemple On suppose trois exigences / qualités architecturales fortes: écurité: ifférents utilisateurs ont le droit d utiliser différentes fonctionnalités Les fonctionnalités utilisent différentes données / attributs Les données sont confidentielles, et sont accessibles selon une politique de «need-to-know» Extensibilité/disponibilité: e nouvelles fonctionnalités peuvent être ajoutées pendant que l application tourne (pas de temps d arrêt de service) istribution Hafedh Mili Copyright 2007 27 2.b) Choisir un patron architectural Chaque style/patron : Implante plusieurs tactiques répondant à des exigences de qualité A des conséquences / effets secondaires sur d autres attributs de qualité Tactique 0..* répond à 0..* AttributQualité implante tylearchitectural 0..* 0..* 0..* 0..* influence Hafedh Mili Copyright 2007 28 14

2.b) exemple (1/2) Choix de tactiques: écurité: role-based access Extensibilité/disponibilité: éfinir un intermédiaire (broker) Enregistrement durant l exécution de nouvelles fonctionnalités istribution Proxy Hafedh Mili Copyright 2007 29 2.b) exemple (2/2) User input Une combinaison de publish & subscribe, proxy, et rolebased access Il y aura une copie unique du dispatcher et du bus (request broker) Plusieurs copies du gestionnaire de sécurité, une par composant fonctionnel ispatcher notification pub event Comp fonct Publier évènement notification Request broker Composant de service Composant fonctionnel requête réponse Gest. ecu annuaire Hafedh Mili Copyright 2007 30 15

2.c) Instancier les composantes du patron, et distribuer la fonctionnalité Trois sous-tâches: i. Instancier les composantes du patron: approche top-down ii. Vérifier que toute la fonctionnalité du module sous considération est allouée à l une des composantes (ou à plusieurs en collaboration) iii. Représenter selon les autres vues Hafedh Mili Copyright 2007 31 2.c) Instancier les composantes du patron, et distribuer la fonctionnalité i. Instancier les composantes du patron en top-down: Une sous-composante (fonctionnelle) par groupe fonctionnel Un groupe fonctionnel peut être réalisé par une collaboration de composants fonctionnels et non-fonctionnels Hafedh Mili Copyright 2007 32 16

2.c.i) exemple User input User input ispatcher notification pub event Gest. patients Publier évènement requête réponse annuaire notification Gest. ecu Gest PM Publier évènement requête réponse annuaire notification Gest. ecu Request broker Hafedh Mili Copyright 2007 33 2.c.ii) vérifier si chaque fonctionnalité du système est allouée à un ou à plusieurs composants Où est la gestion de la facturation? Gestion de la facturation ispatcher Gestion patients Gestion person. med Gestion actes médic Gestion rendez-vous Request broker Hafedh Mili Copyright 2007 34 17

2.c.ii) vérifier si chaque fonctionnalité du système est allouée à un ou à plusieurs composants (suite) La distribution de fonctionnalité du module sous considération entre sous modules entraîne des interactions entre sousmodules: Prendre note de ces interactions Les représenter dans les autres vues du système / module Hafedh Mili Copyright 2007 35 2.c.iii) représenter l architecture avec des vues Représenter l architecture par au moins une vue dans chaque groupe tructures de modules: décomposition, uses, par couches, class (vues développement) tructures «component-connector»: processus communiquants, concurrence, données partagées, client-serveur (vues run-time) tructures d allocation (vues allocation): déploiement (processus processeur), implémentation (module fichier), division de travail (module équipe) Hafedh Mili Copyright 2007 36 18

2.d) définir les interfaces des sousmodules identifiés Pour chaque sous-module identifié dans la décomposition, décrire les services et propriétés offertes et requises. Chacune des vues offre des éléments d information: Vue décomposition de module: montre, i) producteurs/consommateurs d information, et ii) patron d interaction entre eux Vue concurrence: interaction entre thread, statut de composante, données de synchronization, etc. Vue déploiement: exigences matériel, exigences de chronométrage (timing), exigences de communication Hafedh Mili Copyright 2007 37 2.e) vérifier et raffiner les exigences en fonction de la décomposition Exigences fonctionnelles: traduire les exigences du module par des use cases des sous-modules Contraintes: s assurer que les contraintes imposées au module sont traitées par la décomposition: La décomposition respecte la contrainte La contrainte est respecté par un sous-module La contrainte est respectée par une collaboration de sous modules cénarios de qualité: la décomposition peut atisfaire le scénario atisfaire le scénario moyennant des contraintes / les sous-modules Être neutre Faire échec au scénario: Hafedh Mili Copyright 2007 38 19

Et Après? Constituer les équipes de réalisation Réaliser un squelette de l architecture Hafedh Mili Copyright 2007 39 Constituer les équipes Une bonne modularisation permet une division efficace du travail: Cohésion des modules responsabilités bien définies Faible couplage entre modules peu de communication / coordination / négociation sont nécessaires entres les équipes Hafedh Mili Copyright 2007 40 20

Construire un squelette du système abord, implanter les parties de l application qui gèrent l exécution et l interaction entre les composantes Ensuite, ajouter les fonctionnalités une à une, en commençant par celles qui présentent le plus de risque Les relations «uses» entre modules permettent de planifier les incréments Hafedh Mili Copyright 2007 41 Concevoir l architecture d un système 1. Architecture fonctionnelle 2. Attribute-riven esign (A) 3. ocumenter l architecture 4. Conception en couches Hafedh Mili Copyright 2007 42 21

ocumenter l architecture Choisir les vues pertinentes au système sous considération. Cela dépend de: ystème public ocumenter les vues individuellement ocumenter les liens entre vues Hafedh Mili Copyright 2007 43 Vues (d après [Bass et al., 2003]) Intervenant ecomp. Vues modules Uses Classes Couches C&C Any Allocation eploiemt Implément Gest. Projet éveloppeur Testeur Entretien Product Line app builder O Client O Usager Analyste upport Nouvel intervenant X X X X X X X Architecte Hafedh Mili Copyright 2007 44 22

ocumenter les vues Un patron générique: Présentation globale (souvent graphique) de l essentiel Catalogue des éléments / composants: Propriétés des éléments, leur relations, leur interfaces, leur comportements iagramme de contexte Guide de variabilité: 1) points de variabilités, 2) spectres de valeurs, 3) binding time Justification de l architecture (hypothèses, design rationale, historique) Glossaire Informations supplémentaires Hafedh Mili Copyright 2007 45 ocumenter une interface Identité (nom) Ressources fournies (dans un IL): syntaxe, sémantique, restrictions d usage éfinitions de types éfinitions des exceptions Points de variation / configuration de l interface Attributs de qualité satisfaits par l interface Ressources exigées: syntaxe, sémantique, restrictions d usage Rationale et problèmes de conception Guide d utilisation Hafedh Mili Copyright 2007 46 23

ocumentation globale Comment la documentation est organisée Liste des vues Modèle / patron des vues L architecture elle même urvol du système Correspondance entre vues Liste des éléments, et dans quelle(s) vues ils apparaissent Glossaire Pourquoi elle est telle quelle Justification («design rationale») Hafedh Mili Copyright 2007 47 Utiliser UML pour documenter l architecture Architecturale fonctionnelle / vues modules: les paquetages («package») Autres variantes de paquetages: stéréotypes «couche», «framework», Hafedh Mili Copyright 2007 48 24

Interface Une façon de distinguer la spécification d un élément de son implantation Un mécanisme utile dans plusieurs tactiques: issimulation de l information Abstraire les différences non-essentielles entre implantation Capturer / planifier les points de variations Polymorphisme Etc. Hafedh Mili Copyright 2007 49 Notation «interface» Comparable +compare(in other : Comparable) : short(idl) Observer <<realization>> <<realization>> FicheProduit Comme un classifieur avec un stéréotype «interface» Comme une sucette Hafedh Mili Copyright 2007 50 25

Composantes Hafedh Mili Copyright 2007 51 éploiement Hafedh Mili Copyright 2007 52 26