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

Documenti analoghi
Corso di Ingegneria del Software. Modelli di produzione del software

Materiale didattico. Sommario

Valutazione delle prestazioni

7. Architetture Software

Modelli e Metodi per la Simulazione (MMS)

UD1. L informatica nell era di Matrix

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

Analisi e specifica dei requisiti

Introduzione al Calcolo Scientifico

Reti di Calcolatori a.a

Calcolatori Elettronici

Sistemi e modelli. Sistemi

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Corso di Informatica

Lo sviluppo del progetto informatico

Prof. Rossella Cancelliere

Ingegneria del Software 2014

Corso di Linguaggi di Programmazione + Laboratorio

Corso di formazione ambientale Introduzione all utilizzo dei modelli previsionali per la valutazione dei livelli di campo elettromagnetico

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

IE FISICA Verifica 10 gennaio 2015 tutti gli esercizi e tutte le domande

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013

Processi decisionali e modelli di simulazione

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

Macchina Astratta: struttura e realizzazione.

Ingegneria del Software 2010

Descrizione processo

Corso di Ingegneria del Software. Concetti Introduttivi

Il Sistema Operativo

Prefazione...IX. Ringraziamenti...XIII. Gli autori...xv. Capitolo 1 - Le tecnologie mobili: la nuova generazione di tecnologie dell informazione...

Il PROCESSO UNIFICATO

Elena Baralis 2007 Politecnico di Torino 1

Modularizzazione del software

Ravenna 2010 La comunicazione ambientale. La norma ISO 14063: Linee Guida per la Comunicazione Ambientale

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

Capitolo 6 Le infrastrutture SoftWare

Ingegneria del Software L-A

Struttura del corso. Università Degli Studi Di Napoli Federico II. Elementi di informatica e web a.a. 2015/2016

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

CORSO DI PROGRAMMAZIONE ios BASE IN LINGUAGGIO NATIVO OBJECTIVE-C

18/05/2014. Università di Ferrara Corso di Ingegneria del Software AA 2013/2014

Correzione degli errori

Progettazione del Software I (Ing.Informatica Nuovo Ord.) Canale A-L / A.A Marco Cadoli

Unità A1. Informazioni e dati. Obiettivi. Informazione automatica. Informatica. Informazione e conoscenza. Il concetto di informazione

LA MECCATRONICA SPIEGATA DALLE AZIENDE: PRESENTE E FUTURO DELLA PROGETTAZIONE DI MACCHINE. Udine, 4 dicembre 2014

U N I V E R S I T À D E G L I S T U D I D I B O L O G N A

Gestione della Conoscenza

Basi di Dati e Sistemi Informativi su Web

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Progettare per competenze

Corso di PED. L interesse della fisica è il mondo che ci circonda. La descrizione che la fisica fornisce è di tipo quantitativo.

Il linguaggio di programmazione Python

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Applicazione: Trattamento Dati Personali

I sistemi operativi. Prof. Daniele Contarino

Valutazione di lingua e contenuti. L importanza del feedback. Graziano Serragiotto.

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Programmazione con Java

Prof.ssa D.F. Iezzi. Statistica Sociale - modulo A

Laboratorio di Calcolo A

Stimolazione Magnetica Transcranica

Linguaggi di programmazione e astrazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Lezione 10 programmazione in Java. Anteprima. Programmazione OO. La programmazione orientata agli Oggetti. Javadoc. Esercizi

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Programmazione è gestione di eventi

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

Principi e Metodologie delle Costruzioni di Macchine

Standard di qualità del Settore per il Part-time e le prove di accesso

PROVE INVALSI A.S / 06

INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C - IEI

Progettazione di basi di dati

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Macchine astratte, linguaggi, interpretazione, compilazione

CAPITOLO CAPIT Organizzazioni e Teoria ganizzazioni e T Organizzativa

IL SITO WEB. Concetti generali

Il tubo del tempo. Dalla descrizione grammaticale alla cognizione della grammatica

Disegno di Macchine. Docente: ing. Francesca Campana

10 ottobre Marina Bertolini Dipartimento di Matematica F.Enriques Università degli Studi di Milano

Reti di Calcolatori RETI PEER-TO-PEER

La simulazione è l'imitazione di un processo o di un sistema reale per un

Corso di Formazione: I Controlli Ufficiali per i Materiali e Oggetti a contatto con gli alimenti

Protocollo dei saperi imprescindibili

PROBLEMI ALGORITMI E PROGRAMMAZIONE

MaX - Un applicazione software per il

LA TEORIA DELL OFFERTA. Tecnologia e costi di produzione

