Press "Enter" to skip to content

GOTO 2015 • Progress Toward an Engineering Discipline of Software • Mary Shaw


grazie a tutti sembra che io sia vivo
e grazie spendere per quello
introduzione meravigliosa quindi è la mia
piacere stare qui e parlare
a voi su ingegneria e software
ingegneria, vorrei poterti vedere
le luci e capisco che lo sono
tra te e la ricezione finale così
facciamo facciamo progressi che ho intenzione di
parlare della misura in cui abbiamo
venuto dal 1968 e effettivamente raggiunto il
aspirazione che abbiamo dichiarato lì e a
in che misura stiamo davvero comportandoci
una disciplina ingegneristica e sorta di
dando via la risposta a ciò che dovremmo
fai per avvicinarti ciao
okay, lo farei se potessi avanzare
Ho quello che aspetteremo il prossimo
uno così là ci sono tre parti a
il discorso uno è ciò che significa
avere una disciplina ingegneristica per
il software è quanto siamo lontani
progredito verso quell’obiettivo il terzo è
Quali sono i prossimi passi
e lo farò iniziando
con esempi di ingegneria civile e
passando poi agli esempi dal software
architettura ora ho avuto la possibilità alcuni
anni fa per leggere la storia dell’ingegneria
per sei mesi o giù di lì e fuori di quella
leggendo ho raccolto il
definizioni di ingegneria che ho trovato
nelle storie dell’ingegneria il
definizioni di ingegneria e ho messo
tutti loro in una pila e si tirarono indietro e
socchiusi e sembrano tutti più o meno
come questo ingegneria è sulla creazione
soluzioni convenienti per il pratico
problemi applicando scientifico
conoscenza che costruisce cose nel servizio
dell’umanità e
puoi guardare le discipline ingegneristiche
e guardi il software e puoi dire
anche prima che iniziasse c’era
un sistema davvero fantastico, costruito sì
ci sono sempre stati davvero veramente
grandi sistemi costruiti da virtuosi il
punto di ingegneria è quello di farlo
possibile per il resto di noi da raggiungere
il genere di cose che prima richiedevano
virtuosi ma c’è una cosa divertente
su questa definizione e questo è il
modo in cui si concentra sull’applicazione scientifica
conoscenza ingegneri infatti non si basano
esclusivamente su completamente organizzato completamente
dimostrata conoscenza scientifica noi
non ne ho abbastanza di questo se ci sono
non è una scienza solida per supportare un
ingegneria disciplina gli ingegneri
non alzare le mani in aria
dicono bene cos’altro sappiamo
dobbiamo evidenza empirica dobbiamo
una storia con cui abbiamo esperienza
questo genere di cose abbiamo un sacco di
esperienza con un sacco di cose che
darci la possibilità di rendere informato
giudizi di ingegneria e quindi penso che il
la definizione dovrebbe essere letta
applicando sistematicamente codificato
conoscenza il meglio che possiamo ottenere al
momento della costruzione della conoscenza codificata
cose al servizio dell’umanità, quindi cosa?
sono le caratteristiche dell’ingegneria
bene uno è che sei costretto a costruire
quelle cose pratiche sotto vincoli
di tempo e conoscenza limitati e
risorse e questo ti costringe a fare
le decisioni riguardano i trade-off o a
meno che dovrebbe costringerti a fare
decisioni esplicite sui trade-off che tu
hanno anche la possibilità di vagare in
i trade-off che di solito arrivano a
cattivo fine Gli ingegneri applicano il meglio
conoscenza codificata che hanno a disposizione
preferibilmente scienza ma se non lo sono
ha ottenuto la scienza di quello che ci aspetta ora
usalo per dare forma a queste decisioni progettuali
usano materiali di riferimento per documentare
quella conoscenza codificata e fare il
esperienza precedente disponibile e che usano
quella conoscenza scientifica o codificata così
quando fanno un disegno così come sono
facendo il disegno che possono prevedere
le proprietà del sistema finale
sarà e che il potere predittivo della
conoscenza per aiutare a modellare il design
le decisioni sono una delle chiavi
caratteristiche
ora le discipline ingegneristiche evolvono in modo gentile
di come questo si inizia con un po ‘
tecnologia che la tua pratica è artigianale
le persone lo stanno facendo a casa loro
facendolo nel loro tempo libero lì
non sono professionisti dedicati pensano
sui partiti della comunità per costruire una casa
c’è una specie di ricetta che tutti voi
segui ti incontri insieme a costruire il
casa e poi torni a qualunque cosa
altro è che stavi facendo e quello
funziona bene su base locale su un piccolo
scala ma alcune tecnologie molte
le tecnologie alla fine diventano
sufficientemente significativo che vuoi
per essere più bravi a produrli tu puoi
avere per ottenere materiali da lontano e
pagarli in anticipo e portarli
insieme e assumere persone per effettivamente
fai l’edificio prima che tu possa venderli
per ottenere i soldi per ripagarti
comprare i materiali e su tutto il
Cerchiamo così di aver bisogno di una gestione
nelle capacità di produzione e di processo e
questo è il modo di organizzare le persone per ottenere
il lavoro svolto che ti permette quindi di
ottenere una pratica commerciale o a
pratica sistematica che ti permette
affittalo come un business ora come quello
succede che inizi a inciampare sui difetti
nella tua conoscenza della tecnologia
che a sua volta genera domande che
si può rispondere dalla scienza se si va e
guarda la storia della chimica il
la scienza della chimica è davvero iniziata
cercando di spiegare i fenomeni chimici
dalla produzione di materiali
la scienza quindi inizia a restituire risposte a
al commercio il commercio genera di più
domande ci sono cross talk e
avanti e poi quando si ottiene il codice
conoscenza al punto che puoi usare
sistematicamente per migliorare il tuo
pratica allora allora sei davvero nel
attività di ingegneria professionale
questo è il punto in cui puoi
fare previsioni sicure su dove
i tuoi sistemi funzioneranno in base al tuo
progetta così
L’ingegneria si è evoluta da mestiere e
il commercio richiede sistematicamente
conoscenza codificata preferibilmente scientifica
la conoscenza e lo sfruttamento richiede
sia gestionale che sistematico
conoscenza ha bisogno di entrambi i pezzi e il
la stessa scienza spesso si evolve dal
codificazione progressiva della pratica così
passiamo all’ingegneria civile e io
voglio guardare in particolare i ponti e
archi è facile immaginare come le persone
di fronte a un compito di attraversare un flusso
o un fiume sembrerebbe naturale
fenomeni e da ciò escogitare
questo caso un ponte ad arco e una trave
ponte alla fine i fiumi sono troppo grandi
il costo di costruzione è troppo alto e
dal primo secolo erano i Romani
tenendo un impero insieme alle strade
e ponti quindi quello che fecero i romani
sono stati costruiti e ogni tanto
qualcosa sarebbe caduto in basso avrebbero fatto
ripara la cosa che è caduta e se
torni indietro e guardi il
la costruzione cronologicamente si può vedere
che le riparazioni sono state incorporate in
il design della prossima campata della della
sono il ponte o l’acquedotto o
qualunque cosa stessero facendo progressi
ma lo stavano facendo per tentativi e
errore per guasto e riparazione e da
incorporazione della riparazione nel prossimo
lo stadio non sembra esserci
ragione per credere che ci fosse un
applicazione deliberata della matematica a
determinare le dimensioni o le forme delle cose
quindi non avevano molta teoria ma loro
aveva metodi di costruzione che persistevano
fino al diciannovesimo secolo, così fecero belli
bene per tentativi ed errori il meglio
la conoscenza organizzata è un libro chiamato il
sette libri di architettura di Vitruvio
è stato scritto circa 25 aC ed è un
manuale di pratica ti dice come
costruire un muro che ha rivestimenti in pietra e
macerie nel mezzo ti dice come
accordare un anfiteatro mettendo il bronzo
pentole nei posti giusti che dice
come impaginare le strade del tuo
villaggio così il male il mio asma del
la palude locale non rende tutti i nativi
malato
tutti i tipi di informazioni utili come
va bene spostandosi sulla storia della storia
di ponti è facile da catturare in a
i ponti a diagramma si allungavano sempre più
si estende con sempre meno ascesa nel
arco come il tempo passa e si può effettivamente
calcolare alcuni dei rapporti e quello
risulta essere una misura del
progresso nei ponti ad arco di pietra come esso
succede così questo ci porta dal 14 c ii
fino al XVIII secolo e poi le persone
ha iniziato ad avere un po ‘di più
sistematico quindi Alberti ha detto che ho costruito un
molti ponti ed ecco la mia regola di
pollice sulla costruzione di ponti lasciatemi aiutare
si analizza questa immagine questa è una
vista laterale del ponte che è il
fondo del fiume
quella è l’acqua nel fiume che è il
ponte di coperta e le linee sono etichettate
con rapporti che dicono la larghezza di
il molo è l’ altezza dell’arco
quattro e altri rapporti intelligenti come quello
quindi questo non è lo spazio scientifico questo è
esperienza basata stava scrivendo giù
questo è quello che ha funzionato per me come
il tempo passava nuovi materiali è arrivato così
Era il primo uso del ferro in un ponte
ponte di ferro a Coalbrookdale in Inghilterra
nel 1779 questa è un’immagine più recente
che abbiamo preso qualche anno fa quando noi
erano lì il ponte è ancora in piedi
è ancora aperto il suo traffico pedonale
solo ora non vuoi correre pesantemente
camion su di esso ma se si guarda il
il design del ponte lo puoi vedere
il design evoca un arco in pietra
ponte quindi è uno dei fenomeni comuni
che quando porti un nuovo materiale tu
prendere i vecchi disegni e vedere come loro
lavorare con loro un nuovo materiale e poi
inizi a perfezionare i progetti
sfruttare il materiale come capisci
è meglio
così sono stati costruiti ponti in ghisa per a
mentre
e alla fine loro rimasero a lungo
il loro benvenuto nel 1847 fu a
particolare di una serie di ponti
crolla lo scenario generale era a
treno sarebbe andato oltre il ponte
il ponte cadrebbe da sotto il
addestrare una catastrofe sarebbe successo in questo
caso è stato il tipo di catastrofe che
ha attirato l’ attenzione della regina chiamata a
Commissione la Commissione ha fatto uno studio
la Commissione ha segnalato il
studiare e quello che hanno scoperto è quello
Camp Styron in realtà non è davvero
ottimo materiale da costruire ponti
fuori perché non funziona
tensione funziona solo in compressione e
così hanno iniziato ad aggiungere pezzi di ferro acqua
e alla fine costruendo ponti fuori
in acciaio anziché in ghisa
da quel momento abbiamo avuto un business di
ponti di una pratica commerciale di ponti
abbiamo visto intervalli sempre più lunghi che abbiamo visto
regole del pollice su proporzioni e
lungo la strada c’erano spiegazioni di
strutture Brunelleschi ha fatto alcune cose
su archi e cupole Galileo ne fece un po ‘
studi su travi e ghisa quindi
ferro battuto poi acciaio e infine
il cemento armato è stato introdotto come
metodi alternativi ma non l’hanno fatto
ho davvero una teoria fino alla fine del 17 °
o all’inizio del XVIII secolo ce n’erano due
problemi di base associati a questo compito
uno è la composizione di forze che cosa
succede se spingi entrambi qui e qui
e la risposta è che la forza va
modo e l’ altro probabilmente si stava piegando
se infili un raggio nel muro e e
spingere verso il basso ciò che accade al
forze all’interno del raggio le due teorie
questo risolve quei problemi della teoria
di statica e la teoria della forza di
materiali che datano proprio intorno al
fine del XVIII secolo che
incidentalmente è su quando siamo arrivati
calcolo così facendo si scopre
il problema più difficile è stato capire
come erano i concetti di base
cos’è la forza e avevano bisogno di qualcosa di nuovo
la matematica per aiutare così così, dopo tutto
quei secoli di costruire ponti noi
ho una teoria
il ponte brittania della metà del XIX
secolo fu il primo ponte che fu
in realtà ha completamente analizzato lo stress
l’analisi di questo ponte non era precedente
l’hanno costruito come ingegnere
conservatore progettato il ponte con
moli in modo da poter aggiungere cavi di sospensione
se si è scoperto che l’analisi era
sbagliato e l’immagine a destra è a
sezione trasversale questo era un ponte che il
Train guidò attraverso il raggio del
all’inizio del 20 ° secolo abbiamo avuto presto
i manuali questo è dalla prima edizione
del manuale di ferro e acciaio e let
mi ingrandisco in modo da poterlo vedere un po ‘
un po ‘meglio ci sono sulla croce sinistra
sezioni di travi e poi le colonne
dirvi varie proprietà del fascio
in modo che tu possa andare a guardare nel tuo raggio
catalogo e ottenere alcune travi e analizzare
cosa farà il tuo bridge da quest’ultimo
parte metà ultima parte del 20
secolo avevamo libri di testo sul ponte
Stoker struttura la cosa che penso sia
interessante su questo è quello
ti mostra una selezione di ponti ad arco
tipi e poi a destra c’è a
c’è un grafico che dice su quello
lato il coefficiente di instabilità e su
dall’altra parte un particolare rapporto su
il circa l’arco che stai cercando
e così questo riassume un enorme
quantità di conoscenza sui ponti
arch bridge in particolare e ti lascia
guarda in questo grafico e scopri cosa
è probabile che il tuo design produca così
1700 abbiamo buone teorie intorno al 1750
c’erano tabulazioni delle proprietà
di materiali intorno al 1850 abbiamo ottenuto un formale
analisi di una struttura a ponte
e questa macchina ha fatto una cosa divertente
al mio font intorno al 1900 abbiamo lavorato
analisi strutturale intorno al 1950 ci fu
qualche teoria sistematica come quella
Ti ho appena mostrato e entro il 20 al turno
del 21 ° secolo abbiamo avuto il design
automazione e quindi il design del ponte è ora
fino al punto che nello stato in
che vivo
il Dipartimento dei trasporti ora
richiede l’uso del suo software per
progettazione automatizzata di ponti semplici che
significa che non puoi essere creativo
il design di un ponte a campata unica
più vai al loro software tu
girare la manovella che gestisce in acciaio cemento
e ponti attuali e concreti con
campate ovunque da 18 a 200 piedi
e c’è un c’è una suite di software
prendi alcune decisioni riguardo a
ponte di pilastri nel ponte di coperta
e poi produce disegni di design
così che è dove abbiamo avuto modo di con civile
ingegneria e possiamo metterne un po ‘
punti di tempo su questo grafico circa il 1700
la scienza ci ha dato statici e il
forza dei materiali idraulica o
il flusso del fluido è anche parte del civile
ingegneria come sai l’ analisi statica
è più facile dell’analisi dinamica
risulta essere vero nei materiali come
bene com’è nel codice e quindi era dentro
75 anni prima avevamo una teoria per
acqua turbolenta il passaggio al commercio
era i Romani nel primo secolo e
allora puoi datare l’emergenza di
ingegneria professionale da
forse 1750 con le proprietà di
materiali o 1852 un’analisi completa del
Scegli un appuntamento lì dentro okay
non aver paura delle linee del tempo
la comunicazione funziona molto più velocemente ora
pensa alla storia delle idee come come
le idee si sono evolute attraverso la prova e
errore e quindi attraverso la simulazione di
la scienza quindi ora passiamo al software
ingegneria prendendo ingegneria del software
come ingegneria immagino il primo
la domanda è questa è una cosa ragionevole
per noi aspirare a così se torniamo a
la definizione di definizione di ingegneria
se l’ ho appena aggiustato un pochino noi
avremmo il ramo di
l’informatica che crea
soluzioni convenienti attraverso
calcolo pratico per
problemi applicando la conoscenza codificata
nello sviluppo di sistemi software nel
il servizio dell’umanità mi sembra che sia un
aspirazione abbastanza ragionevole per noi così
andiamo con quello, ma c’è un paio
di avvertenze si è attenti al
modo di mappare il software all’ingegneria e
il modo in cui lo fai comparare ad altri
discipline ingegneristiche perché software
è il design intensivo della produzione
i costi del software sono molto piccoli
per premere CD e avvolgere gli involucri
li in scatole e ora è il suo ambiente
scarica la confezione di installazione e
lasciando che le persone lo succhiassero sulla rete
le persone a volte commettono l’errore
mappatura della programmazione ai rivetti di guida
e questo ti porta giù tutti i tipi di
percorsi sfortunati alla programmazione
l’attività è la raffinatezza del design
la produzione del software è a
costo molto piccolo, quindi questo è un avvertimento
di portare queste analogie sul
il secondo è che quel software è di meno
il software tangibile è un software simbolico
è astratto e il software è limitato
molto più dalla complessità intellettuale
che è dalle leggi fisiche fondamentali
Voglio dire sì siamo costretti da
leggi fisiche che abbiamo abbiamo a
problema di computabilità abbiamo i limiti
di ridimensionamento e questi ci limitano in vari
modi ma i limiti i problemi
le difficoltà che vengono prima sono le
difficoltà di complessità intellettuale
non le difficoltà dei punti di forza di
i nostri materiali quindi state attenti a quelli
due cose come noi mentre portiamo l’analogia
sopra abbiamo già parlato del 1968 il
Conferenza della NATO c’è un libro qui e
che i libri disponibili online vanno semplicemente
cercalo Randall ce l’ha fatta
scansionato e messo sul web per
tutti a leggere il software dell’etichetta
l’ingegneria è stata scelta come un grido di battaglia
era in esso era stato usato
deliberatamente essere provocatorio da chiamare
attenzione alla corrente allora
problemi nella produzione di software e così via
si può pensare della versione 1968
l’ingegneria del software come aspirazione
e i nostri sforzi da allora per trasformarlo
in una descrizione e incidentalmente da
alcuni riportano che la frase era in realtà
usato da Margaret Hamilton in connessione
con alcuni software della NASA pochi anni
prima di questo, ma ho avuto modo di dire che
che questa è la 68a conferenza è cosa
fatto bastone così ecco alcuni alcuni
frammenti di questo rapporto del 1968
abbiamo problemi con il monolitico
sviluppo che unisce lo sviluppo della ricerca
e produzione e non ottenere tutti quelli
cose separate l’una dall’altra
il software va bene in molte aree ma noi
avere problemi con le applicazioni critiche
c’è un divario crescente tra i nostri
ambizioni e i nostri risultati
è troppo rischioso il software è in ritardo
sopravvalutazione non si incontra
specificazioni
c’è troppa rivoluzione e
non abbastanza evoluzione e prometto questi
venuto dal rapporto del 1968 non da
qualcosa scritto ieri e solo a
darti un senso di contesto per questo
ecco uno dei diagrammi che dice
ecco uno schema per il totale
costruzione del sistema software di programmazione
processo e la denuncia è che il
concetti tradizionali di programmazione del
i concetti tradizionali del 1968 ricordano
i concetti tradizionali coprono questo
fase che è l’ implementazione ma in
i programmatori di pratica eseguono le funzioni sopra
la durata che è un problema di riconoscimento
attraverso l’obsolescenza e le etichette
probabilmente non sono visibili sul retro ma
sono abbastanza ovvi, ecco dove
eravamo nel 1968, poi quello che è successo bene
ora parliamo di produzione su
c’è stata la gestione del software
molta attività nel software
comunità sui metodi del software
sviluppo questi sono questi portano ordine
e prevedibilità a progetti che
imporre la struttura all’organizzazione
forniscono una guida per il progetto
gestione
fornire un’interfaccia con la gestione
del business in cui si trova il software
in fase di sviluppo e dal 1970 fino alla profondità
negli anni ’90 abbiamo visto una quantità enorme
di attenzione a volte quasi al
esclusione dell’attenzione alla tecnologia
sulle tecniche di produzione così abbiamo avuto
programmazione strutturata Modelli a cascata
e così via in modo estremo e agile
processi a cui sono importanti cose
ho e e credo che sia la loro casa
qui sull’arco di produzione e da
mettendolo lì che mi dà spazio
metti la tecnologia sulla scienza e
l’ arco di ingegneria così in che modo ha il
pratica commerciale sai una volta che abbiamo ottenuto
i metodi di sviluppo del software in
posto che potremmo iniziare a sfornare
software ma poi sorgono problemi
ha innescato la scienza quindi abbiamo ottenuto sicurezza
l’analisi di grandi sistemi ci ha portato a pensare
su architetture problemi di concorrenza
ci ha portato a logiche e linguaggi paralleli
e metodi di prova per dinamici
sistemi ci hanno guidato spazi molto ampi
a una forma di verifica che chiamiamo
modello che controlla più versioni hanno
portato alla comprensione sistemica del programma
famiglie ed erano uno dei
stimoli per ereditarietà nel
mondo orientato agli oggetti
enormi set di dati ci hanno fatto riflettere più duramente
sulla scalabilità che hanno attivato
MapReduce e sistemi adattivi richiesti
Penso che un po ‘di comprensione del feedback
ma il modello dominante per adattivo
i sistemi in questi giorni sono il modello di make
è uscito da IBM, quindi abbiamo avuto questo
diafonia in cui lo spot
la pratica ha generato problemi per il
scienziati che hanno risposto che abbiamo
conoscenza codificata che era già
ci piacciono le strutture dati e
algoritmi che tutti imparano come
i sophomores fanno parte della conoscenza
base dell’ingegneria del software ragazzi noi
avere linguaggi di programmazione abbiamo il
semantica dei linguaggi di programmazione che
avere lingue intese per particolari
tipi di applicazioni rilasciate che abbiamo
lingue che molti di noi credono
sono più e meno adatti a diversi
tipi di applicazioni se hai se tu
hai appeso la tua reputazione su a
linguaggio particolare allora probabilmente
credo che risolva tutti i problemi in
il mondo ma probabilmente non lo abbiamo
modello di verifica che controlla gli oggetti
tutta una lunga litania di cose che noi
hanno davvero a nostra disposizione come
conoscenza che possiamo applicare al nostro
problemi ora questo grafico ne traccia alcuni
tecnologie particolari dai primi anni
ricerca nella pratica e di nuovo lo farò
ingrandire in modo che ci sia qualche speranza che
puoi vederlo non particolarmente
importa quali tecnologie sono loro
capita di essere una comunicazione portatile raid
e riconoscimento vocale del World Wide Web
e la banda larga è solo perché quello
capita di essere il pezzo adiacente che io
potrebbe ingrandire , ma vedrai che il
la cosa veramente interessante qui è la
scorrere le linee rosse sono Università
La ricerca sulle linee blu è Industria R & D
le linee tratteggiate nere sono prodotti e
le linee verdi sono miliardi di dollari
mercati in modo da poter vedere che c’è un
periodo di tempo durante il quale idee
sviluppare e c’è una certa quantità di
diafonia e alimentazione tra il
le diverse tecnologie quindi per
ingegneria del software in generale I per me
personalmente, il modo in cui misuro i progressi è
sulla crescente dimensione dei pezzi
che non guardi dentro così intorno
1960 una macro era una cosa che una macro era una
astrazione degli anni ’70 eravamo
parlando di informazioni che si nascondono molto
primi oggetti tra la metà degli anni ’70 e gli anni ’80
abbiamo iniziato a pensare che il pensiero sia di più
più sistematicamente sul software
sistemi come raccolte di componenti
che doveva interagire tra loro
dal punto di vista della ricerca che
effettivamente iniziato nel 1976 con un documento
chiamato programmazione e il grande contro
programmazione nel piccolo e viene spostato
da allora
architettura del software metterò un po ‘
dopo il 1990 e poi proseguiamo
ai servizi web e e
cose che sono veramente composte da
componenti molto grandi quindi puoi vedere
quello che abbiamo fatto un enorme
quantità di progresso in virtù di
aumentando la dimensione dei blocchi che
con cui lavoriamo e mi dà fastidio no
fine che parliamo ancora di righe di
codice perché misurare le linee di codice è
davvero contando quanto velocemente la gente digita e
che in realtà non è molto più veloce
negli anni in cui parli di linee
di codice ci manca il ritmo perché
i ragazzi dell’hardware parlano di transistor
hai ragione quando hai visto l’ultima volta
transistor il piccolo cappello a cilindro con il
tre gambe giuste ma tu parli ancora
sul numero di transistor equivalenti
nell’hardware quando parli di Moore
Legge così così hanno scelto qualcosa e
stanno contando la stessa cosa quando noi
parliamo di produttività scegliamo quanto velocemente
è possibile digitare, non quanto si capacità
in grado di generare per ora, quindi penso che siamo
manca la barca su quello che stiamo facendo
noi stessi un cattivo servizio, comunque, guardo tutto
il tempo per una buona guida alla progettazione come
puoi aiutare le persone a prendere decisioni in merito
cosa faranno e il meglio
pezzo che ho mai trovato proviene da un foglio
su ordinamento e ricerca nel 1970, penso
73 forse e zoomando su quello a
un po ‘questo è un grafico decisionale
giochi 20 domande con il tuo problema
aiuta a scegliere un algoritmo di ordinamento così è
il tipo da fare su due dischi sì
o lasciare le stringhe non sono sei o meno
unità nastro non può sette o più
settantotto fusione polifase okay
non preoccuparti per lo smistamento
tecnologie più
ciò che è significativo è che non lo so
di tutto ciò che è meglio
organizzazione di un corpo di design
conoscenza delle decisioni di questo molto
grafico antico e di cui abbiamo bisogno
disperatamente cose così ora
passiamo all’architettura software
in particolare
l’ architettura del software è il principio
comprensione della grande scala
struttura del tuo sistema software
capirlo è collezioni non solo
di componenti ma anche dei modi in cui
quei componenti interagiscono è emerso come
una cosa etichettata nei primi anni 1990 il
le radici risalgono a molti molti
discussioni scritte su tovaglioli cocktail
cercando di spiegare sistemi in cui il
il vocabolario è stato usato completamente
modo non sistematico e penso a quello che abbiamo fatto
negli anni ’90 è stato per aiutare ad organizzarlo
vocabolario in modo che altre persone possano usarlo
e quello che si ottiene da esso è un po ‘
guida su scelte progettuali esplicite
colmare dalle vostre esigenze a cosa
codice che stai per scrivere in modo da tornare indietro
molto lontano ecco qui una foto di a
Compilatore COBOL puoi vedere le caselle e
questo è il foglio di Conway
dal 1963 che in realtà aveva un programma
trasformazione in esso
ha parlato di cosa fare se tu se tu
potrebbe se non si potesse adattare tutto dentro
memoria e hai dovuto mettere un nastro nel
ecco come si fa il programma
trasformazione che separa i due
processi di carta di Edsger Dijkstra a
carta molto famosa su gerarchico
organizzazione del funzionamento
sistema era un sistema a strati questo è un
diagramma da multics e io ti conosco
non posso leggere le cose ma il piccolo minuscolo
stampa in alto dice anello 0 e anello 1
lassù e quando guardi il
Schema con attenzione vedrete che ci
rompe davvero in questi luoghi e così
quello che avevano lì era un sistema a strati
solo per intuizione per esperienza
conoscenza adeguata quindi se si guarda indietro
nella pratica della pista artigianale
il software ha sempre avuto una struttura di
di qualche tipo c’è stato un informale
Vocabolario abbiamo avuto intuizioni che ci sono
è stato il folklore su ciò che funziona per cosa
attività e puoi guardare indietro nel
diagrammi che le persone stavano disegnando
che erano stavano cercando di
spiegare cosa stava succedendo in un sistema così
abbiamo avuto esempi da quando è iniziata la NATO
con software in dotazione con l’ hardware
che poi ci ha dato compilatori e stratificati
sistemi operativi che che siamo venuti a
capisco abbastanza bene negli anni ’60 e
agli inizi degli anni ’70 e, a proposito, penso
è il motivo per cui tanti curricula universitari
ho ancora un corso su compilatori e a
Naturalmente sui sistemi operativi non lo sono
davvero sui compilatori e su
sistemi operativi sono circa il
idee che vanno nei compilatori e
sistemi operativi ma quelli erano i
esempi che abbiamo capito così bene noi
potrebbe costruire corsi intorno a loro e
ci siamo ancora così commuovendo le persone
ancora disegnato scatole e linee e leggi
un articolo su un sistema in merito
sei pollici di colonna chiamato il
architettura del mio sistema che lo farebbe
avere circa quattro pollici di colonna di testo
e due pollici di colonna di scatola e linea
diagrammi dove spesso non c’è chiave cosa
questa linea indica ciò che è punteggiato
linea significa che cosa significa una scatola rotonda ma
puoi vedere il tentativo e così guardano
come questo
a volte non c’erano in realtà linee
a volte l’adiacenza veniva usata qualche volta
puoi vedere la stratificazione gerarchica con
alcuni trucchi questo in realtà ha una chiave
ma ma questo livello di pratica con
persone che lavorano dall’esperienza al
scegli l’architettura dei loro sistemi
è ciò che ha stimolato la scienza così per
esempio incertezze sulla qualità
e le prestazioni e le capacità di cambiamento hanno portato
ai modelli che supportano le metriche del software
la natura ad hoc della struttura
trattare con più versioni e
l’interoperabilità ha portato agli stili e
modelli per architetture software e
quindi ecco alcuni esempi degli idiomi
o stili o modelli che riceviamo
abbastanza comunemente ci sono strati
sistemi come avere una macchina virtuale
o utilizzando un sistema di servizio client lì
sono sistemi di flusso di dati come il classico
sistema sequenziale sequenziale degli anni ’50
e le pipe e i filtri di Unix lì
processi interagenti che potrebbero
comunicare tramite messaggi o potrebbero
essere sistemi di eventi con implicito
inviti e penso ai micro-servizi
cadere direttamente in questa categoria e
passando da schemi di particolare
sistemi se si guarda sul web ora
troverai tutorial che dicono qui è un
qui canonico nella tua architettura
un modello per un’architettura d’interni
se pensi di voler costruire un
l’architettura d’interni qui è un inizio
ora inserisci i dettagli qui a
modello per una macchina virtuale se tu
vuoi iniziare una macchina virtuale
qui e riempi i dettagli così abbiamo
ci siamo alzati da questo è il
descrizione del mio sistema – capisco
una classe di sistemi e posso aiutare
costruisci una simile così ora abbiamo a
pratica commerciale per software
architettura abbiamo iniziato con batch
l’elaborazione negli anni ’70 proseguì
anni ’80 in architettura informale come
parte della narrativa per una descrizione
del sistema anni ’90 con con anticipo
struttura e con prodotto software
linee e all’inizio di questo
la ricerca dell’architettura del secolo è stata
entrando in pratica ci alcun numero di
le aziende hanno una società specifica
a volte architetture proprietarie per
il particolare tipo di cose che loro
campo abbiamo quadri orientati agli oggetti
abbiamo te e tutti per il meglio o il peggio
Penso che il tuo memo stia morendo Penso che sia così
okay abbiamo oggetti dappertutto
meglio o peggio, ma abbiamo un noi
avere una fiorente pratica commerciale di
architettura quindi c’è un c’è
sezione qui su idee come scientifiche
maturo ma mi rendo conto che sono in piedi
tra te e la reception così sono
andando a sfiorarlo abbastanza velocemente
l’ idea principale è che inizia un’idea
come idea e mosse di ricerca di base
attraverso una serie di fasi in cui il
il concetto è raffinato è è chiarito
e raffinato e migliorato passa attraverso
un paio di fasi in cui le persone lo provano
su
prima scoprire come funziona e secondo
per scoprire se funzionerà per
loro e poi alla fine viene usato da
estranei non solo per scoprire di cosa si tratta
ma per gli estranei a risolvere il proprio
problemi e alla fine diventa
divulgato e si diffonde attraverso il
comunità ovviamente non tutte le idee fanno
questa parte della ragione che quello
va bene che ci sia così tanto tempo
la catena è che le cattive idee vengono filtrate
presto prima fanno male astanti così
ecco le date principali per questo
processo per l’architettura del software lì
era un periodo di fondazioni e io voglio
per saltare attraverso questo nell’interesse
di entrare nel resto del discorso
c’era un periodo di ricerca di base in giro
Dal 1985 al 1993 dove erano le idee
ordinati fuori c’erano alcune esplorazioni
e lingue e formalizzazioni nel 1992
a 96 periodo di sviluppo e
estensione nel 1995 a 2000 si può vedere
c’è qualche sovrapposizione qui
accoppiato con esplorazione interna a
più o meno nello stesso tempo eccoci qui
ottenere alcune tecniche di valutazione
stiamo cominciando a ottenere alcuni libri fuori
e poi dal 1998 abbiamo visto il
tecnologie utili al di fuori del
lo sviluppo raggruppa alcuni strumenti e
quadri
alcune architetture specifiche per le aziende
e poi passare alla divulgazione
ora abbiamo alcuni standard
educazione tecnologica commercializzata
organizzazioni professionali e in molti
aziende l’architetto è diventato il
il capo tecnico senior del
compagnia e poi solo per tornare a
questa idea di strati ci fu il
sistema a strati multics c’era il
c’era un sistema stratificato dell’era del 1980
i modelli del sistema e da
che ora siamo dietro l’angolo
e abbiamo raggiunto il punto di popolarità
cultura dove può dire il fumetto xkcd
ecco un sistema a strati e il layered
il sistema funziona così e ora ne hanno bisogno
che i singoli livelli hanno nomi
tu riconosci i nomi e puoi usarli
tutto per vedere un gatto cadere dal
box così abbiamo raggiunto abbiamo raggiunto
la cultura popolare è una specie di
punto di riferimento e ora ne abbiamo alcuni
conoscenza sistematicamente organizzata
c’è una serie di libri dal
Istituto di ingegneria del software che
presentare molte cose in vari modi
Paul Clements e io abbiamo fatto una tassonomia di
stili ciò che è interessante di questo è
la colonna di destra dove per ciascuno di
la classe di stili che abbiamo identificato a
particolare tipo di ragionamento che è
appropriato a quello stile quindi se lo sei
facendo un tipo di sistema di flusso di dati allora
composizione funzionale e latenza o
forse le analisi delle formiche che vuoi fare
mentre se stai facendo un data center
repository che includerebbe il tuo
database preferito quindi poi acido
proprietà e tassi di transazione sono o
cosa ti potrebbe interessare e anche noi
identificato alcune regole empiriche questo
non è questa non è una scienza sistemata ma
questo si basa sull’esperienza se il tuo
il problema è scomposto nella sequenza o
le fasi considerano sequenziale un lotto
sistema o un’architettura pipeline e così via
avanti così possiamo dire alcuni sistemici
cose che non sono scienze sistematiche ma
sono ancora utili indicazioni che abbiamo anche
fatto un po ‘di esplorazione come un campo
per quanto riguarda il potere della generalità, quindi noi
sappi che possiamo usare stili generici
che sono applicabili in modo molto ampio ma
non offri molto potere e questo noi
può spostare il potere della generalità
trade-off per avere linee di prodotti che sono
solo bene per una cosa, ma sono molto
potente a quella cosa e il
un po ‘ interessante è che ci sono
punti intermedi lungo la strada okay
ma la domanda è è ingegneria
ma ricorda bene il nostro buon vecchio amico
il crollo del ponte D c’è a
c’è un solido standard credo
l’ingegneria è associata a un livello
di sicuro
topi che proteggono la salute pubblica
sicurezza e benessere è una specie di sociale
contratto che facciamo con la comunità
che se vogliamo definirci
ingegneri che le cose che faremo
produrre sarà roba degna ma
consideri strappato dai titoli
L’ inaspettata fine della Toyota accelera
caso dell’anno scorso
violazioni dei dati più numerose da contare
questa settimana hai visto il titolo
Martedì sul Samsung Galaxy s5 e
S6 e S6 ragazzo chiave per sfruttarla esso
sembra che se tu che l’operazione
sistema sulla galassia periodicamente
tira per un aggiornamento per un certo tipo
della tastiera che potresti o no
essere di utilizzarlo se ottiene una risposta che
eseguito ad un livello di privilegio molto alto
ed è vulnerabile a a
attacco man-in-the-middle su un non protetto
Rete Wi-Fi e oh dal modo in cui
non è possibile cancellare questo dal tuo funzionamento
sistema questo è stato dimostrato a
Def Con lo scorso martedì e tutti sono ora
rimescolando per ottenere i patch in modo che non ci sia
c’è ogni ogni settimana c’è
titoli su cosa stavano pensando
il caso di accelerazione non intenzionale di Toyota
è uno in cui c’era un elettronico
sistema di controllo dell’acceleratore negli anni di modello
Dal 2002 al 2010 potrebbe occasionalmente
Accade che la manopola del gas si sia aperta e
non si poteva fermare la macchina questo in realtà
è successo una volta a un collaudatore questo
non era un dilettante che non riusciva a capire
fuori come fermare la macchina che non poteva fermare
l’auto
hanno risolto la causa per oltre un
miliardi e mezzo di dollari USA e quello
non è che non è la fine di questo perché
più cause stanno venendo fuori del
la lavorazione del legno fondamentalmente sembra il problema
può essere quella radiazione elettromagnetica
uccidere processi in cose come la valvola a farfalla
sistemi di controllo c’è un processo che
se il processo muore
l’acceleratore si aprirà lì
supposto essere un processo di watchdog ma
a volte il processo di watchdog no
rilevare la scadenza del critico
processo e quando ciò accade l’ unico
modo per riavviare il processo è
togli completamente il piede dal freno
e poi calpestare fermamente il freno
non è qualcosa di veramente così
si verifica a chiunque la cui macchina sta accelerando
giù per l’autostrada fuori controllo
quindi questo era più o meno questo
attribuito al software il software
non li seguì seguire bene noto
pratiche che il cane da guardia non ha fatto
rilevare un errore di un compito importante il
a volte c’era la complessità ciclomatica
le tre cifre avevano 10.000 globali
la ricorsione delle variabili potrebbe causare
preso Stack Overflow e avevano scarso
conformità anche ai test
standard che hanno affermato di avere okay
gente questo non è davvero ingegneristico
le violazioni dei dati Dipartimento il grande
nel titolo la scorsa settimana sono gli Stati Uniti
governo con quattro milioni di personale
i record sono stati violati questo è un riassunto
grafico dal 2014 di un completo che
tiene traccia solo dei dati degli Stati Uniti
violazioni 494 2014 hanno un rapporto di
783 violazioni dei dati nel settore bancario
educazione governativa e medica e il
il numero di record compromessi è a
almeno 85 milioni e ho guardato il
dati e molti di questi rapporti sul
le violazioni non riportano il numero di
record messi a repentaglio quindi sai che è così
più di 85 milioni va bene che lista può
vai avanti c’è una mailing list
chiamato rischi in cui è possibile leggere su a
molti di loro se vuoi, ma andiamo
torna alle caratteristiche di
ingegneria e prova a spuntare
dove siamo
bene l’ingegneria ci costringe a fare
decisioni di trade-off basate su limitate
tempo e controllo di conoscenze e risorse
usiamo la migliore conoscenza codificata per
disegni di forma
le sessioni a volte fanno riferimento a materiali
rendere questa conoscenza ed esperienza
disponibile penso che stiamo davvero cadendo
su quello e l’analisi di a
progettazione prevede le proprietà del
implementazione a volte così da mettere questo
sull’evoluzione ingegneristica
cronologia lo sviluppo del software
i metodi degli anni ’70 agli anni ’90 erano dove
abbiamo imparato a conoscere la produzione intorno al 1990
quelli sono stati ampiamente adottati e lo farei
diciamo che l’ ingegneria professionale è
emergente ma a chiazze va bene così la domanda
allora è come facciamo progressi e da
il modo in cui non sto cucendo un libro ma se tu
voglio essere parte di fare progressi noi
avere sia un programma di dottorato che un
programma di master professionale in
ingegneria del software e lì nel
corner è l’ URL in cui puoi venire e
scoprire così pensare
facendo progressi Penso che sia utile
distribuire i tipi di applicazioni
stiamo lavorando con e per me è
utile per distribuirli attraverso due
dimensioni uno è quanto è male se questo
va male che è l’asse verticale e
l’ altro è qualsiasi essere umano vivente che
capisce quello che sta succedendo rischia di
scopri che qualcosa sta andando storto
e fare qualcosa al riguardo che è il
asse orizzontale con automazione completa attivata
il diritto e il funzionamento manuale sul
lasciato così ci sono cose qui che io
mi interessa davvero come il nucleare
la centrale elettrica si spegne, penso che
davvero dovrebbe funzionare ci sono cose
che non faccio la pianificazione degli appuntamenti
trovare un ristorante che non è così male ho
probabilmente noterò se il mio ristorante
Il Finder non trova un appunto un ristorante
e io non morirò di fame quindi c’è
c’è un po ‘di margine qui e io e io
pensi di voler davvero candidarti
tecniche di ingegneria per sicuro nel
l’angolo in alto a destra e poi c’è
a c’è una scala ma si noti che le cose
tendono a spostarsi a destra in modo da automobile
cruise control usato per mantenere solo il
leva viene spinta andando così che non hai deriva
lascia che la macchina rallenti in cui ci stiamo muovendo
cruise control avanzato che lo farà
effettivamente causare l’auto a cambiare corsia
passare e tornare indietro di nuovo e e
le persone stanno lavorando su auto a guida autonoma
quindi quando pensi al
implementazione di alcune applicazioni
ricorda che se ha successo lo è
andando a spostarsi a destra e c’è
saranno meno opportunità per il manuale
supervisione in modo che io il più grande bisogno
per la disciplina ingegneristica è nel
l’angolo in alto a destra e lì
c’è un c’è un gradiente che richiede
sei lì ma che ne dici di arrivarci
beh, la nostra tecnologia si sta muovendo davvero
in fretta non ci stiamo tenendo d’occhio e
ci sono modi che potremmo prendere
vantaggio di esso
per fare meglio si deve capire questo
problema di ottenere l’accesso al precedente
conoscenza in ingegneria classica loro
stampare libri a mano di carta, forse ogni 15
anni che è ovviamente un non-starter per
noi, ma quello che stiamo facendo ora è il lancio
il software per fornire il minimo
documentazione dell’API e locazione
gruppi di utenti e blog descrivono cosa
problemi che avevano avuto e come loro
risolverli che non va bene , ma
ma ma capiamo molto meglio la ricerca
di quanto abbiamo mai fatto la domanda è come
potremmo usare la ricerca per soppiantare la modifica
e indicizzazione come modo per ottenere l’ accesso
al materiale precedente potremmo trovarlo
qualche analogo di MapReduce che ci lascia
coltivare il problema della documentazione così
che le persone possono scrivere piccoli frammenti
e lascia che si uniscano
non lo so, ma è un’idea che siamo noi
affrontare l’agilità che è una riluttanza a
resistenza dei documenti alla struttura iniziale
abbiamo sistemi che sono in perpetuo
dati e si evolvono semplicemente attraverso il
tolleranza degli utenti che dovremmo essere
pensando più duramente alla fine del potere di
il trade-off e l’incorporamento della generalità
alcune di queste conoscenze nel compito specifico
strumenti in modo che le persone possano usare
lingue specifiche del dominio
piuttosto che cadere in qualunque cosa
lingua preferita di chiunque in questa stanza
potrebbe essere e abbiamo bisogno di pensare a
ridimensionamento dei costi per le conseguenze così
questi sono in larga misura su come ottenere
la conoscenza codificata che in realtà
sono connessi con i compiti e
finalmente penso a una carica per tutti noi
non solo per maturare un software
ingegneria ma per tutti noi come
professionisti del computing è quello di provare a
aiutare a civilizzare la frontiera elettronica noi
ho avuto un elettronica selvaggia e lanosa
di frontiera i Cowboys hanno avuto un sacco di
divertimento qui, ma è il momento di farlo
luogo civile per il resto del mondo
e questo significa infrastruttura e
amenità significa buon ordine civile
modi che conferiscono potere alla legge
cittadini in generale per capire davvero
come gestire il proprio calcolo e a
ottenere una certa chiarezza sulla sicurezza personale
e la responsabilità lo richiede
che il pubblico in generale capisce il
la tecnologia molto meglio di noi
ha reso possibile perché ci interessa bene
ci sono un sacco di sviluppatori casuali fuori
lì a sinistra abbiamo una proiezione
quel crisco che nutre e io ne ho fatti alcuni
anni fa circa il circa l’americano
luogo di lavoro e questo è l’americano
luogo di lavoro non il mondo il mondo
posto di lavoro il disegno è in scala in tutto
la parte inferiore che vediamo lungo circa ora che
ce ne dovrebbero essere circa due e mezzo
milioni di computer altamente qualificati
scienziati informatici professionisti
programmatori di software ci sono
qualcosa come 90 milioni di persone fuori
c’è chi sta facendo programmazione come
cose che stanno costruendo database
stanno costruendo fogli di calcolo che sono
usando i linguaggi di scripting che sono
costruire siti Web sofisticati quali sono
facciamo per aiutarli bene, non lo siamo
raggiungendoli necessariamente attraverso il nostro
programmi di allenamento perché sulla destra
abbiamo un sondaggio da Stack Overflow da
all’inizio di quest’anno serve Overflow dello stack
programmatori professionisti ed entusiasti
hanno tirato i loro membri
e il 41,8% di loro afferma di esserlo
avviso autodidatta che i numeri aggiungono
fino a oltre il cento percento
alcune persone stanno segnalando in due volte ma
la laurea in informatica
la scienza o un campo correlato è inferiore a
Il 40 percento ha un sacco di lavoro
addestrando un altro campo di addestramento di classe online
e cosa-hai-tu
quindi ci sono molte persone in via di sviluppo
software ed è nostra responsabilità in
ingegneri del software per renderli capaci
sviluppare un suono prevedibilmente affidabile
software prevedibilmente sicuro c’è un
organizzazione negli Stati Uniti che
che ci tiene traccia dell’utilizzo di Internet il principale
punto di questa diapositiva è che il
i dati demografici dicono che già quasi
tutti sono online e questo dice cosa
lo fanno e noi lo ingrandiremo
un po ‘tutti cercano il look di tutti
per informazioni sulla salute quasi tutti
ottiene notizie è interessante che il
le colonne corrispondono all’età di 10 anni
parentesi è interessante che quello
i giovani hanno siti di social network
molto in alto nella lista e persone anziane
avere siti di social network molto bassi
elencare quindi c’è un sacco di cose
di texture e ciò che le persone sono in realtà
facendo così simbolizzando la parte anteriore
frontiera comporta tre tipi di cose
uno è una politica e quella politica sta andando
per essere informato dalla tecnologia
dovrà colpire saldi
tra anonimato anonimo e
responsabilità tra sicurezza e
privacy che si occupa della responsabilità del prodotto
ci sono anche problemi di tecnologia in
effettivamente applicando la migliore conoscenza
che abbiamo e capire come
convertire alcuni dei vecchi problemi che noi
usare le nuove tecnologie come
ricerca piuttosto che indicizzazione e
gestione di software indipendente
componenti e
la polizia penso che siamo quasi caduti
giù sta fornendo modelli utente che aiutano
il grande pubblico comprende ciò che è
in realtà andrei comunque mi piacerebbe
pensa ai miei vari collaboratori per
collaborando con me ed ecco a
ricapitolazione che è che c’è un
storia sul modo in ingegneria
la disciplina evolve che la nostra ingegneria
base si è evoluta attraverso sempre più
potenti astrazioni che queste idee
evolvere nel tempo da idee brillanti a
cose che sono effettivamente utili con
cadere speranzoso di cattive idee insieme
la strada e che il più grande necessità di
l’ingegneria è la più critica
applicazioni ma non è possibile tracciare una linea
c’è una sfumatura in cui il
più critico per l’applicazione
maggiore l’intensità del tuo bisogno per
ingegneria quindi grazie mille io
apprezzare essere invitati e apprezzati
aver parlato con molti di voi questa settimana
tu

Please follow and like us: