11. Evoluzione del Software



Похожие документы
12. Evoluzione del Software

Configuration Management

Progetto. Portale Turistico Regionale. Andrea Polini, Oliviero Riganelli, Massimo Troiani. Ingegneria del Software Corso di Laurea in Informatica

7. Architetture Software

La Metodologia adottata nel Corso

Concetti di base di ingegneria del software

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

MService La soluzione per ottimizzare le prestazioni dell impianto

Norme per l organizzazione - ISO serie 9000

LA REVISIONE LEGALE DEI CONTI La comprensione

10. Interfaccia Utente

CP Customer Portal. Sistema di gestione ticket unificato

Generazione Automatica di Asserzioni da Modelli di Specifica

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

La tecnologia cloud computing a supporto della gestione delle risorse umane

La Guida per l Organizzazione degli Studi professionali

5. Requisiti del Software II

Appendice III. Competenza e definizione della competenza

ADEGUATEZZA O ADEGUAMENTO DEL SOFTWARE PRÊT-À-PORTER ALLE ESIGENZE DEGLI UTENTI PROF. FABIO A. SCHREIBER POLITECNICO DI MILANO

1- Corso di IT Strategy

Comprendere il Cloud Computing. Maggio, 2013

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Progetto PI , passo A.1 versione del 14 febbraio 2007

Le fattispecie di riuso

Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi.

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

CERTIFICAZIONE ISO 14001

Gestione Turni. Introduzione

Business Process Management

Introduzione alla Progettazione per Componenti

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

Lezione 3: Introduzione all analisi e valutazione delle azioni. Analisi degli Investimenti 2014/15 Lorenzo Salieri

Piano di gestione della qualità

LE CARATTERISTICHE. Caratteristiche. - tel fax pag. 2

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Indice strutturato dello studio di fattibilità

Automazione Industriale (scheduling+mms) scheduling+mms.

I Sistemi di Gestione Integrata Qualità, Ambiente e Sicurezza alla luce delle novità delle nuove edizioni delle norme ISO 9001 e 14001

Change Management. Obiettivi. Definizioni. Responsabilità. Attività. Input. Funzioni

Ciclo di vita dimensionale

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

PIANIFICAZIONE DELLA FORMAZIONE: processi, attori e strumenti

ILSISTEMA INTEGRATO DI PRODUZIONE E MANUTENZIONE

La progettazione centrata sull utente nei bandi di gara

Ingegneria del Software Requisiti e Specifiche

Sistemi informativi secondo prospettive combinate

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Tecniche di Prototipazione. Introduzione

Casi concreti PREMESSA casi concreti completa e dettagliata documentazione nessun caso concreto riportato è descritto più di una volta

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

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

STORE MANAGER.. LE COMPETENZE CARATTERISTICHE E I BISOGNI DI FORMAZIONE

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

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

Dematerializzare per Semplificare

1. BASI DI DATI: GENERALITÀ

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

ACCREDIA L ENTE ITALIANO DI ACCREDITAMENTO

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

LA CERTIFICAZIONE AMBIENTALE (UNI EN ISO 14001)

I SISTEMI DI GESTIONE DELLA SALUTE E SICUREZZA SUL LAVORO: OHSAS AV2/07/11 ARTEMIDE.

Dematerializzare per Semplificare

La norma UNI CEN EN e i Sistemi di Gestione dell Energia (SGE) Marco Gentilini

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

Innanzitutto la tipologia merceologica : packaging piccolo o molto piccolo.

leaders in engineering excellence

Incident Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Project Cycle Management

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Un Blog chiuso come strumento di comunicazione interna in un gruppo di lavoro

Il corso di italiano on-line: presentazione

Sistemi di misurazione e valutazione delle performance

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

IL MODELLO SCOR. Agenda. La Supply Chain Il Modello SCOR SCOR project roadmap. Prof. Giovanni Perrone Ing. Lorena Scarpulla. Engineering.

Base di dati e sistemi informativi

SW Legge 28/98 Sommario

05/03/07 Anna Maria Baratta. Lavorare per progetti

LINEA PROJECT MANAGEMENT

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

MANUALE DELLA QUALITÀ Pag. 1 di 6

Il marketing dei servizi

Corso di Marketing Industriale

LA VALUTAZIONE DELLE RISORSE UMANE NEI SISTEMI DI SVILUPPO E GESTIONE AZIENDALE

L ergonomia dei sistemi informativi

03. Il Modello Gestionale per Processi

Транскрипт:

11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21

Evoluzione del Software - generalità Cosa, quando, come, perchè? Note salienti: Inevitabilità del cambiamento di un sistema software Investimenti nel software riguardano per larga parte la gestione di software esistente Più nuovi requisiti che riparazione da guasti Processo di evoluzione del software - come gestiamo l evoluzione - e nuove fasi (comprensione del software) (Ingegneria del Software) 11. Evoluzione del Software 2 / 21

