Vous êtes sur la page 1sur 32

Cours

Génie Logiciel

Génie Logiciel
1 ère Année Ingénieur- Ing1
Semestre 5

ESME 2020/2021 Raouda MERAOUI KAMOUN


Plan du cours

•Chapitre1: Introduction au Génie logiciel


•Chapitre2: Analyse et Conception des systèmes
d’information
•Chapitre3: Processus de développement logiciel
•Chapitre4: Le paradigme Objet
•Chapitre5: Le langage UML
•Chapitre6: Modélisation avec UML
•Chapitre7: Méthodes de développement agiles

ESME 2020/2021 Raouda MERAOUI KAMOUN


Génie Logiciel

Chapitre 3

Processus de
développement logiciel

ESME 2020/2021 Raouda MERAOUI KAMOUN


Plan du chapitre 3: Processus de
développement logiciel
1. Développement du logiciel- Définition
2. Développement du logiciel- Etapes
2.1 Etude préalable
2.2 Spécification
2.3 Conception
2.4 Implémentation
2.5 Test
2.6 Livraison
2.7 Maintenance
3. A retenir
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 4
Développement du logiciel-Définition

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 5


Développement du logiciel-Définition

➢ Processus de développement : c’est quoi ?


▪ Un logiciel à développer est un problème très complexe à
résoudre.

▪ Pour appréhender la complexité de développement du logiciel, il


faut arriver :
➢ à rendre les choses simples
➢ séparer les problèmes qui peuvent l’être afin de les résoudre de
manière presque indépendante. « Diviser pour mieux régner »

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 6


Développement du logiciel-Définition

➢ Pour obtenir un logiciel de qualité, il faut en maitriser le


processus d’élaboration:

➢ La vie d’un logiciel est composée de différentes étapes


➢ La succession de ces étapes forme le cycle de vie du logiciel
➢ Il faut contrôler la succession de ces différentes étapes.

➢ Quelle sont ces étapes ?

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 7


Développement du logiciel-Etapes

Cahier des charges:


Analyse Spécification

Conception Langage de modélisation


UML/OCL

implémentation Langage de programmation


C++, Java, Eiffel
Est-ce que le produit ou le
utilisation test programme fait le travail
demandé

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 8


Développement du logiciel-Etapes
➢ Processus de développement
❑ Un ensemble d’activités structurées nécessaires au développement
du logiciel.

❑ Plusieurs processus existants :


– Cycle en cascade
– Cycle en V
– ..ect

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 9


Etude préalable
➢ Processus de développement d’un logiciel-- Etude préalable
• Déterminer si le développement proposé vaut la peine d’ être
mis en œuvre, compte tenu des attentes et de la difficulté de
développement
➢ Etude de marché : Déterminer s’il existe un marché potentiel
pour le produit.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 10


Etude préalable
• L’étude préalable d’un projet intervient avant la phase
d’expression des besoins:
• La plupart des projets nécessitent un stade initial au cours
duquel il faut répondre à certaines questions:
• Quelle est la vision (objectif et contexte) du projet et quelle est
son opportunité?
• Le projet est-i-il réalisable? Faut-il construire et/ou acheter ?
• Quelle est l’estimation grossière du coût: doit-on envisager des
dizaines de milliers, des centaines de milliers ou des millions
d’euros?
• Faut-il poursuivre jusqu’à la réalisation du projet ou renoncer?

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 11


Etude préalable
• Avant-projet:
• Il s'agit de définir précisément ce que sera le projet afin d'aboutir
à la mise au point de documents contractuels (faisant lieu d'un
contrat)
• Ce contrat permet d'engager la maîtrise d'œuvre MOE
(responsables de gestion et suivi projet) et la maîtrise d'ouvrage
MOA(responsables des activités techniques du projet) dans le
lancement du projet.
• Cette phase formalise donc la décision de commencer le projet.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 12


Etude préalable
• Avant-projet:
• A l’étape d’avant-projet ou étude préalable du projet, il faut
étudier quelques peu les besoins. Mais, cette étape n’a pas pour
but de définir tous les besoins et élaborer un plan de projet.

• L’idée est d’effectuer le minimum d’investigations pour


formuler une opinion rationnelle et justifiable de la finalité et
faisabilité du projet et du nouveau système potentiel associé.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 13


Etude préalable
L’objectif de cette phase est de:
• Décider s’il est raisonnable d’investir dans une étude plus
approfondie (l’objectif de la phase d’élaboration du projet)

• Etablir une vision initiale comme des objectifs du projet, de


déterminer si celui-ci est faisable (tenant compte des ressources
disponibles)

• Etudier le contexte du projet et établir ses motivations

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 14


Spécification
➢ Une spécification peut suivre de nombreux formalismes : cas
d’utilisation, modèles UML, exigences, ...
➢ Les procédures de validation peuvent être des procédures
manuelles ou des tests.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 15


