64
Introduction au génie logiciel I Version 1.2 janvier 2013 Stéphane Salmons g 6 ) N O Y 4 1 Cours de génie logiciel n°1

Introduction au génie logiciel 1.2

Embed Size (px)

DESCRIPTION

Cours de génie logiciel n°1

Citation preview

Page 1: Introduction au génie logiciel 1.2

Introduction au génie logiciel

I

Version 1.2 janvier 2013

Stéphane Salmons

g 6 ) N O Y41

Cours de génie logiciel n°1

Page 2: Introduction au génie logiciel 1.2

Avertissements/Contact

Violation de copyright / copyright infringement‣ Si l’utilisation d’une ressource de cette présentation va a l’encontre de sa licence

d’utilisation, cela n’est pas intentionnel. Veuillez contacter l’auteur et la ressource sera immédiatement retirée.‣ If the use of a resource of this slideshow conflicts with its licence, this not intentional.

Please contact the author to have the resource immediately removed

Contact‣ [email protected]

2

Page 3: Introduction au génie logiciel 1.2

Sommaire

La crise du logicielQu’est-ce qu’un logiciel ?La Qualité du logicielLe génie logicielConclusion

3

Page 4: Introduction au génie logiciel 1.2

La crise du logicielNaissance et enjeux du génie logiciel

4

Page 5: Introduction au génie logiciel 1.2

Les débuts de la crise

Destruction de Mariner 1 (1962)‣ Cause directe

Le programme de contrôle ne lisse plus les valeurs de la vitesse et réagit brutalement à des variations mineures

‣ ImpactDestruction 297s après le décollageCoût non évalué

‣ OrigineErreur de transcription d’une formule dans le code source

5

Page 6: Introduction au génie logiciel 1.2

Les débuts de la crise

Trouverez-vous le bug ?

 ...        IF  (TVAL  .LT.  0.2E-­‐2)  GOTO  40        DO  40  M  =  1,  3        W0  =  (M-­‐1)*0.5        X  =  H*1.74533E-­‐2*W0        DO  20  N0  =  1,  8        EPS  =  5.0*10.0**(N0-­‐7)        CALL  BESJ(X,  0,  B0,  EPS,  IER)        IF  (IER  .EQ.  0)  GOTO  10  20  CONTINUE        DO  5  K  =  1.  3        T(K)  =  W0        Z  =  1.0/(X**2)*B1**2+3.0977E-­‐4*B0**2        D(K)  =  3.076E-­‐2*2.0*(1.0/X*B0*B1+3.0977E-­‐4*      *(B0**2-­‐X*B0*B1))/Z        E(K)  =  H**2*93.2943*W0/SIN(W0)*Z        H  =  D(K)-­‐E(K)    5  CONTINUE  10  CONTINUE        Y  =  H/W0-­‐1  40  CONTINUE        ...

   DO5K=1.3                …5  CONTINUE

         DO  5  K  =  1,3                …5  CONTINUE

C’est une autre cause invoquée pour l’accident de Mariner6

Page 7: Introduction au génie logiciel 1.2

Les débuts de la crise

Nombreux autres exemples (invérifiables)‣ Convocation de centenaires à l’école

Codage de l'âge sur 2 chiffres

‣ Retournement sur le dos d’un avion au passage de l’équateur

Changement de signe de la latitude non pris en compte

‣ Blocage des communications téléphoniques pendant 9h aux USA

Installation d’un patch non testé

7

Page 8: Introduction au génie logiciel 1.2

Réactions à la crise

Comment faire des logiciels de qualité ?‣ L’OTAN jette les bases du génie logiciel en 1968

8

Page 9: Introduction au génie logiciel 1.2

La crise se poursuit ...

Rejet du système Socrate à la SNCF -1990‣ Cause directe

Importantes difficultés de déploiement et d’utilisation

‣ ImpactReport de la clientèle vers d’autres moyens de transportCoût : non communiqué

‣ OrigineRachat d’un système développé pour une compagnie aérienne

