Ingegneria del Software 1 (A.A. 2011/2012)

Documenti analoghi
Architetture e Servizi Software per Internet (A.A. 2012/2013)

Materiale didattico. Sommario

Ingegneria del Software

Gestione dello sviluppo software Modelli Base

Ingegneria del Software

Ingegneria del Software 2010

Ingegneria del Software 2014

Ingegneria del Software L-A

Verifica e validazione: introduzione

Lezione 1 Ingegneria del Software II- Introduzione e Motivazione. Ingegneria del Software 2 Introduzione e Motivazioni 1

CAPITOLO 11 L AFFIDABILITÀ DEI COMPONENTI E DEI SISTEMI

14. Verifica e Validazione

Università degli Studi di Bologna. Facoltà di Ingegneria CORSO DI INGEGNERIA DEL SOFTWARE. Prof. Evelina Lamma

Introduzione al Calcolo Scientifico

AFFIDABILITA DI COMPONENTI E SCHEDE ELETTRONICHE

Metodologie di progettazione Avanzata

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Tecniche di progettazione per la tolleranza ai guasti. Codici non lineari

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Corso di Laurea in Informatica

Ingegneria del Software II

CORSO DI LAUREA IN INGEGNERIA ELETTRONICA (nuovo ordinamento) 1 anno anno. Insegnamento a scelta (elenco A) 3 anno

Corso di Ingegneria del Software. Concetti Introduttivi

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

L adozione di MATLAB e Simulink nei Corsi di Ingegneria al Politecnico di Milano. Maurizio Magarini MATLAB EXPO Milano, 4 novembre 2014

Dipartimento di Ingegneria. Corso di Laurea classe L-8 in Ingegneria Elettronica e Informatica conforme al D.M. 270

FACOLTA DI SCIENZE E TECNOLOGIE APPLICATE ANNO ACCADEMICO 2016/2017

Classe delle lauree specialistiche in Ingegneria Biomedica

La tolleranza ai guasti. Concetti generali

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Corso di Laurea in Informatica

4. Qualità. un concetto molte sfaccettature. Andrea Polini. Ingegneria del Software Corso di Laurea in Informatica

LA TECNOLOGIE MICROELETTRONICHE NELLA DIFFUSIONE DEI SERVIZI E CONTROLLI NEL MONDO FERROVIARIO. Adelio Salsano Università di Roma Tor Vergata

Ingegneria del Software ( )

Processi decisionali e modelli di simulazione

Tecnico per l automazione industriale. Standard della Figura nazionale

Capitolo 6 Le infrastrutture SoftWare

Programmazione con Java

Corso di Ingegneria del Software. Modelli di produzione del software

Traduzione e interpretazione

Progettazione di basi di dati

Prestazioni 1. Prestazioni 2. Prestazioni 3

Qualità dei processi software

UNIVERSITA DEGLI STUDI DI BARI

Anno Accademico UNIVERSITÀ LA SAPIENZA DI ROMA. Facoltà di INGEGNERIA. Regolamento Didattico del Corso di laurea in INGEGNERIA ELETTRONICA

2131 Specialisti in informatica 2132 Programmatori informatici Informatici e telematici Tecnici informatici

CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA

In altri termini cos è

Sviluppo software in gruppi di lavoro complessi 1

I Nuovi Corsi di Laurea in Informatica. La laurea triennale (classe L-31) L

FACOLTA DI SCIENZE E TECNOLOGIE APPLICATE ANNO ACCADEMICO 2015/2016

Fondamenti di Informatica T-1

Valutazione delle prestazioni

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Capacity Availability Continuity Infrastructure Management

TECNICO PER L?AUTOMAZIONE INDUSTRIALE

Modelli e Metodi per la Simulazione (MMS)

Introduzione ai Calcolatori Elettronici

IS Corso di Ingegneria del Software 1

Ingegneria del Software (e Prova Finale) Luciano Baresi

Università degli Studi della Repubblica di San Marino Corso di laurea triennale in Design. Anno Accademico 2016/17. I anno primo semestre

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Corso di Ingegneria del Software. Modelli di produzione del software

