Tecniche e strumenti per l Analisi di Impatto di una modifica nei processi di manutenzione Software

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Tecniche e strumenti per l Analisi di Impatto di una modifica nei processi di manutenzione Software"

Transcript

1 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Ingegneria del Software Tecniche e strumenti per l Analisi di Impatto di una modifica nei processi di manutenzione Software Anno Accademico 2011/2012 Candidato: Borriello Michele matr. N46/576

2 A tutte le persone che mi sono state accanto in questi tre anni A mia madre e a mio padre, che mi hanno sempre sostenuto anche quando non hanno condiviso le mie scelte A Tom e ad Ale, perché se non ci fossero loro forse non avrei nemmeno scritto queste parole

3 Indice Introduzione 4 Capitolo 1. Manutenzione dei sistemi Software Modelli di manutenzione del software Integrazione dell'analisi di Impatto nel processo di modifica 9 Capitolo 2. Analisi di Impatto Tipologie di IA Rappresentazione degli impatti Classi di algoritmi di ricerca Tecniche per la determinazione degli impatti 18 Capitolo 3. Tracciabilità Livelli ed approcci di tracciabilità Analisi di tracciabilità orizzontale Analisi di tracciabilità verticale Tracciabilità dei requisiti Ipotizzazione delle tracce 27 Capitolo 4. Supporto automatizzato per l'analisi di Impatto Analisi automatica dei diagrammi UML Analisi automatica del codice sorgente 33 Conclusioni 36 Bibliografia 37

4 Introduzione Quando si realizza un sistema software la maggior parte delle risorse umane ed economiche viene solitamente impiegata nella fase di manutenzione del prodotto, ovvero quella parte del processo che inizia con il rilascio del prodotto stesso e che si protrae poi per tutto il suo ciclo di vita. L'obiettivo della manutenzione, il cui impatto sui costi complessivi per lo sviluppo di un software è stimato tra il 60% e l'80% [4], è quello di introdurre modifiche riguardanti: correzione di errori (manutenzione Correttiva) adattamento all'ambiente operativo (manutenzione Adattativa) miglioramento delle prestazioni (manutenzione Perfettiva) al fine di prolungare il periodo di utilizzo del prodotto da parte dei clienti. È dunque nell'interesse di chi produce i sistemi software fare in modo che l'evoluzione delle proprie creazioni avvenga col minor sforzo possibile e senza perdite considerevoli di qualità. Questo ambito di lavoro dell'ingegneria del Software presenta tuttavia ancora oggi una serie di problematiche molto delicate: la modifica di un sistema senza un'adeguata conoscenza della sua struttura interna può portare alla pianificazione di interventi inefficaci e potenzialmente dannosi la complessità e le dimensioni sempre crescenti dei prodotti software rendono particolarmente onerose e lente le operazioni di manutenzione la documentazione di sistema risulta spesso incompleta e/o non aggiornata, impedendo a chi non ha seguito interamente il ciclo di vita del prodotto di ottenere una conoscenza sufficiente del contesto operativo Varie ricerche hanno dimostrato che tali difficoltà sono legate principalmente ad una cattiva progettazione e ad una gestione troppo grossolana e sbrigativa delle attività di manutenzione, la cui importanza viene ancora oggi sottovalutata. Un altro fattore determinante è l'assenza di un approccio comune alla risoluzione dei problemi appena citati. La letteratura del settore presenta attualmente diverse metodologie per controllare le operazioni di modifica del software, ma ancora non esiste una trattazione completa e sistematica dell'argomento e dunque i progettisti tendono ad usare approcci basati sulla propria esperienza 4

5 lavorativa (con risultati spesso discutibili). Vi è però una caratteristica comune a tutti i metodi proposti, ossia l'utilizzo della Tracciabilità e dell'analisi di impatto. L'Impact Analysis (IA), o anche Analisi di Impatto, è l'argomento centrale del seguente lavoro. Essa è la pratica dell'ingegneria del Software che consente di stabilire quali parti della struttura di un sistema saranno influenzate da una determinata modifica tramite un attento esame della documentazione e/o del codice sorgente. I vantaggi dovuti al suo utilizzo nel processo di manutenzione sono molteplici: individuando i componenti che vanno modificati per cambiare una determinata funzionalità del prodotto si possono velocizzare considerevolmente gli interventi di modifica (con una conseguente riduzione di costi) il collegamento tra i requisiti del sistema ed i moduli che li implementano consente di verificare la conformità delle modifiche che si vogliono introdurre alle specifiche del progetto originario la conoscenza dei componenti interessati da una modifica permette di velocizzare il retesting del sistema poiché il campo delle funzionalità da testare viene notevolmente ridotto determinando gli effetti ripple causati da una modifica si riducono gli interventi di manutenzione correttiva dovuti ad errori introdotti dalle nuove modifiche i risultati ottenuti dalla fase di analisi consentono di fare stime più accurate sui costi e sui tempi di ciascun intervento modificare un sistema di cui si conosce la struttura interna comporta il rilascio di un prodotto finale qualitativamente migliore L'Analisi di Impatto si configura quindi come un metodo che permette di effettuare una manutenzione efficiente e al contempo estremamente efficace, poiché consente di scegliere il tipo di intervento più adeguato per il sistema in esame. La Tracciabilità di un sistema è invece legata alla comprensibilità delle sue relazioni strutturali ed è un requisito fondamentale per poter realizzare un'analisi di Impatto completa. Lo studio di Tracciabilità precede dunque l'impact Analysis e le fornisce il materiale grezzo su cui lavorare. Questo documento costituisce un primo tentativo di presentare una trattazione integrata e sistematica dell'analisi di Impatto e della sua applicazione ai processi di manutenzione del software. In esso si andrà prima di tutto a studiare la natura degli interventi di manutenzione e le modalità di integrazione dell'analisi di Impatto all'interno di tale fase. Si approfondirà poi la teoria 5

6 alla base dell'impact Analysis, descrivendo le tecniche principali impiegate per realizzarla. Successivamente verrà chiarito il concetto di Tracciabilità e saranno presentate le procedure adoperate per lo studio di tracciabilità di un sistema. Saranno infine elencate alcune tipologie di strumenti automatizzati in grado di supportare le suddette attività. 6

