Vous êtes sur la page 1sur 26

INF 345

GÉNIE LOGICIEL
SEPTEMBRE 2022

LICENCE 3 INFORMATIQUE
CRÉDITS 6 - 50H - CM : 30H - TD : 10H - TP : 05H - TE : 05H

PAR D R . J USTIN MOSKOLAI,


Q UALIFIÉ C NU 2 7 E S ESSION F RANCE
SOMMAIRE

Chapitre 1 : Les concepts fondamentaux


du Génie Logiciel

• Définitions
• Rôle de la POO
• Quelques diagrammes
• Concepts fondamentaux

SJP
SAINT JÉRÔME POLYTECHNIQUE

2
GÉNIE LOGICIEL

q Définition
o Ensemble des méthodes, des techniques et des outils dédiés à
la conception, au développement et à la maintenance des
systèmes informatiques.

q Objectifs
o Avoir des procédures systématiques pour des logiciels de
grande taille afin que la spécification corresponde aux besoins
réels du client
o le logiciel respecte sa spécification
o les délais et les coûts alloués à la réalisation soient respectés

Logiciel = programme + utilisation

3
CARACTÉRISTIQUES DU GÉNIE LOGICIEL

q Environnement
o utilisateurs : grand public (traitement de texte), spécialistes
(calcul météorologique), développeurs (compilateur)
o autres logiciels : librairie, composant

