0% ont trouvé ce document utile (0 vote)
133 vues27 pages

2025-04-29 Introduction

Le document présente le cours MGL7361 sur les principes et applications de la conception de logiciels, abordant des thèmes tels que le cycle de vie du logiciel, la spécification des exigences, l'architecture logicielle et la conception détaillée. Il met l'accent sur l'importance de comprendre et de communiquer les exigences, ainsi que sur l'utilisation de styles et de patrons architecturaux pour guider le processus de conception. En conclusion, il résume les étapes clés du développement logiciel, de la spécification à la mise en œuvre.

Transféré par

lotok44326
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues27 pages

2025-04-29 Introduction

Le document présente le cours MGL7361 sur les principes et applications de la conception de logiciels, abordant des thèmes tels que le cycle de vie du logiciel, la spécification des exigences, l'architecture logicielle et la conception détaillée. Il met l'accent sur l'importance de comprendre et de communiquer les exigences, ainsi que sur l'utilisation de styles et de patrons architecturaux pour guider le processus de conception. En conclusion, il résume les étapes clés du développement logiciel, de la spécification à la mise en œuvre.

Transféré par

lotok44326
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MGL7361 – Principes et applications

de la conception de logiciels

1 | Introduction
29 avril 2025

Moustapha Boulgoudan
2
INTRODUCTION
SOMMAIRE
CYCLE DE VIE DU LOGICIEL
ARCHITECTURE LOGICIELLE
CONCEPTION DÉTAILLÉE
ATTRIBUTS DE QUALITÉ
CONCLUSION
MGL7361 - Introduction à la conception logicielle 29-04-2025
3 INTRODUCTION

 Site Moodle du cours : https://ena01.uqam.ca/course/view.php?id=71602


 Connaissances préalables
 Programmation dans un langage orienté-objet

 Stratégie pour enseigner


 Cours magistral : concepts
 Projets : application et discussion des concepts en équipe
 Vous avez la responsabilité de faire de la lecture
 Travail à la maison : ≈ 6h / semaine
 Révision des cours, lectures et projets

MGL7361 - Introduction à la conception logicielle 29-04-2025


4 CYCLE DE VIE DU LOGICIEL
 Spécification des exigences → SRS (Software
Requirements Specification)

 Conception
Conception architecturale (ou de haut niveau)

Conception détaillée

 Réalisation

 Maintenance
MGL7361 - Introduction à la conception logicielle 29-04-2025
5 SPÉCIFICATION DES EXIGENCES
Spécifier ce qu’on doit construire
 Répondre à la question QUOI et non COMMENT
 Décrire le problème et non la solution
Objectifs
 Comprendre précisement ce qu’on exige du logiciel
 Communiquer cette compréhension des exigences à
toutes les parties impliquées dans le développement du
logiciel
 Contrôler le logiciel en production pour s’assurer qu’il
répond aux exigences initiales ainsi que les
changements apportés

MGL7361 - Introduction à la conception logicielle 29-04-2025


6 TYPES D’EXIGENCES
 Fonctionnalités : Exigences fonctionnelles
 Qualité : Exigences non fonctionnelles
 L’interface utilisateur
 Le système
 Interopérabilité (avec des systèmes existants)
 Accessibilité / Facilité d’utilisation

MGL7361 - Introduction à la conception logicielle 29-04-2025


7 LE PROBLÈME DE BASE

Exigences

Comment combler le
????? fossé entre les
exigences et le code ?

Code

MGL7361 - Introduction à la conception logicielle 29-04-2025


8 PREMIER ÉLÉMENT DE RÉPONSE

Exigences

• Un cadre de haut niveau


pour construire et faire
évoluer le système
Architecture logicielle
• Peut utiliser un patron
architectural comme MVC
Code (Model-View-Controller)

MGL7361 - Introduction à la conception logicielle 29-04-2025


9 DEUXIÈME ÉLÉMENT DE RÉPONSE

Exigences

• La conception détaillée est plus


proche du code. Elle s’intéresse
aux classes, aux objets, aux
Architecture logicielle algorithmes, …
Conception
logicielle
• Peut utiliser des patrons de
conception à l’intérieur d’un
Conception détaillée
composant pour implémenter
des solutions.

Code • Exemples de patrons de


conception dans le cadre du
MVC : Singleton, Fabrique,
Observer, …
MGL7361 - Introduction à la conception logicielle 29-04-2025
10 CONCEPTION LOGICIELLE
Définition
 La conception est la spécification de la meilleure solution au
problème

Ce qu’elle produit
 Un plan de conception pour les programmeurs qui décrit
comment la solution va être développée

Objectif
 ”Fitness for purpose” qui stipule que la solution doit répondre
aux exigences de départ

MGL7361 - Introduction à la conception logicielle 29-04-2025


11 PROCESSUS DE CONCEPTION
LOGICIELLE
 À partir des spécifications des exigences, analyser les
besoins et produire un modèle ”boîte noire” du
problème Architecture

 Proposer une solution de conception ”boîte blanche”

 Valider la solution (à l’aide de prototypes par exemple)

 Produire un plan de conception pour les programmeurs


MGL7361 - Introduction à la conception logicielle 29-04-2025
12 PHASES DE CONCEPTION LOGICIELLE

Deux phases
Architecture logicielle
Conception détaillée

MGL7361 - Introduction à la conception logicielle 29-04-2025


13 ARCHITECTURE LOGICIELLE
L’architecture logicielle d’un système décrit sa structure
globale

 Principaux composants et leurs comportements


 Connexions entre les composants

en utilisant une ou plusieurs vues (views)