7 Capitolo 1 Manutenzione dei sistemi Software Un prodotto software rilasciato sul mercato ha la necessità di evolvere in base alle esigenze di chi lo utilizza ed in base all ambiente reale in cui opera. Tale evoluzione segue solitamente le Leggi empiriche di Lehman [24]: 1. Cambiamento continuo Un programma utilizzato in un ambiente reale deve necessariamente cambiare o diventerà progressivamente meno utile 2. Entropia crescente Quando un sistema viene modificato la sua struttura tende a deteriorarsi, quindi per preservarla e semplificarla sono necessarie risorse aggiuntive 3. Evoluzione dei grandi sistemi I grandi sistemi hanno una propria dinamica evolutiva, caratterizzata da un andamento sostanzialmente regolare. In particolare la dimensione, il tempo fra due release successive, il numero di errori rilevati sono valori approssimativamente invarianti per ciascuna release. La Manutenzione è la fase del ciclo di vita di un sistema software finalizzata alla sua evoluzione. Esistono attualmente cinque classi di manutenzione del software [29]: Manutenzione per correggere gli errori nel software (Correttiva): gli errori di programmazione sono solitamente semplici da correggere, mentre quelli di progettazione e quelli nei requisiti sono più costosi da riparare perché possono richiedere la riscrittura di diversi componenti del sistema Manutenzione per adattare il software ai cambiamenti dell'ambiente operativo (Adattativa): richiesta quando aspetti del sistema come l hardware, il Sistema Operativo o altri componenti esterni di supporto cambiano Manutenzione per migliorare le funzionalità del sistema (Perfettiva): necessaria quando i requisiti di sistema cambiano a causa di variazioni organizzative e di business Manutenzione per semplificare gli interventi futuri (Preventiva): 7

8 introduce modifiche che facilitano le correzioni, gli adattamenti e le migliorie all'interno del sistema Manutenzione per rimediare a guasti improvvisi (di Emergenza): manutenzione correttiva non programmata necessaria a rendere nuovamente operativo nel minor tempo possibile un sistema non funzionante Qualunque sia il tipo di manutenzione che si va ad effettuare, però, bisogna adottare un approccio strutturato al fine di poter gestire la complessità del sistema. 1.1 Modelli di manutenzione del software Un modello molto usato nella pratica per gestire i processi di modifica all'interno di un sistema è il Quick Fix Model. Esso è pensato esclusivamente per effettuare piccole riparazioni e consiste in un insieme di modifiche al codice in termini di Patch (trad. pezze ). Quando invece si devono realizzare modifiche più estensive alla struttura del sistema è necessario uno studio preventivo dei possibili interventi e delle loro conseguenze, ottenuto con l'iterative Enhancement Model. Questo secondo metodo, a differenza del primo, consente di modificare il prodotto senza deteriorarne la struttura ma richiede una maggiore quantità di tempo e di risorse. Generalmente un qualsiasi approccio strutturato per la manutenzione del software deve essere composto da tre stadi fondamentali: [25] 1. comprensione del software dal punto di vista del cambiamento richiesto 2. realizzazione della modifica nel sistema esistente 3. ripetizione dei test sul sistema modificato La letteratura ha proposto nel corso degli anni numerosi modelli di manutenzione concepiti a partire dallo schema di principio appena visto, tra cui: modello di Boehm [BOE76] che si articola in Comprensione del software, Modifica del software e Rivalidazione del software modello di Martin McClure [MAR83] sostanzialmente analogo al precedente modello di Parikh [PAR82] composto da Identificazione degli obiettivi, Comprensione del software, Modifica del codice e Rivalidazione del prodotto modello di Sharpley [SHA77] che si articola in Problem verification, Problem diagnosis, Riprogrammazione e Baseline reverification 8

9 modello di Yau [YAU80] composto da Determinazione degli obiettivi, Comprensione del programma, Stesura proposta di cambiamento, Valutazione effetti ripple e Test di regressione modello di Patkow [PAT83] che si articola in Diagnosi della modifica, Localizzazione della modifica, Realizzazione della modifica e Rivalidazione del prodotto modello di Moreton [MOR90] composto da Change management, Analisi degli effetti, Pianificazione rilascio del sistema, Progettazione delle modifiche, Implementazione delle modifiche e Testing Il problema principale di questi approcci sta però nel ricavare le informazioni strutturali del sistema, qualora assenti o incomplete, e nel saperle adoperare per prevedere gli effetti delle modifiche e scegliere la strategia di intervento più efficace. Tali compiti possono essere svolti tramite l'utilizzo dell'impact Analysis all'interno del processo di manutenzione. Quando vengono effettuate modifiche sul codice, infatti, vi saranno inevitabilmente effetti imprevisti sul programma che possono essere rilevati tramite le tecniche di analisi di impatto. Prima della realizzazione dei cambiamenti si può usare l'impact analysis per migliorare la comprensione del programma e fare previsioni sull'impatto della modifica e sui costi di modifica. Dopo la realizzazione delle modifiche invece l'impact analysis guida la scelta dei casi di test da ripetere nei test di regressione [26]. 1.2 Integrazione dell'analisi di Impatto nel processo di modifica La procedura di manutenzione del software presentata di seguito, proposta da Shawn A. Bohner nel 1996 [25], nasce con lo specifico intento di integrare le tecniche di analisi di impatto nell'intero processo di modifica. Il fulcro di tale approccio non sta nei singoli passaggi, non molto differenti rispetto a quelli degli altri metodi elencati finora, ma nelle metriche di manutenibilità usate per quantificare i risultati di ogni fase del processo e per farsi un'idea delle condizioni del sistema, nonché per misurare la bontà degli interventi proposti/realizzati. Grazie a questo accorgimento ogni passo della procedura può essere ripetuto iterativamente qualora gli indicatori definiti a partire da tali metriche evidenzino dei risultati insoddisfacenti: in questo modo il processo di manutenzione risulta molto più flessibile ed efficace. Il seguente schema SADT (Structured Analysis and Design Technique) [MAR93] mostra il contesto operativo dei processi di modifica: 9

10 Esso evidenzia i dati necessari ad avviare il processo di manutenzione (richieste di modifica e sistema attuale) e mostra le fasi durante le quali è possibile individuare ulteriori difetti e malfunzionamenti (manutenzione ed esecuzione). Lo schema successivo illustra invece in maniera semplificata le fasi del processo di manutenzione, descritte singolarmente nel seguito: Gestione modifica del software Questa fase dirige e coordina tutte le altre operazioni di manutenzione, determinando le azioni più appropriate da compiere in base agli obiettivi e ai vincoli stabiliti. Le numerose decisioni prese nel corso di questa attività riguardo alla realizzazione dell'intervento sono influenzate in gran parte dagli indicatori di gestione restituiti dalle altre attività nel corso del processo. In questo stadio si 10