Destruction d’Ariane 5 1996‣ Cause directe

Conversion entier/flottant non autorisée

‣ ImpactExplosion 30s après le décollageUne année de retard pour le programme Ariane 5

‣ OrigineReprise du code spécifié pour Ariane 4Absence de tests de validation prévolDésactivation de la gestion des exceptions Conservation de code inutile

Perte de Mars Climate Orbiter 1999‣ Cause directe

Confusion entre pieds et mètres

‣ ImpactDestruction de la sonde à l’entrée de l’atmosphère martienneCoût : 120 millions de $

‣ OrigineCommunication défaillante entre équipe GB et USSpécifications approximatives

9

Page 10: Introduction au génie logiciel 1.2

La crise se poursuit ...

Bogue de l’an 2000‣ Cause directe

Codage de la date sur 2 caractères

‣ ImpactTrès nombreuses mesures préventives et correctivesCoût : estimé à 500 milliards de F

‣ OrigineArbitrage économie mémoire / durée de vieMauvaise perception de la durée de vie des logiciels

Échec du déploiement de PeopleSoft chez Avis - 2004‣ Cause directe

Multiples retards de déploiementNombreux surcoûts d’adaptation

‣ ImpactAbandon du projetCoût : 45 millions d’euros (le projet devait initialement améliorer la profitabilité de l’entreprise)

‣ OrigineComplexité du logiciel mal perçueCharge d’intégration et d’adaptation sous-estimée

10

Page 11: Introduction au génie logiciel 1.2

... persiste encore aujourd’hui ...

Devenir des projets de développement logiciel

53%

31%

16%

1994

44%

24%

32%

2009

RéussiteAnnula,onEchec  par,el

Retard : 63% Dépassement de budget : 45%Fonctionnalités absentes : 33%Le plus souvent : les 3 en même temps

Peu d’autres industries présentent une telle situation

http://www.projectsmart.co.uk/docs/chaos-report.pdf

11

Page 12: Introduction au génie logiciel 1.2

... et devient chroniqueThe Software Chronic Crisis‣ “Despite 50 years of progress, the software

industry remains years-perhaps decades-short of the mature engineering discipline needed to meet the demands of an information-age society”

‣ Gibbs, Scient. Am., Sept. 1994

12

Page 13: Introduction au génie logiciel 1.2

... et devient chronique

13

Page 14: Introduction au génie logiciel 1.2

... et devient chronique

14

Page 15: Introduction au génie logiciel 1.2

Bilan de la crise

Causes‣ Incapacité à faire face à la complexité croissante des logiciels‣ Incompréhension des besoins des utilisateurs‣ Incapacité à prendre en compte l’évolution des besoins‣ Absence de pratiques standards ayant fait leur preuves‣ Absence d’outils pour les mettre en oeuvre

15

Page 16: Introduction au génie logiciel 1.2

Bilan de la crise

Conséquences : les logiciels sont ...‣ Inadaptés aux besoins des utilisateurs ‣ Figés ou très difficiles à faire évoluer‣ De plus en plus chers à développer‣ De faible qualité

16

Page 17: Introduction au génie logiciel 1.2

Bilan de la crise

Qu’est-ce que la Qualité d’un logiciel ?

Comment faire des logiciels de Qualité ?

17

Page 18: Introduction au génie logiciel 1.2

Qu’est-ce qu’un logiciel ?Caractéristiques d’un concept multiforme

18

Page 19: Introduction au génie logiciel 1.2

Les logiciels sont omniprésents

Utilisés par des milliards d’êtres humains chaque jourPrésents dans tous les secteurs de la société‣ Économie, transports, énergie, santé, recherche, télécommunications,

enseignement, média, arts, ...

Au coeur des systèmes critiques‣ Centrales nucléaires, trafic aérien, armement, radiothérapie, ...

19

Page 20: Introduction au génie logiciel 1.2

Génèse du logicielIXe siècle : premier algorithme‣ Mohammed Al-Khwarizmi,

