Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sommario
ÖVisione d’insieme
Concetti Generali della ÖI tipi di Prodotti Software
ÖQualità dei Prodotti
Ingegneria del Software ÖProblemi dell’Ingegneria del software
ÖPratiche
DIB 1 DIB 2
DIB 3 DIB 4
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
DIB 5 DIB 6
Rapporto tra I.S. altri campi dell’Informatica Relazioni tra l’I.S. e le altre Discipline.
Ö Linguaggi di programmazione. La I.S. influenza i linguaggi di Ö Scienze Organizzative. La I.S. prende da queste
programmazione che rendono sempre più servizi utili per
strutturare meglio il software. Ad esempio i pacchetti in ADA e discipline molti dei modelli per la gestione di
JAVA; le librerie di componenti; i linguaggi di interfaccia… sistemi e processi complessi. Stimola questa
Ö Sistemi Operativi. Questi influenzano molto la I.S. perché essi
sono grandi sistemi che hanno problemi che si incontrano molto disciplina a studiare nuovi modelli di stima e di
spesso nelle grandi applicazioni. gestione delle filiere di produzione, visto che
Ö Le basi di dati. Hanno stimolato ed aiutato la I.S. nella quelli che usa nelle produzioni materiali si
realizzazione del principio di separazione degli interessi.
Ö Intelligenza Artificiale. Questa influenza ed è influenzata dalla I.S.. adattano male alle produzioni incentrate
Essa ha portato nuove tecniche di definizione dei requisiti in sull’uomo.
presenza di incertezza; ha invece importato tecniche per la
separazione degli interessi negli agenti. Ö Ingegneria dei Sistemi. Ha relazione con la I.S.
Ö Modelli teorici. Molti modelli teorici sono stati importati dalla I.S.. sia perché studia sistemi complessi sia perché il
Ad esempio protocolli di comunicazione e macchine a stati finiti.
Altri modelli sono stati stimolati dalla I.S. ad esempio specifiche software è sempre una componente di sistemi più
algebriche e modelli di dati astratti. grandi.
DIB 7 DIB 8
Concetti Generali della
Ingegneria del Software
Il Software...
PROGRAMMA
ÖÈ un insieme di istruzioni autoconsistenti rispetto ad uno o
più obiettivi.
I Tipi di Prodotti Software ÖSpesso è usato dallo stesso autore. E’ difficile farlo utilizzare
da altri perché per scarsa documentazione è difficilmente
comprensibile
ÖI suoi difetti sono rilevati, in genere, sul campo perché è
scarsa la validazione durante la sua produzione.
ÖHa vita relativamente breve perché la manutenzione fa
decadere la sua qualità e diventa sempre più difficile e costoso
farlo evolvere.
DIB 9 DIB 10
… Il Software
… Il Software ...
APPLICAZIONE SISTEMA SOFTWARE
ÖÈ un insieme di programmi interagenti che copre un
ÖÈ un insieme di programmi interagenti tra loro. Dominio Applicativo con
ÖSpesso è venduto come un pacchetto usabile da persone alto livello di qualità,
che non hanno dimestichezza con l’informatica perché completo di tutta la documentazione : i requisiti, la
sono forniti, almeno, di un’interfaccia e di documentazione progettazione che spiega la sua struttura e le
d’uso. decisioni che hanno giustificato la sua strutturazione;
ÖI loro difetti sono scoperti essenzialmente dagli i manuali d’uso.
utilizzatori, ma durante la produzione una parte sono ÖPer far rientrare gli alti costi di produzione, essi sono
scoperti attraverso la validazione. destinati ad un esteso bacino di utenza anche con
piattaforme diverse, pertanto: la usabilità e la portabilità
ÖSpesso hanno bassi livelli di qualità; sono poco attrezzati sono caratteristiche chiave.
per il trasferimento a nuovi sviluppatori; pertanto la loro
ÖPer poter essere redditizio, un sistema software deve
qualità decade rapidamente e diventa sempre più costosa
avere una lunga vita e deve invecchiare lentamente.
e rischiosa la loro manutenzione.
DIB 11 DIB 12
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
DIB 13 DIB 14
DIB 15 DIB 16
Concetti Generali della
Ingegneria del Software
Qualità Principali
Ö Correttezza. Un sistema software deve soddisfare
tutti i suoi requisiti funzionali e di prestazione.
Ö Affidabilità. Probabilità che un sistema software si
Qualità dei Prodotti comporti secondo le attese in un intervallo di
tempo.
Ö Robustezza. Un sistema software si deve
comportare in modo accettabile anche in
circostanze non previste nelle sue specifiche.
Ö Usabilità. Un sistema software deve essere
reputato di facile uso dai suoi utilizzatori.
Ö Manutenibilità. Facilità con cui: si identifica la
causa di un malfunzionamento e si elimina; si
aggiungono, sottraggono e si modificano capacità
e funzioni del sistema.
DIB 17 DIB 18
Prestazioni… …Prestazioni…
DIB 19 DIB 20
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
… Prestazioni… … Prestazioni
DIB 21 DIB 22
Dissonanze Concettuali
ÖMolti concetti del Dominio Applicativo
Problemi della Ingegneria del sono interpretati in modo diverso da
utenti e da applicazioni diversi.
Software Per esempio, un cliente può essere
considerato:
• un soggetto con cui l’impresa ha una
relazione commerciale corrente, oppure
• un soggetto con cui si è intrattenuta una
relazione commerciale, anche se tale
relazione non è stata mantenuta
DIB 23 DIB 24
Concetti Generali della
Ingegneria del Software
Struttura Complessa
DIB 25 DIB 26
DIB 27 DIB 28
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
Problemi aperti della Ingegneria del Nuove Frontiere della Ingegneria del
Software Software
ÖLa carenza di conformità dei processi ÖPotenziamento dello sviluppo attraverso la
software con i principi degli stessi causa distribuzione della produzione
lo sviluppo di applicazioni difficili da ÖSviluppo di Software Open Source
manutenere ÖeXtreme Programming
ÖE’ necessaria la raccolta ed il ÖLinee di Prodotto
trasferimento agli sviluppatori di evidenze
sperimentali circa: ÖSoftware ad alta sicurezza ed affidabilità
la relazione tra questi principi e la economicità Ö….
di costruzione, distribuzione e manutenzione
del software
DIB 31 DIB 32
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
DIB 33 DIB 34
DIB 35 DIB 36
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
DIB 37 DIB 38
DIB 39 DIB 40
Concetti Generali della Concetti Generali della
Ingegneria del Software Ingegneria del Software
… Linee di prodotto …
… Linee di prodotto …
ÖProblemi
La costituzione di una famiglia di applicazioni che ÖLezioni apprese
rappresentino una linea di prodotto richiede Le linee di prodotto sono un approccio che
maggiore tempo della costruzione di una singola promuove attivamente il riuso
applicazione; perciò il processo di costruzione la efficacia migliora incrementalmente, con
della linea di prodotto è incrementale; l’apprendimento di nuove varianti dei
Il primo membro di una linea utilizza una prodotti nello stesso dominio;
piattaforma ed un modello di dominio applicativo
di riferimento; la linea si popolerà con la
necessità di cambiare la piattaforma o di
evoluzione del modello di dominio o dello stesso
dominio;
DIB 41 DIB 42
DIB 43 DIB 44
Concetti Generali della
Ingegneria del Software
DIB 45