4. INTRODUCTION
GENERALE:
• Le génie logiciel existe depuis une trentaine d'années
seulement.
• Il est né en 1968 à Garmisch (Allemagne) (« 1 st
conference on software engineering » sous le parrainage
de l'OTAN).
• Il a été défini de toutes pièces par un groupe de
scientifiques pour répondre à la crise du logiciel avec
quelques idées émergentes :
– La production de logiciel doit être organisée,
– Contrôle des coûts et de la qualité, etc ...
4
Genie logiciel
5. Problematiques
• Qu’est ce que c’est logiciel?
• Qu’est ce que c’est génie logiciel?
• Quelle est la différence entre génie logiciel et informatique?
• Quelle est la différence entre génie logiciel et génie des
systèmes?
• Qu’est ce que c’est processus unifié de logiciel?
• Qu’est ce que c’est modèle du processus de logiciel
Combien ça coûte?
Quelles sont les méthodes du génie logiciel?
Quelles sont les propriétés du bon logiciel?
5
Genie logiciel
6. Génie et génie logiciel
Génie : ensemble des connaissances et des techniques
concernant la conception, la mise en œuvre et les
applications de procédés, de dispositifs, de machines propres
à un domaine donné (Petit Larousse Illustré).
Génie logiciel : 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.
6
Genie logiciel
7. Définition du génie
logiciel
Le génie logiciel est l’ensemble des moyens techniques,
industriels et humains qu’il faut réunir pour spécifier,
construire, distribuer et maintenir des logiciels qui soient
sûrs, conviviaux, évolutifs et économiques.
Le but est donc d’améliorer la qualité et la productivité.
7
Genie logiciel
8. Objectif du Génie logiciel
L’objectif du Génie logiciel est de permettre le
développements de logiciels:
Satisfaisant le client et le fournisseur
Une qualité supérieure
Dans des délais raisonnables
Avec des coûts acceptables
8
11. Méthodes de génie
logiciel
Composants des méthodes
Modèles – graphiques (objets, flux des données, machine
d’états et c.)
Règles - contraintes
Recommandations – bonne pratique
Direction et gestion – la séquence des activités
11
Genie logiciel
12. Les défis devant le Génie
Logiciel
Hétérogénéité des plateformes
Délivrance (respecter les termes et la qualité à la fois)
Confiance des usagers
Responsabilité professionnelles et éthiques
12
Genie logiciel
13. Logiciel
Programmes et la documentation associée – cahier de
charges, modèles, manuels
Types
Générique
Individuel
Hérité
13
Genie logiciel
14. Cycle de vie d’un logiciel
Le « cycle de vie d'un logiciel » (en anglais software life
cycle), désigne toutes les étapes du développement d'un
logiciel, de sa conception à sa disparition. L'objectif d'un
tel découpage est de permettre de définir des jalons
intermédiaires permettant la validation du
développement logiciel, c'est-à-dire la conformité du
logiciel avec les besoins exprimés, et la vérification du
processus de développement, c'est-à-dire l'adéquation
des méthodes mises en œuvre.
14
15. 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
15
Genie logiciel
16. Processus du logiciel
• Un ensemble d’activités dont l’objectif est le développement
et l’évolution du logiciel.
• Activités :
– Spécification – qu’est ce que le logiciel doit faire et les
contraintes posées au développement
– Développement - production logiciel
– Validation – vérification si le logiciel est celui qui est attendu du
client.
– Evolution – modification du logiciel en accordance avec les
besoins.
16
Genie logiciel
17. Les coûts
Waterfall model
• Activités
– Spécification du logiciel
– Développement
– Validation
– Evolution
0
25
Specification
50
Design
Development
0
25
Specification
50
25
ineering
50
17
1 00
em s
200
Sy stem development
Specification
75
Integ ration and testing
Development and evolution costs for long-lifetim e sy st
10
1 00
Sy stem testing
Development
0
0
75
Iterative development
Component-based software eng
Specification
Genie logiciel
Integ ration and testing
It erative developm ent
0
• Production
100
75
30
400
Sy stem evolution
25
Development
50
75
Sy stem testing
100
18. 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
18
Genie logiciel
20. Fiabilité
• Composants de la fiabilité (Dependability)
– Disponibilité
– Fiabilité (Reliability)– l’habilité de assurer les services comme ils sont
–
–
–
–
–
20
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.
Genie logiciel
22. Exemple - Insuline
pompe
• Flux de données
sang
Paramètres du sang
Capteur de
glucose sanguin
insuline
Instructions vers la pompe
Pompe d’insuline
22
Analyse de
glucose sanguin
Gestion de délivrance
d’insuline
Genie logiciel
Niveau du glucose
Calcul du besoin
d’insuline
Besoin d’insuline
23. Exigences de fiabilité
Le système doit être capable de livrer l’insuline quand
l’organisme a besoin et en quantité qui assez de neutraliser le
glucose.
L’exigence principale de sûreté et de ne pas livrer une
surdose, qui peut être mortelle.
23
Genie logiciel
24. Les coûts de fiabilité
Low
Medium
High
Dependability
24
Genie logiciel
V
ery
high
Ultra-high
25. conclusion
Le génie logiciel comporte donc des aspects
de gestion de projet afin de produire un
logiciel dans les délais prévus, avec un
budget maîtrisé et donnant satisfaction au
client (notion de qualité).
« 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
25
Génie logiciel