1850 : premier programme‣ Ada Lovelace‣ Calcul des nombres de Bernoulli ‣ Pour la machine analytique de

Charles Babbage (cartes perforées)

Années 1930 : théorie des programmes‣ Alan Turing‣ Concept de Machine de Turing‣ Décidabilité

1948 : théorie de l’information‣ Claude Shannon

20

Page 21: Introduction au génie logiciel 1.2

Génèse du logiciel

21

1950 : premier langage de programmation‣ Sir Maurice Wilkes‣ Microprogrammation en assembleur‣ Concepts de labels, macros,

bibliothèques de sous-routines

1956 : premier système d’exploitation‣ Robert Patrick (General Motors) et Owen Mock (North

American Aviation)‣ GM-NAA I/O fonctionnant sur IBM 104

1957 : premier langage évolué FORTRAN‣ John W. Backus et son équipe (IBM)‣ Vingt fois moins d’instructions que l’assembleur‣ Concept de boucle

1958 : création du mot “Software”‣ John Tukey

Page 22: Introduction au génie logiciel 1.2

Génèse du logiciel1964 : première définition du génie logiciel‣ OTAN, Garmish

1960 à 1970 : premiers langages orientés objet‣ Simula : O.-J. Dahl & K. Nygaard, années 1960‣ SmallTalk : A. Kay, 1970

1985 à 1988 : premier framework applicatif‣ MacApp, 1985 (Apple)‣ Jonhson & Foote, concept de réutilisation 1988

22

1969 : premier OS moderne indépendant du hardware‣ Unix ‣ Ken Thompson et Dennis Ritchie (ATT Bell’s Lab)‣ Ordonnanceur, gestion de fichiers, ...

Page 23: Introduction au génie logiciel 1.2

Qu’est-ce qu’un logiciel ?

Un ensemble constitué de ‣ Programmes

code source (instructions et commentaires)code exécutable

‣ Données ‣ Documentations

spécificationsdossier de conceptionrègles de codagemanuel d’utilisationdossier de testnotice d’installation...

23

Page 24: Introduction au génie logiciel 1.2

Qu’est-ce qu’un logiciel ?

Un produit fabriqué‣ Par des éditeurs de logiciels

Dans une logique d’offre, pour des utilisateurs génériques (marché)Les spécifications sont choisies par l’éditeurLicences commerciales

‣ Par des prestataires en développement (SS2I)Dans une logique de demande, pour des clients spécifiquesLes spécifications sont choisies par le clientLicences commerciales

‣ Par une communauté de développeurs (open source)Dans une logique de partage, pour des utilisateurs génériquesLes spécifications sont choisies par les développeursLicences libres

24

Page 25: Introduction au génie logiciel 1.2

Logiciel

Qu’est-ce qu’un logiciel ?

Une entité se présentant sous trois aspects

d

Comportement

k Structures

H Architecture

Ces trois aspects sont largement indépendants

25

Page 26: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel est

‣ Très grand nombre de constituants élémentaires (instructions ou LoC)Ex : Windows 7 → 30 MLoCEx : Airbus → 5 M de pièces

‣ Grand nombre d’interactions entre instructionsEn moyenne, une instruction interagit avec dix autres :

100 kLoC → 100 fois plus d’interactions que 10 kLoC

Le nombre d’états possibles d’un logiciel est gigantesque

COMPLEXE

26

Page 27: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel est

‣ C’est un produit immatériel (non manufacturé)‣ Son comportement est difficile à appréhender entièrement‣ Sa structure est difficile à appréhender entièrement

Le logiciel est beaucoup plus que ce qu’il faitLe seul plan exact et complet d’un logiciel est le logiciel lui-même

A B S T R A I T

27

Page 28: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel est

‣ Il peut (presque) tout faireLe logiciel est très peu contraint : ni par des lois physiques, ni par les matériaux, ni par le processus de fabricationLes logiciels sont extrêmement variés, il n’y a pas de logiciel “type”