11 vanno a determinare gli obiettivi di qualità del software, si stabiliscono i rischi connessi alla modifica, si producono le stime di cambiamento, si pianifica il rilascio degli aggiornamenti, si tiene traccia dello stato attuale delle modifiche e si assegnano di conseguenza ad ogni attività le risorse necessarie. Comprensione della modifica e Determinazione dell'impatto Questa attività consiste nell'analizzare le richieste di cambiamento, tradurle in una forma comprensibile che non sia ambigua e valutare i possibili effetti di tali modifiche. Essa inoltre serve a memorizzare informazioni sulla storia delle modifiche utili per agevolare gli interventi futuri. I passi previsti in questa fase sono la revisione della documentazione software, la chiarificazione delle richieste di modifica, l'identificazione degli impatti della modifica, la registrazione degli impatti individuati e la valutazione della stabilità del sistema. Oltre alle richieste chiarificate e all'insieme degli impatti rilevati vengono forniti come risultato gli indicatori relativi al grado di Tracciabilità e di Stabilità del sistema. L'identificazione degli impatti della modifica riveste un ruolo fondamentale nel procedimento appena visto, in quanto è al suo interno che avviene l'analisi di Impatto vera e propria. Lo schema adottato per realizzare l'impact Analysis è il seguente: Si può osservare facilmente come tale analisi vada ad integrare le informazioni di alto livello e quelle di basso livello al fine di garantire la completezza dei risultati. Può tuttavia accadere che ulteriori effetti collaterali dovuti alle modifiche emergano nel corso delle attività successive: in tal 11

12 caso è sufficiente registrarli ed eventualmente ripetere l'identificazione degli impatti della modifica tenendo conto della loro esistenza. Specifica e progettazione della modifica In questa fase le richieste di modifica chiarificate vengono adoperate per generare le nuove specifiche dei requisiti e del design. Viene inoltre fornita una misura della comprensibilità del design del sistema tramite gli indicatori relativi alla Complessità, alla Modularità e alla Qualità della documentazione. Anche le relazioni tra Software Life-cycle Objects (SLO) vengono analizzate per stabilire se la modifica andrà a migliorare o peggiorare la manutenibilità del sistema e, nel caso vi sia il rischio di raggiungere un livello di peggioramento non accettabile, si può tornare alle fasi precedenti del processo per rivalutare il metodo di realizzazione della modifica o addirittura la sua effettiva necessità. Questo stadio del processo include l'analisi dei requisiti di modifica, la valutazione delle variazioni nell'architettura, la derivazione dei requisiti di modifica correlati e la progettazione delle modifiche da realizzare. Implementazione dei cambiamenti A partire dalle specifiche di progetto appena delineate vengono a questo punto realizzati gli interventi di modifica pianificati, aggiornando di conseguenza la relativa documentazione di sistema e ripetendo il testing di unità sui moduli interessati dalle variazioni. La realizzazione delle modifiche prevede la ricerca dei moduli da modificare, l'identificazione dei cambiamenti al livello di statement, l'applicazione delle modifiche al codice sorgente ed il testing di unità sui componenti interessati dall'intervento. Queste attività consentono tra le altre cose di estrarre dal codice sorgente gli indicatori di Adattabilità ed Autodescrittività del software. Testing del software modificato Una volta ultimati gli interventi sul codice sorgente è necessario ripetere i test per verificare il funzionamento del sistema e per assicurarsi che esso operi conformemente ai nuovi requisiti. Un'ulteriore indicazione sulla bontà del prodotto appena ultimato viene poi ottenuta in questa fase ricavando dai test effettuati gli indicatori di Testabilità, Completezza e Verificabilità. Per prima cosa in questo stadio si verifica se è necessario generare casi di test supplementari per coprire eventuali funzionalità aggiunte con la modifica, dopodiché si aggiorna l'insieme dei casi di test e si effettuano i test di integrazione, il testing globale di sistema ed il testing di accettazione. Ora che le attività del processo di manutenzione sono state formalizzate adeguatamente resta da capire come si fa a realizzare l'analisi di Impatto di un sistema software. 12

13 Capitolo 2 Analisi di Impatto Anche se da molti anni ormai viene utilizzata nella pratica ingegneristica, l'impact Analysis (IA) è tuttora priva di una definizione univoca. Bohner e Arnold la indicano come "l'identificazione delle potenziali conseguenze di un cambiamento, o la stima di ciò che è necessario modificare per portare a termine un cambiamento [5]. Pfleeger e Atlee definiscono invece l'ia come "la valutazione dei molteplici rischi associati al cambiamento, incluse le stime degli effetti su risorse, sforzi e programmi di lavoro [27]. Ibrahim e Munro sottolineano inoltre che essa fornisce visibilità ai potenziali effetti delle modifiche prima che tali modifiche vengano effettivamente implementate [2]. Esistono anche altre definizioni nella letteratura del settore, ma tutte delineano in maniera più o meno esplicita lo scopo primario di questa attività: individuare le relazioni e le dipendenze esistenti tra i diversi componenti di un sistema software per stabilire i possibili effetti di una modifica. Tale conoscenza è finalizzata al confronto delle diverse metodologie di intervento utilizzabili in fase di manutenzione, in modo da scegliere quella più adatta alle esigenze del caso specifico. 2.1 Tipologie di IA A seconda del livello di astrazione adottato per cercare le relazioni tra componenti si può parlare di: Traceability Impact Analysis (approccio di alto livello), finalizzata alla ricerca delle relazioni tra i moduli del software tramite i modelli, i diagrammi ed i documenti di specifica prodotti nel corso della progettazione. Se, ad esempio, per realizzare un certo requisito di sistema è stato progettato un apposito componente di design, allora quel componente dipende dal requisito di origine. Dependency Impact Analysis (approccio di basso livello), finalizzata alla ricerca delle dipendenze tra variabili, classi, flussi di controllo e funzioni all'interno del codice sorgente. Questa ricerca può essere realizzata sia con approccio statico, interpretando struttura e contenuto del codice sorgente, sia con approccio dinamico, osservando il comportamento in esecuzione del sistema. Se, ad esempio, il comportamento di una classe cambia in base al valore di una certa variabile, allora la classe dipende da quella variabile. 13

