Beruflich Dokumente
Kultur Dokumente
Hier, aujourd’hui, et ……
– Des machines
– Des concepts et des langages
– Des outils variés
– Des ateliers
– Des méthodes et …… Des humains!
• 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
1960’s Antithèse: .
Software Is Not Like Hardware
• 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
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”
1960’s Antithesis
Selon C.A.R.
Hoare “Algol a été
une grande
amélioration de
ses successeurs“
Backus,Naur,Hoare, Dijsktra…
Programmation impérative
• 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
1970’s: Problèmes avec le modèle
“Cascade”
Données
Encapsulés
Sous-
programmes
Héritage…..Meubles
Attributs communs
Taille, prix, volume, matériaux, couleur, etc…..
Méthodes communes
Acheter, vendre, déplacer, casser, renverser ……
Méthodes spécifiques: balancer, s’asseoir ….
Héritage, surcharge
E D
C d e
o b O
m d u G
p g d e
i e g e
E l m
n
d e e
i a li r s d
t t e u e
e r
e u n e
u r s T
r s s
e
s t
s
Système
• Notion apparue ~1970 beaucoup enrichie depuis
• Plus d’outils , couvre tout le cycle de vie du
logiciel
• Ex demo env Java Netbeans
/ex Editeurs de conception
Recevoir
Commande
[En stock]
[Succès]
Affecter à
commande
[Besoin de Recommander]
[Stock affecté à toutes les lignes de cde
et payement OK] Réapprovisionner
stock
Honorer
Commande
Atelier de logiciel
P V
C r é
o o r
n g i D
c r is M
f tr A
B e a i i i
e p m c b n
s t m a u t
i a ti e
o o ti n
i ti o o a
n o n n c
n s n e
s
Système
1980’s à Nancy
2000:
• Java, C≠ , Prolog, Python, VHDL, ML, Ruby,
TCL, Php, W-langages ( win dev) ….. et tous les
langages du web
1990’s concepts
Evaluation
•Interviews
•Interviews Nouvelles
des risques
•Prototypes
•Prototypes Evaluation Enoncé spec
•Comitéde
•Comité depilotage
pilotage des risques
••évaluation
évaluation
validation
validation
Expérimentation
••modèle
modèleen
enspirale
spirale prototype
Essais
Réalisation
Procédés: Premières idées
Fin des 80’s .
• “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
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é
PCIS2
Szyperski ajoute
Il est décrit uniquement par des interfaces définies
contractuellement et par ses dépendances du
contexte
1990’s Composants
Morceau de
programme
Décrit pour
Humains et
Services de la Plateforme
. plateforme
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
Patrons
P la n- S of tware
E ngineer
Theses Complianc e Driven Va lue-A dd Int egrated
Sof tware Form ality ,
Soft ware Sw- Sys tems
like Many defect s Wa terfall
Maturit y CO TS E ngineering
Hardware
Models
S of t
S ysE
Process Ov erhead
V alue- Based
Risk- Based
P roduc tiv ity; Methods;
Agile/P la n
R euse; Risk Mgmt. Colla borat ion;
Syntheses Objects ;
-Driven
Global
S calabilit y, D om ain E ngr. Hy brids;
Pe oplewa re Deve lopme nt ;
R isk Mgmt. Model-Driv en
Enterprise
De velopm ent
A rc hite ctures
S calability
Protot yping G lobal
S yste ms
S oftware of
Diffe re nces, S yste ms
E ngineer S oftwa re
A gile
Antitheses S hort ages a s C ra ft
Me thods
Tim e to Mark et ,
Ra pid Change
1950 's 1960 's 1970 's 1980 's 1990's 2000 's 2010's
Le marché en 2008
Nouvelles métaphores:
/ ex Phéronome pour
Auto-test permanent
Audit!
“Principes intemporels”
des questions?