12. Evoluzione del Software



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

7. Architetture Software

Concetti di base di ingegneria del software

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

Configuration Management

La Metodologia adottata nel Corso

La tecnologia cloud computing a supporto della gestione delle risorse umane

CP Customer Portal. Sistema di gestione ticket unificato

MService La soluzione per ottimizzare le prestazioni dell impianto

Norme per l organizzazione - ISO serie 9000

Generazione Automatica di Asserzioni da Modelli di Specifica

Le fattispecie di riuso

CERTIFICAZIONE ISO 14001

Business Process Management

Gestione Turni. Introduzione

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

10. Interfaccia Utente

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

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

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

5. Requisiti del Software II

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

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

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

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

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

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

La Guida per l Organizzazione degli Studi professionali

Piano di gestione della qualità

LE CARATTERISTICHE. Caratteristiche. - tel fax pag. 2

Introduzione alla Progettazione per Componenti

1. BASI DI DATI: GENERALITÀ

Ciclo di vita dimensionale

LA REVISIONE LEGALE DEI CONTI La comprensione

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

ILSISTEMA INTEGRATO DI PRODUZIONE E MANUTENZIONE

Ingegneria del Software Requisiti e Specifiche

Sistemi informativi secondo prospettive combinate

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

1- Corso di IT Strategy

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

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

Automazione Industriale (scheduling+mms) scheduling+mms.

Dematerializzare per Semplificare

PIANIFICAZIONE DELLA FORMAZIONE: processi, attori e strumenti

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

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

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

Comprendere il Cloud Computing. Maggio, 2013

Dematerializzare per Semplificare

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

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

03. Il Modello Gestionale per Processi

Indice strutturato dello studio di fattibilità

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

Gestione informatica degli archivi

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

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

Concetti di Marketing nel turismo

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Gestire le NC, le Azioni Correttive e Preventive, il Miglioramento

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Tecniche di Prototipazione. Introduzione

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

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

Appendice III. Competenza e definizione della competenza

L OPPORTUNITA DI PREVEDERE E GESTIRE I RISCHI DI IMPRESA - APPROCCIAMO LA ISO 9001:2015

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Base di dati e sistemi informativi

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

Indice. pagina 2 di 10

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

Il catalogo MARKET. Mk6 Il sell out e il trade marketing: tecniche, logiche e strumenti

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

LA CERTIFICAZIONE AMBIENTALE (UNI EN ISO 14001)

AT Assistenza Tecnica MANUALE TECNICO - OPERATIVO LA GESTIONE OPERATIVA - TECNICO ECONOMICA PER INSTALLATORI ED AZIENDE DI SERVICE

MANUALE DELLA QUALITÀ Pag. 1 di 6

ACCREDIA L ENTE ITALIANO DI ACCREDITAMENTO

La progettazione centrata sull utente nei bandi di gara

Basi di Dati Relazionali

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

Il corso di italiano on-line: presentazione

leaders in engineering excellence

Liceo Tecnologico. Indirizzo Informatico e Comunicazione. Indicazioni nazionali per Piani di Studi Personalizzati

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

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

Dalle strategie direzionali allo Spread Trading. Milano 1 Dicembre 2007

Транскрипт:

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

Evoluzione del Software - generalità Cosa, quando, come, perchè? Note salienti: Inevitabilità del cambiamento di un sistema software Invesitmenti 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) 12. 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 richiste di miglioramento/estensione 2 Complessità crescente - la struttura tende a essere più compressa. Richiede attenta pianificazione e ristrutturazione 3 Evoluzione autoregolata - progammi di grosse dimensioni hanno caratteristiche di sviluppo intrinseche (Ingegneria del Software) 12. 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 3 Continuo incremento delle funzionalità fornite 4 Riduzione della qualità 5 Processo con feedback (Ingegneria del Software) 12. Evoluzione del Software 4 / 21

Mantenimento del software Tre differenti tipi di interventi sul software: Correzione - codifica o design Adattamento - nuovi linguaggi, piattaforme Perfettivo - nuovi requisiti (Ingegneria del Software) 12. 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 (Ingegneria del Software) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. 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) 12. Evoluzione del Software 21 / 21