Configurazione di riferimento di IP Office Server Edition IP Office 8.1

Applicazioni Pratiche del Questionario sulla Motivazione

MODELLISTICA DI IMPIANTI E SISTEMI Syllabus e Testi di Riferimento Prof. Giuseppe Iazeolla

Introduzione alla programmazione Object Oriented. Luca Lista

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

SCUOLA SECONDARIA DISCIPLINA DI RIFERIMENTO: TECNOLOGIA CLASSE TERZA

UML I diagrammi implementativi

Prof. Pagani corrado JAVA

Classe III specializzazione elettronica. Sistemi automatici

La balanced scorecard

Introduzione alle stringhe e algoritmi collegati

Transcript:

4. Qualità un concetto molte sfaccettature Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 4. Qualità 1 / 23

Sommario 1 Tipiche Qualità del Processo (Ingegneria del Software) 4. Qualità 2 / 23

Sommario 1 Tipiche Qualità del Processo (Ingegneria del Software) 4. Qualità 3 / 23

Una definizione Qualità: qualsiasi caratteristica, proprietà o condizione di una persona o di una cosa che serva a determinarne la natura e a distinguerla dalle altre Nel nostro caso la cosa di cui si parla è il software (prodotto) oppure il processo seguito per produrlo...dunque: Qualità nell ambito dell ingegneria del software: qualsiasi caratteristica, proprietà o condizione di un prodotto o processo di sviluppo che serva a determinarne la natura e a distinguerlo da altri prodotti software. In particolare siamo interessati a quelle proprietà che ci permettono di distinguere software che forniscono le stesse funzionalità. (Ingegneria del Software) 4. Qualità 4 / 23

Qualità È necessario definire delle metriche per poter associare valori ad una specifica qualità dunque per poter misurare una qualità In generale non tutte le Qualità possono essere misurate in modo semplice e assoluto. Possono invece dipendere da fattori esterni quali il contesto d uso o da valutazioni soggettive che fa l attore che esegue la misurazione. Formalmente una metrica definisce una corrispondenza da un insieme di entità e attributi del mondo reale su di una rappresentazione o modello nel mondo matematico con l obiettivo di ottenere maggiori informazioni e comprensione del mondo reale (Shari Pfleeger) (Ingegneria del Software) 4. Qualità 5 / 23

Classificazione della qualità del software Le qualità del software si possono classificare a seconda della percezione che ne hanno gli utenti (qualità esterne) o gli sviluppatori (qualità interne). Le varie qualità possono comunque essere interrelate e mostrare contemporaneamente aspetti esterni ed interni La caratterizzazione di qualità può poi riferirsi al prodotto o al processo. (Ingegneria del Software) 4. Qualità 6 / 23

Correttezza esterna Un software si dice corretto se si comporta in accordo a quanto definito nella specifica del sistema. Come è possibile verificare la correttezza? Come viene misurata la correttezza? Esempio: definire una libreria di supporto a manipolazioni matematiche sui naturali: (Ingegneria del Software) 4. Qualità 7 / 23

Affidabilità esterna Un sistema software è affidabile se un utente può confidare nel suo comportamento. In generale l affidabilità à definita statisticamente in base al numero di errori che si manifestano dato un certo numero di prove. Attenzione: il software spesso contiene bachi quando rilasciato. Come è possibile verificare l affidabilità? Che tipo di misura può essere usata? Esempio: definire una libreria di supporto a manipolazioni matematiche su numeri reali maggiori di -1: (Ingegneria del Software) 4. Qualità 8 / 23

Robustezza esterna Misura di quanto il software si comporta in maniera ragionevole in circostanze non previste nella specifica. Come possiamo verificare la robustezza? Come può essere misurata? Esempio: definire una libreria di supporto a manipolazioni matematiche sui naturali: Affidabilità e Robustezza tipiche qualità di prodotto applicabili anche al processo. (Ingegneria del Software) 4. Qualità 9 / 23

Performance esterna Questa qualità in genere si riferisce alla velocità con cui il sistema risponde agli stimoli (latency), od anche al numero di stimoli che riesce a gestire nell unità di tempo (throughput). Come possiamo verificare la performance? Come possiamo misurarla? misurazioni a run time analisi simulazione Lo studio si può riferire a diversi casi: ottimo, medio, pessimo (Ingegneria del Software) 4. Qualità 10 / 23