Dati di ingresso. 1. Iscritti ed ingressi in Ateneo a.a. 2014/15. Numerosità degli iscritti e degli ingressi

Introduzione alla simulazione

12. Verifica e Validazione del Software

Grafico è bello. Andamento degli iscritti alla classe prima in un istituto superiore. Tabella 1

AREA PROFESSIONALE DI RIFERIMENTO 9. TECNICO PER L AUTOMAZIONE INDUSTRIALE. Nomenclatura delle Unità Professioni (NUP/ISTAT):

Cos'e un linguaggio di programmazione?

Corso di laurea in Ingegneria Informatica e Corso di laurea Specialistica in Ingegneria Informatica. Facoltà di Ingegneria - Sede di Modena

Corso di Laurea Ingegneria Civile

Presso la sede di Latina e di Cisterna di Latina sono attivati, nella classe di Laurea 9, i seguenti corsi di studio di durata triennale

L evoluzione normativa dei sistemi di comando

UNIVERSITA DEGLI STUDI DI MILANO-BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI

Calcolatori Elettronici

Fieldbus Foundation e la sicurezza

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

Fieldbus Foundation e la sicurezza

Principi e Metodologie delle Costruzioni di Macchine

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

A.S. 2015/16 CLASSE 5 AEE MATERIA: LABORATORIO DI T.P.S.E.

1 anno Attività obbligatorie 30 cfu moduli ssd. 2 anno insegnamenti. F1801Q 16 Laurea Magistrale in Informatica regolamento didattico

Indice: Strategie generali Strategie specifiche Ripetizione Metodi per aumentare la validità

Obiettivi formativi specifici

SINOPIE - Repertorio Regionale dei Profili Professionali

MANUALE DELLA QUALITÀ SEZIONE 4.1: REQUISITI GENERALI

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

In passato, occuparsi di informatica era sinonimo di programmare computer

Informatica per l Ambiente e il Territorio

Problemi, algoritmi, calcolatore

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Contenuto del documento: Premessa...3 Principi Generali...3 Approccio Metodologico...3 Applicazione del Modello...5 Struttura del Modello...5 Definizi

Il concetto di informatica. Graziano Pravadelli (2012)

CORSO DI LAUREA TRIENNALE IN INFORMATICA (CLASSE L-31 - SCIENZE E TECNOLOGIE INFORMATICHE) MANIFESTO DEGLI STUDI PER L'A. A.

UNIVERSITA DEGLI STUDI DI BARI Aldo Moro

Piano di Testing. Fontolan Federico Giacomazzi Andrea Yoshida Kotono Rosada Fabio

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

Standard di Percorso Formativo Tecnico della logistica integrata

Transcript:

Ingegneria del Software 1 (A.A. 2011/2012) Docente: Prof. Andrea D Ambrogio Obiettivi: fornire i metodi e le tecnologie per inquadrare la produzione del software all'interno di una disciplina ingegneristica presentare il processo software e le più moderne tecniche di produzione. Propedeuticità Fondamenti di Informatica Programmazione orientata agli oggetti Esami: due appelli a fine I semestre primo appello: verifica in itinere + verifica finale secondo appello: verifica di recupero a fine corso un appello a fine II semestre (da scegliere tra due) due appelli a settembre Testo consigliato: I. Sommerville, Software Engineering (7th ed.), Addison-Wesley (anche in italiano) Website: http://www.uniroma2.it/didattica/isw1 UniRoma2 - Ingegneria del Software 1 1

Registrazione studenti UniRoma2 - Ingegneria del Software 1 2

SwEng an Unconsummed Marriage Software Engineering disciplina per la produzione del software secondo i principi dell ingegneria (progettazione e validazione) essenziale per fare del sw un prodotto industriale Se manca si incorre in scarsa qualità del prodotto scarsa competitività cost overrun time overrun UniRoma2 - Ingegneria del Software 1 3