‣ Les besoins sont difficiles à cerner et à formaliserLe logiciel est abstraitUtilisateurs et développeurs partagent rarement des connaissances communesIl est difficile de prévoir tous les usages qui seront fait d’un logiciel

MAL DEFINI

28

Page 29: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel est en

‣ La technologie change rapidementPlateformes, OS, langages, Frameworks

‣ Les besoins évoluent sans cessePour le client, les changements fonctionnels semblent faciles

‣ La conception est toujours remise en questionLa conception est un processus progressif de découverte de ce que le client veut et de comment cela doit être construit

EN CONSTANTE EVOLUTION

29

Page 30: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel a une

‣ Le premier exemplaire représente tous l’effort de production‣ La duplication ne coûte (presque) rien‣ La conception est l’essentiel de la production

Plus proche de l’oeuvre d’art que du produit manufacturéLa qualité du logiciel dépend très fortement de la qualité de la conception

fabrication atypique

30

Page 31: Introduction au génie logiciel 1.2

Spécificités du logiciel

Le logiciel est un domaine de

‣ Pas de théorie prouvée, de pratique faisant consensusLe génie logiciel est un domaine de recherche actif

‣ Les retours d’expérience sont limités‣ Le niveau d’industrialisation est (au mieux) celui du fordisme « How Software Engineering can

benefit from traditional industries », T. Sprenger (AdNovum) ICSE 2012 proc. p1000

faible maturite

31

Page 32: Introduction au génie logiciel 1.2

Catégories de logiciels

Logiciels Système

Drivers

Systèmes d’exploitation

Outils de programmation

Intergiciels (Middlewares)

Logiciels réseau

SGBD

Applications

Bureautique Progiciels/Métier

Jeux Embarqué

Temps réel

Web MultimédiaLogiciels scientifiques

Intelligence artificielle

Pourriciels Virus, Worms, Trojans Spywares Adwares

32

Page 33: Introduction au génie logiciel 1.2

La Qualité du logicielLe bon logiciel bien fait

33

Page 34: Introduction au génie logiciel 1.2

Qualité logicielle Norme ISO 9126 (1, 2)Deux types de caractéristiques Qualité ‣ Externes : vues par l’utilisateur du logiciel‣ Internes : vues par producteur

Ces caractéristiques sont : ‣ Interdépendantes‣ Complémentaires‣ Parfois difficilement conciliables‣ Souvent difficilement mesurables

)34

Page 35: Introduction au génie logiciel 1.2

Caractéristiques externes

‣ AdéquationCapacité du logiciel à réaliser ce pour quoi il a été prévu (spécifications)

‣ ExactitudeCapacité des fonctionnalités à fournir un comportement exact

‣ InteropérabilitéCapacité du logiciel à fonctionner avec d’autres logiciels (interfaces, protocoles, format de fichier, etc.)

‣ SécuritéCapacité du logiciel à protéger ses fonctionnalités, ses données et ses programmes contres les accès non autorisés

Capacité fonctionnelle

)35

Page 36: Introduction au génie logiciel 1.2

Caractéristiques externes

‣ MaturitéFréquence des comportements anormaux

‣ Robustesse (ou tolérance aux pannes)Capacité du logiciel à réagir correctement (selon spécifications) à des conditions anormales (hors spécifications)Les conditions anormales peuvent être d’origine interne ou externe (environnement)

‣ Capacité de récupérationCapacité du logiciel à retourner à un état de fonctionnement normal après une anomalieInclu le rétablissement des connexions réseau, la récupération des données, etc.

Fiabilité

)36

Page 37: Introduction au génie logiciel 1.2

Caractéristiques externes

‣ Facilité d’opérationEffort qu’un opérateur doit fournir pour faire fonctionner le logiciel dans son environnement

‣ Facilité d’apprentissageEffort qu’un utilisateur doit fournir pour apprendre à réaliser ses tâches avec le logicielDépend de l'audience prévue, du profil des utilisateurs (expert, novice, etc.)