Efficienza interna/esterna L efficienza si riferisce alla capacità del software di utilizzare le risorse (cpu, disco in particolare) Le dimensioni del software si riferiscono allo spazio di memoria occupato ai diversi livelli della gerarchia di memoria nelle diverse fasi del ciclo di vita. La sua importanza è di nuovo crescente vista la crescente importanza dei sistemi embedded. Che tipo di misura può essere utilizzata? (Ingegneria del Software) 4. Qualità 11 / 23

Usabilità esterna Questa qualità si riferisce alla semplicità d uso che viene sperimentata dall utente obiettivo del software. Ovviamente presenta forti fattori soggettivi. Uso di interfacce grafiche certamente aumentano usabilità di un sistema. Allo stesso tempo sistema dovrà ovviamente essere affidabile e fornire buone performance. Che tipo di misura possiamo utilizzare? Come possiamo ricavarla? Ruolo della standardizzazione? (Ingegneria del Software) 4. Qualità 12 / 23

Verificabilità interna Questa qualità fornisce una misura di quanto sia complesso verificare la correttezza del sistema. Include nozione di testabilità. Come possiamo misurarla? Quali techniche possono essere messe in atto per aumentare la verificabilità o la testabilità? Uso di metodi getter o setter aumentano testabilità? Uso di pre-, post-condizione e meccanismi di eccezione. (Ingegneria del Software) 4. Qualità 13 / 23

Manutenibilità interna... ma In generale si riferisce alla possibilità di modificare il prodotto una volta rilascito per ripararlo o adattarlo o migliorarlo (riparabilità ed evolvabilità). Come possiamo misurare la manutenibilità nei vari casi? Come può essere aumentata? Il caso dei sistemi a plug-in. (Ingegneria del Software) 4. Qualità 14 / 23

Riusabilità interna Principalmente riferita a componenti software e non a interi sistemi, misura la capacità e la semplicità con cui il componente può essere utilizzato in differenti contesti. Come possiamo migliorare riusabilità? Come può essere misurata? (Ingegneria del Software) 4. Qualità 15 / 23

Portabilità interna ed esterna Un software è portabile se può essere facilmente istallato ed utilizzato in diversi contesti e piattaforme. Come può essere misurata la portabilità? Come può essere migliorata? Il caso del linguaggio Java? Non si riferisce solo al linguaggio usato. (Ingegneria del Software) 4. Qualità 16 / 23

Comprensibilità interna Questa qualità specifica quanto sia semplice capire a quali compiti le varie componenti del software assolvono. Influenza fortemente altre qualità quali quelle collegate alla manutenibilità. Come possiamo misurarla? Come può essere migliorata? (Ingegneria del Software) 4. Qualità 17 / 23

Interoperabilità esterna ma anche interna Si riferisce alla capacità di poter far interagire il software prodotto con altri software presenti. Un esempio dalla notte dei tempi è quello delle pipe di Unix. La standardizzazione gioca un ruolo fondamentale in questo contesto!! Misure? (Ingegneria del Software) 4. Qualità 18 / 23

Produttività Tipiche Qualità del Processo Si riferisce all efficienza ed alla velocità con cui permette di rilasciare il prodotto. Efficienza vuol dire in particolare ridurre le risorse impegnate! Ovviamente non esiste un processo migliore ma la produttività dipenderà dal contesto. Lo stesso processo può fornire differenti valori di produttività in differenti contesti di produzione. (Ingegneria del Software) 4. Qualità 19 / 23

Timeliness Tipiche Qualità del Processo La capacità di un processo di permettere di rilasciare un prodotto in accordo alle scadenze. In generale richiede processo attento hai rischi e spesso processi incrementali offrono maggiori garanzie. (Ingegneria del Software) 4. Qualità 20 / 23

Visibilità Tipiche Qualità del Processo Si riferisce alla possibilità che hanno i vari attori partecipanti allo sviluppo di capire a che punto dello sviluppo ci si trova. In generale produzione periodica di documentazione aumenta la visibilità del processo, così come la precisa definizione di eventi di transizione. Particolarmente importante quando i team di sviluppo sono volatili. In questi casi altrettanto importante diventa comprensibilità riferita al prodotto. (Ingegneria del Software) 4. Qualità 21 / 23

Tipiche Qualità del Processo Qualità ed ambiti specifici Qualità definite fin qui sono di natura generale In ambiti specifici si potranno considerare altre caratteristiche: Sicurezza Transaction performance Mobilità Safety... (Ingegneria del Software) 4. Qualità 22 / 23

Riferimenti Tipiche Qualità del Processo Capitolo 2 Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli Fondamenti di Ingegneria del Software, 2 a Ed. Italiana Prentice Hall, 2004. (Ingegneria del Software) 4. Qualità 23 / 23