q Matériel
o capteurs (système d'alarme), réseau physique (protocole),
machine ou composant matériel contrôlé (ABS)

q Spécification
o Ce que doit faire le logiciel, ensemble de critères que doivent
satisfaire son fonctionnement interne et ses interactions avec
son environnement

4
CRISE DU LOGICIEL

q Constat du développement logiciel fin années 60 :


o délais de livraison non respectés
o budgets non respectés
o ne répond pas aux besoins de l'utilisateur ou du client
o difficile à utiliser, maintenir, et faire évoluer

5
CRISE DU LOGICIEL

Petit projet Vs Grand projet

6
UTILISATION DES FONCTIONNALITÉS IMPLANTÉES

q Fonctionnalités implémentées
o « La satisfaction du client et la valeur du produit sont plus grandes
lorsque les fonctionnalités livrées sont bien moins nombreuses que
demandé et ne remplissent que les besoins évidents. »

7
RAISONS DE LA FAIBLE QUALITÉ DES LOGICIELS

q Tâche complexe
o Taille et complexité des logiciels
o Taille des équipes de conception/développement

q Manque de méthodes et de rigueur


o Manque de méthodes de conception
o Négligence et manque de méthodes et d'outils des phases de
validation/vérification

q Mauvaise compréhension des besoins


o Négligence de la phase d'analyse des besoins du client
o Manque d'implication du client dans le processus

8
RAISONS DE LA FAIBLE QUALITÉ DES LOGICIELS

q Difficultés spécifiques du logiciel


o Produit invisible et immatériel
o Difficile de mesurer la qualité
o Conséquences critiques causées par modifications infimes
o Mises à jour et maintenance dues à l'évolution rapide de la
technologie
o Difficile de raisonner sur des programmes
o Défaillances logicielles principalement humaines

9
IMPORTANCE DE LA QUALITÉ DES LOGICIELS

q Fiabilité, sûreté et sécurité des logiciels


o Transports automobile, ferroviaire, aéronautique
o Contrôle de processus industriels, nucléaire, armement
o Médical : imagerie, appareillage, télé-surveillance
o e-commerce, carte bancaire sans contact, passeport
électronique

q Raisons économiques : coût d'un bug


o Coût de la correction, du rappel des appareils défectueux
o Coût de l'impact sur l'image, de l'arrivée tardive sur le marché
o Coût en vies, coût de l'impact écologique

10
QUALITÉ DU LOGICIEL

q Critères de qualité
o Validité : réponse aux besoins des utilisateurs
o Facilité d'utilisation : prise en main et robustesse
o Performance : temps de réponse, débit, fluidité...
o Fiabilité : tolérance aux pannes
o Sécurité : intégrité des données et protection des accès
o Maintenabilité : facilité à corriger ou transformer le logiciel
o Portabilité : changement d'environnement matériel ou logiciel

11
PROCESSUS DE DÉVELOPPEMENT LOGICIEL

q Processus développement logiciel : Ensemble d'activités successives,


organisées en vue de la production d'un logiciel

q En pratique
o Pas de processus idéal
o Choix du processus en fonction des contraintes (taille des équipes,
temps, qualité...)
o Adaptation de « processus types » aux besoins réels

q Activités du développement logiciel


o Analyse des besoins
o Spécification
o Conception
o Programmation
o Validation et vérification
o Livraison
o Maintenance

12
PROCESSUS DE DÉVELOPPEMENT LOGICIEL

q Analyse des besoins : Comprendre les besoins du client


o Objectifs généraux, environnement du futur système,
ressources disponibles, contraintes de performance…
o Fournie par le client (expert du domaine d'application, futur
utilisateur…)

q Spécification :
o Établir une description claire de ce que doit faire le logiciel
(fonctionnalités détaillées, exigences de qualité, interface…)
o Clarifier le cahier des charges (ambiguïtés, contradictions) en
listant les exigences fonctionnelles et non fonctionnelles

13
PROCESSUS DE DÉVELOPPEMENT LOGICIEL

q Conception : Élaborer une solution concrète réalisant la


spécification
o Description architecturale en composants (avec interface et
fonctionnalités)
o Réalisation des fonctionnalités par les composants
(algorithmes, organisation des données)
o Réalisation des exigences non fonctionnelles (performance,
sécurité…)

q Programmation : Implantation de la solution conçue


o Choix de l'environnement de développement, du/des
langage(s) de programmation, de normes de développement...

14
PROCESSUS DE DÉVELOPPEMENT LOGICIEL

q Validation : assurer que les besoins du client sont satisfaits (au


niveau de la spécification, du produit fini...)

q Vérification : assurer que le logiciel satisfait sa spécification

15
RÉPARTITION DES EFFORTS DE DÉVELOPPEMENT

16
MÉTHODES DE CONCEPTION

q Conception fonctionnelle
● Système = ensemble de fonctions
● État du système (données) centralisé et partagé par les fonctions

q Conception guidée par les données


● Système = base de données
● Fonctions communes à toutes les données
● Adaptée à l’élaboration de grandes bases de données

q Conception orientée objet


● Système = ensemble d’objets
● Objet = données + fonctions
● État du système distribué entre tous les objets

SJP

17
SAINT JÉRÔME POLYTECHNIQUE
CONCEPTION ORIENTÉE OBJET

q Principes
● Concept du domaine d'application = objet
Décrit par état (attributs) + comportement (opérations)
● Liens entre concepts : héritage, agrégation, composition...

q Caractéristiques des objets


● Identité : objet = entité unique (mêmes attributs ⇏ même objet)
● Classification : regroupement des objets de même nature
(attributs + opérations)
● Polymorphisme : comportement différent d'une même
opération dans différentes classes
● Héritage : partage hiérarchique des attributs et opérations

SJP

18
SAINT JÉRÔME POLYTECHNIQUE
POURQUOI UML ?

q Besoin de modéliser pour construire un logiciel


● Modélisation des aspects statiques et dynamiques
● Modélisation à différents niveaux d'abstraction et selon
plusieurs vues
● Indépendant du processus de développement

q Besoin de langages normalisés pour la modélisation


● Langage semi-formel
● Standard très utilisé

q Conception orientée objet


● Façon efficace de penser le logiciel
● Indépendance du langage de programmation (langages non
objet)

SJP

19
SAINT JÉRÔME POLYTECHNIQUE
UML : UNIFIED MODELING LANGUAGE

Langage :
● Syntaxe et règles d'écriture

● Notations graphiques normalisées

… de modélisation :
● Abstraction du fonctionnement et de la structure du système

● Spécification et conception

… unifié :
● Fusion de plusieurs notations antérieures : Booch, OMT, OOSE

● Standard défini par l'OMG (Object Management Group)

● Dernière version : UML 2.4.1 (août 2011)

En résumé : Langage graphique pour visualiser, spécifier, construire et


documenter un logiciel

SJP

20
SAINT JÉRÔME POLYTECHNIQUE
RÔLE D’UML

q Visualiser
Modèles graphiques avec une sémantique précise

q Spécifier
Capture de décisions importantes dans les modèles

q Construire
Connections à des langages de programmation permettant d’effectuer
du « forward » ou du « reverse engineering »

q Documenter
Partage de connaissances sur le système

SJP

21
SAINT JÉRÔME POLYTECHNIQUE
UML …

Langage graphique : Ensemble de diagrammes permettant de


modéliser le logiciel à selon différentes vues et à différents niveaux
d'abstraction

Modélisation orientée objet : modélisation du système comme un


ensemble d'objets interagissant

UML est un langage de modélisation objet


UML convient pour toutes les méthodes objet
UML n'est pas une méthode de conception, mais une notation
UML est un outil indépendant de la méthode

SJP

22
SAINT JÉRÔME POLYTECHNIQUE
OBJECTIFS UML

§ Fournir à l'utilisateur un outil de développement visuel facile à


utiliser, pour qu'il puisse développer et échanger des modèles
significatifs.
§ Fournir des mécanismes d'extensibilité et de spécialisation pour
étendre les concepts de base.
§ Etre indépendant des langages de programmation et des processus
de développement.
§ Fournir une base formelle pour comprendre le langage de
modélisation.
§ Encourager la croissance des outils orientés objet.
§ Supporter des concepts de haut-niveau tels que la collaboration, les
structures, les modèles et composants
§ Intégrer les meilleures techniques et usages

SJP

23
SAINT JÉRÔME POLYTECHNIQUE
DIAGRAMMES UML

SJP

24
SAINT JÉRÔME POLYTECHNIQUE
DIAGRAMMES UML

SJP

25
SAINT JÉRÔME POLYTECHNIQUE GESTION DE PROJET (PAR DR J. MOSKOLAI)
EXEMPLE D’UTILISATION DIAGRAMMES UML

SJP

26
SAINT JÉRÔME POLYTECHNIQUE GESTION DE PROJET (PAR DR J. MOSKOLAI)

Vous aimerez peut-être aussi