‣ Facilité de compréhensionEffort à fournir pour se représenter les concepts logiques des fonctionnalités du logiciel

‣ Pouvoir d’attractionEnvie suscitée par le logiciel

Utilisabilité

)37

Page 38: Introduction au génie logiciel 1.2

Caractéristiques externes

‣ Performance temporelleTemps de réponse entre l’invocation d’une fonctionnalité et sa réalisationTemps de réalisation de la fonctionnalité

‣ Économie de ressources (nécessaires pour accomplir les tâches prévues)Puissance CPUMémoireVolume disqueDébit réseauPuissance électrique...

Efficacité

)38

Page 39: Introduction au génie logiciel 1.2

Caractéristiques internes

‣ Flexibilité (ou modifiabilité ou extensibilité)Effort à fournir pour modifier le logiciel (pour répondre à une évolution des spécifications ou pour corriger une anomalie)

‣ Facilité d’analyseEffort à fournir pour analyser la cause d’une anomalie (à partir des symptômes)Effort à fournir pour identifier une partie à modifier (à partir d’une évolution de spécification)

‣ StabilitéSensibilité du logiciel à un changement effectué dans une de ses parties (effet de bord)

‣ TestabilitéEffort à fournir pour tester le logiciel (préparation des données, des procédures de tests, etc.)

Maintenabilité

)39

Page 40: Introduction au génie logiciel 1.2

Caractéristiques internes

‣ AdaptabilitéCapacité du logiciel à s’adapter à un changement d’environnement (plateforme matérielle, OS, compilateurs, etc.)

‣ Facilité d’installationEffort à fournir pour installer et désinstaller le logiciel

‣ Facilité de migration (ou remplaçabilité)Capacité du logiciel à remplacer un autre logiciel remplissant des fonctions similaires

Portabilité

)40

Page 41: Introduction au génie logiciel 1.2

Caractéristiques internes

‣ Capacité des parties du logiciel à être utilisées dans le développement d’un autre

Réutilisabilité

)41

Page 42: Introduction au génie logiciel 1.2

Qualité logicielle

Et la documentation ? ‣ Elle est intégrée dans la plupart des caractéristiques précédentes

42

Page 43: Introduction au génie logiciel 1.2

Qualité logicielle

Qualité, coûts et délais sont étroitement liés

Qualité

Coût

Délai

43

Symboliquement : Qualité = Coûts + Délai

Page 44: Introduction au génie logiciel 1.2

Le génie logicielL’ingénierie au service du logiciel

44

Page 45: Introduction au génie logiciel 1.2

J Outils

Qu’est-ce que l'ingénierie ?

U Méthodologies

ù Méthodes

Savoir

académique

Mesures

GÉthique

RStandardsNormes

Bonnes

pratiques

n Principes de bases

45

Page 46: Introduction au génie logiciel 1.2

Apports du génie industriel

‣ Division du travail en tâches‣ Mécanisation‣ Division des produits en

sous-ensembles‣ Automatisation‣ Standardisation‣ Interchangeabilité des sous-

ensembles

‣ Contrôle Qualité‣ Chemin critique‣ Qualité totale‣ Production en flux tendu‣ ...

Une source d’inspiration pour le génie logiciel (et réciproquement)

Grandes étapes de l’industrialisation de la production manufacturière

46

Page 47: Introduction au génie logiciel 1.2

Qu’est-ce que le génie logiciel ?‣ La discipline d’ingénieur qui concerne la production de logiciel sous tous ses aspects‣ L’étude des pratiques systématiques qui permettent d’obtenir des logiciels

correspondant aux attentesfiablesavec les performances attenduesrespectant les délais et les coûts de construction et de maintenance (Wikipédia)

‣ (1) Une approche systématique, méthodique et quantifiable appliquée au développement, à l’exploitation et à la maintenance des logiciels ; c’est-à-dire l’application de l’ingénierie au logiciel(2) L’étude des approches ci-dessus (IEEE)