SwEng an Unconsummed Marriage Sw Eng disciplina giovane.. per anni i costruttori di Hw hanno visto la produzione di sw come attività banale, simile a USO del calcolatore, che richiede principalmente abilità per anni l abilità programmativa, la conoscenza delle ultime novità su linguaggi, interfacce etc., è stata considerata sufficiente a fare un ingegnere del sw per anni la Sw Eng è stata considerata una branca della teoria della programmazione (o informatica teorica) UniRoma2 - Ingegneria del Software 1 4

SwEng Unconsummated Marriage Matrimonio non consumato quello tra la teoria della programmazione e i principi dell ingegneria (progettazione e validazione) (D.L.Parnas, CACM, Sept. 1997) Cose da far sposare ingegneri conoscano bene la teoria della programmazione informatici teorici conoscano bene i principi dell ingegneria UniRoma2 - Ingegneria del Software 1 5

SwEng Unconsummated Marriage Esempio: ingegneria chimica matrimonio tra chimica e ingegneria (termodinamica, meccanica, dinamica fluidi etc.) nessuno considera più l ingegneria chimica come branca della chimica SwEng, termine coniato 40 anni fa conferenza NATO, Garmisch, Germania 1968 per testimoniare l'esigenza che il software fosse inquadrato all'interno di una disciplina ingegneristica. UniRoma2 - Ingegneria del Software 1 6

SwEng Unconsummated Marriage Risultati del 68 l attività della programmazione non è né una scienza né una matematica. Ciò perché il programmatore non aggiunge conoscenza a conoscenza, bensì costruisce un PRODOTTO gli ingegneri devono basare sulla teoria della programmazione i loro principi di progettazione e convalida dei prodotti software i problemi e i rischi connessi alla produzione e all uso del software (bassa qualità, time e cost overrun) sono tipici dei prodotti costruiti da persone NON QUALIFICATE o, meglio, EDUCATE PER ALTRE PROFESSIONI UniRoma2 - Ingegneria del Software 1 7

Aspetti tipici dell Ingegneria del Sw (1) ACCIDENTALI del prodotto sw (superabili col progresso della tecnologia) di attitudine di manutenzione di specifica e progetto di teaming UniRoma2 - Ingegneria del Software 1 8

Ciclo di vita del Sw = 3 Stadi, 6 Fasi Produzione Sw = sviluppo + manutenzione Sviluppo (stadio1) = 6 fasi 1. Requisiti 2. Specifiche (o analisi dei requisiti) 3. Pianificazione 4. Progetto (preliminare e dettagliato) 5. Codifica 6. Integrazione Manutenzione (stadio2) copre circa il 60% dei costi del ciclo di vita Dismissione (stadio3) UniRoma2 - Ingegneria del Software 1 9

L'effetto delle modifiche L'effetto delle modifiche varia secondo la fase in cui vengono introdotte. In fasi avanzate, una modifica può comportare rivolgimenti che richiedono nuove risorse o correzioni importanti al progetto, cioè costi supplementari UniRoma2 - Ingegneria del Software 1 10

Dov è il Testing? Non esplicitamente menzionato tra le 6 fasi Non è una fase separata E un attività che ha luogo durante l intero sviluppo In due modi: Verifica (alla fine di ogni fase) Validazione (alla fine dello sviluppo) Verifica = la fase è stata ben svolta? (are we building the product right?) Validazione = il prodotto finale è buono? (are we building the right product?) UniRoma2 - Ingegneria del Software 1 11

Aspetti tipici dell Ingegneria del Sw (2) ESSENZIALI del prodotto sw (non superabili col progresso dei mezzi e conoscenze) complessità conformità cambiabilità invisibilità UniRoma2 - Ingegneria del Software 1 12

Aspetti tipici dell Ingegneria del Sw (3) DI COSTO del prodotto sw costo verso dimensione (size) costo verso repliche costo verso ampiezza di mercato UniRoma2 - Ingegneria del Software 1 13

Aspetti di Costo Costo proporzionale al quadrato del size (C=aS 2 ) fare due prodotti di size S/2 costa meno che farne uno di size S Produrre una replica non costa niente Vendere un prodotto di size doppio per il mercato richiede un prezzo 4 volte superiore a parità di (ampiezza di) mercato richiede un mercato (di ampiezza) 4 volte maggiore a parità di prezzo UniRoma2 - Ingegneria del Software 1 14