14 Il primo metodo permette di ottenere una visione d'insieme del sistema da modificare, delineando i legami tra requisiti, componenti del design, moduli software e casi di test. Qualora la conoscenza dei suddetti legami non sia già disponibile, essa va ottenuta effettuando lo Studio di Tracciabilità del prodotto software. Le dipendenze tra i SLO prodotti nelle varie fasi del ciclo di vita del software non vanno assolutamente trascurate (a differenza di quanto fanno molti progettisti), in quanto permettono di stabilire anche per sistemi molto complessi il modo in cui una modifica in un livello di astrazione si propaga sugli altri livelli. Il secondo metodo, molto più diffuso del primo nella pratica, si limita invece ad analizzare il codice del software per estrarne la struttura della soluzione implementativa utilizzata. Tale operazione può essere fatta con l'ausilio di diverse tecniche di analisi del codice [25]: Data Flow Analysis [TAH88], che prevede per ciascuna variabile contenuta nel codice la ricerca dei punti del programma che utilizzano il valore di tale variabile. A seconda della direzione lungo la quale avviene l'analisi si può parlare di Forward Analysis o di Backward Analysis Control Flow Analysis, che consiste nello studio del flusso di esecuzione del programma in termini di procedure e funzioni invocate per ciascun insieme di valori forniti in ingresso. I risultati di questa analisi vengono solitamente espressi tramite un Control Flow Graph (CFG) Dependency Analysis [WIL87], che integra la Data Flow Analysis e la Control Flow Analysis al fine di ricavare i vincoli relativi all'ordine di esecuzione dei singoli statement. Tali vincoli permettono, tra le altre cose, di determinare i punti del programma in cui è possibile eseguire più statement in parallelo senza rischi di fallimento dell'esecuzione Program Slicing [GAL91], che consente di isolare all'interno del codice gli statement relativi ad un singolo comportamento dell'eseguibile, in quanto dipendenti dal contenuto di uno statement di partenza (detto Criterio di Slicing) Le informazioni estratte tramite queste procedure possono essere divise in tre classi principali [5]: Data Dependencies dipendenze dei flussi di dati dipendenze di invocazione dipendenze di definizione dipendenze funzionali 14

15 Control Dependencies chiamate a funzione strutture di controllo decisionali (IF/ELSE) strutture di controllo cicliche (LOOP) Component Dependencies dipendenze per riferimenti incrociati dipendenze da analisi di copertura dei test dipendenze da comparazione del codice sorgente Esse permettono di capire quali sono le classi, le variabili, le funzioni ed i moduli che devono essere ricontrollati quando si va a cambiare qualcosa in un metodo da essi invocato o in una classe da essi utilizzata/ereditata. 2.2 Rappresentazione degli impatti Le relazioni ricavate tramite la Dependency IA possono essere rappresentate efficacemente adottando strumenti standard come i Class Diagram in UML o i Control Flow Graph. Per una rappresentazione più generica, adatta anche ai risultati della Traceability IA, si possono usare invece i grafi orientati dei SLO, le matrici di connettività o le matrici di raggiungibilità [5]. Nei Grafi Orientati ciascun componente, ciascun modulo o ciascun SLO generico viene raffigurato come un nodo, mentre le relazioni tra gli oggetti vengono indicate tramite archi orientati. Un arco parte dal nodo dell'oggetto modificato ed arriva al nodo dell'oggetto influenzato dalla modifica, quindi si ha che i nodi di arrivo dipendono dai rispettivi nodi di partenza. Le relazioni così rappresentate costituiscono gli Impatti diretti (detti anche First Order Impacts), mentre un percorso formato da più archi denota la presenza di un Impatto indiretto (detto anche N-Order Impact). In uno stesso grafo si può inoltre decidere di inserire SLO appartenenti a diversi stadi dello sviluppo del software: in questo caso ogni stadio viene rappresentato come un rettangolo contenente i nodi corrispondenti ai propri componenti. Di seguito viene mostrato un esempio di grafo orientato per dimostrare quanto questa forma rappresentativa possa risultare complessa anche per un numero limitato di nodi. 15

16 Una rappresentazione meno confusa e più congeniale alle esigenze degli ingegneri del software è quella tramite Matrici di Connettività. In esse si hanno un numero di righe ed un numero di colonne pari al numero di nodi, e il valore della singola cella indica se tra la coppia Nodo Riga > Nodo Colonna vi è un impatto diretto o no. Le Matrici di Raggiungibilità sono la naturale estensione delle matrici di connettività al caso di dipendenze indirette. Il valore della singola cella indica stavolta l'ordine di impatto della coppia Nodo Riga > Nodo Colonna: esso è pari a zero nel caso non vi siano dipendenze, è pari ad uno nel caso di dipendenze dirette o è maggiore di uno nel caso di dipendenze indirette. La matrice di raggiungibilità può essere calcolata a partire proprio dalla matrice di connettività applicando un algoritmo di Chiusura Transitiva opportunamente adattato. Usando una matrice di raggiungibilità si può capire quali oggetti potrebbero essere influenzati dalla modifica di un particolare SLO e, nel caso vi siano più alternative, si può scegliere di intervenire sul SLO la cui modifica innesca il minor numero di effetti ripple. Il seguente è un esempio di matrice di raggiungibilità: SLO1 SLO2 SLO3 SLO4 SLO5 SLO SLO SLO SLO SLO

17 L'utilizzo di questa modalità di rappresentazione, alla luce di quanto detto in precedenza, risulta di particolare aiuto per assistere l'analisi del software e per supportare le attività decisionali. L'utilizzo dei grafi orientati, d'altra parte, fornisce una visione più intuitiva ed immediata della struttura del sistema ma non è particolarmente agevole per gli studi di tipo ingegneristico. 2.3 Classi di algoritmi di ricerca Per effettuare l'analisi di impatto possono essere impiegati svariati algoritmi di ricerca delle dipendenze. Tali metodi sono raggruppati in cinque categorie [28]: 1. Algoritmi su base Semantica L'Impact Analysis è guidata da una semantica di oggetti e relazioni predeterminata, derivabile tramite algoritmi di reti semantiche o tramite database di confronto. Tale semantica viene usata per estrarre dalle informazioni disponibili ulteriori informazioni implicite. 2. Algoritmi su base Euristica L'identificazione degli impatti è diretta in base ad un insieme di regole prestabilite o in base a particolari euristiche, concepite in modo da distinguere i possibili percorsi da verificare e quelli non necessari ai fini della modifica. 3. Algoritmi su base Stocastica L'Analisi di Impatto si fonda su uno studio probabilistico del comportamento dei singoli SLO e degli eventi che caratterizzano la fase di esecuzione. In questo modo è possibile stimare con precisione i rischi collegati ad una modifica. 4. Algoritmi Ibridi La ricerca degli impatti viene fatta combinando due o più metodi tra quelli appena elencati. 5. Algoritmi Esaustivi Si individuano gli impatti tramite un approccio brute force, elaborando le sole informazioni di tracciabilità esplicitamente disponibili. La scelta della tipologia di algoritmo da adottare è strettamente legata all'ambito di applicazione del sistema in esame: ciascun approccio, infatti, può risultare più o meno efficace a seconda del contesto operativo e delle informazioni disponibili. 17