Leggi di Lehman Studio statistico condotto su molti sistemi di grosse dimensioni hanno portato alla formulazione di alcune leggi sulla dinamica evolutiva del software: 1 Cambiamento continuo - sempre nuove richieste di miglioramento/estensione 2 Complessità crescente - la struttura tende a essere sempre più complessa. Si richiede attenta pianificazione delle modifiche e periodica ristrutturazione del sistema 3 Evoluzione autoregolata - progammi di grosse dimensioni hanno caratteristiche di sviluppo intrinseche (Ingegneria del Software) 11. Evoluzione del Software 3 / 21

Leggi di Lehman...continua 1 Stabilità organizzativa - organizzazioni lavorano spesso in situazioni di saturazione dunque modifiche allo stuff allocato non producono differenze sostanziali allo sviluppo 2 Conservazione della familiarità - quantità di interventi rimane in generale costante tra le differenti release 3 Continuo incremento delle funzionalità fornite 4 Riduzione della qualità 5 Processo con feedback è importante osservare il sistema al fine di pianificare release e mantenere utilità (Ingegneria del Software) 11. Evoluzione del Software 4 / 21

Mantenimento del software tipologie di interventi Tre differenti tipi di interventi sul software: Correzione - riparazioni da errori di codifica, design ospecifica dei requisiti (costi crescenti) - generalmente pesano per il 17% Adattamento - nuovi linguaggi, piattaforme - generalmente pesano per il 18% Perfettivo - nuovi requisiti - generalmente pesano per il 65% (Ingegneria del Software) 11. Evoluzione del Software 5 / 21

Qualche nota sui costi In generale il costo dell evoluzione copre fino al 50% dell intero costo di un prodotto software. In alcuni casi può addirittura arrivare all 80% dell intero costo. Miglioramenti anche lievi ai fini della fase di evoluzione possono portare a risparmi considerevoli e.g. comprensione del software migliorata con buona documentazione Testing 50-60% dello sviluppo, Evoluzione 80% dei costi totali!! Dunque sembrerebbe che le fasi di specifica, progettazione, implementazione siano le fasi più facili! In realtà riduzione di queste percentuali passa per aumento dei costi e migliore gestione delle fasi iniziali dello sviluppo! (Ingegneria del Software) 11. Evoluzione del Software 6 / 21

Qualche nota sui costi In generale il costo dell evoluzione copre fino al 50% dell intero costo di un prodotto software. In alcuni casi può addirittura arrivare all 80% dell intero costo. Miglioramenti anche lievi ai fini della fase di evoluzione possono portare a risparmi considerevoli e.g. comprensione del software migliorata con buona documentazione Testing 50-60% dello sviluppo, Evoluzione 80% dei costi totali!! Dunque sembrerebbe che le fasi di specifica, progettazione, implementazione siano le fasi più facili! In realtà riduzione di queste percentuali passa per aumento dei costi e migliore gestione delle fasi iniziali dello sviluppo! (Ingegneria del Software) 11. Evoluzione del Software 6 / 21

Giustificazioni sull alto costo dell evoluzione Le fasi di mantenimento del software sono particolarmente costose a causa di alcune non buone pratiche di gestione: Stabilità dei team di sviluppo Responsabilità contrattuali Esperienza del team di manutenzione Età del software e struttura (Ingegneria del Software) 11. Evoluzione del Software 7 / 21

Come è possibile fare predizioni? Costo alto rende desiderabili lo sviluppo di meccanismi di predizione dei possibili costi e della complessità. Questo permette di giudicare prima che le modifiche vengano effettuate. La possibilità di predirre quanto un sistema tenderà a richiedere fasi di evoluzioni è certamente correlata alla comprensione delle relazioni tra sistema ed ambiente. Questa relazione è influenzata da: Numero e complessità delle interfacce Numero dei requisiti di sistema da considerarsi volatili I processi di business in cui il sistema è utilizzato (Ingegneria del Software) 11. Evoluzione del Software 8 / 21

Predirre influenze e costi di un passo di evoluzione Esperimenti hanno mostrato che più il software è complesso più costa mantenerlo - Wow!! Esistono molte misure di complessità del software (e.g. ciclomatica). Più sono i componenti del sistema influenzati da una modifica e maggiore è la loro complessità maggiori saranno i costi di evoluzione. Meno ovvio è che sperimentalmente si è notato che la complessità tende ad accumularsi in pochi componenti di un sistema software. Saranno questi a richiedere i maggiori costi di gestione (ancora una volta Pareto Law). Ridurre complessità dei componenti (Ingegneria del Software) 11. Evoluzione del Software 9 / 21

Misure in itinere Esistono misure che permettono predizione di fasi di evoluzione successive a partire dallo storico di quelle precedenti Numero di richieste per interventi correttivi Tempo medio per l analisi di impatto Tempo medio per implementare una richiesta di modifica Andamento del numero delle richieste di modifica pendenti (Ingegneria del Software) 11. Evoluzione del Software 10 / 21

