Académique Documents
Professionnel Documents
Culture Documents
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
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