Il software: natura e qualità



Похожие документы
Concetti di base di ingegneria del software

11. Evoluzione del Software

Piano di gestione della qualità

12. Evoluzione del Software

Principi dell ingegneria del software Relazioni fra

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

La Metodologia adottata nel Corso

Automazione Industriale (scheduling+mms) scheduling+mms.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Architetture Applicative

Specifiche tecniche e funzionali del Sistema Orchestra

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)

Applicazione: Sistema Orchestra

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

LA GESTIONE DELLE INFORMAZIONI IN AZIENDA: LA FUNZIONE SISTEMI INFORMATIVI 173 7/001.0

Sistemi informativi secondo prospettive combinate

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

Configuration Management

Corso di Informatica

Generazione Automatica di Asserzioni da Modelli di Specifica

Gestione in qualità degli strumenti di misura

Capitolo 4 - Teoria della manutenzione: la gestione del personale

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

Architetture Informatiche. Dal Mainframe al Personal Computer

Metric Computo Metrico

Scienze del computer. Cliente. Funzioni del computer. Problema. Teorie. Ingegneria del Software. Strumenti e Tecniche per Risolvere il problema

B.P.S. Business Process Server ALLEGATO C10

Check list per la valutazione di adeguatezza e Indice di adeguatezza

Applicazione: SAI - Sistema di Audit Interno

Base di dati e sistemi informativi

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

SCHEDA TECNICA. Caratteristiche generali di prodotto. Denominazione ArchWebRC. Amministrazione Regione Campania. Note e considerazioni sul riuso /

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative

Architetture Informatiche. Dal Mainframe al Personal Computer

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA. UNI EN ISO 9001 (ed. 2008) n. 03 del 31/01/09 Salvatore Ragusa

Introduzione alla Progettazione per Componenti

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

CERTIFICAZIONE DI QUALITA

Presidenza della Giunta Ufficio Società dell'informazione. ALLEGATO IV Capitolato tecnico

Firewall applicativo per la protezione di portali intranet/extranet

Introduzione al data base

AMMINISTRARE I PROCESSI

figure professionali software

THEME Matrice di Competenza - Meccatronica

PROGRAMMAZIONE DIDATTICA ANNUALE. SETTORE TECNOLOGICO Indirizzo: Elettrotecnica ed Elettronica

Ciclo di vita del software: Tipologie di software

COS È. Il sistema consente di pianificare acquistare immagazzinare inventariare amministrare controllare il magazzino di cantiere.

Software MarkVision per la gestione della stampante

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione al Calcolo Scientifico

Software Open Source per sistemi embedded

Programmazione e controllo

CASO DI SUCCESSO X DATANET INSIEME A VENETO BANCA PER LA GESTIONE DELL ASSEMBLEA SOCI

Norme per l organizzazione - ISO serie 9000

IL PARTNER IDEALE. Consulenza IT & Soluzioni HR

Azione su un prodotto-servizio NC, per renderlo conforme ai requisiti

EN9100:2003 * I requisiti aggiuntivi rispetto alla ISO Torino, 6 Luglio 2005 Caserta, 12 luglio 205

Efficienza Produttiva. Il Piano d azione dell efficienza

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Liceo Tecnologico. Indirizzo Elettrico Elettronico. Indicazioni nazionali per Piani di Studi Personalizzati

Appendice III. Competenza e definizione della competenza

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Il modello di ottimizzazione SAM

I modelli normativi. I modelli per l eccellenza. I modelli di gestione per la qualità. ! I modelli normativi. ! I modelli per l eccellenza

Dal software al CloudWare

Database. Si ringrazia Marco Bertini per le slides

WEB SEMINAR Dettaglio servizio

TECNICO SUPERIORE DEI TRASPORTI E DELL INTERMODALITÀ

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

A3_4 V2.2 Analisi dei Requisiti e Specifica Relazioni con le altre fasi

INTEGRAZIONE E CONFRONTO DELLE LINEE GUIDA UNI-INAIL CON NORME E STANDARD (Ohsas 18001, ISO, ecc.) Dott.ssa Monica Bianco Edizione: 1 Data:

02 L Informatica oggi. Dott.ssa Ramona Congiu

ALLEGATO 14 PROBLEMATICHE APPLICATIVE PASSERELLA ESPORTAZIONE DATI E CAPRES

SOLUZIONI INFORMATICHE PER LO STUDIO LEGALE

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Servizio Monitoraggio Energia via Web. CEAM CWS32-H01 Professional Web Platform

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Dalla qualità alla fidelizzazione: soddisfazione clienti e dipendenti

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Tecniche di riuso del software: applicazione ad un caso di studio reale

Comunicazione per le PMI nuove soluzioni a un problema di sempre una practice di Orga 1925

La valutazione economico-tecnica del software contabile

LA LEAN MANUFACTURING E TOYOTA. QualitiAmo La Qualità gratis sul web

Digital Printing and Imaging Association

Транскрипт:

Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne Qualità desiderabili dei prodotti e dei processi software Qualità per tipologie specifiche di prodotti software Software 2 Il prodotto software Caratteristiche peculiari rispetto ad altre tipologie di prodotto intangibile malleabile estremamente facile da modificare fisicamente human-intensive il processo di fabbricazione è banale e rappresenta una frazione piccolissima del costo la produzione coincide sostanzialmente con progettazione e implementazione Classificazione: qualità del prodotto e del processo Prodotto: il sistema consegnato al cliente Ma per l ingegnere sono significativi anche i prodotti intermedi, o artefatti Processo: la composizione delle attività che portano al prodotto Le qualità del processo influenzano le qualità del prodotto (es.: un processo con test accuratamente pianificati genera un prodotto più affidabile) Software 3 Software 4

Classificazione: qualità esterne ed interne del prodotto Qualità esterne: visibili agli utenti (es.: affidabilità, prestazioni, etc.) Qualità interne: accessibili agli ingegneri (es.: verificabilità, rispetto delle specifiche di progetto, etc.) Le qualità interne influenzano le esterne (es.: la verificabilità migliora l affidabilità) Correttezza, affidabilità, robustezza Qualità esterne del prodotto (solitamente) Strettamente correlate Intuitivamente: un software possiede queste qualità se fa ciò che l utente si aspetta, realizza le funzionalità attese Software 5 Software 6 Correttezza Limiti del concetto di correttezza Un programma è corretto se soddisfa i suoi requisiti funzionali (cioè se svolge i suoi compiti come previsto) Se i requisisti funzionali sono specificati formalmente, è possibile dimostrare (matematicamente) o confutare (matematicamente o empiricamente) la correttezza di un software I requisiti funzionali possono essere ambigui: impossibile stabilire la correttezza del software sbagliati: il software può essere corretto ma non soddisfare l utente E una proprietà assoluta difficile definire un grado di correttezza non tutte le scorrettezze sono ugualmente importanti Software 7 Software 8

Metodi per verificare la correttezza Sperimentali: testing Anlitici: ispezioni prove di correttezza esecuzion simbolica Affidabilità Definita in termini statistici: probabilità che il software operi come atteso in un determinato intervallo di tempo Un software si può considerare affidabile se la sua affidabilità supera una determinata soglia(ad esempio: uptime di un server web > 99.9%) Software 9 Software 10 Affidabilità Affidabilità e correttezza I prodotti ingegneristici in genere hanno una garanzia Il software invece viene venduto con una clausola di non responsabilità Se i requisiti funzionali sono esatti (cioè rappresentano fedelmente le aspettative dell utente) la correttezza implica l affidabilità non vale il viceversa Ma i requisiti funzionali possono essere sbagliati: un software corretto può non essere affidabile Software 11 Software 12

