Fondamenti di Informatica
© 2003 Pier Luca Montessoro 1
(si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 1
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO
Facoltà di Ingegneria Università degli Studi di Udine
Cenni sull’ingegneria del software e sulla qualità dei programmi
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.
Nota di Copyright
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 3
Ingegneria del software
• Definizione IEEE:
“Applicazione di un approccio sistematico, disciplinato e quantificabile allo sviluppo, all’operatività e alla manutenzione del software”
• NOTA: per software si intende programmi, procedure, documentazione, dati relativi all’operatività di un sistema di elaborazione
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 4
Ingegneria del software
• Disciplina tecnologica e gestionale:
– rispetto dei tempi e costi preventivati – soddisfacimento delle funzionalità – gestione della manutenzione e
dell’aggiornamento anche in relazione alle evoluzioni della tecnologia
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 5
Ciclo di vita del software
• Esistono diversi modelli
• I più noti sono:
– modello a cascata – modello a spirale
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 6
Modello a cascata
Studio di fattibilità
Analisi e specifica dei requisiti
Progettazione
Programmazione e test dei singoli moduli
Integrazione e test del sistema completo
Manutenzione
Fondamenti di Informatica
© 2003 Pier Luca Montessoro 2
(si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 7
Modello a spirale (analisi dei rischi)
Determinazione obiettivi, alternative e vincoli
Valutazione delle alternative, identificazione e risoluzione dei rischi
Pianificazione della fase successiva
Sviluppo e verifica del prossimo livello di prodotto
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 8
Qualità del software
• Qualità esterne
– riguardano il comportamento del prodotto percepibile dall’esterno (“scatola nera”) – sono l’obiettivo finale
• Qualità interne
– percepibile mediante esame interno del software o del processo che lo ha generato (“scatola trasparente”)
– consentono un più facile raggiungimento delle qualità esterne
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 9
Qualità esterne
• Correttezza
• Efficienza
– spazio di memoria – tempo di esecuzione
• Robustezza
– gestione di situazioni impreviste (dalle specifiche, ma previste dal
programmatore)
• Usabilità
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 10
Qualità interne
• Modularità e riusabilità dei componenti
• Trasparenza (“information hiding”)
• Manutenibilità (per correzioni, adattamenti a nuove specifiche, ampliamenti)
• Portabilità
• Leggibilità del codice e documentazione
• ...
Fondamenti di Informatica - Linguaggio C - Cenni sull’ingegneria del software
© 2003 Pier Luca Montessoro (vedere nota di copyright a pag. 2) 11