De nombreuses autres définitions existent

47

Page 48: Introduction au génie logiciel 1.2

Qu’est-ce que le génie logiciel ?

Le bon logiciel répond aux critère de qualité vues de l’utilisateur

Le logiciel bien fait répond aux critères de qualité vues du producteur

L’art et la manière de bien créer le bon logiciel

48

Page 49: Introduction au génie logiciel 1.2

Génie logiciel ou ingénierie logicielle ?

Deux expressions qui signifient la même chose

Occurrences des expressions dans les livres (source : http://books.google.com/ngrams)

49

Page 50: Introduction au génie logiciel 1.2

Informatique

Positionnement dans l’informatique

Informatique théorique

Ingénierie des télécommunications

Ingénierie du hardware

Ingénierie logicielle Développement Programmation

50

Page 51: Introduction au génie logiciel 1.2

Domaines connexes

#Économie

MManagement

=Psychologie

✈Domaines

métier

GGestion de

projet

Ingénierie logicielle

51

Page 52: Introduction au génie logiciel 1.2

Activités fondamentales

52

TestsDes programmes au produit

Les ingénieurs et les clients contrôlent que le logiciel correspond aux besoins

RéalisationDes spécifications aux programmes

Les ingénieurs conçoivent et programment le logiciel

AnalyseDes besoins aux spécifications

Clients et ingénieurs définissent le logiciel et son mode opératoire

Distribution - Maintenance - Évolution

Les ingénieurs adaptent le logiciel aux évolutions des clients/du marché

Page 53: Introduction au génie logiciel 1.2

Les huit principes du génie logiciel

g

)

N

Y

6 O

Utiliser les processus appropriés Maîtriser les changements

Concevoir pour la Qualité

Tester sans relâche

Documenter avec discernement

Se soucier de l’utilisateur

4 Mesurer la Qualité

Maîtriser les dépendances53

Page 54: Introduction au génie logiciel 1.2

Les huit principes du génie logiciel

Utiliser les processus appropriés‣ Développer en suivant un

processus standard‣ Bien compris par l’équipe‣ Adaptés

à l’organisation du projetà l’équipe projetau type de logiciel être pragmatique

‣ Incarnés dans des outils

Se soucier de l’utilisateur‣ Comprendre et gérer les besoins‣ Aider l’utilisateur à exprimer ses

besoins‣ Utiliser le vocabulaire de

l’utilisateur‣ Prévoir que ces besoins

évolueront‣ Intégrer l’utilisateur dans le

processus de développement

g 6

54

Page 55: Introduction au génie logiciel 1.2

Les huit principes du génie logiciel

Concevoir pour la Qualité‣ Définir et hiérarchiser les

objectifs de la Qualité‣ Utiliser les styles architecturaux

et les patrons de conception adaptés à ces objectifs‣ Prévoir et évaluer différentes

solutions de conception‣ Utiliser les bonnes pratiques de

conception - Éviter les “trucs”‣ Réutiliser au maximum

Maîtriser les dépendances‣ Identifier les dépendances

Envers tous les prérequisEntre tous les éléments internesConsidérer la granularité

‣ Réduire les dépendancesMaximiser la cohésionMinimiser le couplage

‣ Gérer en configuration les références des dépendances

)

55

Page 56: Introduction au génie logiciel 1.2

Les huit principes du génie logiciel

Maîtriser les changements‣ Choisir un processus de

développement adapté à la souplesse voulue‣ Identifier et tracer l’évolution

Des besoinsDes décisions d’architecture et de conception Des sourcesDes tests

Tester sans relâche‣ Tester le plus souvent et le plus

complètement possible (automatisation)‣ Tester en relation avec les

exigences‣ Tester à différents niveau de

granularité‣ Le testeur ne doit pas être un

développeur

N O

56

Page 57: Introduction au génie logiciel 1.2

Les huit principes du génie logiciel

Mesurer la Qualité‣ Par l’analyse technique

analyse statique des sourcesanalyse dynamique des exécutables