Robustezza Capacità del software di operare in modo accettabile in condizioni non previste (input inatteso, malfunzionamento hardware) Mentre la correttezza è il rispetto di requisiti specificati, la robustezza è il rispetto di requisiti non specificati Affidabilità e robustezza anche per i processi Prestazioni Qualità esterna del prodotto (solitamente) Quantità di compiti che un software è in grado di svolgere in un tempo determinato Esempio: servire N richieste al secondo Influenzate dall hardware disponibile Influenzate dall efficienza (uso delle risorse senza sprechi di tempo e spazio) Influiscono sull usabilità Software 13 Software 14 Prestazioni Influenzate dalla complessità degli algoritmi usati Per molti problemi sono stati dimostrati limiti inferiori della complessità degli algoritmi Influenzano la scalabilità, cioè la capacità di gestire quantità maggiori di input Prestazioni Come valutarle? studiando la complessità degli algoritmi usati i risultati teorici forniscono ordini di grandezza per tempo e spazio: O(n), O(n 2 ), le prestazioni di un implementazione dipendono anche dalle costanti: an+b, an 2 +bn+c, studiando l implementazione misura: sistemi hardware e software di monitoraggio analisi: studio analitico di un modello del prodotto (spesso basato sulla teoria delle code) simulazione: misura di un modello del prodotto (più costosa e accurata) Software 15 Software 16

Prestazioni Usabilità Come migliorarle? migliorando l efficienza dei singoli moduli può essere necessario riprogettare l architettura del sistema delegando alcune operazioni critiche ad hardware special-purpose Qualità esterna del prodotto Misura quanto un utente reputa il software facile da usare Qualità soggettiva un utente principiante può gradire messaggi frequenti e prolissi un utente esperto può essere infastidito un utente principiante può preferire un interfaccia grafica un utente esperto può preferire una riga di comando Software 17 Software 18 Usabilità Verificabilità Per sistemi interattivi dipende dalla coerenza e dalla prevedibilità dell interfaccia utente Standardizzazione delle interfacce Per sistemi embedded dalla facilità di installazione e configurazione Dipende anche da correttezza e prestazioni Misura quanto è facile verificare le proprietà del software come correttezza e prestazioni Generalmente proprietà interna Come migliorarla? progettazione modulare linguaggi di programmazione adatti norme di codifica software monitor (codice inserito nel software per monitorare prestazioni o correttezza) Software 19 Software 20

Manutenibilità Qualità interna del prodotto Manutenzione: attività di modifica del software dopo il suo rilascio Manutenibilità: facilità di manutenzione Il 60% dei costi del software è dovuto alla manutenzione Manutenibilità Tre tipi di manutenzione: correttiva: corregge gli errori presenti adattativa: modifica il software per permetterne il funzionamento quando cambiano le condizioni operative perfettiva: modifica il software per migliorarne alcune qualità aggiunta di funzioni (nuovi requisiti) miglioramento delle prestazioni miglioramento dell usabilità Software 21 Software 22 Legacy software Software ereditato Software che esiste in un organizzazione da lungo tempo Alto valore strategico, alti investimenti Obsoleto per tecnologie software e hardware utilizzate Difficile da modificare e mantenere Reverse engineering o reengineering Manutenibilità Si può considerare l insieme di due diverse qualità: riparabilità: facilità di eliminare difetti del software (manutenzione correttiva) evolvibilità: facilità di modificare il software per adattarlo a un nuovo ambiente (manutenzione adattativa) o migliorarne le qualità (manutenzione perfettiva) Software 23 Software 24

Manutenibilità Manutenibilità Riparabilità: migliorabile con progettazione modulare debole accoppiamento fra moduli linguaggi di programmazione di alto livello ambienti di programmazione che rendano più facile individuare gli errori Evolvibilità: favorita da progettazione modulare le modifiche dovrebbero iniziare dalla specifica e non dall implementazione l evolvibilità tende a decrescere con l introduzione di nuove versioni Software 25 Software 26 Evolvibilità Riusabilità Molto importante: alcuni software degli anni 60 sono tutt ora in uso, ad es: OS 360, usato dalle banche SABRE, sistema di prenotazione dei voli aerei inizialmente sviluppato da IBM per American Airlines attualmente utilizzato da più di 400 compagnie aeree, 30.000 agenzie di viaggio e da alberghi, ferrovie e noleggi auto Qualità interna Possibilità di riutilizzare un prodotto software (o parte di esso) nella creazione di un altro, eventualmente con modifiche marginali. Librerie di componenti riusabili. Ad es: librerie matematiche (inizialmente in Fortran, ora in C e C++) librerie per interfacce grafiche librerie per la simulazione Software 27 Software 28

