logiciel et genie logiciel

48
10/24/2009 Kh. Nafil : Le Génie Logiciel 1 Le Génie Logiciel Khalid Nafil Email : knafi[email protected]

Upload: sm4ever

Post on 26-Jun-2015

228 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel 1

Le Génie Logiciel

Khalid NafilEmail : [email protected]

Page 2: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel 2

Software Engineering is not a discipline : it is an

aspiration, as yet unachieved

Page 3: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel3

The Aspiration

• In late 1967 the [NATO Science Committee] Study Group recommended the holding of a working conference on Software Engineering. The phrase SE was deliberately chosen as being provocative in implying the need for software manufacture to be based on the types of theoretical foundations and practical disciplines that are traditional in the established branches of engineering

Page 4: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel4

Plan du cours

• Définition du Génie Logiciel• Les modèles de Cycle de Vie• Techniques de Spécifications Formelles (Z, Petri

nets, B)• Gestion de configuration et de Versions (CVS)• Tests• Méthodes agiles • eXtreme Programming• Design patterns• Gestion de projet

Page 5: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel5

Ingénieries

• Les génies classiques : Civil, maritime, mécanique, informatique Production, fabrication, construction

• Ingénierie : Science de l’ingénieur / art Théories, méthodes, techniques, outils

• Génie logiciel : Software Engineering

Page 6: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel6

GL

• Art de bien faire de bons programmes Art : technique, créativité, esthétique,… Bien faire : réussite, rentabilité,… Bons : performance, fiabilité,…

Page 7: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel7

Caractéristiques du logiciel

• Conceptuellement: une structure d’informations

• Caractéristiques physiques du logiciel: Une suite d’items ou d’objets Incluant programmes, données,

documents,… Le tout formant une configuration

• Techniquement: il est développé non manufacturé

Page 8: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel8

Caractéristiques du logiciel

• Temporellement: il ne s’use pas, mais se détériore

• Structurellement: il est personnalisé plutôt qu’assemblé

• Économiquement: une opportunité d’affaires

Page 9: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel9

Domaines d’applications

• Logiciels de système• Logiciels temps réel• Logiciels d’ingénierie et logiciels

scientifiques• Logiciels embarqués• Logiciels d’intelligence artificielle• Logiciels d’applications Web

Page 10: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel10

Domaines d’application

• Utilisation du logiciel : de plus en plus volumineux

• Montre : 2K instructions• Téléphone portable : 150 K

instructions• Automobile : 1 M instructions• Centrale téléphonique : 1M

instructions• Noyaux linux : 3,7M instructions

Page 11: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel11

Domaines d’application

• 90% des nouvelles fctnnalités des voitures sont apportées par l’informatique et l’éléctronique

• Il y a plus d’informatique dans la Volvo S80 que dans le chasseur F15, avait déclaré le président d’Audi

Page 12: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel12

Évolution de l’informatique :

• I think there is a world market for maybe five computers : Thomas Watson, PDG fondateur, IBM, 1943

• There is no reason for any individual to have a computer in his home : Ken Olson, PDG DEC, 1977

• Les ordinateurs du futur ne devraient pas peser plus de 1,5 tonnes : Popular Mechanics, 1949

Page 13: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel13

Explosion du logiciel

• En 30 ans (1965 à 1995), le volume de chaque logiciel a été multiplié par 100, alors que la productivité des développeurs n’augmentait que d’un facteur de 3

• C’est la crise du logiciel

Page 14: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel14

Problème de productivité

• En 1995, le développement de Microsoft Exchange Server a coûté 1000 années*hommes pour 7 millions lignes. La productivité a été de 30 lignes par homme par jour

Page 15: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel15

Développement de logiciels :

• 90% des projets informatiques sortent en retard

• Un nombre considérable de projets informatiques ne répondent pas aux besoins des utilisateurs en respectant les contraintes de budget et de délai

• 50% des projets informatiques dépassent le budget prévu

Page 16: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel16

Coûts élevés des logiciels

• Le coût de développement d’un logiciel peut être estimé, en moyenne, à 1000 dh par instruction

• À ce coût, il faut ajouter pour chaque instruction 20000 dh de maintenance

Page 17: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel17

Constat

• Diminution des coûts du matériel informatique• Les coûts des logiciels n’ont pas diminué• Le coût du logiciel représente 80% ou plus du coût

total d’un système informatique• La pratique du G.L. a pour objectif de diminuer

sensiblement les coûts de développement des gros systèmes logiciels

Page 18: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel18

Page 19: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel19

Industrie logiciel vs industrie

• Peut-on comparer l’industrie du logiciel à celle de l’industrie automobile : voir lien

Page 20: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel20

Métaphore du logiciel

• Pour construire une maison, il faut faire appel à un spécialiste : un architecte

• Son rôle consiste à : Analyser et comprendre les besoins Tenir compte des réalités économiques (budget) Proposer des solutions architecturales Contacter tous les corps de métier nécessaires S’assurer que ttes les dispositions/contraintes légales sont

