Programme GIT/S6
ENI-ABT BAMAKO 2024
Introduction au génie logiciel
Module1
Chargé de cours:
Dr Yacouba GOÏTA
Tél : [Link]
Email : goita_yacouba@[Link]
Dr Yacouba Goïta
OBJECTIFS Spécifiques
Expliquer la crise du logiciel
Définir le génie logiciel
Comprendre le domaine du
génie logiciel
Les défis du génie logiciel
Dr Yacouba Goïta
OBJECTIFS Spécifiques
Les outils et méthodes du
génie logiciel
Qualité d’un logiciel
Conclusion
Références
Dr Yacouba Goïta
PLAN
Expliquer la crise du logiciel
Dr Yacouba Goïta
La crise du logiciel
Quand on regarde la petite histoire de
l’informatique, le parcours a été secoué par
des erreurs impliquant parfois de grosses
sommes d’argent, parfois même des vies
humaines. A titre d’exemples, rappelons-
nous les trois évènements suivants:
Dr Yacouba Goïta
Mars climate orbiter (NASA 1999)
La sonde spatiale supposée amarsir (atterir
sur Mars), s’écrase à la surface de la planète
rouge. Raison principale:
une composante du système travaillait en
mètres et elle communiquait avec une autre
effectuant ses calculs en pieds.
Dr Yacouba Goïta
Therac-25
La machine Therac-25 utilisée en radiothérapie
(1987). A cause d’erreurs dues à une mauvaise
connaissance des techniques de programmation
concurrente, des patients ont reçu des surdoses
et en sont morts.
Dr Yacouba Goïta
Le processeur Pentium de Intel (1994)
Un mathématicien découvre que l’algorithme implanté
dans le processeur Pentium de Intel est erroné. Il trouve
une erreur de calcul en tentant d’approximer la somme
des réciproques des nombres premiers jumeaux.
Dr Yacouba Goïta
Synthèse des trois exemples
Chacun de ces exemples soulève un point
intéressant.
Le cas de Mars climate orbiter montre qu’une
erreur peut entraîner de grosses pertes en
argent.
Le cas de la machine Therac-25 reflète bien le
danger des bogues informatiques lorsque des
vies humaines sont en jeu.
Dr Yacouba Goïta
Synthèse des trois exemples(suite)
Finalement, le cas du processeur Pentium de Intel
démontre que les erreurs ne sont pas “réservées”
aux programmes, mais qu’elles peuvent aussi
s’immiscer dans les pièces de “hardware”.
On connaît d’autres exemples, bien sûr, mais il
n’est pas nécessaire d’en citer davantage pour en
arriver à la question suivante:
Comment peut- on éviter que des problèmes
semblables surviennent ?
Dr Yacouba Goïta
Approche de solution
Une réponse possible à cette question se trouve
dans les principes du génie logiciel.
La notion de génie logiciel a été mentionnée pour
la première fois à une conférence concernant la
crise du logiciel en 1968. La crise du logiciel est
une baisse significative de la qualité des logiciels.
Mais que est-ce que le génie logiciel ?
Dr Yacouba Goïta
PLAN
Définir le génie logiciel
Dr Yacouba Goïta
Qu'est ce que le génie logiciel ?
Définition Wikipédia
« Le terme génie logiciel désigne l’ ensemble des
méthodes, des techniques et outils concourant à
la production d' un logiciel, au-delà de la seule
activité de programmation.»
Dr Yacouba Goïta
L’entreprise face au génie logiciel
L’ art et la manière de créer un logiciel.
Logiciel=Programmes et la documentation
associée – cahier de charges, modèles, manuels
Types de logiciel:
Générique
Individuel
Hérité
Dr Yacouba Goïta
Qu'est ce que le génie logiciel ?
le génie logiciel est « l'ensemble des
activités de conception et de mise en
œuvre des produits et des procédures
tendant à rationaliser la production
du logiciel et son suivi ».
France: Selon l'arrêté ministériel du 30 décembre 1983 relatif à l'enrichissement
du vocabulaire de l'informatique [Journal officiel du 19 février 1984],
Dr Yacouba Goïta
Qu'est ce que le génie logiciel ?
Le génie logiciel est aussi appelée l'ingénierie
appliquée au logiciel informatique, c'est-à-dire
l'activité par laquelle le code source d'un
logiciel est spécifié puis produit.
Dr Yacouba Goïta
Qu'est ce que le génie logiciel ?
Le génie logiciel touche au cycle de vie des logiciels.
Toutes les phases de la création d'un logiciel
informatique y sont enseignées : l'analyse du besoin,
l'élaboration des spécifications, la conceptualisation
du mécanisme interne au logiciel ainsi que les
techniques de programmation, le développement, la
phase de test et finalement la maintenance.
Dr Yacouba Goïta
Les professions du génie logiciel
•Le diplômé en génie logiciel peut exercer
dans les diverses professions suivantes :
•Ingénieur en logiciel
•Ingénieur au niveau conception de logiciel
•Ingénieur en informatique
Dr Yacouba Goïta
Pour les non développeurs
•Pour ceux qui choisissent de ne pas
développer:
– Comprendre comment sont
construits les logiciels qu’ ils vont
utiliser;
– Être en mesure d’ exprimer des
besoins et de suivre un
développement de logiciel.
Dr Yacouba Goïta
Employeurs
•Les sociétés de services en ingénierie
informatique;
•les éditeurs de logiciels ;
•les institutions de certification
gouvernementales.
Dr Yacouba Goïta
PLAN
Comprendre le domaine du
génie logiciel
Dr Yacouba Goïta
Domaines de connaissance du génie logiciel
• Le domaine de connaissances du génie logiciel
couvre en particulier:
• le cycle de vie d'un logiciel
• Analyse fonctionnelle,
• architecture,
• la programmation,
• les tests,
• la validation,
• la maintenance
• et la gestion de projet.
Dr Yacouba Goïta
Domaines de connaissance du génie logiciel
•Il couvre également les différentes
personnes impliquées:
•Technico-commercial,
•les ingénieurs,
•les acheteurs,
•les utilisateurs,
•Directeur des systèmes d’information.
Dr Yacouba Goïta
Normes internationales en génie logiciel
• Le génie logiciel repose sur un ensemble de normes
de niveau international permettant de définir le
champ de connaissance et d'application.
• IEEE Standard for Software Quality Assurance Plans
- IEEE Std. 730
• IEEE Standard for Software Configuration Plans -
IEEE Std. 828
• IEEE Standard for Software Test Documentation -
IEEE Std. 829
• IEEE Recommended Practice for Software
Requirements Specifications - IEEE Std. 830.
Dr Yacouba Goïta
Normes internationales en génie logiciel
• IEEE Recommended Practice for Software Design Descriptions -
IEEE Std. 1016
• IEEE Standard for Software User Documentation - IEEE Std.
1063
• Guide SWEBOK - Software Engineering Book of Knowledge
• Software engineering for small organizations - ISO 29110
• Software life cycle - ISO 12207
• Également, ISO 15504 fourni un ensemble structuré de bonnes
pratiques destinées à appréhender, mesurer et améliorer la
qualité des produits d'une entreprise d'ingénierie informatique.
Dr Yacouba Goïta
PLAN
Les défis du génie logiciel
Dr Yacouba Goïta
Les propriétés du bon logiciel
• Avoir la fonctionnalité désirée.
• Facilement maintenu – de couvre les besoins changés
• Sûr – on doit avoir confiance en lui
• Efficace – de ne pas gaspiller le ressources du système
• Accepté, compris par les usagers
Dr Yacouba Goïta
Les défis devant le GL
• Hétérogénéité des plateformes
• Délivrance (respecter les termes et la qualité à la fois)
• Confiance des usagers
• Responsabilité professionnelles et éthiques
Dr Yacouba Goïta
Systèmes critiques
• Système critique par rapport de sécurité
• Perdre la vie ou la santé. Ex. Usine chimique
• Système critique par rapport de mission
• Une activité essentielle est échouée - Navire d’espace
• Système critique par rapport de commerce
• Grand pertes d’argent – système de comptabilité d’une banque
Dr Yacouba Goïta
PLAN
Les outils et méthodes du
génie logiciel
Dr Yacouba Goïta
Les outils et méthodes
• D'autres domaines sont connexes au génie logiciel
dans la mesure où ils partagent des outils
communs : description formelle du code,
grammaires des langages manipulés. Ces domaines
sont par exemple :
• la compilation ;
• l‘interprétation de code ;
• la traduction de code d'un langage de programmation
vers un autre.
• un éditeur dédié au langage de programmation
• les bibliothèques de composants
Dr Yacouba Goïta
Atelier de génie logiciel (AGL)
•Un atelier de génie logiciel (AGL), ou des
outils CASE pour Computer Aided Software
Engineering, désigne un ensemble de
programmes informatiques permettant eux-
mêmes de produire des programmes de
manière industrielle.
Dr Yacouba Goïta
Atelier de génie logiciel (AGL)
• Un AGL est basé sur un dictionnaire de données, (qui fait
implicitement référence à un méta modèle de données). Il est
généralement interfacé avec une interface graphique permettant la
modélisation, suivant un ou plusieurs formalismes tels que MERISE
ou UML.
• Les AGL couvrent donc un champ au-delà des environnements de
développement intégrés.
• la réalisation de programmes, notamment au sein d'équipes
nombreuses, requiert un AGL.
Dr Yacouba Goïta
Avantages liés à l'utilisation d'un AGL
• Un apport essentiel de l'AGL est de permettre de documenter
automatiquement un programme, et de maintenir en permanence à
jour cette documentation, et, ce tout au long de sa conception.
• Certains AGL peuvent aller jusqu'à la génération de code Enfin
certains peuvent faciliter la génération de jeux de test.
• Un AGL facilite la collaboration des différents programmeurs
(urbanisme informatique) ainsi que la maintenance ultérieure des
programmes en les incitant à partager les mêmes méthodes.
Dr Yacouba Goïta
Exemple d’AGL
• AD-Cycle d'IBM,
• AGL Merise/2
• ArgoUML
• Eclipse
• NSDK de Nat System
• Objecteering
• Optima PLC atelier d'automatisme sur PC (norme IEC 61131-3)
• Pacbase
• Perceptory
• NetBeans
•
Dr Yacouba Goïta
• PowerAMC de Sybase
• Rational Rose d'IBM
• Visual Studio
• UNIFACE
• WinDev (AGL, UML, FAA, WLangage, Wdscript, gestion de projet, etc.)
• WinDev Mobile (AGL, UML, FAA, WLangage, Wdscript, gestion de
projet, etc.)
• WebDev (AGL, UML, FAA, WLangage, Wdscript, gestion de projet,
etc.)
• XL Cibles pour Unix, Linux, DPS7 et VMS avec interface Web
• Microsoft VISIO
Dr Yacouba Goïta
PLAN
Qualité d’un logiciel
Dr Yacouba Goïta
La Gestion de la Qualité
•La gestion de la qualité permet de contrôler
l'organisation de la production du code.
•La qualité repose sur des méthodes.
•La qualité est mesurée sur la base des critères
Dr Yacouba Goïta
Les coûts d’un logiciel
Waterfall mo del
• Activités
0 25 50 75 100
• Spécification du logiciel Specificatio n Design Dev elo pment Integratio n and testing
• Développement 0
Iterative develop ment
25 50 75 1 00
• Validation
• Evolution Specificatio n Iterative developm en t System testin g
Com pon ent-based so ftware eng ineering
0 25 50 75 1 00
Specificatio n Dev elo pment Integratio n and testing
Dev elo pment and ev olution costs for lon g-lifetime syst ems
0 10 200 30 400
System dev elo pment System evolution
• Production
0 25 50 75 100
Specificatio n Dev elo pment System t estin g
Dr Yacouba Goïta
Fiabilité
• Panne du matériel
• Echec du logiciel
• Erreur opérationnel – le plus souvent
Dr Yacouba Goïta
Fiabilité
• Composants de la fiabilité (Dependability)
• Disponibilité
• Fiabilité (Reliability)– l’habilité de assurer les services comme ils sont
spécifiées
• Sécurité
• (Safety)De fonctionner sans échec catastrophique
• (Security)De se protéger des attaques externes
• Habilité de restauration après un échec
• Habilité d’être maintenu – à quel degré il s’adapter vers de nouvelles
exigences
• Habilité de survivre – de quel degré il continue de fonctionner sous
attaque
• Tolérance d’erreurs – à quel degré il tolère les erreur de l’utilisateur.
Dr Yacouba Goïta
Exemple: Insuline pompe
• Organisation
Réservoir d’insuline
Ensemble de
Pompe Horloge
l’aiguille
Capteur Unité de gestion Alarme
Ecran1 Ecran2
Alimentation
Dr Yacouba Goïta
Exemple: Insuline pompe
• Flux de données
Paramètres du sang
sang
Capteur de Analyse de Niveau du glucose
glucose sanguin glucose sanguin
Calcul du besoin
d’insuline
Instructions vers la pompe
insuline
Pompe d’insuline
Gestion de délivrance Besoin d’insuline
d’insuline
Dr Yacouba Goïta
Exigences de fiabilité
•Le système doit être capable de livrer
l’insuline quand l’organisme a besoin et
en quantité pour neutraliser le glucose.
•L’exigence principale de sûreté et de ne
pas livrer une surdose, qui peut être
mortelle.
Dr Yacouba Goïta
Les coûts de fiabilité
Dr Yacouba Goïta
Conclusions:
• Les utilisateurs d’ un logiciel
doivent être impliqués
dans son développement
• Les besoins du client sont
imprécis et changeants:
Dr Yacouba Goïta
QUESTIONS
-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?
Dr Yacouba Goïta
Recommandations
Vers le cahier des charges
Dr Yacouba Goïta
Références
• Strohmeier A., Buchs D., Génie logiciel : principes,
méthodes et techniques, Lausanne, Presses
polytechniques et universitaires romandes, 1996.
• SWEBOK: Software Engineering Body Of Knowledge,
norme IEEE, 2004. Voir SWEBOK.
Dr Yacouba Goïta