Vous êtes sur la page 1sur 35

Université Hassiba BenBouali- Chlef

Département Informatique

Introduction au Génie logiciel


Niveau: 3ème année licence Systèmes Informatiques
Module: Génie logiciel

Année Universitaire: 2020/2021


Génie logiciel: Défintions

 Ensemble des méthodes, des techniques et des outils dédiés à la


conception, au développement et à la maintenance des systèmes
informatiques de qualité avec maîtrise des coûts et délais.
Génie logiciel: Enjeux
Logiciel: Définitions

Ensemble d'entités nécessaires au fonctionnement d'un processus


de traitement automatique de l'information
Programmes, données, documentation...

Ensemble de programmes qui permet à un système informatique


d’assurer une tâche ou une fonction en particulier
Logiciel = programme + utilisation
Catégories des logiciels
Catégories des logiciels
Qualité d'un logiciel

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

Un logiciel bien fait est alors un logiciel:

•Correct(valide) •Facile à utiliser


•Fiable(robuste) •Maintenable
•Avec un code réutilisable •Ponctuel et Extensible
•Efficace
•Portable
Processus de développement d'un logiciel
Ensemble d'activités successives, organisées en vue de la production d'un
logiciel
Activités du développement logiciel
Etude de faisabilité
Spécification
Organisation du projet
Conception
Programmation
Test
Livraison
Maintenance
Pour chaque activité : Utilisation et production de documents
Activités du développement logiciel

Étude de faisabilité

Comprendre les besoins du client

 Définition globale du problème


 Evaluation des stratégies possibles
 Evaluation des ressources, coûts et délais

􀂅Documents: rapport d'analyse


Activités du développement logiciel

Spécification
 Établir une description claire de ce que doit faire le logiciel
(fonctionnalités détaillées, exigences de qualité, interface…)

 Clarifier le cahier des charges en listant les exigences fonctionnelles


(opérations, etc) et non fonctionnelles (performance, portabilité,etc.)

􀂅Documents: Manuel utilisateur préliminaire, et plan de test du système


Activités du développement logiciel

Organisation du projet

Déterminer comment on va développer le logiciel

Analyse des coûts: établir une estimation du prix du projet.


Planification: établir un calendrier de développement
Assurance qualité du logiciel: déterminer les actions qui permettront de
s’assurer de la qualité du produit fini
Répartition des tâches: hiérarchiser les tâches et sous-tâches nécessaires au
développement du logiciel
Activités du développement logiciel

Conception
1. Conception architecturale: décomposition et organisation de l'application
en composants plus simples (modules) définis par leurs interfaces
(fonctions et services offerts).
2. Conception détaillée: pour chaque module, description de la manière dont
les services et fonctions sont réalisés:
􀂄algorithmes essentiels
􀂄structures de données utilisées, etc.

􀂅Documents: document de conception, plan de test d'intégration et


plan de test par module.
Activités du développement logiciel

Programmation
Implantation de la solution conçue
Choix de l'environnement de développement, du/des langage(s)
de programmation, de normes de développement...

Traduction de la conception dans un langage de programmation

􀂅Documents: Codes sources commentés, Manuel utilisateur final


Activités du développement logiciel

Test
 Tests unitaires:
Tests avec les jeux d'essais par module selon le plan de test.

 Tests d'intégration:
Composition progressive des modules
Tests des regroupement de modules
 Test du système:
Test en vraie grandeur du système complet selon le plan de test global.

􀂅Documents:rapport de vérification par test.


Activités du développement logiciel

Livraison

Fournir au client une solution logicielle qui fonctionne correctement

Installation : rendre le logiciel opérationnel sur le site du client.


Formation : enseigner aux utilisateurs à se servir du logiciel
Assistance : répondre aux questions des utilisateurs.
Activités du développement logiciel