‣ Par l’évaluation des processusfréquence des versions, ...

‣ Par les retours d’utilisationsnombre de bogues, satisfaction, ...

Documenter avec discernement‣ Les trois aspects du logiciel

comportementsstructures architecture

‣ Les tests du logiciel‣ Ni trop, ni trop peu

4 Y

57

Page 58: Introduction au génie logiciel 1.2

Des mythes parfois tenaces

‣ Si on ajoute plus de programmeurs, on pourra rattraper notre retard

‣ Si on sous-traite une partie, on pourra se reposer un peu

‣ Les besoins des utilisateurs changent mais ce n’est pas grave car notre logiciel est flexible

‣ Plus un logiciel a de fonctionnalités, meilleur il est

‣ La qualité d’un logiciel se mesure au nombre de ses bugs

‣ Une fois qu’on a écrit le programme et qu’il fonctionne, le travail est fini

‣ Tant qu’on ne fait pas tourner le programme, on ne peut pas évaluer sa qualité

‣ Si on fait tout ce que le génie logiciel demande, on va perdre du temps et de l’argent

‣ Nos programmeurs ont les meilleurs outils de développement logiciel : nous leur avons fournis des ordinateurs dernier cri

58

Page 59: Introduction au génie logiciel 1.2

Conclusion

59

Page 60: Introduction au génie logiciel 1.2

Un domaine en plein essors

Discipline jeune‣ Premières formations diplomantes aux USA fin des années 1990

Objet d’une R&D très active‣ Approche à la fois académique et empirique‣ Une dizaine de journaux et de conférence exclusivement dédiés‣ Quelques acteurs majeurs :

60

Page 61: Introduction au génie logiciel 1.2

Un domaine en plein essors

Quelques référentiels‣ SWEBOK : Software Engineering Body of Knoledge‣ CMM : Capability Maturity Model‣ ISO 12207 : Processus de développement logiciel‣ ISO 9126 : Qualité logicielle‣ COCOMO 2 : modèle d’estimation des coûts‣ ATAM : Architecture Tradeoff Analysis Method

61

Page 62: Introduction au génie logiciel 1.2

Un dernier mot

Prendre garde aux (trop) bonnes intentions ...

62

Page 63: Introduction au génie logiciel 1.2

Références

63

Page 64: Introduction au génie logiciel 1.2

Sources

Sources :http://www.lemondeinformatique.fr/actualites/lire-­‐trop-­‐cher-­‐trop-­‐complique-­‐avis-­‐europe-­‐congedie-­‐peoplesoft-­‐et-­‐atos-­‐10462.htmlhttp://www.baselinemag.com/c/a/ERP/Five-­‐ERP-­‐Disasters-­‐Explained-­‐878312/

Sources :http://fr.wikipedia.org/wiki/Mariner_1http://nssdc.gsfc.nasa.gov/nmc/masterCatalog.do?sc=MARIN1

Sources :http://fr.wikipedia.org/wiki/Mars_Climate_Orbiter#Perte_de_la_sondehttp://www.nirgal.net/mco_end.html

Sources :ESA Inquiry Board. ARIANE 5: Flight 501 failure. Technical report, European Space Agency, July 1996.http://www.esrin.esa.it/htdocs/tidc/Press/Press96/ariane5rep.html.  http://www.inria.fr/actualites/inedit/inedit14_evea.fr.html  

Sources :http://fr.wikipedia.org/wiki/Mariner_1http://www-­‐aix.gsi.de/~giese/swr/mariner1.htmlhttp://nssdc.gsfc.nasa.gov/nmc/masterCatalog.do?sc=MARIN1

     DO5K=1.3                …5  CONTINUE

Sources :http://www.cs.tau.ac.il/~nachumd/horror.html http://www.time.com/time/magazine/

article/0,9171,969266,00.html http://users.csc.calpoly.edu/~jdalbey/SWE/Papers/att_collapse.html http://www.mit.edu/hacker/part1.html

64