Académique Documents
Professionnel Documents
Culture Documents
Lotfi NAJDI
Année Universitaire 2022 / 2023
Génie Informatique
FPT Taroudant
Introduction général au génie logiciel
Définition du génie logiciel
engineering) est une science qui étudie les méthodes de travail et les bonnes
pratiques des ingénieurs qui développent des logiciels. Le génie logiciel s'intéresse en
particulier aux procédures systématiques qui permettent d'arriver à ce que des logiciels
de grande taille correspondent aux attentes du client, soient fiables, aient un coût
coûts de construction.
Wikipedia
Définition du génie logiciel
IEEE
Définition du génie logiciel
Richard Fairley
Historique
en 1968.
• Ce terme Il a été repris l'année suivante à une conférence concernant la crise du logiciel.
• La crise logiciel fait référence aux difficultés rencontrées dans le développement des
• Dépassements de budget
• Livraison tardive
• Exigences erronées
Standish group
• SUCCESSFUL (RÉUSSI) : Projets réalisés dans les délais , respectent le budget impartis, avec
un résultat satisfaisant
• CHALNGED (MITIGÉ) : Projets achevés et approuvés mais livrés en retard, hors budget ou sans toutes
les fonctionnalités demandées
• Failed (ECHOUÉ) : Projets abandonnés c.-à-d. produits non livrés ou bien livrés
mains non utilisés à cause de non satisfaction
Crise du logiciel
Standish group
Programmation(écriture de code) et génie logiciel
• Par processus, on entend une série d'étapes ou de phases suivies à chaque fois par une
équipe pour s'assurer de la construction d'un logiciel se fait correctement.
logiciel
• Conception (Design)
• Déploiement
• Maintenance (Maintenance )
Recueil des besoins(Requirements Elicitation)
La collecte des exigences est le processus qui consiste à identifier et comprendre les besoins du
client.
Le recueil des besoins vise à comprendre le problème, construire et formuler les besoins
bruts.
• Entretien : très courant, généralement structuré, mais il peut s'agir aussi de conversation
• Questionnaires
• Observation in situ des utilisateurs : observer le travail quotidien des gens et détecter les
problèmes.
• Comment fonctionnera-t-elle ?
Techniques de recueil des besoins
La spécification des exigences est une reformulation des exigences dans un format technique compréhensible et
• Spécification = Quoi
• Détail des fonctionnalités offertes , comportement observable de l’application pour ses utilisateurs, exigences
• Ce qui doit être tester et approuvé par les personnes qui font la vérification et la
validation
• Communiquer aux parties prenantes les résultats qu'elles sont censées obtenir une fois les
• Le recueil des exigences (besoins) est centré sur le client (les utilisateurs) , alors que
• Les exigences brutes sont rédigées de manière simple afin d’ être compréhensibles
par des gens du métier (qui n'ont pas férocement background technique).
• Après recueil des besoins brutes , on procède à l’analyse , la revue et vérification afin
• La spécification doit être non ambiguë pour les développeurs afin de permettre une
• Exigences fonctionnelles : Exigences qui spécifient les fonctions qui doivent être réalisées
transaction.. etc.
Les contraintes diffèrent sont relatives à l’implémentation c.-à-d. sous lesquelles le système
doit être développée, et non pas aux fonctionnalités ou les conditions sous lesquelles il doit
fonctionner :
Décrit les concepts de haut niveau du produit logiciel final (structure de la solution
proposée) .
Dégager les composants appropriés, les responsabilités et les relations entre ces
composants.
Conception
Conception détaillé
pseudo-code)
les diagrammes techniques et modèles sont largement utilisés à ce stade afin de décrire la
• Environnement de développement
• Langages de programmation
• Documentation du code
Validation et vérification
• Il est toujours moins coûteux de détecter les problèmes à un stade précoce du processus
de développement.
Validation et vérification
• Comment :
• Démonstration directe
Tests unitaires :
Tests d’intégration
• Validation par les développeurs que le système fonctionne est conforme aux spécifications
(fonctionnelles et non fonctionnelles).
• Mise en en production
• Manuels d’utilisation
• règles métier
• Environnement d’exécution..etc.
- Performances optimales
- Maintenabilité du code
- Compréhensibilité du code
- Efficacité du code
- Sécurité du code
Qualité logiciel
manière fiable