Spécification
➢ Une spécification comporte les éléments suivants :
• Description de l’environnement du logiciel
• Spécification fonctionnelle qui définit toutes les fonctions que le
logiciel doit offrir
• Comportement en cas d’erreurs, c’est-à-dire dans les cas où le
logiciel ne peut pas accomplir une fonction
• Performances requises : temps de réponse, mémoire, sécurité de
fonctionnement
• Interfaces avec l’utilisateur : en particulier le dialogue sur
terminal, la présentation des écrans, la disposition des états
imprimés, etc.
• Interfaces avec d’autres logiciels et matériels
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 16
Spécification
➢ Difficultés de la spécification
• Les besoins du client sont imprécis et changeants.
• 2 pratiques différentes du génie logiciel s’opposent sur la
manière de traiter ce problème :
❑ Faut-il faire un effort pour préciser et figer le besoin
du client en début de projet ?
❑ Faut-il développer de manière à être tolérant aux
imprécisions et aux changements de besoins ?

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 17


Spécification
➢ Processus de la spécification

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 18


Spécification
➢ Notations de spécification
➢ Il existe des solutions de remplacement du langage naturel libre.
▪ Langage naturel structuré : on fixe des patrons, des modèles de
fiches, et des formulations, dont le sens est explicité de la façon la
moins ambiguë possible dans une partie de la spécification.
▪ Description algorithmique : un langage de programmation
abstrait est utilisé pour donner une vision opérationnelle du
système.
▪ Notation graphique : des diagrammes, annotés généralement par
du texte en langage structuré, représentent le système.
▪ Spécification mathématique : des formules ou des objets
mathématiques définissent un système en s’appuyant sur des
théories.
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 19
Spécification
➢ Notations de spécification: exemple 1
➢ Un Guichet Automatique de Banque (GAB) offre les services
suivants :

➢ Distribution d’argent à tout Porteur de carte de crédit, via un


lecteur de carte et un distributeur de billets.
➢ Consultation de solde de compte, dépôt en numéraire et dépôt de
chèques pour les clients porteurs d’une carte de crédit de la
banque.
➢ Un opérateur de maintenance se charge de la collecte des dépôts
d’argent et de la recharge du distributeur.
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 20
Spécification
➢ Notations de spécification: Exemple 2

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 21


Spécification
➢ Notations de spécification: Exemple 3 :
• Besoins d’interface Homme/Machine (IHM)
❑ Les dispositifs d’entrée/sortie à la disposition du Porteur de
carte doivent être :
▪ Un lecteur de carte bancaire.
▪ Un clavier numérique (pour saisir son code), avec des touches
"validation", "correction" et "annulation".
▪ Un écran pour l’affichage des messages du GAB.
▪ Des touches autour de l’écran pour sélectionner un montant de
retrait parmi ceux qui sont proposés.
▪ Un distributeur de billets.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 22


Spécification

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 23


Conception

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 24


Conception
▪ Déterminer la façon dont le logiciel fournit les différentes
fonctionnalités recherchées:
➢ Conception générale
• Conception architecturale :
❖ Déterminer la structure du système
❖ Décomposer le systèmes en sous système
• Conception des interfaces : déterminer la façon dont les différentes
parties du système agissent entre elles.
➢ Conception détaillée : déterminer les algorithmes pour les
différentes parties du système.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 25


Implémentation

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 26


Implémentation

• Ecrire le logiciel ……
• Une multitude de langage de programmation….

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 27


Test
➢ Essayer le logiciel sur des données d’exemple pour s’assurer
qu’il fonctionne correctement.
❑ Tests unitaires : faire tester les parties du logiciel par leurs
développeurs
❑ Tests d’intégration : tester pendant l’intégration
❑ Tests de validation : pour acceptation par l’acheteur
❑ Tests système : tester proche de l’environnement de production
❑ Tests Alpha : faire tester par le client sur le site de développement
❑ Tests Beta : faire tester par le client sur le site de production
❑ Tests de régression : enregistrer les résultats des tests et les
comparer à ceux des anciennes versions pour vérifier si la nouvelle
n’en a pas dégradé d’autres.
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 28
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

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 29


Maintenance
➢ Mettre à jour et améliorer le logiciel pour assurer sa pérennité.

❑ Pour limiter le temps et les couts de maintenance, il faut porter ses


efforts sur les étapes antérieures.

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 30


Maintenance
➢ La maintenance est devenue une facette très importante du
cycle de vie d'un logiciel.
➢ En effet, une enquête effectuée aux États Unis en 1986 auprès de
55 entreprises révèle que 53% du budget total d'un logiciel est
affecté à la maintenance.
➢ Ce coût est réparti comme suit :
❑ 34% maintenance évolutive (modification des spécifications initiales) ;
❑ 10% maintenance adaptative (nouvel environnement, nouveaux utilisateurs) ;
❑ 17% maintenance corrective (correction des bogues) ;
❑ 16% maintenance perfective (améliorer les performances sans changer les
spécifications) ;
❑ 6% contrôle qualité ;
❑ 17% divers.
23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 31
A retenir
➢ Cycle de vie
➢ Modèle de cycle de vie
➢ Spécification
➢ Informelle, Semi Formelle et Formelle
➢ Conception générale
➢ Conception Détaillée

23/06/2020 ESME----RAOUDA MERAOUI KAMOUN 32

Vous aimerez peut-être aussi