Chapitre 1 : Introduction au
génie logiciel
GL & AGL
SYRINE KAROUI
2015/2016
Plan du module
2
Chapitre 1 : Introduction au génie logiciel
Qu’est-ce que le génie logiciel?
Pourquoi le génie logiciel?
Le génie logiciel, est-ce si simple?
Quels sont les éléments clés du génie logiciel?
Chapitre 2 : Cycles de vie logiciel et méthodes de développement
Chapitre 3 : Gestion des exigences
Chapitre 4 : Architecture & Conception de logiciels
Chapitre 5 : Tests et validation de logiciels
Chapitre 6 : Gestion des configurations logicielles
GL&AGL 2015/2016 Syrine Karoui
Evaluation du module
3
Contrôle continu (60%) :
Ateliers pratiques.
Suivi et validation de l’application de Scrum.
Assiduité et participation en classes.
Examen (40%) :
Evaluation théorique en fin de semestre.
GL&AGL 2015/2016 Syrine Karoui
Objectifs Chapitre 1
4
Définition et enjeux du génie logiciel
Critères de qualité d’un logiciel
Définition du cycle de vie logiciel
Définition des concepts de base liés au génie logiciel
GL&AGL 2015/2016 Syrine Karoui
Qu’est-ce que le génie logiciel?
5
Génie Logiciel
Génie civil Programmes
informatiques
Art de Documentation
construction
GL&AGL 2015/2016 Syrine Karoui
Qu’est-ce que le génie logiciel?
6
Génie logiciel (anglais software engineering) :
ingénierie du logiciel.
Ensemble d’étapes pour la production d’un logiciel.
GL&AGL 2015/2016 Syrine Karoui
Qu’est-ce que le génie logiciel?
7
Le génie logiciel :
est une science de génie industriel
qui étudie les méthodes de travail et les bonnes pratiques des
ingénieurs qui développent des logiciels
s'intéresse en particulier aux procédures systématiques qui
permettent d'obtenir des logiciels :
de grande taille,
qui correspondent aux attentes du client,
qui sont fiables,
qui ont un coût d'entretien réduit,
qui ont de bonnes performances,
tout en respectant les délais et les coûts de construction.
Patrick Jaulent, Génie Logiciel, les méthodes, Armand Collin, Paris, 1992.
GL&AGL 2015/2016 Syrine Karoui
Qu’est-ce que le génie logiciel?
8
Procédures, méthodes, langages, ateliers, imposés ou préconisés par les normes
adaptées à l'environnement d'utilisation afin de favoriser la production et la
maintenance de composants logiciels de qualité.
Ian Sommerville, Software engineering –International computer
science series, Pearson Education – 2001.
GL&AGL 2015/2016 Syrine Karoui
Qu’est-ce que le génie logiciel?
9
La production du logiciel implique des environnements de
développement, avec toute la variété d'outils et d'approches dont
on peut disposer, les méthodes et les techniques de gestion de
processus, mais aussi les aspects humains au sein de l'équipe de
développement et les relations que celle-ci entretient avec les donneurs
d’ordre, les clients et les utilisateurs du produit.
Importance d’une approche
méthodologique afin d’éviter :
Dépassement de budget & augmentation des coûts
Difficultés de maintenance & d'évolution
Non fiabilité : sécurité des systèmes & personnes
Déviation par rapport aux besoins & spécification
du produit ou système
Dépassement des délais
GL&AGL 2015/2016 Syrine Karoui
Pourquoi le génie logiciel?
10
Failles dans la production du logiciel :
Production centrée sur :
La manipulation des outils informatiques,
La maîtrise des langages de programmation.
Insuffisante!
Plusieurs problèmes : pertes financières, pertes
matérielles, problèmes de sécurité, etc.
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
11
Problèmes dans
Complexité du
le développement
logiciel Vs
du logiciel
Développement
Vs
du logiciel
Utilisation du
logiciel
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
12
Plusieurs problèmes :
Pas de correspondance aux
Trop d’erreurs
besoins des utilisateurs
Maintenance complexe et
Coûts rarement prévisibles
couteuse
CRISE DU
Délais de réalisation dépassés LOGICIEL
Changements des clients
Logiciels rarement portables
difficilement intégrables
Performance du système Système difficilement
inacceptable réutilisable
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
13
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
14
Robustesse &
Performance
Disponibilité
Fiabilité Convivialité
Eléments qualités logiciel
Portabilité Sécurité
Maintenabilité Capitalisation/
Interopérabilité Réutilisabilité
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
15
Elément qualité Définition
Fiabilité Conformité du logiciel vis-à-vis de ses spécifications.
Les résultats sont vérifiables et sont ceux attendus.
Robustesse & Logiciel restant stable, disponible et capable de fournir des résultats toujours
Disponibilité fiables dans les conditions de fonctionnement extrême dans le temps.
Performance Ensemble des exigences non fonctionnelles concernant la qualité en matière de
temps de réponse, de dimensionnement et de comportement système du logiciel.
Convivialité Facilité et ergonomie d’installation, de déploiement, d’apprentissage et d’utilisation.
Maintenabilité Facilité de reprise en main du logiciel pour des besoins correctifs et/ou évolutifs
afin de l’ajuster à de nouvelles conditions et contraintes d’exécution ou de répondre à
de nouveaux besoins :
•Les coûts de maintenance se jouent très tôt dans le processus d’élaboration du
logiciel.
•Usage d’architecture modulaire, adoption des bonnes pratiques de
développement et respect des règles de codage.
•Refactoring : Amélioration régulière de la qualité du code sans en modifier le
comportement. On retravaille le code pour repartir sur de meilleures bases tout
en gardant les mêmes fonctionnalités.
GL&AGL 2015/2016 Syrine Karoui
Le génie logiciel, est-ce si simple?
16
Elément qualité Définition
Interopérabilité Capacité à fonctionner et à interagir avec des systèmes ouverts :
•Usage de format standard d’échange.
•Adoption d’architecture à plugIn.
•Interface protocolaire non propriétaire.
Portabilité Logiciel indépendant de son environnement cible d’exploitation avec le
minimum de coût :
•Usage de machines virtuelles ou des conteneurs d’application.
•Usage de couche middleware d’adaptation.
Capitalisation/ Regroupement d’un ensemble de fonctionnalités semblables en librairies
Réutilisabilité partagées et réutilisables en tout ou en partie :
•Avec usage de composants prêts (Open source ou commercial).
•Adaptation des design pattern dans la conception et l’implémentation.
Sécurité Techniques d’accès et d’authentification.
Mise en place de la politique d’attribution de droit d’accès pour un ensemble de
ressources et de fonctionnalités du logiciel.
GL&AGL 2015/2016 Syrine Karoui
Quels sont les éléments clés du génie logiciel?
17
Processus de Méthodologies de
développement développement
Normes Méthodes de
Cycles de vie
qualité développement
logiciel
Outils de Ateliers de
développement génie logiciel
GL&AGL 2015/2016 Syrine Karoui
Quels sont les éléments clés du génie logiciel?
18
Processus de développement logiciel : Ensemble
d’activités ayant pour but le développement d’un
logiciel.
Méthode de développement :
Une modélisation (concepts manipulés).
Une notation associée à la modélisation.
Un processus de développement.
Un (ou des) langage(s) et plateforme(s) cible(s).
GL&AGL 2015/2016 Syrine Karoui
Quels sont les éléments clés du génie logiciel?
19
Cycle de vie logiciel : Ensemble des étapes qui
composent le processus de développement et d’utilisation
du logiciel.
Outils de développement : N’importe quel outil utilisé
lors du développement logiciel.
Exemples : Editeurs de texte, Outils de gestion de projet,
Compilateurs, IDE, etc.
Ateliers de génie logiciel (AGL) : Ensemble d’outils
permettant de couvrir le cycle de vie logiciel.
Exemples : Rational Rose, Power AMC, etc.
GL&AGL 2015/2016 Syrine Karoui
Quels sont les éléments clés du génie logiciel?
20
Méthodologie de développement :
Ensemble de principes ou d’étapes.
Méta-méthode (méthode des méthodes).
Méthode + Outil.
Norme qualité : « Document établi par consensus et
approuvé par un organisme reconnu, qui fournit, pour
des usages communs et répétés, des règles, des lignes
directrices ou des caractéristiques, pour des activités
ou leurs résultats garantissant un niveau d'ordre
optimal dans un contexte donné. » [ISO]
Exemples : ISO, ITIL, COBIT, PMBOK, CMMI.
GL&AGL 2015/2016 Syrine Karoui