satisfaites

Page 21: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel21

Métaphore du logiciel…

Planifier l’enchaînement des interventions Faire faire les travaux (réalisation et

codage) S’assurer des avancement des travaux S’assurer de la qualité des travaux

réalisés(qualité et test) Gérer les éventuels conflits Prévoir la recette de la maison (remise

des clés)

Page 22: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel22

Métaphore du logiciel…

• Pour construire une maison, on fait appel à de nombreux outils : Une méthode qu’applique l’architecte Des documents Des outils spécifiques à chaque corps

métier

Page 23: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel23

CMM : Capability Maturity

• C’est un modèle d’évaluation et d’évolution des processus logiciels

• Élaboré en 1987 par Watts Humphrey, du SEI de l’université de Pittsburg

• Il comporte 5 niveaux de maturité : initial, reproductible, défini, maîtrisé et optimisé

• Ces niveaux constituent autant d’étapes sur le chemin menant à des processus matures

Page 24: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel24

CMM : fonctionnement

• Chacun des 5 niveaux est divisé en plsrs secteurs clés

• Niveau 2 : planification de projet, assurance qualité

• Niveau 3 : définition des processus, ingénierie des produits logiciels

• Niveau 4 : gestion quantitative des processus et de la qualité logicielle

• Niveau 5 : gestion des changements technologiques et des changements des processus

Page 25: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel25

CMM : fonctionnement

• Niveau 1 : le processus est empirique, artisanal

• Niveau 2 : le process est documenté, reproductible

• Niveau 3 : le process est bien défini, réglé• Niveau 4 : le process est dirigé, des

mesures quantitatives sont introduites• Niveau 5 : le process est optimisé,

l’amélioration continue est intégrée ds le fonctnement quotidien

• En Inde, 46 sociétés sont évaluées au niveau 5

Page 26: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel26

Que regroupe le Génie logiciel

• Des méthodes Analyse Conception Implémentation Tests Maintenance

• Des procédures Gestion de projet Assurance-qualité Gestion de

configuration Mesures

(métriques) Technologies

novatrices

Page 27: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel27

Vers une définition du Génie

• Le GL désigne l’ensemble des méthodes, des techniques, des pratiques et outils concourant à la production d’un logiciel, imposés par les normes adaptées à l’environnement d’utilisation afin de favoriser la production et la maintenance de composants logiciels de qualité

Page 28: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel28

Vers une définition du génie

• Le génie logiciel applique les principes et techniques de l’ingénierie à la conception de systèmes logiciels, intégrés et à grande échelle.

• La pratique du génie logiciel est réalisée par des équipes d’ingénieurs.

Page 29: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel29

Objectifs du G.L.

Développer des logiciels considérés comme :

• Logiciels fiables• Logiciels satisfaisant les besoins• Logiciels maintenables• Logiciels exploitables dans différents

environnement

Page 30: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel30

La discipline G.L.

• Le GL repose principalement sur : L’informatique Les mathématiques La psychologie L’érgonomie La gestion

Page 31: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel31

Historique du génie logiciel

• Une crise du logiciel (OTAN, 1968)• La crise résultait de l’apparition des

ordinateurs 3ème génération plus puissants que les précédents

• Réalisation de nouvelles applications jusque là impossibles

• La réalisation de ces applications exigea la construction de grands systèmes logiciels

• Les méthodes de développement de l’époque n’étaient pas adéquates

Page 32: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel32

Historique du G.L.

• Un certain nombre de projets prirent du retard (parfois plsrs années)

• Ceci produit des systèmes peu fiables : Difficiles à maintenir Peu performants

• Le développement du logiciel entra dans une situation de crise

• Le terme logiciel désigne l’ensemble des programmes associés à telle application ou produit en plus de la documentation nécessaire

Page 33: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel33

Quelques exemples de

• 01/11/2005 : gros bug à la bourse de Tokyo, toutes les cotations qui sont bloquées toute la journée

• Convocation de centenaires à l’école : convocation à l’école primaire de personnes âgées de 106 ans

• Échec du premier lancement d’ariane V. au premier lancement de la fusée, celle ci a explosé en vol. coût du programme d’étude d’ariane 38 milliards de francs, pour 39 secondes de vols après 10 années de travail

Page 34: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel34

Exemples de bugs

• Microsoft raciste : le correcteur d’orthographe de Word proposait “anti-arabe” pour corriger “anti-stress”

• L’indisponibilté durant 22 heures du serveur web de ebay, a fait échouer plus de 2,3 millions d’enchères

• Février 2009 : panne de Gmail pendant 2 heures

Page 35: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel35

Caractéristiques de projets

• Diversité des applications• Objectifs exacts non connus avant

l’achèvement• Niveau d’abstraction• Évolution des besoins• Invisibilité• Le cahier des charges n’est presque jamais

complet et figé• Chaque projet informatique est un cas