18 2.4 Tecniche per la determinazione degli impatti I vari algoritmi esistenti per la determinazione degli impatti, pur essendo molto diversi tra loro, lavorano sempre basandosi su modelli più o meno dettagliati del sistema e ricercano i componenti influenzati da una certa modifica tramite l'elaborazione dei SLO e delle loro relazioni. Tali procedure dipendono ovviamente dalla rappresentazione adottata per il modello in esame e sono alla base dei principali approcci di Analisi di Impatto automatica. Gli algoritmi più conosciuti in quest'ambito sono quelli di Chiusura Transitiva, Inferenze e Program Slicing [5] Chiusura transitiva A partire da un modello grafico o matriciale delle dipendenze dirette tra i componenti del sistema si ricavano le dipendenze indirette, considerando tutti i possibili percorsi da un oggetto ad un altro: A B C D E A B C D E A A B B C C D D E E Tale approccio è molto intuitivo ma risulta privo di euristiche di ricerca dipendenti dal dominio applicativo, quindi la precisione dei suoi risultati può essere talvolta insoddisfacente. L'algoritmo è di implementazione molto semplice, ma ha lo svantaggio di diventare estremamente lento al crescere degli elementi da elaborare Inferenze Un insieme di regole predeterminate guida la descrizione formale delle relazioni tra i singoli oggetti e consente la loro elaborazione per estrarne ulteriori relazioni implicite. 18

19 Il formalismo adottato in questo approccio permette di memorizzare le dipendenze individuate in un database e consente di dimensionare adeguatamente lo spazio di ricerca in base al problema affrontato. I sistemi deduttivi che implementano questa tipologia di algoritmo sono composti generalmente da un database di assunzioni, da una procedura per dedurre nuove assunzioni da quelle disponibili e da strumenti per gestire la ricerca nel database. La valutazione degli impatti può essere realizzata a questo punto tramite Truth maintenance constraint systems, ovvero strutture in grado di verificare la consistenza di un modello mediante una serie di vincoli, o tramite Semantic Inferencing, ovvero reti semantiche che definiscono meccanismi di reasoning automatizzato Program Slicing Tramite meccanismi basati su uno o più criteri di slicing questo approccio permette di restringere il campo dell'analisi agli elementi caratterizzanti un singolo comportamento dell'eseguibile. Nel contesto dell'impact Analysis si può quindi isolare la parte di codice sorgente che potrebbe risentire delle modifiche, tralasciando i moduli software non essenziali. Gli algoritmi di questo tipo usano tecniche di data flow analysis e di control flow analysis per estrarre dal codice le informazioni strutturali, dopodiché i risultati ottenuti vengono filtrati applicando i criteri di slicing adottati. int x = 0; int b = 0; int c = 2; for(int i=0;i<max;i++) = program slice estratto { k[i] = (a*i+c)/100; cout << k[i]; } int var = b + d; x = x * c; float result = compute_function( b, x ); 19

20 Capitolo 3 Tracciabilità La tracciabilità viene definita come l'abilità di individuare gli oggetti dipendenti all'interno di un modello e l'abilità di individuare gli oggetti corrispondenti negli altri modelli [1]. Con il termine modello viene qui indicata una rappresentazione sintetica del sistema in esame ad un livello di astrazione più o meno dettagliato, riportata con modalità grafico/testuale oppure tabellare. Il termine oggetto delinea invece un generico Software Life-cycle Object (SLO) prodotto nel corso dell'attività di sviluppo e costituisce l'unità base per la costruzione di un modello. Si può anche identificare il concetto di tracciabilità come l'abilità di risalire alle relazioni tra gli artefatti software generati e modificati durante il ciclo di vita del prodotto software [5]. Ad ogni modo la tracciabilità è una caratteristica molto importante di un sistema, in quanto consente di ricavare le relazioni strutturali che lo costituiscono e di ricostruire le varie fasi del suo sviluppo. 3.1 Livelli ed approcci di tracciabilità La prima definizione fornita permette di stabilire una distinzione preliminare tra due tipologie di tracciabilità [3]: Tracciabilità verticale riguarda le relazioni di dipendenza tra oggetti appartenenti ad uno stesso modello Tracciabilità orizzontale riguarda le relazioni di corrispondenza tra oggetti appartenenti a due modelli diversi A seconda del livello di dettaglio si distinguono poi quattro tipi di modello [2]: requisiti modello relativo ai singoli requisiti funzionali del sistema. La specifica di ciascun requisito costituisce il singolo SLO adoperato in questo stadio design modello relativo alla progettazione dell'architettura del software. A seconda del grado di astrazione scelto si può parlare di: 1. design di alto livello, rappresentabile ad esempio tramite un Collaboration Design Model 2. design di basso livello, rappresentabile ad esempio tramite un Class Diagram in UML 20

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Configuration Management

Configuration Management Configuration Management Obiettivi Obiettivo del Configuration Management è di fornire un modello logico dell infrastruttura informatica identificando, controllando, mantenendo e verificando le versioni

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

Business Process Management

Business Process Management Business Process Management Comprendere, gestire, organizzare e migliorare i processi di business Caso di studio a cura della dott. Danzi Francesca e della prof. Cecilia Rossignoli 1 Business process Un

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis 2 Intervento immediato con Bosch Intelligent Video Analysis Indipendentemente da quante telecamere il sistema utilizza, la sorveglianza

Dettagli

Relazione sul data warehouse e sul data mining

Relazione sul data warehouse e sul data mining Relazione sul data warehouse e sul data mining INTRODUZIONE Inquadrando il sistema informativo aziendale automatizzato come costituito dall insieme delle risorse messe a disposizione della tecnologia,

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA 1. I PROBLEMI E LA LORO SOLUZIONE DAL PROBLEMA AL PROGRAMMA L'uomo, per affrontare gli innumerevoli problemi postigli dallo sviluppo della civiltà, si è avvalso della scienza e della tecnica, i cui destini

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

LA PROGETTAZIONE Come fare un progetto. LA PROGETTAZIONE Come fare un progetto

LA PROGETTAZIONE Come fare un progetto. LA PROGETTAZIONE Come fare un progetto LA PROGETTAZIONE 1 LA PROGETTAZIONE Oggi il raggiungimento di un obiettivo passa per la predisposizione di un progetto. Dal mercato al terzo settore passando per lo Stato: aziende, imprese, organizzazioni,

Dettagli

Il Business Process Management: nuova via verso la competitività aziendale

Il Business Process Management: nuova via verso la competitività aziendale Il Business Process Management: nuova via verso la competitività Renata Bortolin Che cosa significa Business Process Management? In che cosa si distingue dal Business Process Reingeneering? Cosa ha a che

Dettagli

6. Le ricerche di marketing

6. Le ricerche di marketing Università degli Studi di Urbino Carlo Bo Facoltà di Lingue e Letterature Straniere Corso di Laurea in Lingue e Cultura per l Impresa 6. Le ricerche di marketing Prof. Fabio Forlani Urbino, 29/III/2011