Definizioni (1) Prodotto Sw (o brevemente Sw) = = Codice + Documentazione Artefatto= prodotto Sw intermedio documento requisiti documento di specifica documento di progetto Codice = prodotto Sw finale Sistema Sw = insieme organizzato di prodotti Sw UniRoma2 - Ingegneria del Software 1 15

Definizioni (2) Cliente = soggetto che ordina il prodotto Sw Sviluppatore = soggetto che lo produce Utente = soggetto che lo usa Sw interno = cliente e sviluppatore coincidono Sw a contratto = cliente e sviluppatore sono soggetti differenti UniRoma2 - Ingegneria del Software 1 16

Aspetti di Affidabilità (Sw Reliability) Informalmente credibilità del prodotto software Formalmente probabilità che il prodotto software lavori correttamente in un determinato intervallo temporale UniRoma2 - Ingegneria del Software 1 17

Difetto, Guasto, Errore Difetto (defect) anomalia presente in un prodotto Sw Guasto (failure) comportamento anomalo del prodotto Sw dovuto alla presenza di un difetto Errore azione errata di chi (per ignoranza, distrazione, etc) introduce un difetto nel prodotto Sw UniRoma2 - Ingegneria del Software 1 18

Affidabilità Sw Intuitivamente: Un prodotto software con molti difetti è poco affidabile. E chiaro che: L affidabilità del prodotto migliora via via che si riduce il numero di difetti UniRoma2 - Ingegneria del Software 1 19

Caratteristiche dell affidabilità Sw (1) Relazione non-semplice tra: affidabilità osservata e numero di difetti latenti L eliminare difetti dalle parti del prodotto raramente usate Ha piccoli effetti sull affidabilità osservata. UniRoma2 - Ingegneria del Software 1 20

La regola 10-90 Esperimenti condotti su programmi di notevoli dimensioni mostrano che: Il 90% del tempo di esecuzione totale è speso eseguendo il solo 10% delle istruzioni Detto 10% è chiamato : core (nucleo) del programma UniRoma2 - Ingegneria del Software 1 21

Caratteristiche dell affidabilità Sw (2) Il miglioramento dell affidabilità per l eliminazione di un difetto: dipende dalla localizzazione del difetto (ovvero se appartiene o meno al nucleo del programma) UniRoma2 - Ingegneria del Software 1 22

Caratteristiche dell affidabilità Sw (3) Dunque, l affidabilità osservata dipende da: come è usato il prodotto in termini tecnici, dal suo profilo operativo (operational profile) UniRoma2 - Ingegneria del Software 1 23

Caratteristiche dell affidabilità Sw (4) Dunque, poiché utenti differenti usano il software secondo profili operativi diversi: I difetti che si manifestano per un utente potrebbero non manifestarsi per l altro Dunque, l affidabilità di un prodotto Sw: Dipende dall utente UniRoma2 - Ingegneria del Software 1 24

Confronto tra affidabilità Hw e Sw (1) I guasti Sw: sono dovuti alla presenza di difetti nei programmi il software non si consuma I guasti Hw son quasi sempre dovuti a: - consumo/deterioramento dei componenti - qualche componente non si comporta più come specificato - qualche componente si rompe UniRoma2 - Ingegneria del Software 1 25

Confronto tra affidabilità Hw e Sw (2) Esempi di difetti Hw un resistore si altera un condensatore va in corto una porta logica si blocca su 1 oppure 0 Per riparare un difetto hw: si sostituisce il componente UniRoma2 - Ingegneria del Software 1 26

Confronto tra affidabilità Hw e Sw (3) I difetti Sw sono latenti il sistema Sw continua a guastarsi a meno che non si effettuino le dovute correzioni UniRoma2 - Ingegneria del Software 1 27

Confronto tra affidabilità Hw e Sw (4) A causa della differenza negli effetti dei difetti: Le metriche usate per l affidabilità Hw Non sono estensibili al Sw UniRoma2 - Ingegneria del Software 1 28