nouveau

Page 36: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel36

Caractéristiques de logiciels

• Dans tous les grands projets, les premiers exemplaires n’ont pas fonctionné correctement : Premiers processeurs ou ordinateurs Premiers Airbus Premieres fusées …

• Un logiciel est considéré toujours comme étant le premier exemplaire produit par un grand projet complexe

Page 37: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel37

Évolution du matériel et du

• Années 50, 60 Traitements en lots Distribution limitée Logiciel

personnalisé• Années 60, 70

Multi-usagers Temps réel Bases de données

• Années 70, 80 Systèmes distribués Systèmes embarqués

• Années 80, 90 Ordinateurs personnels Orienté-objet Systèmes experts Réseaux de neurones Calcul parallèle

Page 38: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel38

Langages et outils logiciels

• Années 60, 70 Langages 0/1,

assemblages• Années 70, 80

Langages de base:Fortran, Cobol

Langages structurés: C, Pascal

Compilateurs

• Années 80, 90 Langages OO:

smalltalk, C++ Interfaces usagers

• Années 90, 2000 Outils CASE Normes de

conception: UML, CORBA

Page 39: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel39

Quelques défis du génie

• Comment assurer la qualité du logiciel à produire

• Comment suivre la demande croissante tout en maintenant des contraintes budgétaires

• Comment mettre à jour des logiciels âgés • Comment éviter des délais désastreux• Comment et quand intégrer avec succès les

nouvelles technologies en génie logiciel

Page 40: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel40

Problèmes avec le

• Les clients sont souvent insatisfaits du produit logiciel …interaction client-développeur

• Les logiciels existants sont souvent difficiles à maintenir Vestiges de technologie dépassée

• La qualité du logiciel est difficile à mesurer

Page 41: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel41

Quelques causes pour ces

• Physique: pas de pièce de rechange• La qualité logiciel est un problème humain• Les chefs de projet n’ont pas toujours une

expérience en développement• Même les développeurs ont souvent peu

d’expériences dans l’ingénierie logicielle• L’art de programmer est significativement

différent d’une tâche d’ingénierie

Page 42: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel42

Mythes du logiciel: côté

• Mythe: Un énoncé général des

objectifs est suffisant Les besoins du projet

changent, mais on incorporera les modifications facilement parce que le logiciel est flexible

• Réalité: Une définition

insuffisante des besoins des usagers est une cause majeure de production d’un logiciel de mauvaise qualité

Les coûts pour un changement du logiciel augmentent dramatiquement dans les dernières phases du développement

Page 43: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel43

Mythes du logiciel: côté

• Mythes: Une fois le programme

écrit et qu’il fonctionne, le travail du développeur est terminé

Tant qu’un programme ne fonctionne pas, il n’y a pas moyen d’en mesurer la qualité

Le succès d’un projet dépend de son livrable le plus important, soit un programme fonctionnel

• Réalité: 50% à 70% de l’effort

consacré à un programme se produit après la livraison à l’usager

Les revues de logiciel peuvent être plus efficaces pour détecter les erreurs que les jeux de tests.

Une configuration logicielle inclut toute la documentation, des données d’entrée pour les tests, etc.

Page 44: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel44

Coûts

67%6%

7%

5%

6%2%4%3%

Coûts relatifs du logiciel par phase

Besoins SpécificationsPlanificationConceptionCodageTestsIntégrationMaintenance

Page 45: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel45

Mythes du logiciel: côté

• Mythe: L’entreprise possède

des normes, le logiciel développé devrait être satisfaisant.

Les ordinateurs et les outils logiciels que l’entreprise possède sont suffisants.

Si le projet prend du retard, il suffira d’ajouter quelques programmeurs.

• Réalité: Les standards sont-ils

utilisés, appropriés et complets.

Il faut plus que des outils pour réaliser des logiciels de qualité. Il faut aussi une bonne pratique

Le développement du logiciel n’est pas une activité mécanique. Ajouter des programmeurs peut empirer la situation.

Page 46: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel46

Quelques lois

• Loi de Brooker : dix grammes d’abstraction valent des tonnes de bricolages

• Loi de Klipstein : les défauts n’apparaissent qu’après que le système ait passé avec succès la phase d’intégration

• Loi de Brook : doubler le nombre de programmeurs sur un projet en retard ne fait que doubler le retard

Page 47: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel47

Quelques lois (suite)

• Loi de Weinberg : si les architectes construisaient des maisons comme les programmeurs écrivent les programmes, le premier picvert venu détruirait la civilisation

• Loi de Myers : on passe la moitié de son temps à refaire ce que l’on n’a pas eu le temps de faire correctement

Page 48: Logiciel Et Genie Logiciel

10/24/2009 Kh. Nafil : Le Génie Logiciel48

Bibliographie

• Ian Sommerville, “Le génie logiciel et ses applications”, InterEditions, 1988

• Bohem, “Software Engineering Economics”, Prentice-Hall, 1981