Le génie logiciel

Download Report

Transcript Le génie logiciel

Le génie logiciel
Qu’est-ce que c’est le génie logiciel et
sa place dans les sujets d’informatique
Le contenu est basé aux transparents du 7ème édition
de «Software Engineering» de Ian Sommerville
B.Shishedjiev - Génie logiciel
1
Questions de l’ingénierie de logiciel
• 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
B.Shishedjiev - Génie logiciel
2
Questions de l’ingénierie de logiciel
• Combien ça coûte?
• Quelles sont les méthodes du génie logiciel?
• Qu’est ce que c’est CASE (Computer-Aided
Software Engineering)
• Quelles sont les propriétés du bon logiciel?
B.Shishedjiev - Génie logiciel
3
Logiciel
• Programmes et la documentation associée –
cahier de charges, modèles, manuels
• Types
– Générique
– Individuel
– Hérité
B.Shishedjiev - Génie logiciel
4
Génie logiciel
• Par rapport d’informatique
• Par rapport du génie des systèmes
B.Shishedjiev - Génie logiciel
5
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.
B.Shishedjiev - Génie logiciel
6
Modèle du processus
• Le modèle – une présentation simplifiée d’un
point de vue différent
• Points de vue:
– Flux d’activités
– Flux des données
– Rôles/activités
• Modèles génériques
– Cascade (Waterfall)
– Itérative
– Composants
B.Shishedjiev - Génie logiciel
7
Les coûts
Wat er fall mo del
0
• Activités
–
–
–
–
Spécification du logiciel
Développement
Validation
Evolution
25
Specificatio n
50
Design
Dev elo pmen t
In teg ratio n and testing
It erative develo pmen t
0
25
Specificatio n
Compo nent-b ased software en g
25
Specificatio n
50
in eerin g
50
B.Shishedjiev - Génie logiciel
1 00
ems
20 0
Sy stem dev elop ment
Specificatio n
75
In teg ratio n and testing
Dev elo pmen t and evo lu tio n cos ts for lo ng -lifetime s ys t
10
1 00
Sy stem tes tin g
Dev elo pmen t
0
0
75
Iterativ e d ev elop ment
0
• Production
100
75
30
400
Sy stem evo lu tio n
25
Dev elo pmen t
50
75
100
Sy stem tes tin g
8
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
B.Shishedjiev - Génie logiciel
9
CASE (Computer-Aided Software Engineering)
• Upper-CASE
– Support les activités de conception et de definition
des besoins
• Lower-CASE
– Support les activités tards – programmer, déboguer,
tester
B.Shishedjiev - Génie logiciel
10
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
B.Shishedjiev - Génie logiciel
11
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
B.Shishedjiev - Génie logiciel
12
Les défis devant le GL
B.Shishedjiev - Génie logiciel
13
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
B.Shishedjiev - Génie logiciel
14
Fiabilité
• Panne du matériel
• Echec du logiciel
• Erreur opérationnel – le plus souvent
B.Shishedjiev - Génie logiciel
15
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.
B.Shishedjiev - Génie logiciel
16
Exemple - Insuline pompe
• Organisation
Réservoir d’insuline
Ensemble de
l’aiguille
Pompe
Horloge
Capteur
Unité de gestion
Alarme
Ecran1
Ecran2
Alimentation
B.Shishedjiev - Génie logiciel
17
Exemple - Insuline pompe
• Flux de données
sang
Paramètres du sang
Capteur de
glucose sanguin
Analyse de
glucose sanguin
Niveau du glucose
Calcul du besoin
d’insuline
insuline
Instructions vers la pompe
Pompe d’insuline
Gestion de délivrance
d’insuline
B.Shishedjiev - Génie logiciel
Besoin d’insuline
18
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.
B.Shishedjiev - Génie logiciel
19
Les coûts de fiabilité
B.Shishedjiev - Génie logiciel
20