L’architecture logicielle comble le fossé entre les


exigences et le code.

MGL7361 - Introduction à la conception logicielle 29-04-2025


14 ARCHITECTURE LOGICIELLE
 Le concepteur (architecte) développe un modèle
abstrait de la solution dite : conception architecturale
Seulement les propriétés externes des éléments du
modèle sont incluses

 Partionnement “boîte noire” du problème qui :


Est largement concerné par la nature et la forme du
problème lui-même
Ne sera pas grandement influencé par la forme qui
sera adoptée pour sa solution

MGL7361 - Introduction à la conception logicielle 29-04-2025


15 CONCEPTION DÉTAILLÉE

 Les parties abstraites identifiées du problème dans la


phase architecturale sont mappées aux unités
techniques qui formeront donc une “boîte blanche”

 Produit les spécifications ou plans pour les


programmeurs

MGL7361 - Introduction à la conception logicielle 29-04-2025


16 PARTICULARITÉS DE LA CONCEPTION
LOGICIELLE
 Un logiciel est un processus complexe pour modéliser et
spécifier un comportement
 Le concepteur utilise différents points de vue
 Se base sur l’abstraction pour séparer les aspects logiques et
physiques
 Le processus de conception n’est pas analytique et les
critères de decision sont complexes et impliquent des
compromis
 Pour résoudre son problème, le concepteur utilise des
notations et des modèles de solutions connues
 Les notations permettent de fabriquer des modèles du produit
désiré pour ainsi étudier son comportement
 Les modèles de solutions sont les patrons
MGL7361 - Introduction à la conception logicielle 29-04-2025
17 PROBLÈMES PERNICIEUX (“WICKED”)
 Il n’y a pas de formulation definitive du problème à
résoudre
 Il n’y a pas de condition de terminaison pour l’activité
de conception
 Les solutions ne sont ni varies ni fausses mais bonnes ou
mauvaises
 La solution est toujours un cas d’espèce
 Il est impossible d’énumérer toutes les solutions possibles
à un problème
 Une solution peut amener son lot de problèmes

MGL7361 - Introduction à la conception logicielle 29-04-2025


18 CARACTÉRISTIQUES D’UN CONCEPTEUR
 Familiarité avec le domaine de l’application
Le modèle fonctionnel du domaine
Les attributs de qualité
La technologie utilisée
 Habilités de communication
Communiquer la vision technique à son équipe en
documentant la conception
 Suivi du progrès du projet

MGL7361 - Introduction à la conception logicielle 29-04-2025


19 IMPACT DES CONTRAINTES
Les contraintes suivantes réduisent l’espace de solutions :
 Contraintes sur le produit logiciel
L’environnement d’exécution
La forme d’implémentation finale
Paradigmes des langages de programmation
 Contraintes sur le processus de conception logicielle
Habilités des concepteurs et des programmeurs
Style architectural (politique de structure du logiciel)
Contraintes du produit
MGL7361 - Introduction à la conception logicielle 29-04-2025
20 DÉCISIONS DE CONCEPTION

 L’activité de conception consiste à prendre des


décisions

 On a besoin d’enregistrer les décisions pour savoir


pourquoi elles ont été prises

 Utiles s’il y a un audit de conception dans le cadre d’un


contrôle de qualité

MGL7361 - Introduction à la conception logicielle 29-04-2025


21 IMPACT DES CYCLES DE VIE DU LOGICIEL SUR
LA CONCEPTION
 La conception est fortement influencée par les étapes
qui la précèdent (exigences et spécification)
 Risque d’incohérences
 Entre les exigences et la spécification des exigences
 Entre la spécification des exigences et la conception
 Dans la conception elle-même → une implémentation inadéquate

 Apparition des incohérences


 Quand on effectue une revue de la conception (Design Review)
 Au moment de l’implémentation des éléments de la conception
 Au moment des tests de l’implémentation
MGL7361 - Introduction à la conception logicielle 29-04-2025
22 Notions de style et de patron
 Style architectural

 Patrons
 d’architecture (Architectural Patterns)
 de conception (Design Patterns)

MGL7361 - Introduction à la conception logicielle 29-04-2025


23 Style architectural
 Comment organiser le code

 Haut niveau de granularité

 Spécifie le couches et les modules de l’application et


comment elles interagissent entre eux

MGL7361 - Introduction à la conception logicielle 29-04-2025


24 Style architectural - Exemples
 Application monolitique
 En couches (Layers)
 Application à base de microservices
 Application à base d’événements
 Publish/Subscribe (Files d’attentes ou Queues)
…

MGL7361 - Introduction à la conception logicielle 29-04-2025


25 Les patrons
 Un patron est une solution à un problème recurrent
 Patrons d’architecture (Architectural Patterns)
Une façon d’implémener le style architectural
Résolvent les problems liés au style architectural
Exemples
À trois couches
Modèle / Vue / Contrôleur (MVC)

MGL7361 - Introduction à la conception logicielle 29-04-2025


26 Patrons
 Patrons de conception (Design Patterns)
 Portée limitée à une partie du code
 Résolvent les problems liés au style architectural
 Exemples
Singleton
Fabrique : Instancier un objet en fonction de son type à
l’exécution
Stratégie : Comportement de l’objet en fonction de son état
…

MGL7361 - Introduction à la conception logicielle 29-04-2025


27 CONCLUSION

 Cycle de vie du logiciel


 Spécification des exigences
 Architecture ou conception de haut niveau
 Conception détaillée
 Style architectural
 Patrons d’architecture
 Patrons de conception

MGL7361 - Introduction à la conception logicielle 29-04-2025

Vous aimerez peut-être aussi