L'importanza sempre crescente
del software
A parità di hardware é il software che fa la differenza,
dal SO alle applicazioni! (intelligenza, amichevolezza,
qualità, ...)
Nella storia dell'informatica si é partiti con il dare molta
importanza all'hardware rispetto al software: oggi la
situazione é del tutto opposta.
Prima fase (anni `55-65)
 hardware dedicati (cioé esecuzione di una applicazione per macchina)
 sforzi tesi allo sviluppo dell'hardware
 assenza di metodologie di sviluppo software (tecniche empiriche
ed artigianali, assenza di prospettive ingegneristiche)
 software sviluppato ed usato individualmente (niente documentazione)
Seconda fase (anni `65-75):
 hardware multiprogrammati
 sistemi multiutente ed interazione uomo-macchina dispositivi di
memoria on-line e prima generazione di DBMS (Data Base
Management Systems)
 nascono il mercato dei pacchetti software (software packages) e
le case produttrici di software (software houses) che producono e
vendono anche migliaia di copie per programma
 dai programmi individuali (da migliaia a decine di migliaia di
istruzioni) si passa a quelli "industriali" (con decine o centinaia di
migliaia di istruzioni).
 la spesa per il software supera quella per l'hardware.
Terza fase (anni `75 - 85)
 sistemi distribuiti (più elaboratori che comunicano fra loro)
 necessità di disporre di reti digitali globali e locali a bande sempre
più larghe e necessità di produrre software di rete
 avvento e diffusione di microprocessori e Personal Computer
 le società di software producono decine ed anche centinaia di migliaia
di una sola applicazione
 la spesa per il software supera quella per l'hardware.
Quarta fase (anni '85 - ...):
intensificazione della crisi del software dovuta al fatto che:
1) la potenzialità dell'hardware supera la capacità di costruire software
adeguato
2) la domanda di software supera la capacità di produrne
3) i tempi e i costi di produzione superano ogni ragionevole previsione
4) il prodotto non risponde ai bisogni ed ai requisiti dell'utente
5) i costi di manutenzione sono proibitivi per l'incapacità di trovare gli
errori prima di consegnare il software ai clienti
6)1'individuazione di limiti ed errori porta a correzioni o modifiche
dell'intero progetto
fattore
costo
modiche
fase
lavoro
Definizione
Sviluppo
Manutenzione
COSA
E 'IL SOFTWARE
?
IL SOFTWARE
NON SI LOGORA
LE
COMPONENTI
DEL
SOFTWARE
1.
insieme
di APPLICAZIONI
istruzioni
e DI
moduli
che L'INGEGNERE
forniscono
certe
prestazioni e
VARIETA'
COSA
DEVE
DI
APPLICAZIONI
SAPER
FARE
SOFTWARE
DEFINIZIONI
INGEGNERIA
DEL
VARIETA'
DI
SOFTWARE
I un
PROBLEMI
NELLO
SVILUPPO
DEL
Tasso di funzioni desiderate
CATEGORIE DIdel
PROGETTI
Hardware
LeDEL
componenti
software
si distinguono
in ai"eseguibili"
(dalla
INGEGNERIA
SW?
DELSOFTWARE
SOFTWARE
(cont.)
(IdS)
SOFTWARE
2. un insieme di strutture
dati che consentono
programmi di
manipoguasto
mortalità
1) Software die sistema
macchina)
"non
eseguibili" . Le componenti non eseguibili sono
lare le informazioni
infantile
configura
l'hardware,
gestisce
1'input e l'output,
forme
linguistiche
che
specificano
software
man ...mano più
forma6) Software
per
Personal
Computer
3.Funzioni:
unDisciplina
insieme
di
documenti
che ildescrivono
l'operatività
e l'uso
dei
tecnologica
e
manageriale
il
cui
scopo
è
la
produzione
e pro1.
conoscere
diversi
approcci
progettuali
1)
L'IdS
è statistica
laProgrammatori
scienza
che
fornisce
gliche
strumenti
Esempi:
sist.
operativi,
compilatori,
editor,
utilities,
sw
di comunicazione
....
Categoria
Durata
Dimensioni
lizzate
sino
ad
essere
direttamente
traducibili
in
linguaggio
macchina
Funzioni:
strumenti
di
produttività
personale
grammi.
Nel
1980
una
USA
fece
scoprire
per i
2. Caratteristiche:
saper
comunicare
con
il
committente
senza
tecnicismi
il mantenimento
sistematico
di1'hw,
prodotti
che
devonorisorse,
es- strutture
forte
condivisione
Banale
1 grafica, con
1-4 multiutenza,
wks software
500
linee
da un
compilatore.
Esempi:
word processor,
comunicazioni,
basi dati,
entertainment,...
concettuali
e interazione
metodologici
per
permettere
al sof-
3. sapersoftware::
tradurre richieste vaghe in specifiche
tecniche e saper creare dei
progetti
C.A.S.E.
Piccolo
1
1-6 mos
1k-2k
dati complesse,
...
Caratteristiche:
amichevolezza,
basso
costo
difetti
sere
sviluppati
e
modificati
entro
certi
limiti
stimati
di tempo e di
modelli
tware
di
esistere
in
tutto
il
suo
ciclo
di vita.
Medio
2-5
1-2 yrs
5k-50k
iniziali
il
47
%
era
stato
pagato
ma
mai
messo
indalla visione
UNA
DEFINIZIONE
4. saper
salire
e
scendere
fra
diversi
livelli
di
astrazione:
Grandecosti.
S0k-100k
2) Software
di tempo
reale5-20 (courseware) 2-3 yrs
7)
per
l'insegnamento
REQUISITI
complessiva è
dell'insieme
SW come undi
tutto
alle singole parti,documenti
dalla definizione
commercio
IlMolto
software
programmi,
e
grandeattivare
100-1000
yrsquasi nullo
1 M eventi e situazioni
Funzioni:
Misura, eanalizza,
tempo
Funzioni:
gestire
ilcontrolla
processoindi4-5
apprendimento,...
COMPONENTI
DEL PRODOTTO
SOFtWARE
tecnica delle funzioni e delle prestazioni alla codifica dettagliata
Estremamente
grande
2000-5000 drill, test ..
5-10
1M- 1OM
Esempi:
sistemi
di
controllo
Esempi:
tutorial,
simulazioni,
..inyrs
il
29
%
era
stato
messo
commercio
ma
procedure
operative
mediante
i
quali
iobsolescenza
computer
5. saper
gestire
un gruppo
di lavoro
(doti
di comunicativa
e rapporto
2)
L'IdS
è
la
scienza
che
specifica,
progetta,
imCaratteristiche: alta
tempi
di
risposta
tra
1
msec
ed
1
minuto
primo
interattività, alta efficienza comunicativa multimedialità,...
-non
Codiceusato
sorgente.
Tempo
umano)
PROGETTAZIONE
SOFTWARE
possono
esser
resi
utili
plementa e fa evolvere con economicità, certezza
(non eseguibile)
3) Software per
gestionale
8)
l'Intelligenza Artificiale
- Documenti:
... Funzioni:
Funzioni:
elabora informazioni
aziendali
rappresentazione
ed uso
della conoscenza (KBS), problem solving, ...
- ilMA
20 SI
% DETERIORA
era
stato abbandonato
o rifatto
dei
tempi,
efficienza
ed eleganza
il software, cioè i
-Esempi:
il 3sistemi
% era
stato
usato
dopo
cambiamenti
calcoli esperti
e iprospetti
finanziari,
fatturazione,
gestione
magazzino,
stipendi,
Curva
teorica
software
per diagnosi
medica,
laprocedure
ricerca
di guasti,
...informatiprogrammi,
documenti
e per
leguasti
TRADUTTORE
QUALI
CONOSCENZE
DEVE
TENDERE
AD
supporti
alle Documenti
.decisioni,
...)
Curva
reale
guasti come
software
di specifica
LE
PECULIARITA'
DEL
SOFTWARE
Caratteristiche:
algoritmi
non
numerici
1'
1.5
%
era
stato
usato
così
messo
in
che ed umane che rendono utili i computer.
9ua~ Caratteristiche: interattività
ACQUISIRE
L'INGEGNERE
DEL
SW?essere:
di progetto
commercio
La
natura
deiSpecifiche
problemi
fondamentali
risultò
portabilità: buona manutenII -software
é
un
prodotto
che
non
assume
zione:forma
buona fisica, esso non si
Complessità
4) Software
ingegneristico
e
scientifico
Principi
di
funzionamento
lettura: buona
3) L'IdS
èsi LING.
la
scienza
che
fabbrica'
ma IN
'sviluppa'
e si 'ingegnerizza'.
Ciò
comporta che:
FORMA
SORGENTE
testing:
facile
Difficoltà
di
stabilire
e
di
stabilizzare
i degli
requi1.-Funzioni:
scienze
gestionali
cioè
il così edetto
"management"
(stima
aspetti
elaborazioni
matematiche
grafiche
livello
di astrazione:
buono e biso non si può
valutarlo
con
immediatezza
come,
altri
prodotti
Piani
di test
(non
eseguibile)
buonaumane, decomprogettuali,
pianificazione
temporale eproduttività:
delle risorse
Esempi:
simulazioni,
CAD,
siti
gna farlo secondo
altri...canoni
posizione
edinterattività
assegnazione
deidella
compiti,
controllo
dell'avanzamento,
a)
sviluppa
le
ed
i metodi
che
supportano
Procedure
di controllo
qualità
-Caratteristiche:
Difficoltà
di tecniche
modificare
- ...)Invisibilità
le varie
fasi
sviluppo
del sw.
Rapporti
suidello
problemi
software
TRADUTTORE
2.- ingegneria
dei
sistemi
(un
software
con
centinaia
o migliaia
di moduli
Mancanza
di
una
disciplina
con
un
suo
appa5)Il
Software
di
bordo
(embedded)
software
é un complesso)
prodotto che non si logora e non si guasta
é un
sistema
b)
studia
il
processo
di sviluppo
del sw al fine di
Procedure
la manutenzione
rato teorico
e per
metodologico
Controllo funzionam.
prodotti industriali
e di consumo
velocità
di esecuzione: max
Più Funzioni:
specificamente:
portabilità: min
controllo
elettrodomestici,
autoveicoli,
...
quali
i migliori
approcci
pernella
Esempi:
a capire
parte
ilManuali
manifestarsi
di difetti
occulti,
i guasti
non crescono
d'usosiano
manutenzione:
difficile
lettura: difficile
tempo
Caratteristiche:
risiedeMACCHINA
in ROM, ha funzioni limitate
FORMA IN LING.
testing: difficile
integrazione
organica
delle
svariate
attività
Istruzioni
per
l'istallazione
di astrazione:
pro- nella
PEZZI
DI (eseguibile)
RICAMBIO?
ICs,livello
riusabilità,
...)errori
 i guasti
non sono causati(Sw
da deterioramento
ma damin
duttività: pessima
progettazione
o
nello
sviluppo
dello Ausili
sviluppo
del sw
per l'addestramento
c) produce strumenti ed ambienti sw per guidare
Tasso di
Punti di
modifica
Tempo
J