Sistemi Software (A.A. 2017/2018)

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

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

Esami. Ingegneria del Software. Obiettivi del corso. Sir Tony Hoare s suggestion. There are two ways of constructing a software design.

Ingegneria del Software

Ingegneria del Software 2010

Gestione dello sviluppo software Modelli Base

Materiale didattico. Sommario

Ingegneria del Software

Ingegneria del Software 2014

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

Verifica e validazione: introduzione

Introduzione al corso

Ingegneria del Software L-A

Corso di Ingegneria del Software. Introduzione al corso

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

Manutenzione Bruno Cipolla

PIANO DI LAVORO CALCOLO DELLE PROBABILITA, STATISTICA E RICERCA OPERATIVA. Classe quinta specializzazione Informatica Anno scolastico

Capitolo 7. Ingegneria del Software. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

AFFIDABILITA DI COMPONENTI E SCHEDE ELETTRONICHE

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

Affidabilità. Introduzione e definizioni

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

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

Architetture dei Calcolatori (Lettere

Tecnologie dei Sistemi di Automazione

Corso di Laurea Magistrale in Ingegneria Informatica Curriculum in IT Management. Ingegneria del Software II (IS2)

12. Verifica e Validazione del Software

Classe delle lauree specialistiche in Ingegneria delle Telecomunicazioni

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Introduzione al Calcolo Scientifico

all ingegneria del software Introduzione all'ingegneria del software

AFFIDABILITÀ DEI SISTEMI

UNIVERSITA DEGLI STUDI DI CAGLIARI FACOLTA DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA CHIMICA REGOLAMENTO DIDATTICO A.A.

AFFIDABILITA DI COMPONENTI E SCHEDE ELETTRONICHE

Esempi di possibili domande d esame.

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

14. Verifica e Validazione

Ingegneria Informatica

L importanza della manutenzione nella gestione di una impresa

Corso di Ingegneria del Software. Modelli di produzione del software

Bachelor of Science in Ingegneria elettronica

Prestazioni 1. Prestazioni 2. Prestazioni 3

Prestazioni e affidabilità di Sistemi Introduzione. Analisi quantitativa: scopi

Tecnologie dei Sistemi di Automazione

î DEFINIZIONE DESIGN FOR X PROF. CATERINA RIZZI DIPARTIMENTO DI INGEGNERIA GESTIONALE, Design for X

Perché l informatica nei corsi umanistici? E solo una questione tecnica, far apprendere l uso dello strumento?

Sviluppo software in gruppi di lavoro complessi 1

INFORMATICA NOVITÀ IL LINGUAGGIO JAVA. Massimiliano Bigatti. Guida alla programmazione di base IN ALLEGATO AL VOLUME

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Ingegneria dell Automazione ATTIVAZIONE

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

Installatori/trici di impianti e macchinari

Introduzione al Calcolo Scientifico

La tolleranza ai guasti. Concetti generali

PROGRAMMAZIONE DIDATTICA

Corso di Ingegneria del Software. I costi del software

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

Valutazione delle prestazioni

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

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

CORSO DI LAUREA IN INFORMATICA

produzione, dei servizi e delle professioni (art. 11 comma 4 DM509 del 3/11/99) sono state consultate in data 15/01/2001

SCD IS. Premesse al Corso. UniPD Ingegneria del Software mod. A 1. Ingegneria del software 1. Parole chiave 1. Ingegneria del software 2

Introduzione ai Calcolatori Elettronici

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

Luigi Piroddi

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

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

Calcolatori Elettronici

Fondamenti di Informatica. Proff. B.Buttarazzi & A.D Ambrogio A.A. 2011/2012

Corso di Ingegneria del Software. Modelli di produzione del software

Metodi formali per la verifica dell affidabilità di sistemi: materiale didattico

SMART ASSET 3 SERVIZI DI ENTERPRISE ASSET MANAGEMENT

Verifica e validazione: introduzione

Obiettivi formativi specifici

Nuova Norma SIL - IEC61508 Il punto di vista del costruttore

PIANO DI LAVORO DEL DOCENTE. Docente: Giuliana Pederzoli Classe: 3 A Indirizzo: SIA Disciplina: INFORMATICA Ore di lezione settimanali : 4

Manifesto degli Studi della LT in Fisica dell Atmosfera e Meteorologia

FACOLTA DI SCIENZE E TECNOLOGIE APPLICATE ANNO ACCADEMICO 2016/2017

Corso di laurea specialistica in Ingegneria Informatica

28/S-Classe delle lauree specialistiche in ingegneria civile Ingegneria dei Trasporti e della Logistica Nome del corso

34/S-Classe delle lauree specialistiche in ingegneria gestionale Nome del corso. Ingegneria Gestionale

Il corso di Sistemi Operativi Introduzione al corso di Sistemi Operativi

CORSO DI LAUREA IN INFORMATICA

Il Cambiamento e l Innovazione nella Professione: il Controllo Direzionale

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

Metodologie di progettazione Avanzata

Fieldbus Foundation e la sicurezza

CENTRO OFFICINA MECCANICA INDUSTRIALE

Fieldbus Foundation e la sicurezza

GESTIONE DEI SISTEMI INFORMATIVI IN AZIENDA. La funzione sistemi informativi

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

B1 Descrizione del percorso di formazione CORSO DI LAUREA IN INFORMATICA

Sistemi ICT per il Business Networking

Transcript:

Sistemi Software (A.A. 2017/2018) 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. Esami: 2 appelli a fine I semestre 2 appelli a fine II semestre 2 appelli a settembre Testo consigliato: I. Sommerville, Software Engineering, Addison-Wesley (anche in italiano) Website: Didattica Web UniRoma2 - Sistemi Software 1

SwEng: Unconsummated 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 - Sistemi Software 2

SwEng: Unconsummated 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 - Sistemi Software 3

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 - Sistemi Software 4

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 circa 50 anni fa conferenza NATO, Garmisch, Germania 1968 per testimoniare l'esigenza che il software fosse inquadrato all'interno di una disciplina ingegneristica. UniRoma2 - Sistemi Software 5

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 - Sistemi Software 6

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 - Sistemi Software 7

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 - Sistemi Software 8

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 - Sistemi Software 9

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 - Sistemi Software 10

Defect Removal Efficiency (DRE) Fa riferimento alla percentuale di difetti trovati prima del rilascio del prodotto software Se il team di sviluppo trova 900 difetti prima del rilascio e gli utenti trovano 100 difetti in un intervallo temporale standard a partire dalla data di rilascio (tipicamente 90 giorni) allora il valore di DRE è pari al 90% In base a statistiche aggiornate al 2016, il DRE medio negli Stati Uniti è pari al 92% (i valori cambiano in base al modello di ciclo di vita) UniRoma2 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 16

Aspetti di Affidabilità Informalmente (Sw Reliability) credibilità del prodotto software Formalmente probabilità che il prodotto software lavori correttamente in un determinato intervallo temporale UniRoma2 - Sistemi Software 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 - Sistemi Software 18

Intuitivamente: Affidabilità Sw 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 25

Confronto tra affidabilità Hw e Sw Esempi di difetti Hw (2) 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 31

Andamento frequenza di guasto software (effetto dell eliminazione dei difetti prima, e dell invecchiamento per manutenzione poi) UniRoma2 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 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 - Sistemi Software 39