Maintenance
Correction : identifier et corriger des erreurs trouvées après la livraison
Adaptation : adapter le logiciel aux changements dans l'environnement
(format des données, environnement d'exécution...)
Perfection : améliorer la performance, ajouter des fonctionnalités,
améliorer la maintenabilité du logiciel
Modèles de développement d'un logiciel

De nombreux modèles de développement entrant dans la réalisation d'un


logiciel ont été définis. Ces modèles reprennent les activités fondamentales mais
les organisent différemment.

En pratique :
Pas de modèle idéal ●
Choix du modèle en fonction des contraintes (taille des équipes, temps,
qualité...)
Modèles de développement d'un logiciel

Modèles séquentiels
Modèles de développement d'un logiciel

Modèle en Cascade:

Considérer le développement logiciel comme une succession d’étapes réalisées


de façon strictement séquentielle

Simple et facile à comprendre


Chaque activité est validée par un document
Modèles de développement d'un logiciel

Modèle
en
Cascade
Modèles de développement d'un logiciel

Limites du modèle en cascade:


Les vrais projets suivent rarement un développement séquentiel
Obligation de définir la totalité des besoins au départ
Établir tous les besoins au début d’un projet est difficile
Aucune validation intermédiaire (Aucune préparation des phases de
vérification)
Augmentation des risques car validation tardive
Sensibilité à l’arrivée de nouvelles exigences : refaire toutes les étapes
Modèles de développement d'un logiciel

Modèle en V:

Le cycle en V est un cycle de vie orienté test :


 A chaque activité créative (spécification, conception et codage)
correspond une activité de vérification (validation, intégration, tests
unitaires).
 Chaque phase en amont prépare la phase correspondante de vérification
(la vérification est prise en compte au moment même de la création).
Modèles de développement d'un logiciel

Modèle en V
Modèles de développement d'un logiciel

Modèle en V:

La préparation des dernières phases par les premières (construction du


logiciel), permet d’éviter d’énoncer une propriété qu’il est impossible de
vérifier objectivement après la réalisation.
Modèles de développement d'un logiciel

Limites du modèle en V:

 Construit-on le bon logiciel ? Le logiciel est utilisé très (trop) tard (Il
faut attendre longtemps pour savoir si on a construit le bon logiciel).

Idéal quand les besoins sont bien connus, quand l’analyse et la


conception sont claires.

Manque de flexibilité (ne traite pas les évolutions, notamment des


exigences)
Modèles de développement d'un logiciel

Problèmes des modèles séquentiels


Modèles de développement d'un logiciel

Problèmes des modèles séquentiels


Modèles de développement d'un logiciel

Coût des changements


Modèles de développement d'un logiciel

Modèles itératifs
􀂄Le développement itératif implique de découper un projet en un certain
nombre de cycles, ou itérations, au cours desquelles on prévoit de répéter
les mêmes activités.
􀂄 Le système s’agrandit progressivement,itération par itération
Modèles de développement d'un logiciel

Modèle en spirale (Boehm, 1988)


Le cycle de vie est représenté à l’aide d’une spirale

Chaque boucle :
représente une phase du développement
traverse quatre sections :
􀂄 Définition des objectifs de la phase (la boucle)
􀂄 Evaluation des risques et plan de gestion
􀂄 Développement et validation
􀂄 Planification de la phase suivante
Modèles de développement d'un logiciel

Modèle en spirale
Modèles de développement d'un logiciel

Modèle en spirale
Attention centrée sur l’évaluation des risques
􀂄RISQUE = ce qui met en péril processus et qualité.
 La défaillance de personnel : embauche de haut niveau, formation mutuelle
adéquation profil/fonction, ...
 Le calendrier et budgets irréalistes : estimation détaillée, réutilisation, élagage
des besoins, ...
 Le développement de fonctions inappropriées : revues d’utilisateurs, manuel
d’utilisation précoce,...
 Les exigences démesurées par rapport à la technologie : analyses techniques de
faisabilité
Modèles de développement d'un logiciel

Méthodes Agiles
 Une méthode Agile est une approche itérative et collaborative, capable de
prendre en compte les besoins initiaux du client et ceux liés aux
évolutions.

 L'apparition des méthodes agiles est liée au fait que le client est souvent
dans l'incapacité de définir ses besoins de manière exhaustive dès le début
du projet. Le terme « agile » fait ainsi référence à la capacité
d'adaptation aux changements de contexte et aux modifications de
spécifications intervenant pendant le processus de développement.
Modèles de développement d'un logiciel

Les objectifs des méthodes agiles


 
 L’amélioration de la satisfaction du client
 La capacité à s’adapter et à accepter le changement
 La coopération au sein des équipes de développement
 La création efficace de logiciels opérationnels
 La simplification du processus de développement
 Une sortie plus rapide des produits et des mises à jour

Vous aimerez peut-être aussi