Vous êtes sur la page 1sur 25

Fondamentaux du génie

logiciel

Prof : Y.ABOUQORA
Qu'est-ce que la génie logiciel ?
La génie logiciel est l'application d’une
approche systématique, disciplinée et
quantifiable au développement, à
l'exploitation et à la maintenance de
logiciels. Definition par IEEE

2
Génie logiciel
La génie logiciel est :
◦ Une discipline d'ingénierie qui fournit des
connaissances, des outils et des méthodes
pour:
 Définition des exigences logicielles
 Réaliser la conception de logiciels
 Construction de logiciels
 Test de logiciel
 Tâches de maintenance logicielle
 Gestion de projet logiciel

3
Activités de développement de logiciels
Le développement de logiciels comprend
toujours les activités suivantes (dans une
certaine mesure) :
◦ Analyse des besoins
◦ Concevoir
◦ Construction
◦ Tester (parfois)
Ces activités ne s'enchaînent pas strictement
les unes après les autres !
Se chevauchent et interagissent souvent
4
Exigences du logiciel
Les exigences logicielles définissent la
fonctionnalité du système
◦ Répondre à la question « quoi ? » et non «
comment ? »
◦ Définir les contraintes du système
Deux types d'exigences
◦ Exigences fonctionnelles
◦ Exigences non fonctionnelles

5
L'analyse des besoins

L'analyse des besoins part d'une vision du


système
◦ Les clients ne savent pas ce dont ils ont besoin !
◦ Les exigences viennent grossièrement et sont
spécifiées et étendues de manière itérative
Le prototypage est souvent utilisé,
notamment pour l'interface utilisateur
Le résultat est la spécification des exigences
logicielles (SRS)
6
Spécification des exigences
logicielles
La spécification des exigences logicielles
(SRS) est un document formel d'exigences
Il décrit en détails :
◦ Exigences fonctionnelles
 Processus d'affaires
 Acteurs et cas d'utilisation
◦ Exigences non fonctionnelles
 Par exemple. performances, évolutivité, etc.

7
Exigences logicielles
Ilest toujours difficile de décrire et de
documenter les exigences de manière
exhaustive et non ambiguë
◦ De bonnes exigences permettent d'économiser du
temps et de l'argent
Les exigences changent toujours au cours du
projet !
◦ Une bonne spécification des exigences logicielles
réduit les changements
◦ Les prototypes réduisent considérablement les
changements
8
Architecture et conception du logiciel
La conception du logiciel est une
description technique de la manière dont
le système mettra en œuvre les exigences
L'architecture du système décrit :
◦ Comment le système sera décomposé en sous-
systèmes (modules)
◦ Responsabilités de chaque module
◦ Interaction entre les modules
◦ Plateformes et technologies

9
Architecture du logiciel-Exemple

10
Conception logiciel
Conception détaillée
◦ Décrit la structure interne du module
◦ Interfaces, conception de données, conception
de processus
Conception orientée objet
◦ Décrit les classes, leurs responsabilités,
relations, dépendances et interactions
Conception de classe interne
◦ Méthodes, responsabilités, algorithmes et
interactions entre eux
11
Document de conception logicielle
Le document de conception logicielle
(SDD) est une description formelle de
l'architecture et de la conception du système
Il contient:
◦ Conception architecturale
 Les modules et leur interaction (schéma)
◦ Pour chaque module
 Conception de processus (schémas)
 Conception des données (diagramme E/R)
 Conception d'interfaces (diagramme de classes)

12
Construction du logiciel
Pendant la phase de construction du
logiciel, les développeurs créent le logiciel
◦ Parfois appelée phase de mise en œuvre
Il comprend:
◦ Conception de méthode interne
◦ Écrire du code
◦ Rédaction de tests unitaires (parfois)
◦ Test et débogage
◦ L'intégration

13
Codage
Le codage est le processus d'écriture du
code de programmation (le code source)
◦ Le code suit strictement la conception
◦ Les développeurs effectuent la conception de
méthodes internes dans le cadre du codage
Le code source est le résultat du
processus de construction du logiciel
◦ Écrit par des développeurs
◦ Peut inclure des tests unitaires

