fabrication de logiciel hier, aujourd’hui, et ……

69
Fabrication de logiciel Hier, aujourd’hui, et …… Jean Claude Derniame ALS 12 mars 2009 [email protected]

Upload: jody

Post on 13-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Fabrication de logiciel Hier, aujourd’hui, et ……. Jean Claude Derniame ALS 12 mars 2009 [email protected]. Barry Boehm. Présentation partiellement inspirée d’un papier invité de Barry Boehm à la 28ème Intl Conf on Software Engineering Shangai Mai 2006 B Boehm - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fabrication de logiciel Hier, aujourd’hui, et ……

Fabrication de logicielHier, aujourd’hui, et ……

Jean Claude Derniame

ALS 12 mars 2009 [email protected]

Page 2: Fabrication de logiciel Hier, aujourd’hui, et ……

Barry Boehm

• Présentation partiellement inspirée d’un papier invité de Barry Boehm à la 28ème Intl Conf on Software Engineering Shangai Mai 2006

• B Boehm – TRW Professor of Software Engineering at USC, débuta en 55

chez General Dynamic , puis à Rand Corporation, a été directeur de DARPA au DOD, puis professeur …

– Auteur de modèles majeurs (cascade , spirale, Cocomo,

– Leader dans la Communauté Software Process

Page 3: Fabrication de logiciel Hier, aujourd’hui, et ……

Génie logiciel

• Définition, basée sur celle de Webster de l'ingénierie

• L’application des sciences et des mathématiques par laquelle les propriétés du logiciel sont utiles.

• Inclut “computer science” et les sciences permettant de rendre les choses utiles aux gens– Sciences du comportement, économie, sciences de gestion, etc.

• Immense

• Focalisera sur la fabrication des grands?? programmes

industriels, militaires etc , hier, aujourd’hui et …..

Motivation et

Contexte

Vue “20éme siècle”

Vue “21éme siècle”

•Conclusions

Page 4: Fabrication de logiciel Hier, aujourd’hui, et ……

• Importance d’une perspective historique

Pour quelque chose qui est apparu comme un moyen

d’accélérer les calculs

Puis comme une technologie prometteuse et utile

partout

Puis une science et

… une technologie envahissante!

Motivation et

Contexte

Vue “20éme siècle”

Vue “21éme siècle”

•Conclusions

Page 5: Fabrication de logiciel Hier, aujourd’hui, et ……

Pour faire des logiciels, il faut

– Des machines

– Des concepts et des langages

– Des outils variés

– Des ateliers

– Des méthodes et …… Des humains!

–pour atteindre des programmes de qualités différentes:

corrects, fiables, performants, maintenables,

réutilisables, agréables, faciles à apprendre, etc.…

Page 6: Fabrication de logiciel Hier, aujourd’hui, et ……

Des machines

• Le métier à tisser de Jacquart, 1801• 1936 “On Computable Numbers with an Application to the

Entscheidungsproblem” par Alan Turing, premier calculateur universel programmable

Machines

Langages

Outils

Ateliers

Procédés

•Premier calculateur réalisé en 1941•Premier calculateur à l’université de Nancy 1957

•IBM 650 (2000 mots de 10 chiffres décimaux)

• Ordinateurs d’institutions

•Premiers ordinateurs personnels début 1980•Apple2, PC,…

Sur papier!!!

Page 7: Fabrication de logiciel Hier, aujourd’hui, et ……

Machines aujourd’hui

• Nombre d’ordinateurs personnels dans le monde

• Ont été vendus en 2008: 300 Millions• Présents fin 2008: 1 Milliard

• Présents fin 2 015 : 2 Milliards• Produits depuis l’origine:

2,3 Milliards fin 2008• > 35 000 dans Nancy Université, 4500 INPL• Stockage dans les services centraux de NancyU > 60 téra octets (1012)

Machines

Langages

Outils

Ateliers

Procédés

Page 8: Fabrication de logiciel Hier, aujourd’hui, et ……

Explosions

• Explosion du nombre d’utilisateurs• Explosion des usages• Explosion des méthodes, des langages• Explosion de la demande de logiciel!!!!• Explosion de la taille de programmes demandés• Babel…….?

Page 9: Fabrication de logiciel Hier, aujourd’hui, et ……

1950’s Thèse: “Faire le logiciel comme le matériel” B Boehm

• Hardware-oriented:– Applications: CALCULS avions, ponts, , circuits

– Economie: Boehm project supervisor, 1955• “We’re paying $600/hour for that computer, and $2/hour for

you, and I want you to act accordingly.”

– Software Processes: SAGE (Semi-Automated Ground Environment)

• 1 Million de lignes de code pour un système de défense aérienne, temps réel, avec beaucoup d’interactions avec les utilisateurs……

• Succès du développement pour un système sans précédent

• Hardware-oriented waterfall-type process

Page 10: Fabrication de logiciel Hier, aujourd’hui, et ……

Machines

Langages

Outils

Ateliers

Procédés

Page 11: Fabrication de logiciel Hier, aujourd’hui, et ……

• Illisibilité

• Complexité: Royce, “for a $5M procurement, need a 30-page spec for hardware, and a 1500-page spec for software”

• Conformité: distance entre souhaits et réalisation

• Evolutivité: au-delà d’un certain point, impossible à maintenir

• fiabilité.? Sécurité?

• Langages non contraints: un nombre peut aussi bien représenter un temps de voyage, une vitesse, la gravité, etc

1960’s Antithèse: . Software Is Not Like Hardware

Page 12: Fabrication de logiciel Hier, aujourd’hui, et ……

Erreurs

• Sources d’érreurs

• Apparition d’un « principe »:

“Un programme est un paquet d’erreurs”

“Un petit programme est un petit paquet d’erreurs”

“Un gros programme est un gros paquet d’erreurs”

Page 13: Fabrication de logiciel Hier, aujourd’hui, et ……

1960’s Antithesis

• Matériels non fixés, changements fréquents • La demande excède possibilités des ingénieurs

– Médecine, physique, musique, histoire, arts majeurs– Code-and-fix process – Contre-culture: remise en cause de l’autorité?– “Cowboy programmers” considérés héroiques– Hacker culture (Levy, 1984)

• Propriété collective du code• Libérer logiciel, données, l’accés aux ordinateurs • Programmeurs jugés par “l’élégance” de leur code

Page 14: Fabrication de logiciel Hier, aujourd’hui, et ……

1960’s Progrès

• Meilleure infrastructure: OS, compilateurs, utilitaires…

• Départements informatiques• Familles de Produits : OS-360, CAD/CAM,

bibliothèques math/statistiques • Quelques grands succés: Apollo /ex• Bases de la programmation rigoureuse et

professionnalisation

Page 15: Fabrication de logiciel Hier, aujourd’hui, et ……

1960’S Eclosion des langages

Selon C.A.R. Hoare “Algol a été une grande amélioration de ses successeurs“

Backus,Naur,Hoare, Dijsktra…

Machines

Langages

Outils

Ateliers

Procédés

Page 16: Fabrication de logiciel Hier, aujourd’hui, et ……

Programmation impérative

• Concepts de base des langages • Instruction : quoi faire• Affectation : attribuer une valeur à un nom ( variable)• Itération: recommencer une suite d’instructions

• N fois, • Jusqu’à une certaine condition• Tant qu’une condition est vraie

• Appeler une fonction avec paramètres• TYPE d’une variable: ensemble des valeurs qu’il est permis de lui

affecter

• Programmation structurée• Tout cela contrôlé par le compilateur

Machines

Langages

Outils

Ateliers

Procédés

Page 17: Fabrication de logiciel Hier, aujourd’hui, et ……

1960’s à Nancy

• C Pair arrive en 1960, prof en 61 • compilation, théorie de la compilation, langages ( Algol 68),

programmation déductive….. Avec les bons principes qui apparaissent

• J Legras • Analyse numérique, Algol linguistique, puis informatique de gestion

• en 66 une vingtaine de personnes• On travaille sur une CAE 510: 8 K, 1 lecteur de ruban,1 dérouleur de

bande magnétique ou à Grenoble ou dans des banques• Mon premier “grand programme” Programme PERT sur un graphe de 3000 points (N2logN) ~10 000 000 d’opérations de graphe, “mémoire virtuelle”,

12 heures de calcul

Page 18: Fabrication de logiciel Hier, aujourd’hui, et ……

1960’s Problèmes

• Problèmes: cf 1968, 1969 NATO Reports– Echecs de nombreux grands systems

– Pénétration de la programmation structurée très lente dans les milieux industriels

– Encore beaucoup de “code spaghetti” non maintenable

– Systèmes non fiables, non diagnostiquables

– Compétences techniques des “programmeurs”

Machines

Langages

Outils

Ateliers

Procédés

Page 19: Fabrication de logiciel Hier, aujourd’hui, et ……

1970’s Thèse

• Methodes Structurées – Structured programming (Boehm-Jacopini: GO TO unnecessary)

• Formal programming calculus: Dijkstra, Hoare, Floyd • Analyse descendante Mills, Baker

• Waterfall Methods– “Code and fix“ trop onéreux (100:1 for large systems)….il faut– “Concevoir avant de programmer” (De Marco SD, Jackson

JSD/JSP)– “Spécifier avant de concevoir” (PSL/PSA, SA, SREM)– dire le “quoi” d’abord et le vérifier avant d’aller plus loin

• Algorithmique et structures de données

Page 20: Fabrication de logiciel Hier, aujourd’hui, et ……

1970’s: Problèmes avec le modèle “Cascade”

• Interpretation trop littérale des jalons séquentiels– Ne convient pas aux applications interactives

– Jalons passés mais pas validès

• Documentation énorme, difficile à lire, à maintenir

• Ne convient pas avec COTS, ni la réutilisation– Analyse ascendante vs. descendante

• Passage à l’échelle, durée, obsolescence– 3 000 000 Lignes de code source :72 mois en développement séquentiel

= 4 générations d’ordinateurs……et 318 changements majeurs dans les spécifications

Cots: Commercial of the shelf:

Achat sur les rayons du magasin

Machines

Langages

Outils

Ateliers

Procédés

Page 21: Fabrication de logiciel Hier, aujourd’hui, et ……

Problèmes avec les méthodes formelles

• Excellentes pour petits programmes , critiques • Plus grands programmes prouvés ~ 10 KSLOC• Preuves montrent la présence de défaults, pas l’absence

– Plus efficaces dans les spécifications

• Généralisation à la communauté des développeurs– Techniques demandent expertise en math , $50/SLOC– Profil programmeur moyen aux US en 1975 :

• 2 ans de college, experience en logiciel• Familier avec 2 langages, applications• Désordonné, rigide, “tout dans la tête”, et difficile à gérer

– En France: mieux ( un peu) moins nombreux ( beaucoup)

Page 22: Fabrication de logiciel Hier, aujourd’hui, et ……

1970’s GL à Nancy

• Depuis 67: Plan calcul ordinateurs français: Iris 10, 15, 125, 50, 80

• Contribue à nous laisser à l’écart de la communauté internationale

• Oblige à développer nos propres logiciels: • Programmation récursive (C Pair) • Spécifications algébriques ( JP Finance)• Début des preuves de programmes (P Lescanne)• Civa 1er langage modulaire français et avec atelier en 73 450 000 L• Typ 1er langage français à types abstraits 79 (JCD)

• Peu d’impact international en termes d’utilisation

Page 23: Fabrication de logiciel Hier, aujourd’hui, et ……

1980’s Synthèse: Productivité, Réutilisation, Objets

• Problème mondial de productivité, compétitivité– Japon /ex: Toshiba SW-reuse: autos, électronique

• Meilleurs accélérateurs de productivité de SW – Travailler plus vite : outils et environnements

– Travailler mieux: procédés et méthodes

– Travailler moins : réutilisation, simplicité;

programmation par standards, objets, – “Silver bullets” technologiques: AI, transformations,

DWIM, PBE (Do What I Mean; Programming by Example)

Page 24: Fabrication de logiciel Hier, aujourd’hui, et ……

1980’s Des langages….Babel

• En 1979 4000 langages avec un compilateur !

• Le DOD a des programmes écrits dans plus de 1000…..

• Standardisation!

• Appel international langage généraliste (algorithmique, calcul scientifique, temps réel, gestion)

• comités d’évaluation dans 12 pays, 2 ans évaluation, sélection, amélioration

• Bull Ichbiah, Cousot, Abrial, …

• Obligatoire(US admin ) pendant 10 ans,

• ailleurs très utilisé pour les grands programmes militaires et/ou industriels et enseigné

Langages

Objets

Outils

Ateliers

Procédés

Page 25: Fabrication de logiciel Hier, aujourd’hui, et ……

Dans le même temps d’autres paradigmes

• Programmation et conception par objets• Programmation concurrente• Programmation par agents • Programmation par contraintes • Programmation logique• Langages multiparadigmes

• 2 mots clés: Intégration Interopérabilité

Page 26: Fabrication de logiciel Hier, aujourd’hui, et ……

Programmation Objet

• Objet du monde physique ( ou pas) est représenté par: /ex moteur d’une voiture

– Ses attributs ( valeurs caractéristiques/ex)• Etat, puissance, Nbre de tours /mn, etc…

– Les “messages” auxquels il peut “réagir”• Démarrer, accélérer, ralentir, éteindre, etc..

Encapsulés

Langages

Objets

Outils

Ateliers

Procédés

Données

Sous-programmes

Page 27: Fabrication de logiciel Hier, aujourd’hui, et ……

Héritage…..Meubles

Attributs communs

Taille, prix, volume, matériaux, couleur, etc…..

Méthodes communes

Acheter, vendre, déplacer, casser, renverser ……

Attributs spécifiques: assise, accoudoirs, ….

Méthodes spécifiques: balancer, s’asseoir ….

Page 28: Fabrication de logiciel Hier, aujourd’hui, et ……

Héritage, surcharge

• Si chaise hérite de meuble, tout ce qui a été écrit pour meuble est (ré)utilisable pour une chaise

• Déplacer une chaise s’écrit comme déplacer un meuble: machaise.déplacer même si le traitement est différent “surcharge des méthodes ”

• Les objets sont “typés” : si un nom a été déclaré du type chaise il ne pourra désigner que des chaises, sinon erreur

Langages

Objets

Outils

Ateliers

Procédés

Page 29: Fabrication de logiciel Hier, aujourd’hui, et ……

Réutilisation des objets

• Analyse et conception par objets plus “naturelle”• Développement de bibliothèques d’objets• Bonne approche de réutilisation dans un contexte

donné, un langage donné• Portabilité, réutilisation dans contextes différents

devra encore progresser (OK maintenant)

Langages

Objets

Outils

Ateliers

Procédés

Page 30: Fabrication de logiciel Hier, aujourd’hui, et ……

1980’s Des outils

• Editeurs de textes sources connaissant la grammaire du langage– Incrémental

– Graphique

– Outils de mesure

• Outils de tests• Générateurs d’éditeurs, d’outils de mesure, de jeu

de tests, de compilateurs, etc…

Langages

Objets

Outils

Ateliers

Procédés

Page 31: Fabrication de logiciel Hier, aujourd’hui, et ……

Environnement de programmation

Editeurs

Compilateurs

Ed

de

liens

Debugger

Ode

mesure

Ge

n

de

T

es

ts

Système

Langages

Objets

Outils

Ateliers

Procédés

Page 32: Fabrication de logiciel Hier, aujourd’hui, et ……

• Notion apparue ~1970 beaucoup enrichie depuis• Plus d’outils , couvre tout le cycle de vie du

logiciel• Ex demo env Java Netbeans

Langages

Objets

Outils

Ateliers

Procédés

Page 33: Fabrication de logiciel Hier, aujourd’hui, et ……

/ex Editeurs de conception Langages

Objets

Outils

Ateliers

ProcédésRecevoir Commande

Honorer Commande

Affecter à commande

Vérifier ligne de commande

Autoriser paiement

Annuler Commande

[Échec]

[Succès]

[Stock affecté à toutes les lignes de cde et payement OK]

[En stock]

[Besoin de Recommander]

[Pas en stock]

*Réapprovisionner stock

Réapprovisionner stock

Pour chaque ligne de cde

Page 34: Fabrication de logiciel Hier, aujourd’hui, et ……

Atelier de logiciel

Besoins

Conceptions

Programmation

Vérification

Dis

tri

bu

tio

n

MA

in

te

na

ce

Système

versions assistance sécurité apprentissage

Documentation Configurations Etc….

Langages

Objets

Outils

Ateliers

Procédés

Page 35: Fabrication de logiciel Hier, aujourd’hui, et ……

1980’s à Nancy

• 81 Crin 90 personnes Pair part• 81 VAX 750• 84 Dossier INRIA• Preuves de programmes se développent (P Lescanne)• Programmation par contraintes (JJ Chabrier)• Environnements de spécification (JP Finance)• Objets Eiffel ( B Meyer, D Colnet 86)• Outils éditeurs de texte (incrémental, graphique, générateur..), (JCD) • 85 LTR3 Langage temps réel pour la défense nationale (Sita)

• 86 Ateliers: participation à PCTE (Portable Common Tool Environment)Projet européen de plate forme supportant des ateliers ( coût moyen

d’un atelier qqs 100 Homme-année)

• 88 Alf Prototype européen d’atelier centré sur des modèles de procédés

Page 36: Fabrication de logiciel Hier, aujourd’hui, et ……

Beaucoup de progrés techniques,

recherche et industrie,

mais….

beaucoup d’échecs, de retards,

d’insatisfactions

Page 37: Fabrication de logiciel Hier, aujourd’hui, et ……

Motivation et

Contexte

Vue “20éme siècle”

Vue “21éme siècle”

•Conclusions

Insuffisance, variation, irréalisme

des specifications : 35,9%Pb de support, “d’organisation”

donc de “procédé”:23,5%

Pbs de maîtrise des

Technologie:10,7%

Page 38: Fabrication de logiciel Hier, aujourd’hui, et ……

1990’s Langages

2000: • Java, C≠ , Prolog, Python, VHDL, ML, Ruby,

TCL, Php, W-langages ( win dev) ….. et tous les langages du web

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 39: Fabrication de logiciel Hier, aujourd’hui, et ……

1990’s concepts

• Progrès majeurs dans les procédés et les plates formes

• Inginiérie des domaines,` /ex Businesss Objects• Lignes de produits • UML, • architecture

• Planning vs assistance• Plateformes objets distribués CORBA

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 40: Fabrication de logiciel Hier, aujourd’hui, et ……

Atelier de logiciel

Besoins

Conceptions

Programmation

Vérification

Dis

tri

bu

tio

n

MA

in

te

na

ce

Système

versions assistance sécurité apprentissage

Documentation Configurations Etc….

Cette plate forme devient de

plus en plus

importante

Langages

Objets

Outils

Ateliers

Procédés

Page 41: Fabrication de logiciel Hier, aujourd’hui, et ……

Le modèle en spirale Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

•Interviews

•Prototypes

•Comité de pilotage

• évaluation validation

• modèle en spirale

•Interviews

•Prototypes

•Comité de pilotage

• évaluation validation

• modèle en spirale

Evaluation

des risquesNouvelles

spec

RéalisationEssais

Enoncé

prototypeExpérimentation

Evaluation

des risques

Page 42: Fabrication de logiciel Hier, aujourd’hui, et ……

Procédés: Premières idéesFin des 80’s .

• Ateliers centrés sur des modèles de procédés– “utiliser la connaissance des procédés comme outil d’intégration– Intègre les ressources et les rôles des intervenants

• Support d’exécution des modèles de procédés : “SW processes are SW too” ( L Osterweil)

– Ce qui est bon pour les programmes est bon pour les procédés– Reutilisation, modularité, , architecture, programmation– Créativité? Incertitude?

• Support à la conformité des procédés: – Standards and CMM: Standard national (US) pour évaluer la “maturité“

d’une organisation reposant sur des principes de “bon” développement

Langages

Objets

Outils

Ateliers

Procédés

Page 43: Fabrication de logiciel Hier, aujourd’hui, et ……

ALF

• Langage modulaire, multiparadigme (impératif, pre-post, raisonnement, rôles, contrats)

• offrant assistance aux usagers• Quoi faire?• Comment?• Pourquoi en suis-je arrivé là?• Comment réparer?, et si…?• Travailles pour moi

Page 44: Fabrication de logiciel Hier, aujourd’hui, et ……

1991 Exemple de référence

• En 91, la communauté US “Software process” organise un challenge entre concepteurs de langages de description de procédés à Tokyo chacun devant décrire le même exemple de développment d’un grand programmeexemple

• ALF 2ème : Réaction des européens présents:

Proposition d’un groupe de recherche Promoter

“ouvrir  les procédés à la créativité et l’incertitude des développments”

Financé 7 ans toujours actif

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 45: Fabrication de logiciel Hier, aujourd’hui, et ……

1990’s Antithèse

• “Time to market”• Individus

Emphase sur programmation individuelle et les interactions plutôt que planning et outils

• Logiciel ouvert, (libre, gratuit?)• Personal Software Process• Apparition des méthodes “Agiles”

– petites itérations, pair-programming, etc

• Applications réparties

Page 46: Fabrication de logiciel Hier, aujourd’hui, et ……

PCTE+, PCIS 1

Projet OTAN• Groupe de convergence PCTE avec le projet US• PCIS Portable s-Common Tool Integration Set

• Première version d’une spécification de plateforme multilangage ( Java, C, C++)

multisystème, (Windows, Unix) Sécurisée• 30 personnes, 7 pays, ….. abandonné

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 47: Fabrication de logiciel Hier, aujourd’hui, et ……

PCIS2

• 95 Tim Lindquist( Phoenix) et moi faisons une proposition spontanée US-DOD, France DGA

d’une plateforme basée sur ces idées mais centrée sur un modèle de procédé simplifié et souple et une organisation différente

• 97 cahier des charges : 1500 outils ≠ , en réseau intervenant sur toute les infos disponibles

• Traçabilité, évolutivité, ouvert, Corba, Java, C++

• 2ans pour les spécifications…..réussi EN 1999 car – définition par un groupe de 10 personnes (Cf Boehm 1955)– 2 U, Sema ( 5 ), Ocean Surveillance Center San Diego (3)– Réalisé par une vingtaine de très bons 22M $

• F abandonne en 2000• US: Surveillance radar de la côte ouest des US et du pacifique

Langages

Concepts

Architectures

Platefrmes

Procédés

Antithèse

Page 48: Fabrication de logiciel Hier, aujourd’hui, et ……

Corba, .net,dCom, J2E Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 49: Fabrication de logiciel Hier, aujourd’hui, et ……

Corba : Objets distribués

• Réutilisation ===O==> Partage d’objets implantés ailleurs• Changement d’échelle: mise à disposition d’objets informatiques au

niveau de la planète• Infrastructure “mondiale” + qqs bémols• Migration importante de concepts Intégration ==o==>interopérabilité =o=> location de logiciel

Supporte les 3

Utilisable / informaticiens• Architecture complétée par la notion de “composant” pour faciliter la

réutilisation

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 50: Fabrication de logiciel Hier, aujourd’hui, et ……

Composants

Un composant logiciel est un élément conforme à un modèle de composant qui peut être déployé et composé indépendemment, sans modification, selon un standard de composition ●Council et Heinmann

Szyperski ajoute Il est décrit uniquement par des interfaces définies

contractuellement et par ses dépendances du contexte

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 51: Fabrication de logiciel Hier, aujourd’hui, et ……

1990’s Composants

Morceau de programme

Services de la . plateforme

Décrit pour

Humains et

Plateforme

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 52: Fabrication de logiciel Hier, aujourd’hui, et ……

Composants ( suite)

• Standardisé • + atelier de fabrication, assemblage, déploiement

de composants• + standard de description XML• outils d’intégration vérifiant que tout ce qui est

nécessaire est là, sinon téléchargé• Véritable réutilisation

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 53: Fabrication de logiciel Hier, aujourd’hui, et ……

Patrons

• Modèles de (module, procédure, composant, ou assemblage de …. ) incomplet

• Correspondant à des situations fréquentes

• À compléter en fonction du contexte

Langages

Concepts

Architectures

Plateformes

Procédés

Antithèse

Page 54: Fabrication de logiciel Hier, aujourd’hui, et ……

2000’s début: Opposition Modèles de maturité et Méthodes Agile .

• Prédictabilité et Controle: Modèles de maturité

– Repose sur connaissance explicite et documentée

– Lourd mais vérifiable, “scalable”

• Time to Market et Changements rapides: “Agile”– Repose sur connaissance tacite interpersonelle

– léger, adaptable, non “ scalable”

Page 55: Fabrication de logiciel Hier, aujourd’hui, et ……

2000s Déploiement

• Bug de l’an 2000 =o=> “reverse engineering”• Pilotage par les risques: le modèle en spirale se

généralise (B Boehm 1983) Procédés : standard RUP

• Importance de l’architecture

• COTS, open source

• Logiciel devient le premier discriminant compétitif– 80% des fonctionnalités des avions

Page 56: Fabrication de logiciel Hier, aujourd’hui, et ……

1990-2000’s à Nancy

• Loria 500 personnes • Programmation coopérative• Entreprise globale• Logiciel sûr• Preuves de programmes • Programmation logique• Nancy-U Espaces numériques de travail: ~30 000 000 lignes sources de logiciels mis à dispositions

(portail, services, bases de données, …)

Page 57: Fabrication de logiciel Hier, aujourd’hui, et ……

E N T

Page 58: Fabrication de logiciel Hier, aujourd’hui, et ……

Une vue hegelienne de l’évolution

Autonomy ; Bio-Computing

1990's 2010's2000's1970's 1980's1960's1950's

Engineer Software

like Hardware

Risk-Based Agile /Plan

-Driven Hybrids ;

Model-Driven Development

Value -Based Methods ;

Collaboration ; Global

Development ; Enterprise

Architectures

Software Differences ,

Engineer Shortages

Scalability ,Risk Mgmt .

Many defects

Compliance

Time to Market ,Rapid Change

Software Value-Add

COTS

Process Overhead

Scalability

SoftSysE

Software as Craft

Formality , Waterfall

Productivity ; Reuse ;

Objects ;Peopleware

Agile Methods

Plan -Driven

Software Maturity Models

Integrated Sw-Systems Engineering

GlobalSystems

ofSystems

Theses

Syntheses

Antitheses

Prototyping

Risk Mgmt .Domain Engr .

Page 59: Fabrication de logiciel Hier, aujourd’hui, et ……

Le marché en 2008

Achat global de produits IT et de services ( ~ revenus des vendeurs) égal à $1 700 milliards 2008, croissant de 6% après un 12% en 2007. Global IT 2008 Market Outlook Forrester Feb 2008 Les augmentations les plus importantes Brésil, Inde, Chine, Russie

Page 60: Fabrication de logiciel Hier, aujourd’hui, et ……

Perspectives

Page 61: Fabrication de logiciel Hier, aujourd’hui, et ……

Tendances

• Ecrit une fois utilisable partout• Focus sur ce qui a du prix pour l’utilisateur• Logiciel embarqué• Changements rapides• Distribution, mobilité, interopérabilité, location• Systèmes complexes de systèmes: globalisation, entreprise globale

• COTS, logiciel libre, intégration de l’héritage• Logiciels autonomes ( autotests, réparation, etc)• Bio-informatique

Page 62: Fabrication de logiciel Hier, aujourd’hui, et ……

“ On demand ” IBM: location temporaire de services, de composants, de machines, d’experts…

Nouveaux paradigmes: agents actifs par ex Conception par modèles, gestion de connaissances,

• Composants deviennent “Web services”• “Web intelligent”• Plus hauts niveaux d’abstraction• Migration du Reductionisme vers Postmodernisme

Page 63: Fabrication de logiciel Hier, aujourd’hui, et ……

Métaphores

Nouvelles métaphores:

/ ex Phéronome pour

Auto-test permanent

Audit!

Page 64: Fabrication de logiciel Hier, aujourd’hui, et ……

“Principes intemporels”

50’s : Ne pas négliger les sciences

“regarder avant de plonger” : éviter les accords prématurés sur les objectifs

60’s Ne pas négliger les sciences : éviter “cow boy programming”

70’s Eliminer les erreurs le plus tôt possible Determiner et valider les objectifs du système 80’s Il y a plusieurs façons d’améliorer la productivité Concevoir et réaliser par morceaux; expliciter toutes leurs

relations ± Ce qui est bon pour les programmes est bon pour les

procédés Prudence avec les “silver bullets”

Page 65: Fabrication de logiciel Hier, aujourd’hui, et ……

90’s “Time is money“ e t représente une valeur pour les “clients” Rendre les logiciels utiles, utilisables et RÉUTILISABLES2000’s Si le changement est rapide: prévoir l’adaptibilité dès la

conception, Considérer et satisfaire TOUS les acteurs du logiciel développé.

- Le génie logiciel n’est plus seulement la programmation!!!!• Pour les 2010’s

Consolider ce que vous savez faireRester à l’écoute des évolutions en permanence

Ne pas croire tout ce qui est écrit- “C’est vrai puisque je l’ai lu sur Internet”

Page 66: Fabrication de logiciel Hier, aujourd’hui, et ……

Formation: carrière de nos élèves…..2050…

• Cours continuellement à jour

• Anticiper les tendances futures et y preparer les étudiants

• Séparer principes intemporels des pratiques passagères

• Proposer des (petits) projets relevant des pratiques des grands projets

• Participer à la recherche ; incorporer les résultats

• Apprendre à apprendre

• Formation permanente des praticiens

Page 67: Fabrication de logiciel Hier, aujourd’hui, et ……

Exemple de projet

Etudier l’impact du remplacement de bus par des trams dans Etudier l’impact du remplacement de bus par des trams dans une villeune ville

Mise en place réseau local d’ordinateurs en auto-gestion Mise en place réseau local d’ordinateurs en auto-gestion Utilisation d’un outil de travail collaboratif (PFE)Utilisation d’un outil de travail collaboratif (PFE) Atelier de modélisation (tauG2, UPPAAL, Spin)Atelier de modélisation (tauG2, UPPAAL, Spin) Atelier de simulation discrète (javaSimulation)Atelier de simulation discrète (javaSimulation) Atelier de développement professionnel (JavaNetbeans, Atelier de développement professionnel (JavaNetbeans,

javadoc, dreamweaver)javadoc, dreamweaver) Outil de procédé (RUP)Outil de procédé (RUP) Travail en groupe ( 12) tous logiciels ouverts gratuitsTravail en groupe ( 12) tous logiciels ouverts gratuits

Page 68: Fabrication de logiciel Hier, aujourd’hui, et ……
Page 69: Fabrication de logiciel Hier, aujourd’hui, et ……

MERCI

des questions?