Riusabilità Portabilità Facilitata da progettazione modulare. Uno degli scopi della programmazione orientata agli oggetti Anche: riuso degli artefatti nei processi (specifiche, manuali) riuso dei processi Qualità interna del prodotto Capacità del software di funzionare su piattaforme hardware e software diverse Hardware: differenti architetture o dispositivi (pc, palmari, cellulari) Software: differenti sistemi operativi o software di base come DBMS o interfaccia grafica Software 29 Software 30 Portabilità Comprensibilità Economicamente importante Facilitata da progettazione modulare (in modo da confinare le dipendenze dalla piattaforma in pochi moduli) Esempi: UNIX e Linux Importante nei sistemi distribuiti Qualità interna del prodotto Dipende dalla progettazione e dalla documentazione del sistema e dagli strumenti usati Dipende anche dalla difficoltà del problema che il software risolve Necessaria per la manutenibilità Software 31 Software 32

Interoperabilità Produttività Capacità di un software di cooperare con altri Facilitata dalla definizione e dall uso di interfacce standard (ad es. plug and play nei sistemi operativi) Permette la creazione di soluzioni modulari (ad es. plugin nei browser web) sistemi aperti (ad es. CORBA) Proprietà del processo, inverso del tempo necessario a produrre un software Varia da individuo a individuo La produttività di una squadra dipende dalla produttività degli individui (ma è molto meno della somma!) Riuso per aumentarla (tradeoff) Influenza i processi, e viceversa Difficile da misurare (metriche) Software 33 Software 34 Tempestività Visibilità Qualità di un processo: capacità di rendere disponibile il software al momento giusto. Commercialmente, può essere più importante di altre qualità Richiede una precisa pianificazione temporale (milestone) Possibilità: consegna incrementale Richiede processo incrementale e progetto scomponibile Qualità del processo: misura quanto lo stato del processo è documentato in ogni momento. Occorre documentare i passi i prodotti intermedi Favorisce la coordinazione (evita i conflitti) Serve a rispondere a richieste del management o del committente sullo stato di avanzamento Rende più facile la sostituzione di membri della squadra (turnover). Software 35 Software 36

Qualità in tipologie specifiche di prodotti software Alcune qualità sono particolarmente significative per determinate tipologie di prodotti Qualità in Sistemi informativi Sistemi real-time Sistemi distribuiti Sistemi embedded Sistemi informativi Sistemi atti a gestire informazioni Spesso l informazione è la risorsa più importante di un organizzazione Qualità: Integrità dei dati Sicurezza Disponibilità dei dati Prestazioni delle transazioni Usabilità Personalizzazione (end-user computing) Software 37 Software 38 Sistemi real-time Sistemi distribuiti Sistemi in cui la correttezza dipende anche dal tempo in cui avviene l elaborazione (automazione di fabbrica, sorveglianza, controllo aereo, gestione del mouse, ) Spesso utilizzati in applicazioni in cui si richiede alta affidabilità (sistemi mission critical) safety (impossibilità del verificarsi di situazioni pericolose) Sistemi software che funzionano su macchine diverse connesse in rete Consentono di migliorare affidabilità e prestazioni per mezzo di replicazione e distribuzione Qualità peculiari: portabilità livello di distribuzione capacità di tollerare il frazionamento capacità di tollerare malfunzionamenti di una parte dei nodi Software 39 Software 40

Sistemi embedded Misura delle qualità Sistemi in cui il software non ha interfacce verso l utente finale Usati in aerei, robot, elettrodomestici, automobili, cellulari, Scelta tra implementazione di funzionalità in hardware o software Spesso parti di sistemi informativi, in tempo reale, distribuiti Es. sistema di monitoraggio pazienti in un ospedale Individuate le qualità, è necessario verificare se un prodotto o processo le possiede (quality assurance) Nell ingegneria del software, oggi solo alcune qualità (es. prestazioni) si possono misurare con precisione. La misura di altre qualità è un area di ricerca molto attiva (metriche software). Software 41 Software 42