Introduction au Génie Logiciel La phase de Conception Section 1,2,3 1ère année
Introduction au Génie Logiciel La phase de Conception Section 1,2,3 1ère année second cycle 13 Décembre 2017 AMAR BENSABER Djamel CYCLE DE VIE Express ion des besoins Analyse Conception Implém- entation Tests 13/12/2017 2 OBJECTIFS DU COURS Présenter l’activité de conception Faire le lien entre la conception haut niveau et la conception bas niveau Présenter les classes, les interfaces et les composants de conception Découvrir les principes d’une bonne conception 13/12/2017 3 PLAN DU COURS Section 1 : Introduction Section 2 : Les Classes de Conception Section 3 : Interfaces et Composants Section 4: Principes de Conception 13/12/2017 4 Phase de Conception _ Section 1 INTRODUCTION Définition Le modèle d’analyse définit les fonctionnalités (le quoi) du système à développer. La conception s’intéresse à comment ces fonctionnalités seront implémentées. La conception se base sur le modèle de besoins et le modèle d’analyse. Les solutions proposées par la conception repose sur le domaine métier et le domaine technique 13/12/2017 5 Phase de Conception _ Section 1 DOMAINE MÉTIER ET DOMAINE TECHNIQUE Le domaine métier concerne les actions relatives au métier du logiciel. Le domaine technique inclut les actions techniques à utiliser par la conception (base de données, techniques de persistance,…etc.) Par exemple, un logiciel de facturation. La validation de facturation fait partie du domaine métier. La bibliothèque permettant l’enregistrement des données dans une BDD fait partie du domaine technique. 13/12/2017 6 Phase de Conception _ Section 1 PRODUITS DE LA CONCEPTION Composants (sous- systèmes) Classes Interfaces Diagrammes de déploiement 13/12/2017 7 Phase de Conception _ Section 1 CONCEPTION ET ANALYSE Elément Analyse Conception Sous-systèmes Composants définissant la composition du système Classes La classe d’analyse représentent des concepts métier. Niveau bas de détail (signature de méthodes, types, …etc.) Les classes de conception sont plus détaillées et précises. Elles préparent le terrain aux développeur pour l’implémentation. En plus des concepts métier, elles contiennent les classes du domaine technique. 13/12/2017 8 Phase de Conception _ Section 1 CONCEPTION ET ANALYSE Elément Analyse Conception Interface Représente une « façade » du système indépendante de l’implémentation Diagrammes de composants et déploiement Structure et architecture du système 13/12/2017 9 Phase de Conception _ Section 1 LA TRACE D’ANALYSE Un élément de l’analyse peut être relatif à 0,1 ou plusieurs éléments de conception. Cette relation est modélisée en UML avec une dépendance avec le stéréotype « trace ». 13/12/2017 10 Phase de Conception _ Section 1 PROCESSUS La conception passe par deux étapes : la conception architecturale et la conception détaillée. 13/12/2017 11 Phase de Conception _ Section 1 Conception architecturale Conception détaillée PROCESSUS Activité assurée par les architectes. La conception architecturale concerne une vision descriptive des éléments de la conception : sous- systèmes (composants), classes et interfaces. La conception détaillée a pour but de donner les détails précis des éléments produits dans la conception architecturale et préparer au mieux l’implémentation. 13/12/2017 12 Phase de Conception _ Section 1 CARACTÉRISTIQUES D’UNE BONNE CONCEPTION • La conception doit permettre de fournir une solution technique répondant aux attentes du client. Ne pas faire plus que ce qu’attend le client. Répond avec précision aux besoins • Une bonne conception engendre un haut niveau de modularité où chaque module a des fonctionnalités précises et indépendantes. De tels systèmes sont plus simples et plus faciles à maintenir. Séparation des fonctionnalités SoC (Separation of Concerns) • Quand plusieurs solutions s’offrent pour la résolution du même problème, choisir la plus simple. Plus une conception est simple, plus il est facile de la comprendre et de la maintenir. Simplicité • Une bonne conception permet d’isoler rapidement les erreurs et des les réparer efficacement Facilité de maintenance 13/12/2017 13 Phase de Conception _ Section 1 LES CLASSES DE CONCEPTION La classe est l’élément principal de la conception orientée objet. La conception architecturale produit des classes et des interfaces sans trop aller dans le détail. La conception détaillée finalise le contenu des classes et des interfaces (classes détaillées). Une classe détaillée est le commencement de l’opération d’implémentation (codage) 13/12/2017 14 Phase de Conception _ Section 2 CLASSE DE CONCEPTION 13/12/2017 15 Phase de Conception _ Section 2 PROVENANCE DES CLASSES DE CONCEPTION Les classes de conception peuvent provenir de deux domaines : le domaine métier et le domaine technique. Les classes du domaine métier sont une évolution des classes d’analyse. Les classes du domaine technique font partie des bibliothèques ou frameworks faisant partie de la solution technique (bibliothèques, GUI, …), par exemple (Spring, Hibernate, Nhibernate, …) 13/12/2017 16 Phase de Conception _ Section 2 CARACTÉRISTIQUES D’UNE CLASSE DE CONCEPTION Une classe d’analyse définit un aperçu de la classe sans s’occuper des détails techniques. La classe de conception (domaine métier) est une évolution de la classe d’analyse en tenant en compte tous les détails (visibilité, paramètres, ..). La classe de conception contient la liste complète des attributs et des opérations que devrait avoir la classe. 13/12/2017 17 Phase de Conception _ Section 2 13/12/2017 18 Phase de Conception _ Section 2 13/12/2017 19 Phase de Conception _ Section 2 Interfaces et Composants SECTION 3 13/12/2017 20 Phase de Conception _ Section 3 INTRODUCTION La conception passe par diviser un système en sous-systèmes représentés par des composants. L’interaction et la médiation entre ces sous- systèmes se fait en utilisant les interfaces. 13/12/2017 21 Phase de Conception _ Section 3 QU’EST-CE QU’UNE INTERFACE ? Une interface est un ensemble d’opérations liées sémantiquement qui permettent de séparer la spécification de l’implémentation Une interface ne contient pas d’implémentation. Les classes se chargent d’effectuer cette implémentation. Ce lien s’appelle réalisation. Les interfaces sont supportées par Java et C#. En C++ le concept d’interface équivaut à une classe abstraite. Par convention, les interfaces commencent par I et utilisent un objectif (par exemple, IComparable) 13/12/2017 22 Phase de Conception _ Section 3 INTERFACE FOURNIE ET INTERFACE REQUISE Une interface fournie représente les fonctionnalités assurées par une classe ou par un sous-système. Une interface requise représente les fonctionnalités nécessaires à une classe. L’assemblage de deux composants sur la base d’une interface fournie / requise est appelé contrat. 13/12/2017 23 Phase de Conception _ Section 3 EXEMPLE Imaginons une gestion de scolarité où l’élève suit un certain nombre d’activités. Certaines de ces activités sont évaluables comme les examens et les exposés et d’autres ne le sont pas comme les cours. 13/12/2017 24 Phase de Conception _ Section 3 1ÈRE SOLUTION 13/12/2017 25 Phase de Conception _ Section 3 1ÈRE SOLUTION Conceptuellement, la 1ère solution n’est pas bonne. Les classes descendantes doivent redéfinir le mécanisme d’évaluation, chose qui n’est pas applicable sur les cours. 13/12/2017 26 Phase de Conception _ Section 3 13/12/2017 27 Phase de Conception _ Section 3 2ÈME SOLUTION La 2ème solution est meilleure que la 1ère. Supposons qu’on veuille intégrer l’assiduité de l’étudiant. Problème 1 : l’assiduité n’est pas une activité pédagogique sémantiquement. Problème 2 : Si la classe « Assiduité » hérite d’activité pédagogique, elle héritera de toutes les propriétés (par exemple « Responsable ») ce qui n’aura pas de sens. 13/12/2017 28 Phase de Conception _ Section 3 13/12/2017 29 Phase de Conception _ Section 3 3ÈME SOLUTION La 3ème solution résout les problèmes précédents en ajoutant un très grand degré d’abstraction. En plus elle facilite la conception du système global, le sous-système d’évaluation a pour interface requise « IEvaluable » et d’autres sous systèmes comme la gestion des examens, ont cette interface comme fournie. 13/12/2017 30 Phase de Conception _ Section 3 13/12/2017 31 Phase de Conception _ Section 3 Interface fournie Interface requise TROUVER LES INTERFACES o Examiner chaque association, vérifier si une association doit être figée ou flexible. o Examiner les opérations ayant un lien sémantique et voir s’il est bénéfique de les factoriser en une interface. o Trouver les opérations qui se trouvent dans plusieurs classes et dont l’héritage ne convient pas pour les faire lier. o Trouver les classes qui jouent le même rôle dans le système. Ce rôle peut être factorisé en une interface. o Réfléchir en terme d’extensibilité, plus on utilise les interfaces, plus on est extensible. o Identifier les interconnexions entre les composants et les sous-systèmes. 13/12/2017 32 Phase de Conception _ Section 3 uploads/Ingenierie_Lourd/ cours5-1-conception-copie.pdf
Documents similaires










-
47
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 15, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.9360MB