Vous êtes sur la page 1sur 22

Chapitre :

La Conception

Eléments de Génie Logiciel 1


Introduction
• Conception: Étape cruciale du développement logiciel; pont entre
l’analyse des besoins et l’implémentation.
• Activité itérative/incrémentale qui transforme progressivement les
besoins vers un produit final.

Eléments de Génie Logiciel 2


Introduction
• Conception Vs Analyse
• Analyser: c’est définir le quoi?
• Concevoir: c’est définir le comment?

• Conception Vs implémentation
• L’implémentation est la mise en œuvre des choix issus de la
conception.
• L’implémentation doit pouvoir répondre aux contraintes de
réalisation sans mettre en cause les choix de conception.

Eléments de Génie Logiciel 3


Activité de conception
• But: Décomposition progressive du système en modules de plus en
plus détaillés.

Eléments de Génie Logiciel 4


Etapes de conception
• La conception logicielle comporte deux sous-activités:
• conception architecturale
• conception détaillée

• Ces deux sous-activités sont menées:


• soit l’une à la suite de l’autre, soit en parallèle (selon les besoins)
• en suivant un certain ensemble de principes de conception

Eléments de Génie Logiciel 5


Conception architecturale
• = conception globale = conception de haut niveau
• Objectifs:
• Structuration et organisation générale du système à concevoir
• Contient la description des éléments principaux du système, les
relations entre eux, les contraintes à respecter, les motifs et la
logique de cette décomposition.
• Produit : architecture logicielle

Eléments de Génie Logiciel 6


Architecture Logicielle
• Une architecture logicielle est une représentation abstraite d'un
système exprimée essentiellement à l’aide de composants logiciels en
interaction via des connecteurs. Composants

Connecteurs

• Ne fournit que les propriétés externes des éléments structurants


• Ne se préoccupe pas des détails d'implantation

Eléments de Génie Logiciel 7


Conception détaillée
• = conception de bas niveau
• Détailler les éléments produits dans la conception architecturale et
préparer au mieux l’implémentation:
• Description précise de chaque module
• Algorithmes mis en œuvre
• Traitements effectués an cas d’erreur

Eléments de Génie Logiciel 8


Principes de conception
• Règles et éléments fondamentaux du génie logiciel qui doivent guider
la phase de conception en vue de construire des systèmes fiables et
évolutifs.
• Principes mis en œuvre:
• Abstraction
• Raffinement
• Modularité
• Anticipation des changements
• Généralité
• Rigueur et formalisme
Eléments de Génie Logiciel 9
Qualité d’une bonne conception
• Un bon design devrait favoriser l’indépendance des modules

• Pour évaluer l’indépendance des modules, on se base généralement


sur les concepts suivants:
• Couplage
• Cohésion

• Une conception de qualité apporte à la fois:


• Une forte cohésion,
• Un faible couplage.
Eléments de Génie Logiciel 10
Couplage
• Couplage: mesure de l’interdépendance entre deux modules.
• Un ensemble de modules est faiblement couplé si les liens de
dépendances entre les modules sont peu nombreux.
Système non couplé Système faiblement couplé Système fortement couplé

Interaction d’utilisation:
•appel de fonction
• appel de procédure
• utilisation d’une variable
Eléments de Génie Logiciel 11
Couplage
• Un faible couplage est précurseur…
• d’un bon découpage du système: les éléments qui dépendent les
uns des autres ne sont pas éparpillés à travers les modules du
système.
• d’une facilité de maintenance: une modification dans un module
affecte éventuellement un nombre restreint d’autres modules.
Nombre de révisions réduites…

Eléments de Génie Logiciel 12


Cohésion
• Cohésion= Mesure de la force des relations qui unissent les éléments
fonctionnels à l’intérieur d’un module.
• Un module est fortement cohésif si tous ses éléments sont destinés
et sont essentiels à la réalisation d’une tâche commune unique.
• Une forte cohésion est un signe:
d’un bon découpage du système: les éléments qui sont en rapport
les uns avec les autres se retrouvent dans un même module.
d’une facilité de maintenance: les éléments destinés à une même
tâche sont regroupés et on peut facilement les retrouver.
d’un faible couplage: les éléments inter-dépendants se trouvant
dans le même module, les dépendances inter-modules sont
moindres… Eléments de Génie Logiciel 13
Méthodes de conception
• Méthode:
• Est une démarche, série d’étapes
• Basée sur des concepts
• Utilise une notation
• Méthode de conception
• Démarche (processus): spécifique à chaque méthode
• Concepts: principes du génie logiciel
• Notation:
Graphique
textuelle
Eléments de Génie Logiciel 14
Méthodes de conception
• Objectifs
– Faciliter le passage spécification-conception
– Faciliter la communication entre concepteurs
– Améliorer la qualité
– Améliorer la productivité
• On peut grossièrement distinguer deux familles de méthodes de conception:
• Méthodes fonctionnelles (plusieurs familles)
Le logiciel est vu comme un ensemble d’unités fonctionnelles
• Méthodes orientées objet
Le logiciel est vu comme un ensemble d’objets, chaque objet possède un état
et offre des méthodes qui peuvent modifier ou consulter son état.
Eléments de Génie Logiciel 15
Méthodes fonctionnelles
• Unité de décomposition : module.
• Système = ensemble de modules avec des interactions entre eux.
• approche générale :
décomposition fonctionnelle en modules, basée sur les traitements.
• Résultat :
- état du système centralisé
- conception complexe : nombreuses interconnexions entre les modules pour les
logiciels complexes
• Exemples: SADT, SASD qui regroupent Structured Anaysis (SA) et Structured
Design (SD) sont des exemples bien connus de méthodes fonctionnelles d’analyse
et conception. Ces méthodes datent des années 70.

Eléments de Génie Logiciel 16


Méthodes fonctionnelles
• méthodes descendantes
• Résultat : hiérarchie
Système

Fonction 1 Fonction 2

 Exemple : Gestion de bibliothèque


Sous Sous Sous Sous
Gestion de fonction 11 fonction 12 fonction 21 fonction 22
bibliothèques

Gestion des Gestion de


ouvrages prêts

Gestion Gestion de Gestion des Gestion des


d’acquisition réparation emprunts réservations

Eléments de Génie Logiciel 17


Méthodes fonctionnelles
Exemple: SADT
• SADT (Structured Analysis and
design Technics)
• Un modèle SADT = {diagrammes
ordonnés hiérarchiquement}.
• Démarche d’analyse structurée qui
identifie et organise les détails d’un
système qu’on veut appréhender
suivant une hiérarchie de modèles
parfaitement référencée.

Eléments de Génie Logiciel 18


Exemple SADT
Vente par correspondance

Eléments de Génie Logiciel 19


Méthodes orientés objets
• Unité de décomposition : objet
• Système = ensemble d’objets en interaction
• approche générale :
décomposition basée sur les objets
• Résultat
- état du système décentralisé
- système compréhensible, fossé sémantique réduite entre le monde réel et la
solution

Eléments de Génie Logiciel 20


Qu’est ce qu’un objet?
• Entité concrète ou abstraite du domaine d'application
• Décrit par état (attributs) + comportement (opérations pour
manipuler cet état)

Eléments de Génie Logiciel 21


Méthodes orientés objets
Exemple: UML2
• UML 2 est un bon moyen pour faire la conception d’un système

Eléments de Génie Logiciel 22

Vous aimerez peut-être aussi