Dettagli

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione

METODO DELLE FORZE 1. METODO DELLE FORZE PER LA SOLUZIONE DI STRUTTURE IPERSTATICHE. 1.1 Introduzione METODO DELLE FORZE CORSO DI PROGETTZIONE STRUTTURLE a.a. 010/011 Prof. G. Salerno ppunti elaborati da rch. C. Provenzano 1. METODO DELLE FORZE PER L SOLUZIONE DI STRUTTURE IPERSTTICHE 1.1 Introduzione

Dettagli

IT FINANCIAL MANAGEMENT

IT FINANCIAL MANAGEMENT IT FINANCIAL MANAGEMENT L IT Financial Management è una disciplina per la pianificazione e il controllo economico-finanziario, di carattere sia strategico sia operativo, basata su un ampio insieme di metodologie

Dettagli

Business Intelligence. Il data mining in

Business Intelligence. Il data mining in Business Intelligence Il data mining in L'analisi matematica per dedurre schemi e tendenze dai dati storici esistenti. Revenue Management. Previsioni di occupazione. Marketing. Mail diretto a clienti specifici.

Dettagli

Business Process Management

Business Process Management Corso di Certificazione in Business Process Management Progetto Didattico 2015 con la supervisione scientifica del Dipartimento di Informatica Università degli Studi di Torino Responsabile scientifico

Dettagli

Panoramica su ITIL V3 ed esempio di implementazione del Service Design

Panoramica su ITIL V3 ed esempio di implementazione del Service Design Master Universitario di II livello in Interoperabilità Per la Pubblica Amministrazione e Le Imprese Panoramica su ITIL V3 ed esempio di implementazione del Service Design Lavoro pratico II Periodo didattico

Dettagli

ATTUAZIONE DEL PROGETTO E IL MANAGEMENT: alcune definizioni e indicazioni generali