Confronto tra affidabilità Hw e Sw (5) Dopo la riparazione dell Hw la sua affidabilità torna come era Dopo la riparazione del Sw: la sua affidabilità può aumentare o diminuire. UniRoma2 - Ingegneria del Software 1 29

Confronto tra affidabilità Hw e Sw (6) Obiettivo dell affidabilità Hw : stabilità (cioè tenere la frequenza di guasto costante) Obiettivo dell affidabilità Sw: crescita di affidabilità (cioè far decrescere la frequenza di guasto ) UniRoma2 - Ingegneria del Software 1 30

Nella realtà: andamento frequenza di guasto hardware (effetto dell eliminazione dei componenti difettosi prima, e dell usura poi) Mortalità infantile Usura Failure Rate Time UniRoma2 - Ingegneria del Software 1 31

Andamento frequenza di guasto software (effetto dell eliminazione dei difetti prima, e dell invecchiamento per manutenzione poi) UniRoma2 - Ingegneria del Software 1 32

Disponibilità (Sw Availability) % del tempo che il Sw è risultato usabile nel corso della sua vita Dipende dal numero di guasti che si verificano dal tempo necessario a ripararli UniRoma2 - Ingegneria del Software 1 33

Importanza di Sw Reliability/ Availability Metriche importanti per sistemi in cui la caduta del servizio crea cadute di efficienza e sicurezza (perdite economiche e sociali) sistemi di trasporto di governo del traffico aereo di governo del volo di produzione e distribuzione di energia di comunicazione etc UniRoma2 - Ingegneria del Software 1 34

Conclusioni (1) Nel corso degli anni la produzione del software ha seguito varie fasi: fase di abilità, nella quale prevalgono gli aspetti di lavoro individuale e creativo fase artigianale, nella quale il software viene prodotto da piccoli gruppi specializzati, spesso di alto livello di professionalità fase industriale, nella quale l'attività di sviluppo e manutenzione del software viene pianificata e coordinata, ed il lavoro del progettista viene sempre più supportato da strumenti automatici. UniRoma2 - Ingegneria del Software 1 35

Conclusioni (2) Il termine «ingegneria del software» viene coniato per la prima volta nel 1968 in una conferenza NATO a Garmisch (Germania) per testimoniare l'esigenza che il software fosse inquadrato all'interno di una disciplina ingegneristica. Lo standard IEEE Std. 610.12 (1990) ha formulato una definizione più completa: 1. Applicazione di un approccio sistematico, disciplinato e misurabile allo sviluppo, esercizio e manutenzione del software, cioè applicazione di principi ingegneristici al software 2. Studio degli approcci di cui al punto 1 UniRoma2 - Ingegneria del Software 1 36

Conclusioni (3) Il software può essere considerato come un insieme di elementi che formano una "configurazione" che include: programmi documenti dati multimediali! Viene realizzato! dall'ingegnere del software applicando un processo che conduca a risultati di qualità elevata Come per ogni altro prodotto di successo, si applica al software un approccio ingegneristico Caratteristiche del software: il software va "ingegnerizzato" il software non si consuma il software è complesso, invisibile, si conforma, si cambia UniRoma2 - Ingegneria del Software 1 37

Conclusioni (4) Come assicurare la qualità del software che si produce? Come bilanciare la "domanda" crescente pur mantenendo il controllo del budget a disposizione? Come aggiornare applicazioni vecchie (legacy) ma ancora necessarie? Come evitare tempi di consegna più lunghi di quelli pianificati? Come applicare con successo le nuove tecnologie software? I metodi e le tecniche di Ingegneria del Software hanno lo scopo di fornire le risposte a tali problemi, al fine di realizzare software con le desiderate caratteristiche di qualità. UniRoma2 - Ingegneria del Software 1 38

I miti (da sfatare) del software In caso di ritardo, basta aumentare il numero di programmatori Una descrizione generica è sufficiente a scrivere i programmi. Eventuali modifiche si possono facilmente effettuare in seguito Una volta messo in opera il programma, il lavoro è finito Non c'è modo di valutare la qualità fino a quando non si ha a disposizione il prodotto finale L'ingegneria del software è costosa e rallenta la produzione UniRoma2 - Ingegneria del Software 1 39