14
Testing
Les tests vérifient si le logiciel développé est
conforme aux exigences
◦ Vise à identifier les défauts (bugs)
Les développeurs testent le code après l'avoir
écrit
◦ Lancez-le au moins pour voir les résultats
◦ Les tests unitaires, c'est encore mieux
 Les tests unitaires peuvent être répétés plusieurs fois
Les tests du système sont effectués par des
ingénieurs QA
◦ Les tests unitaires sont effectués par les développeurs
15
débogage
Le débogage vise à trouver la source d'un
défaut déjà identifié et à le corriger
◦ Réalisé par les développeurs
Étapes de débogage :
◦ Trouver le défaut dans le code
 Identifier la source du problème
 Identifier l'endroit exact dans le code qui le
provoque
◦ Corriger le défaut
◦ Testez pour vérifier si le correctif est correct
16
L'intégration
L'intégration consiste à assembler toutes
les pièces
◦ Compiler, exécuter et déployer les modules en
tant que système unique
◦ Test pour identifier les défauts
Stratégies d'intégration
◦ Big bang, du haut vers le bas et du bas vers le
haut
◦ Intégration continue

17
Codage != Génie logiciel
Les développeurs inexpérimentés considèrent
le codage comme le cœur du développement
◦ Dans la plupart des projets, le codage ne représente
que 20 % des activités du projet !
◦ Les décisions importantes sont prises lors de
l'analyse des besoins et de la conception
◦ La documentation, les tests, l'intégration, la
maintenance, etc. sont souvent décriés
L'ingénierie logicielle n'est pas seulement du
codage !
◦ Programmeur != ingénieur logiciel
18
Vérification du logiciel
Qu'est-ce que la vérification logicielle ?
◦ Il vérifie si le logiciel développé est conforme
aux exigences
◦ Effectué par les ingénieurs d'assurance qualité
du logiciel (QA)
Deux approches :
◦ Examens et inspections formels
◦ Différents types de tests
Impossible de certifier l'absence de défauts !
◦ Ne peuvent que diminuer leurs tarifs
19
Test du logiciel
Les tests vérifient si le logiciel développé est
conforme aux exigences
Les tests visent à trouver des défauts (bugs)
◦ Tests boîte noire et boîte blanche
◦ Tests unitaires, tests d'intégration, tests système,
tests d'acceptation
◦ Tests de résistance, tests de charge, tests de
régression
◦ Les ingénieurs testeurs peuvent utiliser des outils
de test automatisés pour enregistrer et exécuter des
tests
20
Processus de test logiciel
Planification des tests
◦ Établir la stratégie de test et le plan de test
◦ Pendant les phases d'exigences et de conception
Développement de tests
◦ Procédures de test, scénarios de test, cas de test,
scripts de test
Exécution des tests
Rapport d'essai
Retester les défauts
21
Plan de test
Le plan de test est un document formel
qui décrit comment les tests seront
effectués
◦ Liste des activités de test à effectuer pour
garantir le respect des exigences
◦ Fonctionnalités à tester, approche de test,
calendrier, critères d'acceptation
Scénarios de test et cas de test
◦ Scénarios de test – histoires à tester
◦ Cas de test - tests de fonction unique
22
Gestion de projet
La gestion de projet est la discipline
d'organisation et de gestion des ressources
afin de mener à bien un projet
Réussir signifie respecter les contraintes
de portée, de qualité, de temps et de coût
définies
Contraintes du projet : Scope

Project Success

Co
st
i me
23 T
Gestion de projet
Gestion de projet logiciel
◦ Discipline de gestion concernant la
planification, le suivi et le contrôle des projets
logiciels
Planification de projet
◦ Identifier la portée, estimer le travail impliqué
et créer un calendrier de projet
Suivi et contrôle du projet
◦ Tenir l'équipe au courant de l'avancement du
projet et gérer les problèmes
24
plan de projet
Leplan de projet est un document qui décrit
comment le travail sur le projet sera organisé
◦ Contient les tâches, les ressources, le calendrier,
les jalons, etc.
◦ Les tâches ont un début, une fin, des ressources
affectées (membres de l'équipe), un pourcentage
d'achèvement, des dépendances, des tâches
imbriquées, etc.
Les outils de gestion de projet simplifient la
création et le suivi des plans de projet

25

Vous aimerez peut-être aussi