ATTUAZIONE DEL PROGETTO E IL MANAGEMENT: alcune definizioni e indicazioni generali ATTUAZIONE DEL PROGETTO E IL MANAGEMENT: alcune definizioni e indicazioni generali Cos è un progetto? Un iniziativa temporanea intrapresa per creare un prodotto o un servizio univoco (PMI - Project Management

Dettagli

General Linear Model. Esercizio

General Linear Model. Esercizio Esercizio General Linear Model Una delle molteplici applicazioni del General Linear Model è la Trend Surface Analysis. Questa tecnica cerca di individuare, in un modello di superficie, quale tendenza segue

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il "continuous improvement" ed e'

ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il continuous improvement ed e' ITIL v3 ITIL v3 e' parte di un processo teso a migliorare le best practices ITIL. In effetti, ITIL predica il "continuous improvement" ed e' giusto che lo applichi anche a se' stessa... Naturalmente una

Dettagli

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE E bene presentarla confrontando tra loro varie tecniche: addizione ripetuta; prodotto combinatorio (schieramenti). Rispetto a quest'ultima tecnica, grande utilità

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

Ottimizzazione della gestione del data center con Microsoft System Center Ottimizzazione della gestione del data center con Microsoft System Center Declinazione di responsabilità e informazioni sul copyright Le informazioni contenute nel presente documento rappresentano le conoscenze

Dettagli

Gestione delle Architetture e dei Servizi IT con ADOit. Un Prodotto della Suite BOC Management Office

Gestione delle Architetture e dei Servizi IT con ADOit. Un Prodotto della Suite BOC Management Office Gestione delle Architetture e dei Servizi IT con ADOit Un Prodotto della Suite BOC Management Office Controllo Globale e Permanente delle Architetture IT Aziendali e dei Processi IT: IT-Governance Definire

Dettagli

PANDORA Sistema di Telecontrollo per Ascensori PANDORA is powered by

PANDORA Sistema di Telecontrollo per Ascensori PANDORA is powered by PANDORA Sistema di Telecontrollo per Ascensori l'espressione v a s o d i P a n d o r a viene usata metaforicamente per alludere all'improvvisa scoperta di un problema o una serie di problemi che per molto

Dettagli

PLM Software. Answers for industry. Siemens PLM Software

PLM Software. Answers for industry. Siemens PLM Software Siemens PLM Software Monitoraggio e reporting delle prestazioni di prodotti e programmi Sfruttare le funzionalità di reporting e analisi delle soluzioni PLM per gestire in modo più efficace i complessi

Dettagli

Project Cycle Management. 3. La tecnica di valutazione basata sul Quadro Logico. di Federico Bussi

Project Cycle Management. 3. La tecnica di valutazione basata sul Quadro Logico. di Federico Bussi Project Cycle Management 3. La tecnica di valutazione basata sul Quadro Logico di Federico Bussi federicobussi1@gmail.com 1 La tecnica di valutazione basata sul Quadro Logico Nelle pagine precedenti abbiamo

Dettagli

Metodologie di Analisi e Valutazione delle Posizioni e delle Prestazioni

Metodologie di Analisi e Valutazione delle Posizioni e delle Prestazioni HUMANWARE S.A.S. Via Tino Buazzelli, 51 00137 - Roma Tel.: +39 06 823861 Fax.:+39 06 233214866 Web: www.humanware.it Email: humanware@humanware.it Metodologie di Analisi e Valutazione delle Posizioni e

Dettagli

INTRODUZIONE ALLA GESTIONE DEL PROGETTO SOFTWARE CON UML

INTRODUZIONE ALLA GESTIONE DEL PROGETTO SOFTWARE CON UML Università degli Studi di Parma Dipartimento di Matematica e Informatica Corso di Laurea in Informatica DISPENSE INTRODUTTIVE INTRODUZIONE ALLA GESTIONE DEL PROGETTO SOFTWARE CON UML Prof. Giulio Destri

Dettagli

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana Storie di successo Microsoft per le Imprese Scenario: Software e Development Settore: Servizi In collaborazione con Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

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

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input Release Management Obiettivi Obiettivo del Release Management è di raggiungere una visione d insieme del cambiamento nei servizi IT e accertarsi che tutti gli aspetti di una release (tecnici e non) siano

Dettagli

L analisi economico finanziaria dei progetti

L analisi economico finanziaria dei progetti PROVINCIA di FROSINONE CIOCIARIA SVILUPPO S.c.p.a. LABORATORI PER LO SVILUPPO LOCALE L analisi economico finanziaria dei progetti Azione n. 2 Progetti per lo sviluppo locale LA FINANZA DI PROGETTO Frosinone,

Dettagli

Introduzione al GIS (Geographic Information System)

Introduzione al GIS (Geographic Information System) Introduzione al GIS (Geographic Information System) Sommario 1. COS E IL GIS?... 3 2. CARATTERISTICHE DI UN GIS... 3 3. COMPONENTI DI UN GIS... 4 4. CONTENUTI DI UN GIS... 5 5. FASI OPERATIVE CARATTERIZZANTI

Dettagli

LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA

LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA LA TECHNOLOGY TRANSFER PRESENTA SUZANNE ROBERTSON MASTERING THE REQUIREMENTS PROCESS COME COSTRUIRE IL SISTEMA CHE IL VOSTRO UTENTE DESIDERA ROMA 20-22 OTTOBRE 2014 RESIDENZA DI RIPETTA - VIA DI RIPETTA,

Dettagli

LAVORO DI GRUPPO. Caratteristiche dei gruppi di lavoro transnazionali

LAVORO DI GRUPPO. Caratteristiche dei gruppi di lavoro transnazionali LAVORO DI GRUPPO Caratteristiche dei gruppi di lavoro transnazionali Esistono molti manuali e teorie sulla costituzione di gruppi e sull efficacia del lavoro di gruppo. Un coordinatore dovrebbe tenere

Dettagli

Dall italiano alla logica proposizionale

Dall italiano alla logica proposizionale Rappresentare l italiano in LP Dall italiano alla logica proposizionale Sandro Zucchi 2009-10 In questa lezione, vediamo come fare uso del linguaggio LP per rappresentare frasi dell italiano. Questo ci

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras 2 Introduzione Le architetture basate sui servizi (SOA) stanno rapidamente diventando lo standard de facto per lo sviluppo delle applicazioni aziendali.

Dettagli

Project Management Office per centrare tempi e costi

Project Management Office per centrare tempi e costi Project Management Office per centrare tempi e costi Il Project Management Office (PMO) rappresenta l insieme di attività e strumenti per mantenere efficacemente gli obiettivi di tempi, costi e qualità

Dettagli

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu

COME FRODE. la possibilità propri dati. brevissimo. Reply www.reply.eu FRAUD MANAGEMENT. COME IDENTIFICARE E COMB BATTERE FRODI PRIMA CHE ACCADANO LE Con una visione sia sui processi di business, sia sui sistemi, Reply è pronta ad offrire soluzioni innovative di Fraud Management,

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Università di Venezia Corso di Laurea in Informatica. Marco Fusaro KPMG S.p.A.

Università di Venezia Corso di Laurea in Informatica. Marco Fusaro KPMG S.p.A. Università di Venezia Corso di Laurea in Informatica Laboratorio di Informatica Applicata Introduzione all IT Governance Lezione 5 Marco Fusaro KPMG S.p.A. 1 CobiT: strumento per la comprensione di una

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

VALUTAZIONE DINAMICA DEL POTENZIALE DI APPRENDIMENTO IN UN BAMBINO CON DISTURBO DELLO SPETTRO AUTISTICO

VALUTAZIONE DINAMICA DEL POTENZIALE DI APPRENDIMENTO IN UN BAMBINO CON DISTURBO DELLO SPETTRO AUTISTICO Fondamenti teorici Vygotskji Zona di Sviluppo Prossimale Feuerstein VALUTAZIONE DINAMICA DEL POTENZIALE DI APPRENDIMENTO IN UN BAMBINO CON DISTURBO DELLO SPETTRO AUTISTICO Esperienza di Apprendimento Mediato

Dettagli

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza PROCESS MAPPING (2) Approcci: 2- Identificazione del processo Esaustivo (o dei processi) da analizzare Mappatura a largo spettro (es.: vasta implementazione di un ERP) In relazione al problema ad es. i

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Analisi per tutti. Panoramica. Considerazioni principali. Business Analytics Scheda tecnica. Software per analisi

Analisi per tutti. Panoramica. Considerazioni principali. Business Analytics Scheda tecnica. Software per analisi Analisi per tutti Considerazioni principali Soddisfare le esigenze di una vasta gamma di utenti con analisi semplici e avanzate Coinvolgere le persone giuste nei processi decisionali Consentire l'analisi

Dettagli

Dalla Mappatura dei Processi al Business Process Management

Dalla Mappatura dei Processi al Business Process Management Dalla Mappatura dei Processi al Business Process Management Romano Stasi Responsabile Segreteria Tecnica ABI Lab Roma, 4 dicembre 2007 Agenda Il percorso metodologico Analizzare per conoscere: la mappatura

Dettagli

VALUTAZIONE DI RISULTATO E DI IMPATTO del progetto Diesis

VALUTAZIONE DI RISULTATO E DI IMPATTO del progetto Diesis Obiettivo Competitività Regionale e Occupazione Programma Operativo Nazionale Azioni di Sistema (FSE) 2007-2013 [IT052PO017] Obiettivo Convergenza Programma Operativo Nazionale Governance e Azioni di Sistema

Dettagli

Lezione 3. La struttura divisionale; la struttura a matrice e la struttura orizzontale

Lezione 3. La struttura divisionale; la struttura a matrice e la struttura orizzontale Lezione 3 La struttura divisionale; la struttura a matrice e la struttura orizzontale 1 LA STRUTTURA FUNZIONALE ALTA DIREZIONE Organizzazione Sistemi informativi Comunicazione Programmazione e controllo

Dettagli

capitolo 6 IL QUESTIONARIO PER LA VALUTV ALUTAZIONEAZIONE DEI CONTENUTI

capitolo 6 IL QUESTIONARIO PER LA VALUTV ALUTAZIONEAZIONE DEI CONTENUTI capitolo 6 IL QUESTIONARIO PER LA VALUTV ALUTAZIONEAZIONE DEI CONTENUTI 6.1 ISTRUZIONI PER IL VALUTATORE Il processo di valutazione si articola in quattro fasi. Il Valutatore deve: 1 leggere il questionario;

Dettagli

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo White paper La Process Intelligence migliora le prestazioni operative del settore assicurativo Pagina 2 Sintesi

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

STATISTICHE DOCUMENTI PMV IN SOL

STATISTICHE DOCUMENTI PMV IN SOL STATISTICHE DOCUMENTI PMV IN SOL INTRODUZIONE A cura del Coordinamento del Polo regionale del Veneto Vicenza, 12 ottobre 2011 PREMESSA Le istruzioni fornite nel 2010 per la compilazione del PMV riferito

Dettagli

QUESTIONARIO SUGLI STILI DI APPRENDIMENTO

QUESTIONARIO SUGLI STILI DI APPRENDIMENTO QUESTIONARIO SUGLI STILI DI APPRENDIMENTO Le seguenti affermazioni descrivono alcune abitudini di studio e modi di imparare. Decidi in quale misura ogni affermazione si applica nel tuo caso: metti una

Dettagli

Rischio impresa. Rischio di revisione

Rischio impresa. Rischio di revisione Guida alla revisione legale PIANIFICAZIONE del LAVORO di REVISIONE LEGALE dei CONTI Formalizzazione delle attività da svolgere nelle carte di lavoro: determinazione del rischio di revisione, calcolo della

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA SVILUPPO DI METODI DECONVOLUTIVI PER L INDIVIDUAZIONE DI SORGENTI INDIPENDENTI

Dettagli

I NUOVI INDIRIZZI DELLA VAS PROPOSTI DALLA ASSOCIAZIONE INTERNAZIONALE PER LA VALUTAZIONE DI IMPATTO AMBIETALE

I NUOVI INDIRIZZI DELLA VAS PROPOSTI DALLA ASSOCIAZIONE INTERNAZIONALE PER LA VALUTAZIONE DI IMPATTO AMBIETALE I NUOVI INDIRIZZI DELLA VAS PROPOSTI DALLA ASSOCIAZIONE INTERNAZIONALE PER LA VALUTAZIONE DI IMPATTO AMBIETALE Ing Giuseppe Magro Presidente Nazionale IAIA 1 Italia 2 La Valutazione Ambientale Strategica

Dettagli

Orientamenti ABE in materia di. valore a rischio in condizioni di stress (VaR in condizioni di stress) EBA/GL/2012/2

Orientamenti ABE in materia di. valore a rischio in condizioni di stress (VaR in condizioni di stress) EBA/GL/2012/2 Orientamenti ABE in materia di valore a rischio in condizioni di stress (VaR in condizioni di stress) EBA/GL/2012/2 Londra, 16.05.2012 1 Oggetto degli orientamenti 1. Il presente documento contiene una

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice

Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI. Indice Pagine romane (I-XVIII) OK.qxd:romane.qxd 7-09-2009 16:23 Pagina VI Prefazione Autori XIII XVII Capitolo 1 Sistemi informativi aziendali 1 1.1 Introduzione 1 1.2 Modello organizzativo 3 1.2.1 Sistemi informativi

Dettagli

John Dewey. Le fonti di una scienza dell educazione. educazione

John Dewey. Le fonti di una scienza dell educazione. educazione John Dewey Le fonti di una scienza dell educazione educazione 1929 L educazione come scienza indipendente Esiste una scienza dell educazione? Può esistere una scienza dell educazione? Ṫali questioni ineriscono

Dettagli

Programmazione Generale. Matematica e Complementi. Classi: 2 Biennio Quarta. Istituto Tecnico Tecnologico Basilio Focaccia Salerno

Programmazione Generale. Matematica e Complementi. Classi: 2 Biennio Quarta. Istituto Tecnico Tecnologico Basilio Focaccia Salerno Istituto Tecnico Tecnologico Basilio Focaccia Salerno Programmazione Generale Matematica e Complementi Classi: 2 Biennio Quarta I Docenti della Disciplina Salerno, lì 12 settembre 2014 Finalità della Disciplina

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

Corso di Amministrazione di Sistema Parte I ITIL 3 Corso di Amministrazione di Sistema Parte I ITIL 3 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici Il

Dettagli

Prospettive di collaborazione: dall anagrafe agli authority file

Prospettive di collaborazione: dall anagrafe agli authority file Prospettive di collaborazione: dall anagrafe agli authority file di Marco Paoli Eccellenze, autorità, colleghi bibliotecari, già con la firma dell Intesa fra CEI e MiBAC (18 aprile 2000) relativa alla

Dettagli

I N F I N I T Y Z U C C H E T T I WORKFLOW HR

I N F I N I T Y Z U C C H E T T I WORKFLOW HR I N F I N I T Y Z U C C H E T T I WORKFLOW HR WORKFLOW HR Zucchetti, nell ambito delle proprie soluzioni per la gestione del personale, ha realizzato una serie di moduli di Workflow in grado di informatizzare

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

(accuratezza) ovvero (esattezza)

(accuratezza) ovvero (esattezza) Capitolo n 2 2.1 - Misure ed errori In un analisi chimica si misurano dei valori chimico-fisici di svariate grandezze; tuttavia ogni misura comporta sempre una incertezza, dovuta alla presenza non eliminabile

Dettagli

Procedura corretta per mappare con ECM Titanium

Procedura corretta per mappare con ECM Titanium Procedura corretta per mappare con ECM Titanium Introduzione: In questo documento troverete tutte le informazioni utili per mappare correttamente con il software ECM Titanium, partendo dalla lettura del

Dettagli

Classificazioni dei sistemi di produzione

Classificazioni dei sistemi di produzione Classificazioni dei sistemi di produzione Sistemi di produzione 1 Premessa Sono possibili diverse modalità di classificazione dei sistemi di produzione. Esse dipendono dallo scopo per cui tale classificazione

Dettagli

agility made possible

agility made possible SOLUTION BRIEF CA IT Asset Manager Come gestire il ciclo di vita degli asset, massimizzare il valore degli investimenti IT e ottenere una vista a portfolio di tutti gli asset? agility made possible contribuisce

Dettagli

Progetto VALUTAZIONE DELLE PERFORMANCE

Progetto VALUTAZIONE DELLE PERFORMANCE Direzione Generale per le Politiche Attive e Passive del Lavoro Progetto VALUTAZIONE DELLE PERFORMANCE Controlli interni e Ciclo della performance alla luce dell art.3 del D.L. 174/2012 Position Paper

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

VERSO UN SISTEMA NAZIONALE INFEA COME INTEGRAZIONE DEI SISTEMI A SCALA REGIONALE

VERSO UN SISTEMA NAZIONALE INFEA COME INTEGRAZIONE DEI SISTEMI A SCALA REGIONALE LINEE DI INDIRIZZO PER UNA NUOVA PROGRAMMAZIONE CONCERTATA TRA LO STATO, LE REGIONI E LE PROVINCE AUTONOME DI TRENTO E BOLZANO IN MATERIA IN.F.E.A. (INFORMAZIONE-FORMAZIONE-EDUCAZIONE AMBIENTALE) VERSO

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence?

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence? In un momento di crisi perché scegliere di investire sulla Business Intelligence? Cos è? Per definizione, la Business Intelligence è: la trasformazione dei dati in INFORMAZIONI messe a supporto delle decisioni

Dettagli

LA TESINA DI MATURITÀ

LA TESINA DI MATURITÀ Prof. Matteo Asti LA TESINA DI MATURITÀ INDICE 1. COS'È LA TESINA DI MATURITÀ 2. LE INDICAZIONI DI LEGGE 3. COME DEVE ESSERE LA TESINA 4. LA PRESENTAZIONE DELLA TESINA 5. GLI ARGOMENTI DELLA TESINA 6.

Dettagli