Il processo di evoluzione Come ogni fase dello sviluppo si deve prevedere un processo per poter mettere in atto le differenti azioni. Si sono identificate le seguenti attività in generale organizzate in un processo ciclico attivato da un richiesta di modifica: Analisi dell impatto della modifica richiesta Pianificazione della release Implementazione della modifica Release del sistema (Ingegneria del Software) 11. Evoluzione del Software 11 / 21

Interventi urgenti Spesso gli interventi sul software non subiscono una pianificazione così dettagliata. Molto più spesso gli interventi sono fatti in condizioni di urgenza: Guasto particolarmente pericoloso da impedire uso normale modifiche all ambiente che provocano l impossibilità nell uso nuovi competitori o modifica a sistema legislativo Interventi in urgenza saltano fasi di pianificazione ed analisi ma cercano di arrivare allo sviluppo di una patch nel più breve tempo possibile. (Ingegneria del Software) 11. Evoluzione del Software 12 / 21

Interventi urgenti...continua Conseguenze: Software e documentazione disallineate Ridotta strutturazione del software costi successivi di gestione crescenti Visione idealizzata richiede di applicare successivamente i passi standard del processo evolutivo per lo sviluppo di una patch pianificata. Elimina problemi suddetti ma approccio raramente applicato vista generale emersione di nuove modifiche più importanti. (Ingegneria del Software) 11. Evoluzione del Software 13 / 21

Re-ingegnerizzazione del software Evoluzione rende software complesso e sembre più difficile da mantenere (degrado dell organizzazione complessiva, disallineamento di specifiche e codice) Re-ingegnerizzazione è un possibile approccio volto a ridurre problemi di manutenzione Di cosa si tratta? Si lavora sul codice esistente al fine di migliorarne l organizzazione, la documentazione, la struttura dei dati. Oppure si procede alla codifica con diverso linguaggio o su differente tecnologia/piattaforma. Tipicamente non cambia l architettura e le funzionalità offerte (Ingegneria del Software) 11. Evoluzione del Software 14 / 21

Vantaggi della reingegnerizzazione Rispetto ad altri approcci all evoluzione del software: Rishio ridotto - procedere ad una nuova fase di sviluppo è molto costoso e può portare con maggiore facilità a mancare gli obiettivi Costi ridotti - in generale il costo dello sviluppo ex-novo è estremamente più alto (Ingegneria del Software) 11. Evoluzione del Software 15 / 21

Re-ingegnerizzare...come Distinzione fondamentale tra re-ingegnerizzazione e sviluppo è il punto di partenza e definizione della specifica. Passi di un ipotetico processo di re-ingegnerizzazione: Traduzione del codice Reverse engineering Miglioramento della struttura del programma Modularizzazione Riorganizzazione della struttura dei dati (Ingegneria del Software) 11. Evoluzione del Software 16 / 21

Fattori di costo della re-ingegnerizzazione Qualità del software di partenza Supporto di tool automatici Influenza delle modifiche apportate ad dati disponibilità di staff esperto Sistema reingegnerizzato non è in generale facilmente gestibile come uno sviluppo ex-novo (Ingegneria del Software) 11. Evoluzione del Software 17 / 21

Evoluzione di sistemi Legacy Interventi sul software vanno sempre valutati in base alla reale necessità del software per gli scopi dell organizzazione. Esistono differenti opzioni: Dismisssione del sistema Continuare con regolare manutenzione Re-ingegnerizzare il sistema Rimpiazzare parti del sistema con nuove componenti (Ingegneria del Software) 11. Evoluzione del Software 18 / 21

Classi di sistemi Legacy Analisi di sistemi legacy porta ad identificare 4 classi di sistemi: Bassa qualità e basso valore per l organizzazione Bassa qualità e alto valore per l organizzazione Alta qualità e basso valore per l organizzazione Alta qualità e alto valore per l organizzazione In generale identificazione del valore di business può essere condotto tramite interviste agli utilizzatori e cercando di capire: Uso del sistema Il processo di business che il sistema supporta Affidabilità del sistema Output del sistema (Ingegneria del Software) 11. Evoluzione del Software 19 / 21

Valutazione tecnica Fattori per la valutazione tecnica appartengono a due classi principali. Valutazione dell ambiente operativo e valutazione dell applicazione Ambiente operativo: Stabilità del fornitore Numero di fallimenti Età Performance Requisiti del supporto Interoperabilità (Ingegneria del Software) 11. Evoluzione del Software 20 / 21

Valutazione tecnica Applicazione: Comprensibilità Documentazione Data Performance Linguaggio di programmazione usato Gestione della configurazione Dati di test Conoscenze del personale per la fase di manutenzione (Ingegneria del Software) 11. Evoluzione del Software 21 / 21