Contenuti Il linguaggio di modellazione UML Rational Unified Process. Model Driven Architecture. Gaetanino PAOLONE Sistemi Informativi Aziendali Con le slides che seguono l’intento è quello di introdurre gli strumenti e i metodi per la modellazione a partire dal linguaggio di modellazione Unified Modeling Language, con i suoi costrutti fondamentali, passando attraverso il Rational Unified Process, inteso come metodologia di riferimento per lo sviluppo di un progetto software e, per finire, la Model Driven Architecture, standard OMG che ha come scopo la definizione delle soluzioni in modo indipendente dalla piattaforma tecnologica su cui verranno poi realizzate. Linguaggio di modellazione : UML Uno standard de facto che ormai si è affermato è il linguaggio di modellazione UML (Unified Modeling Language). Le specifiche di UML sono di proprietà del consorzio noprofit OMG (Object Management Group). UML non è un metodo, ma un insieme di diagrammi e notazioni grafiche e testuali attraverso le quali è possibile documentare quasi tutti gli artefatti necessari durante l’Analisi. Gaetanino PAOLONE Sistemi informativi aziendali L’UML, Unified Modeling Language, è un linguaggio per descrivere, specificare e documentare i prodotti del processo di sviluppo del software. Può essere utilizzato per sistemi di tipo e grandezza differenti ed è caratterizzato da un alto potere espressivo in accordo con la prospettiva Object Oriented. UML, infatti consente di rappresentare e di mantenere diverse viste di uno stesso sistema descrivendo gli oggetti che lo compongono da diversi punti di osservazione, strutturale e comportamentale e a diversi livelli di astrazione. Unified Modelling Language Ivar Jacobson Grady Booch Gaetanino PAOLONE James Rumbaugh Sistemi informativi aziendali Unified Modeling Language • un linguaggio (e notazione) universale, per rappresentare un qualunque sistema • uno standard OMG (Object Management Group), dal nov.1997 • gli autori: – Grady Booch – Ivar Jacobson – Jim Rumbaugh • i co-proponenti: Microsoft, IBM, Oracle, HP, Platinum, Sterling, Unysis (e tanti altri) Gaetanino PAOLONE Sistemi Informativi Aziendali Evoluzione dello UML Gaetanino PAOLONE Sistemi Informativi Aziendali Il progetto dello UML, originariamente, fu avviato da Grady Booch e James Rumbaugh, con l’intento di produrre un nuovo metodo, detto inizialmente “metodo unificato”, che raccogliesse il meglio dei metodi di Booch e OMT-2, del quale Rumbaugh ne era stato uno dei principali promotori. Nel 1995 si unì a loro Ivar Jacobson, fautore del metodo denominato OOSE (Object Oriented Software Engineering): il terzetto si era così costituito. La prima versione, la famosissima 1.0, fu disponibile nel gennaio 1997. Visto l’enorme successo riscosso, nell’ambito del mondo reale ed in quello accademico, e considerato il relativo riconoscimento a livello di standard (UML 1.0 è stato proposto al Object Management Group nel gennaio 1997), gli stessi ideatori dichiararono ormai conclusa la loro esperienza in questo ambito tanto da dedicarsi a nuove sfide. Allo stato attuale lo sviluppo dell’UML è affidato alle varie task force appartenenti all’OMG, le famose Revision Task Force, dirette da Chris Kobyrn. Obiettivo di tale gruppo è accogliere ed analizzare suggerimenti provenienti dalle industrie, correggere inevitabili imperfezioni, colmare eventuali lacune e così via. L’evoluzione dello UML è mostrata nella slide, attraverso il diagramma dei package, uno degli strumenti messi a disposizione dal linguaggio. Le linee tratteggiate etichettate con la parola “refine” rappresentano uno stereotipo della relazione di dipendenza. Molto semplicemente indicano che un aggiornamento apportato ad un oggetto indipendente (quello a cui puinta la freccia) implica una revisione e verosimilmente una modifica dell’oggetto dipendente. Unified Modelling Language: questioni generali Diagramma e specifica: i diagrammi sono una “semplificazione” della realtà, che segue una sintassi precisa; ogni diagramma può presentare una vista (parziale) del sistema. Distinzioni di livello: classe e oggetto; interfaccia. Meccanismi di estensibilità stereotipo: estensione del vocabolario, estende la semantica di un costrutto. Gaetanino PAOLONE Sistemi informativi aziendali UML: principi ispiratori Modellazione del progetto prima dello sviluppo; La modellazione è essenziale in ogni attività ingegneristica complessa, in quanto permette di astrarre e semplificare: “we build models so that we can better understand the system we are developing” [Booch et al: The UML User Guide]; “we build models of complex systems because we cannot comprehend such a system in its entirety” [Booch et al: The UML User Guide]. Gaetanino PAOLONE Sistemi informativi aziendali Il primi principio a cui si ispira UML riguarda la modellazione del progetto svolta prima di passare allo sviluppo, ovviamente in questo modo la modellazione non è finalizzata a se stessa, ma ha lo scopo di produrre un software migliore. In secondo luogo, ci si basa sul fatto che la modellazione è un’attività essenziale per il corretto svolgimento di qualsiasi attività ingegneristica, in quanto permette di astrarre e di semplificare. Finalità della modellazione Visualizzazione di un sistema (così com'è o come lo si vorrebbe); Specifica della struttura e/o del comportamento di un sistema; Definizione delle linee guida per la costruzione di un sistema; Documentazione delle decisioni prese; Gaetanino PAOLONE Sistemi informativi aziendali Cos’è UML (e cosa non è) è un linguaggio di progettazione; serve a progettare un nuovo sistema; è universale; è un linguaggio e non un metodo; definisce una notazione standard; continua… Cos’è UML (e cosa non è) continua… non definisce un processo; è utilizzato con metodi diversi; è un linguaggio non proprietario; ha ricevuto il contributo di altri metodologi; l’OMG ne cura l’evoluzione; Gaetanino PAOLONE Sistemi informativi aziendali Definiamo ora cos’è (e cosa non è) UML. − è un linguaggio di progettazione, e non un linguaggio di programmazione come Java, VisualBasic, C++,...; − quindi serve a progettare un nuovo sistema, o a apportare modifiche alla progettazione di un sistema esistente, senza perdersi nei dettagli dei linguaggi di programmazione; − è universale, nel senso che può rappresentare sistemi molto diversi senza differenze legate alla tecnologia: dai sistemi web a quelli più tradizionali, dalle vecchie applicazioni Cobol a quelle object oriented e a componenti; − è un linguaggio, non un metodo come quelli di Yourdon e De Marco, o di Rumbaugh o Jacobson; − definisce una notazione standard, basata su un metamodello integrato degli “oggetti” che compongono un sistema software; − non prescrive una sequenza di processo, cioé non dice “prima bisogna fare questa attività, poi quest’altra”; − quindi può essere (ed è) utilizzato da persone e gruppi che seguono metodi diversi (è “indipendente dai metodi”); − è un linguaggio non proprietario, standard, i suoi autori (Grady Booch, Jim Rumbaugh e Ivar Jacobson) non hanno il copyright su UML; − la versione diventata standard OMG (Object Management Group) ha ricevuto i contributi di molti altri metodologi, e delle più importanti società di software mondiali; − la sua evoluzione è a carico dell’OMG, e soggetta a procedure ben definite per ogni cambiamento. UML: meta-modello e diagrammi UML fa riferimento ad un meta-modello; permette di creare modelli rivolti ai sistemi da progettare; molti elementi sono rappresentati da un’icona; gli elementi del meta-modello appartengono a diversi diagrammi; Gaetanino PAOLONE Sistemi informativi aziendali UML è basato su un meta-modello integrato, composto da numerosi elementi collegati tra loro, secondo regole precise. Grazie a queste regole, è possibile creare modelli particolari per le singole applicazioni da progettare. Molti elementi (ad esempio l’elemento “classe”) hanno un’icona che li rappresenta graficamente e possono comparire in diagrammi di diverso tipo. Diagrammi UML 1.1 Diagrammi “strutturali”: diagramma delle classi (class); diagramma dei componenti (component); diagramma di distribuzione dei componenti (deployment); Diagrammi “comportamentali”: diagramma dei casi d’uso (use case); diagramma di sequenza (sequence); diagramma di collaborazione (collaboration); diagramma di transizione di stato (statechart); diagramma delle attività (activity); Gaetanino PAOLONE Sistemi informativi aziendali Diagrammi UML 2.0 Diagrammi “strutturali”: diagramma delle classi (class); diagramma degli oggetti (object); diagramma dei package; diagramma dei componenti (component); diagramma delle strutture composite (composite structure); diagramma di distribuzione dei componenti (deployment); Diagrammi “comportamentali”: diagramma dei casi d’uso (use case); diagramma di stato (statechart); diagramma delle attività (activity); diagramma di sequenza (sequence); diagramma di comunicazione (communication); diagramma di temporizzazione (timing); diagramma di sintesi dell’interazione(interaction overview); Gaetanino PAOLONE interaction Sistemi informativi aziendali Diagrammi UML 2.0 Diagramma UML 2.0 Diagramma strutturale Diagramma delle classi Diagramma dei componenti Diagramma degli oggetti Diagramma di dislocazione Diagramma use case Diagramma di struttura Diagramma composita dei package Diagramma di comunicazione Gaetanino PAOLONE Diagramma comportamentale Diagramma di sequenza Diagramma State machine Diagramma di interazione Diagramma di temporizzazione Diagramma di attività Diagramma interaction overview Sistemi informativi aziendali UML nella sua ultima versione 2.0 comprende 13 diagrammi ufficiali che vengono classificati come mostrato nella slide in funzione dell’aspetto del sistema che si propongono di descrivere: − diagrammi strutturali, che consentono di modellare la struttura del sistema; − diagrammi comportamentali, che descrivono il comportamento assunto dal sistema. La classificazione dei diagrammi non è rigida tant’è che è possibile ritrovare la stessa tipologia di diagramma per descrivere aspetti differenti del medesimo sistema. Diagrammi: viste Vista strutturale diagramma delle classi diagrammi degli oggetti diagramma dei package diagramma di struttura composito diagramma dei componenti diagramma di deployment Vista dinamica diagrammi di interazione - diagramma di sequenza - diagramma di comunicazione - diagramma di interaction overview - diagramma di temporizzazione diagramma state machine diagramma protocol state machine 0RVWUDFRPHLOVLVWHPD Gaetanino PAOLONE HYROYHQHOWHPSR Vista comportamentale diagramma use case diagramma attività Sistemi informativi aziendali Oltre alla vista strutturale e comportamentale, è possibile descrivere anche come il sistema evolve nel tempo, offrendo una vista dinamica del sistema. Diagramma dei casi d’uso Diagramma dei casi d'uso: vendita per corrispondenza effettua ordine Venditore verifica stato avanzamento Customer attore: un utilizzatore del sistema (essere umano, altro sistema, …) Gaetanino PAOLONE caso d’uso: una particolare modalità di utilizzo del sistema Sistemi informativi aziendali Nella slide è riportato un esempio elementare di diagramma dei casi d’uso. E’ facile identificare due costrutti fondamentali in UML: il costrutto attore, che rappresenta un utilizzatore del sistema (sia esso un essere umano o un altro sistema) e il costrutto caso d’uso, a descrivere una particolare modalità di utilizzo del sistema. Le linee che uniscono questi due costrutti indicano che l’attore interessato interagisce col sistema attuando la modalità di utilizzo descritta dal caso d’uso. Casi d’uso : a cosa servono rappresentano le modalità di utilizzo del sistema da parte di uno o più utilizzatori (attori); descrivono l’interazione tra attori e sistema, non la “logica interna” della funzione; sono espressi in forma testuale, comprensibile anche per i non “addetti ai lavori” ; possono essere definiti a livelli diversi (sistema o parti del sistema); ragionare sui casi d’uso aiuta a scoprire i requisiti; Gaetanino PAOLONE Sistemi informativi aziendali Ruolo dei casi d’uso Acquirente Venditore requisiti caso d’uso: effettua ordine unità di rilascio modelli di analisi e disegno Ordine DataArrivo Numero Prezzo verifica( ) evadi( ) Cliente nome indirizzo 0..* Gaetanino PAOLONE casi di test 1 StabilisciCredito( ) Sistemi informativi aziendali Una volta tradotti i requisiti in casi d’uso, questi sono il collegamento con il modello fisico delle classi che dall’analisi arriva alla progettazione, con i casi di test e con le unità di rilascio. Livello di utilizzo degli use case Caso d’uso di business: descrive l’interazione con il sistema (in attesa di una risposta o di un evento). Caso d’uso di sistema: implica l’interazione con il software. Gaetanino PAOLONE Sistemi informativi aziendali Il costrutto caso d’uso può essere utilizzato a livello di business e a livello di sistema. In ciascuno di questi due casi sarà assegnato uno stereotipo diverso in modo da poter distinguere quando il costrutto descrive l’interazione con il sistema (in attesa di una risposta o di un evento) o l’interazione con il software. Relazioni fra Attori e Use Case relazione di associazione Un attore può essere in relazione con: uno use case use case 1 (relazione di associazione) Attore 1 un altro attore (relazione di generalizzazione) L’attore specializzato eredità le associazioni dell’attore base e può interagire con gli use case associati a quest’ultimo. attore base use case 1 Attore 1 relazione di specializzazione use case 2 attore specializzato Attore 2 Gaetanino PAOLONE Sistemi informativi aziendali Gli attori possono essere in relazione con: − un caso d’uso; − un altro attore. Nel primo caso la relazione è di associazione e sta ad indicare che l’attore interagisce col sistema attuando la modalità di utilizzo descritta dal caso d’uso. La relazione che lega un attore ad un altro attore è invece una generalizzazione secondo la quale l’attore specializzato eredita le associazioni dell’attore base e può interagire con i casi d’uso associati a quest’ultimo. Esempio di Generalizzazione fra Attori diagramma use case senza relazione fra gli attori Crea conto corrente Cassiere Modifica conto corrente Cancellazione conto corrente diagramma use case con la relazione fra gli attori Funzionario Crea conto corrente Operatore Modifica conto corrente Cancellazione conto corrente Cassiere Funzionario Le relazioni fra gli attori aumentano la leggibilità dei diagrammi e forniscono un modello logico più articolato. In questo esempio viene introdotto il concetto di attore Operatore che può creare un conto o modificare un conto. Entrambi gli attori Cassiere e Funzionario specializzano Operatore (e quindi ereditano la possibilità di creare o modificare un conto), il primo non aggiunge nessuna funzionalità il secondo ha in più la possibilità di chiudere un conto. Diagramma dei casi d’uso di un Bancomat Bancomat Lista movimenti Preleva Utente Stampa saldo Attiva bancomat Disattiva bancomat Operatore Gaetanino PAOLONE Leggi registrazioni Consorzio Banche Sistemi informativi aziendali Questo esempio mostra come un semplice diagramma contenga tutte le informazioni fondamentali del sistema bancomat. Mette in luce quali sono le attività che possono essere eseguite e soprattutto chi ha la capacità di svolgerle. Casi d’uso e scenari Uno scenario definisce un comportamento elementare all’interno del caso d’uso ovvero rappresenta un percorso del caso d’uso; per ogni caso d’uso si possono avere n scenari; Gaetanino PAOLONE Sistemi informativi aziendali Le Relazioni fra Use Case Sistemi di grandi dimensioni o articolati forniscono responsabilità che potrebbero: condividere comportamenti comuni; essere estese da altre responsabilità. In queste situazioni l’uso di relazioni tra gli Use Case può comportare un enorme risparmio di tempo per la modellazione fattorizzando i comportamenti comuni oppure riusando degli use case esistenti. Gaetanino PAOLONE Sistemi informativi aziendali Le Relazioni fra Use Case Le relazioni fra Use Case sono: inclusione incorpora il comportamento di uno use case in un altro estensione estende uno use case con un comportamento opzionale generalizzazione consente di specializzare uno use case Gaetanino PAOLONE Sistemi informativi aziendali Uno dei vantaggi più significativi derivanti dall’impiego dei casi d’uso, riguarda la possibilità di legarli attraverso delle relazioni di inclusione, estensione o generalizzazione, che permettono di esprimere, in maniera chiara, applicazioni caratterizzate da una certa complessità. Qualora un caso d’uso risultasse abbastanza complesso da annettere numerosi scenari (ognuno dei quali rappresenta un comportamento opzionale) sarebbe possibile distinguere più casi d’uso legati da una relazione di estensione; al contrario si può verificare che un caso d’uso ne includa un altro, in questo caso la relazione sarà di inclusione, infine, alcune funzionalità del sistema potrebbero essere specializzate con altre a cui corrisponderanno altrettanti casi d’uso legati alla funzionalità “padre” da una relazione di generalizzazione/specializzazione. Diagramma delle classi Libro cod_libro titolo data edizione ISDN data acquisizione richiesta( ) restituzione( ) create( ) pubblicato da 1 0..* variazione dati editore( ) 1..* scritto da 0..* 0..* Libro prezioso valore : lire = 0 classe: una collezione di oggetti, con propri attributi ed operazioni Editore ragione sociale nome breve indirizzo sede telefono Autore nome : type = initval cognome : type = initval anno nascita anno morte variazione anagrafica( ) valorizza( ) Gaetanino PAOLONE 0..* Prestito Utente variazione anagrafica( ) Sistemi informativi aziendali Diagramma delle classi E’ la descrizione di un insieme di oggetti che condividono gli stessi attributi, operazioni, metodi, relazioni e semantiche. UML usa il termine caratteristiche per indicare le proprietà e le operazioni di una classe. Le proprietà rappresentano le caratteristiche strutturali di una classe. Gaetanino PAOLONE Sistemi informativi aziendali Il diagramma delle classi è uno strumento fondamentale per le metodologie Object Oriented ed è utilizzato in diversi momenti del ciclo di vita di un sistema informativo per modellarne la struttura statica a diversi livelli di astrazione: per descrivere modelli concettuali nelle attività di analisi, per definire delle specifiche nel corso del progetto, per definire particolari tecniche di implementazione. Un diagramma delle classi descrive il tipo degli oggetti che fanno parte di un sistema, le varie tipologie di relazioni statiche tra di essi (di dipendenza, associazione, generalizzazione e realizzazione), le proprietà, ossia le caratteristiche strutturali come gli attributi e le associazioni, le operazioni di una classe, i vincoli che si applicano ai collegamenti tra gli oggetti di una classe e le interfacce. Diagramma delle classi diagramma delle classi Classe1 I diagrammi delle classi mostrano le classi che modellano un dominio del pproblema e le loro relazioni. Classe6 Classe2 Classe3 assoc1 Classe4 assoc2 Classe5 assoc4 assoc3 diagramma degli oggetti I diagrammi degli oggetti mostrano le istanze delle classi in particolari istanti temporali. ist1:classe2 attz = “val” :classe3 attk = “val” attj = “val” :classe4 attw = “val” :classe6 attx = “val” atty = “val” Gaetanino PAOLONE Sistemi informativi aziendali Un diagramma degli oggetti equivale ad una fotografia del sistema in un particolare momento della sua vita descrivendo insiemi di oggetti, le loro relazioni e il loro stato. Dal momento che mostra istanze piuttosto che classi, un diagramma degli oggetti viene spesso chiamato diagramma delle istanze. L’utilità associata a tale diagramma è duplice: − facilita la comprensione degli aspetti strutturali del sistema nel suo complesso, in quanto fornisce una rappresentazione esemplificativa in termini di istanze degli oggetti del sistema piuttosto che di classi cui tali istanze appartengono; − offre la possibilità di visualizzare lo stato di una porzione del sistema e la configurazione che tale porzione assume in un determinato momento del suo ciclo di vita permettendo l’esamina di quali oggetti sono presenti, quale stato tali oggetti assumono e quali sono le relazioni tra di loro in modo da verificare il corretto funzionamento del sistema. I diagrammi di interazione diagramma di sequenza I diagrammi di sequenza sono diagrammi di interazione focalizzati sull’ordinamento temporale dei messaggi inviati agli oggetti. inst1:classe1 :classe2 :classe3 msg1 :classe5 «create» msg2 :classe6 msg3 msg4 msg5 «delete» diagramma di comunicazione I diagrammi di collaborazione sono diagrammi di interazione focalizzati sull’organizzazione spaziale degli oggetti. 2 : msg2 1 : msg1 :classe2 istanza:classe1 3 : msg3 8 : msg8 7: msg7 :classe3 5 : msg5 :classe4 4 : msg4 :classe5 6 : msg6 :classe6 Gaetanino PAOLONE Sistemi informativi aziendali Un diagramma di interazione descrive il comportamento di gruppi di oggetti che collaborano tra loro per svolgere un determinato compito, o meglio rappresenta il flusso di controllo tra gli oggetti per la realizzazione di una funzione del sistema descritta in un caso d’uso. La specifica dei diagrammi di interazione comporta l’assegnazione di responsabilità agli oggetti, in quanto il fatto stesso che un oggetto sia in grado di rispondere ad un messaggio inviato da un altro oggetto, indica una decisione progettuale di assegnazione delle responsabilità. Nella sua versione più recente UML definisce quattro diversi formalismi per la descrizione delle interazioni: il diagramma di sequenza, di comunicazione (o collaborazione), di temporizzazione e di sintesi dell’interazione. In particolare il diagramma di sequenza è la tipologia più utilizzata dei diagramma di interazione e documentano il comportamento di un singolo scenario. Un diagramma di sequenza infatti include un certo numero di oggetti, o meglio di partecipanti, e i messaggi scambiati tra essi durante l’esecuzione del caso d’uso. A ciascun partecipante è associata una linea tratteggiata verticale, o lifeline, sulla quale sono posizionate delle barre di attivazione utilizzate come punto di partenza e di arrivo dei messaggi da e verso il partecipante. La forza che scaturisce dall’uso dei diagrammi di sequenza si riassume nella chiarezza con cui la sequenza delle chiamate evidenzia le modalità e le differenze di interazione tra i partecipanti illustrando cosa fa ognuno di essi. I diagrammi di comunicazione enfatizzano lo scambio di dati tra i partecipanti. Ogni oggetto è rappresentato tramite un’icona e collegato agli altri oggetti tramite links, i messaggi scambiati sono preceduti da un numero, secondo un particolare stile di numerazione progressivo o nidificato, ad indicare la sequenza con cui avvengono le chiamate. Invece di indicare ogni partecipante con la sua linea di vita e rappresentare l’ordine dei messaggi in base alla posizione lungo l’asse verticale, come nel diagramma di sequenza, quelli di comunicazione permettono di disegnare i partecipanti in qualsiasi posizione aggiungendo collegamenti per mostrare le connessioni. Volendo spiegare la differenza in modo più razionale, si può affermare che i diagrammi di sequenza esprimono meglio la successione delle chiamate, mentre quelli di comunicazione pongono l’accento sul collegamento tra gli oggetti. Diagramma di sequenza interfaccia richiesta : Utente : interfaccia biblioteca consente all'utilizzatore di richiedere in prestito uno o più libri 1: RichiestaPrestito 2: L'utente fornisce i dati relativi al libro (ai libri) che vuole in prestito. Il sistema verifica se 6: err: utente non censito ( l'utente è censito, 5: controllo richiesta : Utente : Libro : Prestito messaggio oggetto 3: ControlloUtentePerPrestito ( 4: 7: PrestitiDelCliente ( ) Verifica quindi se ha 10: err: utente deve restituire libri in prestito da restituire, o se ne ha già tre in prestito, segnala l'impossibilità del prestito. Altrimenti il sistema controlla se i libri sono 15: err: libro già in prestito disponibili, e se lo sono li fornisce all'utente, altrimenti segnala l'errore specifica di scenario (caso d’uso) Gaetanino PAOLONE attività dell’oggetto 8: 9: 11: richiesta (cod_libro) 13: 14: 12: Prestito ( ) Sistemi informativi aziendali Diagramma di sequenza: a cosa serve • evidenzia il modo in cui uno scenario (uno specifico percorso in un caso d’uso) viene risolto dalla collaborazione tra un insieme di oggetti • specifica la sequenza dei messaggi che gli oggetti si scambiano • può specificare nodi decisionali e iterazioni • diagrammi di sequenza e diagrammi di collaborazione (di comunicazione) esprimono informazioni simili, ma le evidenziano in modo diverso Gaetanino PAOLONE Sistemi informativi aziendali Diagramma di sequenza • Asse verticale: tempo, dall'alto verso il basso • Asse orizzontale: oggetti, da sinistra verso destra in ordine decrescente di importanza; nella prima colonna l'oggetto che avvia la collaborazione • Due caratteristiche importanti, per ciascun oggetto la "linea della vita" il "focus of control": evidenzia il periodo di tempo durante il quale un oggetto sta eseguendo un'azione, direttamente o utilizzando una procedura subordinata Gaetanino PAOLONE Sistemi informativi aziendali Ancora … diagramma state machine Inizio del ciclo di vita dell’oggetto I diagrammi statechart mostrano la macchina a stati che modella la logica di controllo di un oggetto. Stato A evento / azione evento / azione Stato B evento / azione Stato C evento / azione Fine del ciclo di vita dell’oggetto diagramma delle attività Attività 1 I diagrammi delle attività mostrano i flussi fra le attività, cioè fra azioni non atomiche. [condizione] Attività 5 [condizione] Attività 4 Attività 2 Attività 3 Gaetanino PAOLONE Negli approcci Object Oriented il comportamento assunto da un singolo oggetto durante il suo ciclo di vita viene riassunto in un diagramma di macchina a stati. Un oggetto può assumere diversi stati nel contesto dei casi d’uso ai quali partecipa e i suddetti diagrammi servono proprio a chiarire la logica con la quale avviene il passaggio da uno stato all’altro. Gli elementi principali di questo diagramma sono tutti i possibili stati e le transizioni che indicano i possibili passaggi di stato. Più stati possono essere raggruppati in superstati allo scopo di indicare in modo semplice un comportamento comune dell’oggetto in stati differenti, ad esempio transizioni che si svolgono in modo identico da e verso un gruppo di stati. Ovviamente non è pensabile produrre un diagramma per ogni classe, il che risulterebbe oneroso e al tempo stesso inutile, ma ci si limita a quelle che hanno una logica interna interessante e complessa in modo da migliorare la comprensione del loro funzionamento. I diagrammi di attività sono in grado di modellare gli aspetti dinamici di un sistema in quanto rappresentano l’insieme di azioni da svolgere per ottenere un certo risultato. Per questa ragione vengono utilizzati per descrivere una logica procedurale, processi di business e workflow. Le attività che prendono parte a un diagramma di questo tipo hanno inizio a partire dal nodo iniziale e terminano in uno o più punti che indicano la fine della sequenza. Le relazioni che collegano un’attività all’altra rappresentano il passaggio del flusso di controllo e possono essere di varia natura: è possibile che più sequenze di azioni vengano svolte contemporaneamente, in questo caso i flussi di attività saranno introdotti da un fork, ossia un elemento grafico che ha un solo flusso in ingresso e tanti flussi in uscita quanti sono i flussi di controllo eseguiti in modo concorrente; ovviamente ovunque ci sia parallelismo sorge anche la necessità di sincronizzarsi, ovvero di ricomporre i vari flussi in uno unico. Per esprimere tale esigenza si ricorre all’elemento grafico di join caratterizzato da più flussi in ingresso e un solo flusso in uscita. In certi casi infine l’esecuzione di un’attività potrebbe essere stabilita di volta in volta in seguito al verificarsi di una certa condizione: opportuni punti di decisione daranno quindi luogo a flussi distinti ciascuno contraddistinto da guardie tutte mutuamente esclusive. Un merge servirà a segnalare la fine del comportamento condizionale. In questo modo il diagramma delle attività si limita a specificare le regole essenziali di ordinamento, quelle che non possono essere violate, lasciando al responsabile del processo descritto la libertà di scegliere l’ordine di esecuzione delle azioni. Questo è molto utile in fase di modellazione di business, dal momento che in tale ambito spesso si verifica che i processi sono svolti in parallelo. Inoltre, sempre per far fronte ad esigenze che emergono durante l’attività di modellazione, ricorrendo alla divisione del diagramma in partizioni risulta possibile associare ad una singola organizzazione o ad una classe già identificata la responsabilità di ciascuna delle azioni presenti nel diagramma. È evidente dunque che questo tipo di diagramma può essere utilizzato per mostrare il comportamento di organizzazioni il cui sistema software si trova ad interagire con processi molto complessi e più in generale per analizzare in dettaglio le attività previste all’interno di uno use case, evidenziando i vincoli di sequenzialità fra diverse attività o invece la possibilità di eseguire alcune attività in parallelo. Diagramma di stato transizione di stato evento stato iniziale stato acquisizione libro( dati libro, autori, editore ) acquisito prestito( data ) restituzione( data restituzione ) in prestito scadenza termini cancellazione libro( ISDN ) stato finale restituzione( data restituzione ) sollecito in ritardo cancellazione libro( ISDN ) Gaetanino PAOLONE Sistemi informativi aziendali Diagramma di stato: a cosa serve • specifica il ciclo di vita degli oggetti di una classe, definendo le regole che lo governano • quando un oggetto si trova in un certo stato può essere interessato da determinati eventi (e non da altri) • come risultato di un evento l’oggetto può passare ad un nuovo stato (transizione) Gaetanino PAOLONE Sistemi informativi aziendali Esempio di Diagramma di Attività con Swimlanes Cliente stato di sincronizzazione (fork) Vendita Magazzino Richiesta prodotto Ricezione ordine stato di sincronizzazione (join) Pagamento Evasione ordine Consegna ordine Archiviazione ordine Gaetanino PAOLONE Sistemi informativi aziendali Diagramma delle attività: a cosa serve • a rappresentare sistemi di workflow, oppure la logica interna di un processo (di qualunque livello, dai business process ai processi di dettaglio) • permette di rappresentare processi paralleli e la loro sincronizzazione • è un caso particolare di diagrammi di stato, in cui ogni stato è uno stato di attività Gaetanino PAOLONE Sistemi informativi aziendali Diagramma delle attività • Attivitj: esecuzione non atomica (in una macchina a stati); include azioni (esecuzione di operazioni, calcoli, invio di messaggi,«) • Diagramma delle attivitj: descrive il flusso fra attivitj • I diagrammi delle attivitj sono quindi più dettagliati dei diagrammi d¶interazione (diagramma delle sequenze e diagramma di collaborazione) Gaetanino PAOLONE Sistemi informativi aziendali Diagramma di flusso oggetto-azione Cliente Vendite Magazzino richiedi servizio ordine [effettuato] ricevi ordine ordine [inserito] paga ordine [completato] ricevi merce ordine [spedito] Gaetanino PAOLONE completa ordine spedisci merce Sistemi informativi aziendali Diagramma di flusso oggetto-azione: a cosa serve • a rappresentare le interazioni tra processi e oggetti • è un caso particolare di diagramma di attività • è un vero e proprio flow chart Gaetanino PAOLONE Sistemi informativi aziendali Considerazioni: UML è uno standard, e questo è un bene (uniformità nei concetti e nelle notazioni utilizzate, interoperabilità tra strumenti, indipendenza dai produttori, dalle tecnologie, dai metodi) UML è articolato: può rappresentare qualunque sistema, a diversi livelli di astrazione UML è complesso: va adattato ("ritagliato") in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ciò che serve nello specifico contesto Gaetanino PAOLONE Sistemi informativi aziendali Systems Modeling Language è un linguaggio di modellazione che supporta la specifica, l’analisi, il design, la verifica e la validazione di un ampio insieme di sistemi complessi che possono includere: hardware servizi software personale informazioni impianti Gaetanino PAOLONE Sistemi informativi aziendali System Modeling Language è uno standard di OMG per la rappresentazione dei sistemi complessi “non solo software”. Lo standard per la rappresentazione del software deriva da UML, pertanto SysML può essere considerato un profilo di UML, cioé una sua estensione ufficiale per la rappresentazione di sistemi complessi, costituiti da componenti hardware e software. La prima versione di SysML (1.0) è del settembre 2007, la 1.1 del maggio 2008, mentre lapiù recente, la 1.2 del giugno 2010. Systems Engineering: non solo requisiti “Systems Engineering is an interdisciplinary approach and means to enable the realization of successful systems. It focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem. Systems Engineering integrates all the disciplines and specialty groups into a team effort forming a structured development process that proceeds from concept to production to operation. Systems Engineering considers both the business and the technical needs of all customers with the goal of providing a quality product that meets the user needs.” INCOSE (Intl. Council on Systems Engineering) Il Systems Engineer deve avere: • • visione interdisciplinare: i sistemi non sono fatti SOLO di software, ma anche di hardware, di meccanica, etc. capacità di mediazione tra le esigenze del business e i vincoli tecnici, con un occhio alle nuove opportunità tecnologiche. Gaetanino PAOLONE Sistemi informativi aziendali Cerchiamo di capire che cosa si intende veramente per Systems Engineering. Quella nel riquadro è la definizione che ne dà la INCOSE, l’International Council on Systems Engineering, un ente internazionale e indipendente che da molti anni si occupa della definizione di metodologie per il Systems Engineering. E’ chiaro che quello che emerge è che il sistemista ha un ruolo estremamente importante nella progettazione di sistemi complessi. Al “sistemista” è richiesto avere: − una visione interdisciplinare: i sistemi non sono fatti SOLO di software, ma anche di hardware, di meccanica, etc..; − la capacità di mediazione tra le esigenze del business e i vincoli tecnici, con un occhio alle nuove opportunità tecnologiche. System Engineering è, dunque, un approccio interdisciplinare e mezzi per consentire la realizzazione di sistemi di successo. Esso si concentra sulla definizione delle esigenze dei clienti e delle funzionalità richieste nelle prime fasi del ciclo di sviluppo, sul documentare i requisiti, quindi di procedere con la progettazione di sintesi e di convalida del sistema, mentre si prende in considerazione il problema nel suo complesso. Systems Engineering integra tutte le discipline e gruppi specializzati in un lavoro di squadra strutturato formando un processo di sviluppo che parte dal concetto di produzione operativa. Systems Engineering ritiene sia il business e le esigenze tecniche di tutti i clienti l'obiettivo per fornire un prodotto di qualità che soddisfi le esigenze degli utenti. Systems Modeling Language Riuso di parte del meta-modello UML 2.1 Tra i nuovi elementi introdotti: • il requisito testuale • il blocco • il constraint block 6\V0/'LDJUDP %HKDYLRU 'LDJUDP $FWLYLW\ 'LDJUDP 6HTXHQFH 'LDJUDP 5HTXLUHPHQW 'LDJUDP 6WDWH0DFKLQH 'LDJUDP 8VH&DVH 'LDJUDP 6WUXFWXUH 'LDJUDP %ORFN'HILQLWLRQ 'LDJUDP 6DPHDV80/ 0RGLILHGIURP80/ ,QWHUQDO%ORFN 'LDJUDP 3DFNDJH'LDJUDP 3DUDPHWULF 'LDJUDP 1HZGLDJUDPW\SH Gaetanino PAOLONE Sistemi informativi aziendali Il SysML è basato su un subset del meta-modello di UML 2.1 con delle specifiche estensioni, di qui l’omogeneità e l’inter-operabilità dei con i modelli di design. Tra le numerose novità introdotte dallo standard, abbiamo tre nuove entità di modello: − il requisito testuale, che permette di visualizzare e relazionale l’elemento fondamentale del Requirement Engineering e le relazioni che esistono con gli elementi di design del modello UML (superando ampiamente i limiti e gli usi impropri degli use case che spesso venivano usati come rappresentazioni dei requisiti nel modello); − il blocco, che è una estensione della classe. Questa così come è non poteva andare bene per il System Engineering perché pensata espressamente per i sistemi software. Il blocco serve a descrivere le parti del sistema e la struttura interna delle parti; − il constraint block, che non è semplicemente la possibilità di vincolare gli elementi UML che era già presente in UML (esempio il linguaggio formale OCL), ma qualcosa di più e specifico per il Systems Engineering perché permette di modellare proprietà, formule e quantità invarianti della struttura interna del sistema. Insieme alle nuove entità, sono state aggiunti i corrispondenti nuovi diagrammi che forniscono la prospettiva visuale (punti di vista) dei Requisiti (Requirement Diagram), della struttura del sistema (Definition e Internal Block Diagram), dei vincoli parametrici (Constraint Block Diagram). Processo di sviluppo: note introduttive Business Modeling Analisi e Definizione dei Requisiti Analisi Concetuale Progettazione Implementazione Test e collaudi Gaetanino PAOLONE Sistemi informativi aziendali Il processo di sviluppo di un sistema software è costituito da un insieme di passi che consentono di muoversi dalle attività di Business Modeling e Analisi dei requisiti fino all’Implementazione e alla consegna del sistema guidando i diversi team di lavoro durante l’intero ciclo di vita del sistema informatico. Il Modello a Cascata Business Modeling Analisi e Definizione dei Requisiti Analisi Concetuale Progettazione A cascata vuol dire che lo sviluppo del sistema procede attraverso una fase alla volta: una fase viene terminata completamente e quindi si passa alla successiva. Gaetanino PAOLONE Implementazione Test e collaudi Sistemi informativi aziendali Inizialmente si riteneva che lo sviluppo di un sistema potesse essere condotto mediante un approccio sequenziale, cosiddetto a cascata , che consta di una sequenza di fasi strutturata in analisi dei requisiti, progetto, sviluppo, collaudo, integrazione e manutenzione. Ciascuna di queste fasi produce un ben preciso output che viene utilizzato come input per la fase successiva. Sebbene il modello a cascata ebbe un enorme successo negli anni settanta quando venne teorizzato e viene utilizzato ancora oggi, la complessità crescente dei sistemi da realizzare ha reso impraticabile questo approccio. Infatti le attività di analisi e progettazione di un “grande sistema” si presentano di lunghezza e complessità tali da ritardare oltremodo l’avvio del sistema e da comportare rischi di obsolescenza del sistema prima che lo stesso entri nella fase realizzativa. Il Modello Incrementale Incrementale vuol dire creare qualcosa pezzo per pezzo e integrare i pezzi un po’ alla volta per realizzare il sistema finale. Gaetanino PAOLONE Sistemi informativi aziendali Tale modello deriva dalla “fusione” del modello a cascata e di quello iterativo, infatti prevede lo svolgimento sequenziale di quattro fasi - analisi dei requisiti, progetto, codifica e test (o collaudo)- che si ripetono in blocco in modo che in uscita da ogni sequenza di svolgimento delle fasi si ottenga una versione funzionante del sistema, migliore della precedente. L’utilizzo di questo modello supera i limiti del modello a cascata e consente una progettazione adeguata in quanto conduce ad un sistema solido. Tale approccio è consigliabile quando si ha fin dall’inizio una visione abbastanza chiara dell’intero progetto, perché occorre fare in modo che la realizzazione della generica versione k risulti utile per la realizzazione della versione k+1. Piano metodologico di riferimento Disciplina Modello •Business Modeling Linguaggio naturale UML Elaborato Business Use Case diagram Documento di Visione •Analisi e definizione dei requisiti •Analisi concettuale •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali Le attività che costituiscono la realizzazione di un progetto informatico sono quelle riportate nella prima colonna della tabella. A ciascuna di queste attività corrisponde un modello, ossia un insieme di artefatti creati come il risultato di un processo di astrazione che viene adottato per eliminare i dettagli inessenziali ai fini della specifica attività condotta e per comunicare i risultati e agevolarne la comprensione. In questo modo ciascuna attività svolta prevede l’emissione di “prodotti-elaborato” che consentono di descrivere nel dettaglio quanto previsto nell’ambito di ciascuna di esse. Metodologia di riferimento Il RUP è un processo per lo sviluppo del software, definito e commercializzato da Rational nel 1999 (nel 2003 la Rational è stata acquisita da IBM), che provvede a disciplinare l'assegnazione dei compiti e delle responsabilità nel contesto di un progetto software. Un processo di sviluppo del software identifica un insieme di attività necessarie per trasformare le esigenze dell'utente in un'applicazione software. (VLJHQ]H XWHQWH 3URFHVVRGL VYLOXSSRGHO VRIWZDUH $SSOLFD]LRQH 9LVXDO80/OQN VRIWZDUH Gaetanino PAOLONE Sistemi informativi aziendali Anche se RUP (Rational Unified Process) viene spesso chiamato processo è in realtà un’infrastruttura per la definizione di processi che fornisce un vocabolario e una struttura generica utile per discutere i processi software. Per questo la prima cosa da fare quando si sceglie di adottare il RUP è definire il caso di sviluppo, ossia il particolare processo adottato per il progetto corrente. Infatti a seconda delle esigenze del progetto, del tipo di sistema che si deve costruire e delle sue dimensioni oltre che della tecnologia utilizzata, varieranno l’esatta sequenza dei passi da compiere e i prodotti rilasciati durante il processo. A prescindere dal particolare caso di sviluppo il RUP è un processo iterativo e incrementale: il sistema non viene rilasciato un’unica volta alla fine del processo ma in passi successivi. Questo permette dei vantaggi significativi quanto più aumenta la complessità del sistema da sviluppare. Innanzitutto la comprensione del problema da risolvere non avviene in un’unica fase iniziale ma in passi successivi con il raffinamento e la crescita incrementale di un medesimo modello nel corso di cicli successivi. Inoltre l’approccio iterativo garantisce la possibilità di accogliere nuove esigenze o modifiche negli obiettivi per i quali viene sviluppato il sistema e di affrontare e risolvere già nelle fasi iniziali i rischi collegati allo sviluppo del sistema quali i rischi tecnologici, professionali e organizzativi. Le Discipline del RUP Una disciplina (processo) definisce tutte le attività attraverso le quali viene prodotto un insieme di artefatti. Un artefatto (elaborato) è un insieme di informazioni usato o prodotto dal processo di sviluppo del software. Una disciplina è descritta da: discipline Elementi di base Concetti Workflow Elenco delle attività Elenco degli artefatti Elenco delle linee guida Gaetanino PAOLONE Sistemi informativi aziendali Il RUP prevede le discipline, o core workflows, ciascuna delle quali definisce le attività attraverso le quali vengono prodotti gli artefatti. Queste discipline servono anche a raggruppare logicamente i vari elementi della componente statica e sono a loro volta suddivise in engineering workflows e supporting workflows Un artefatto è un insieme di elementi del progetto realmente tangibili (elaborato) usato o prodotto dal processo di sviluppo del software. Un aretfatto può presentarsi sotto moletplici forme: come Modelli o Elementi di modelli (ad esempio diagramma dei casi d’uso e dunque caso d’uso, classe,...), come documenti generici o codici sorgente, come eseguibili (ossia come prototipi funzionanti). Ogni disciplina è descritta tramite diversi elementi acui corrisponde una specifica rappresentazione grafica. Gli Elementi di RUP Il RUP è descritto usando quattro elementi: Workflow (quando) Worker (chi) Attività (come) Artefatti (cosa) :RUNHU $WWLYLWj (ODER UDWR :RUNIORZ Gaetanino PAOLONE Sistemi informativi aziendali Il RUP è rappresentato usando quattro elementi di modellazione: − i workflow, che chiariscono quando le cose vengono realizzate; − i worker, che rappresentano chi fa il lavoro, sia esso una singola persona o un gruppo di lavoro; − le attività, che esprimono come viene svolto il lavoro; − gli artefatti, che mostrano cosa viene fatto. Un workflow è una sequenza di attività che produce un risultato osservabile; ovvero è quella cosa che, raggruppandoli logicamente, va oltre il semplice elenco di ruoli, attività e artefatti, andando a palesare le interazioni tra essi. In UML sono espressi come sequence diagram, collaboration diagram o activity diagram. I workflow sono solitamente espressi in varie forme, comunemente abbiamole Discipline, ovvero workflow di alto livello e i Workflow Details che sono i workflow presenti all’interno delle discipline I worker, o ruoli, sono come un “cappello” che una persona o un gruppo indossa. Una persona o un gruppo può ricoprire più ruoli e un ruolo può essere ricoperto da più persone. Una attività relativa a uno specifico ruolo è una unità di lavoro da svolgere, caratterizzata da un preciso traguardo espresso come modifica o creazione di artefatti. Le attività possono essere ripetute da parte dello stesso ruolo più volte sullo stesso artefatto, anche se il ruolo non è lo stesso individuo. Un artefatto è un insieme di elementi del progetto realmente tangibili (elaborato) usato o prodotto dal processo di sviluppo del software. Un aretfatto può presentarsi sotto moletplici forme: come Modelli o Elementi di modelli (ad esempio diagramma dei casi d’uso e dunque caso d’uso, classe,...), come documenti generici o codici sorgente, come eseguibili (ossia come prototipi funzionanti). Le Fasi del RUP Gaetanino PAOLONE Sistemi informativi aziendali Le quattro fasi del ciclo di vita del processo RUP sono: 1. ideazione: obiettivo di questa fase è comprendere profondamente il contesto del business, quindi definire il dominio del problema e scoprire tutti i requisiti di alto livello. In questa fase è possibile effettuare una stima preliminare dei tempi e dei costi relativi al progetto che si vuole intraprendere contestualmente all’identificazione degli eventuali rischi connessi; 2. elaborazione: la fase di elaborazione ha la responsabilità di affrontare la maggior parte delle difficoltà legate all’aspetto tecnologico del sistema. Devono essere affrontate le problematiche relative al design, all’implementazione, al testing, alla scelta dell’architettura di base e delle interfacce, ponendo particolare attenzione sulle comunicazioni inter-processo e alla persistenza dei dati; 3. costruzione: in questa fase avviene l’implementazione del software; vengono prodotte varie release interne e alla fine si deve ottenere una prima versione beta funzionante e completa di documentazione, materiale di supporto all’utilizzo e pronta per l’installazione; 4. transizione: alla fine del ciclo di vita ci si occupa del testing complessivo e delle modifiche di poco conto. Si affrontano il fine-tuning e le piccole modifiche legate al feedback ottenuto dall’utente finale (se si è operato in modo corretto in tutte le fasi queste modifiche saranno inezie, poiché le modifiche importanti e strutturali devono già essere emerse nelle fasi precedenti). Schematizzazione del RUP Gaetanino PAOLONE Sistemi informativi aziendali Il processo è strutturato su due dimensioni: − la struttura dinamica, ovvero la dimensione temporale del processo, l’asse orizzontale in figura che mostra come il processo, espresso come cicli, fasi, iterazioni e milestones si distribuisce su tutto il ciclo di vita del progetto; − la struttura statica: è l’asse verticale in figura e raggruppa logicamente in workflow gli elementi del processo (attività, discipline, ruoli e artifatti). Fasi e Milestone Una fase ha le seguenti caratteristiche: identifica il periodo di tempo fra due milestone principali del processo; durante la fase vengono soddisfatti un insieme ben definito di obiettivi; durante la fase vengono completati degli artefatti; include le decisioni per passare alla fase successiva. Un milestone principale ha le seguenti caratteristiche: è un evento a livello di sistema definito al termine di ogni fase di sviluppo per dare visibilità a elementi significato a livello di sistema; sincronizza le prospettive gestionali e ingegneristiche; verifica che gli obiettivi della fase siano stati raggiunti. Gaetanino PAOLONE Sistemi informativi aziendali Sviluppare un Progetto in Modo Iterativo Sviluppare un progetto in maniera iterativa vuol dire eseguire in modo ripetitivo un insieme di processi o di attività orientati al miglioramento di un prodotto parziale fino a farlo diventare prodotto finale. 8QDLWHUD]LRQH qXQDXQLWjGLJHVWLRQHVRWWRSURJHWWR DOO¶LQWHUQRGLXQSURJHWWRJOREDOHFRVWLWXLWDGDXQDVHTXHQ]D GLVWLQWDGLDWWLYLWjFKHSURGXFRQRXQDUHOHDVH Gaetanino PAOLONE Sistemi informativi aziendali Sviluppare un Progetto in Modo Iterativo Una release è un insieme relativamente completo e consistente di artefatti, contenente possibilmente una versione eseguibile del sistema (build). Una release rappresenta un rilascio formale del risultato di un’iterazione e pertanto deve essere formalmente pianificata. Gaetanino PAOLONE Sistemi informativi aziendali Nella categoria dei modelli iterativi rientrano tutti i processi di sviluppo che permettono di ritornare ad una fase del procedimento già affrontata in precedenza. Per ogni fase “iterabile” si tende a partire con un abbozzo della soluzione che verrà successivamente raffinata al passaggio seguente. Schematizzazione di un’Iterazione Gaetanino PAOLONE Sistemi informativi aziendali Il RUP® si basa su un approccio di tipo iterativo e incrementale che consiste in una serie di step, detti iterazioni, ripetuti per raffinarne il prodotto. Ciascuna iterazione può coinvolgere tutti o solo alcuni dei settori dello sviluppo, dalla raccolta dei requisiti all’analisi passando per le fasi di design e implementazione. L’output di una iterazione equivale all’input dell’iterazione successiva che, a sua volta, restituisce un output più raffinato facendo così evolvere il prodotto fino ad ottenere il prodotto finale, completo e perfettamente funzionante. Ogni iterazione ha un focus on differente a seconda dell’avanzamento del progetto: le prime iterazioni sono comunemente incentrate sulla raccolta dei requisiti e sull’analisi mentre le iterazioni svolte sul prodotto ad uno stadio più maturo si concentrano principalmente sulle fasi di implementazione e test. Questo tipo di approccio permette di aggredire in modo molto efficace le criticità tipiche dello sviluppo del software ed in particolar modo permette di: − evidenziare i problemi gravi in maniera molto precoce, permettendo così di porvi rimedio efficacemente e a basso costo; − aumentare gli scambi informativi con i clienti, in modo da individuarne le reali aspettative e i reali requisiti del sistema; − anticipare i test sul prodotto in modo da valutare in maniera oggettiva lo stato di avanzamento del progetto ed evidenziare precocemente le incoerenze tra requisiti e prodotto; − migliorare il processo di sviluppo stesso utilizzando le conoscenze acquisite dai gruppi di lavoro nel corso del progetto. Il Modello Iterativo Il modello iterativo indica che un sistema, un sottosistema, un componente, ecc., viene realizzato in più passi in modo che a ogni passo una parte di essi venga creata estendendo e arricchendo in modo consistente un’altra parte già realizzata. Gaetanino PAOLONE Sistemi informativi aziendali Fasi del RUP e Iterazioni Gaetanino PAOLONE Sistemi informativi aziendali Model Driven Architecture: che cosa è MDA? L’MDA ha come scopo la definizione delle soluzioni in modo indipendente dalla piattaforma tecnologica. ciò garantisce la portabilità delle stesse soluzioni ai medesimi problemi presenti anche in progetti diversi; il concetto di piattaforma è molto di più esteso di quello che si potrebbe pensare: oltre a OS e HW, comprende anche framework di simulazione e di testing; MDA invita a progettare un intero sistema con modelli diversi, uno per ogni livello di astrazione, assicurando in cambio una completa portabilità della soluzione grazie a delle trasformazioni tra modelli di diverso livello. Gaetanino PAOLONE Sistemi informativi aziendali Model Driven Architecture è uno standard OMG che ha come scopo la definizione delle soluzioni in modo indipendente dalla piattaforma tecnologica su cui viene realizzata. Ciò garantisce la portabilità delle stesse soluzioni ai medesimi problemi presenti anche in progetti diversi. Il concetto di piattaforma è molto di più esteso di quello che si potrebbe pensare, include, oltre a OS e HW, anche framework di simulazione e di testing. Quindi far migrare una stessa applicazione da una piattaforma all’altra può includere: − simulare e testare una applicazione embedded su un normale PC (piattaforma = OS+dispositivi HW); − instrumentare il codice per valutare la copertura dei test (piattaforma + framework di testing). MDA invita a progettare un intero sistema con modelli diversi, uno per ogni livello di astrazione, assicurando in cambio una completa portabilità della soluzione grazie a delle trasformazioni tra modelli di diverso livello. Model Driven Architecture: i modelli definiti da MDA &,0 • CIM, Computation Independent Model 0RGHO!! 7UDVIRUPD]LRQH GLUHWWD 3,0 • PIM, Platform Independent Model 0RGHO!! 360 360 360 0RGHO!! 0RGHO!! PSM Bridge &RGH!! &RGH!! Code Bridge 0RGHO!! &RGH!! • PSM, Platform Specific Model • CODE MDA contempla la possibilità di trasformazioni dirette. Gaetanino PAOLONE Sistemi informativi aziendali In MDA esistono almeno quattro livelli di astrazione, ognuno del quale coperto da uno specifico tipo di modello. [ATTENZIONE, non stiamo parlando assolutamente di strati software!!!]. − CIM, Computation Independent Model, descrive quello che occorre fare, ma da punto di vista dell’analista (Modello dei requisiti e regole di business); − PIM, Platform Independent Model, descrizione della soluzione ma dal punto di vista dell’implementatore a prescindere dalla specifica piattaforma (nel senso più esteso del termine); − PSM, Platform Specific Model, è il modello della soluzione che tiene conto anche della piattaforma.La stessa soluzione può essere condivisa da più PIM di progetti diversi anche se implemenati su piattaforme diverse. Inoltre la stessa soluzione può essere realizzata con diversi PSM, uno per piattaforma implementativa. Parti di una singola soluzione potrebbero dover funzionare su più piattaforme diverse contemporaneamente: tanti PSM collegati tra loro da bridge; − CODE,è una sorta di modello “degenere”. MDA contempla anche “trasformazioni dirette”, come ad esempio tra PIM e CODE. (Ovviamente il PSM potrebbe essere comunque generato, ma solo per documentazione e debugging). Model Driven Architecture: le trasformazioni MDA 3,0 Trasformazione di modello: 0RGHO!! è un processo di conversione di un modello in uno o più modelli che descrivono, ad un altro livello di astrazione, lo stesso sistema ? ? 360 Trasformazione possibili: 0RGHO!! - Manuale – look-up table - Automatica - Ricerca e sostituzione - Automatica - Basata sul formalismo - Automatica - Basata sul modello (informazioni) - etc. A B Le trasformazioni sono componibili !! Gaetanino PAOLONE Sistemi informativi aziendali Per trasformazione di modello si intende il processo di conversione di un modello in uno o più modelli che descrivono lo stesso sistema. Né il meccanismo né le regole di trasformazione sono state specificate in MDA, pertanto anche se si auspica di renderla automatica, la trasformazione può anche essere manuale e può necessitare di informazioni addizionali. Poiché MDA non definisce le trasformazioni, possiamo considerarle nel modo più generale, ovvero qualcosa che mette in relazione un elemento di un insieme con quello di un altro. Le trasformazioni possibili di un model item di un modello in un altro sono: − manuale - look-up table; − automatica - ricerca e sostituzione; − automatica - basata sul formalismo; − automatica - basata sul modello (informazioni); − etc, nel senso che sicuramente se ne possono immaginare delle altre. Model Driven Architecture: applicazioni gestionali PROBLEMI DA RISOLVERE: Gli obiettivi di business devono essere rispettati dai dipertimenti IT; Le piattaforme possono cambiare nel tempo (evoluzione tecnologica, integrazione di infrastrutture IT, etc.); La piattaforma non dovrebbe condizionare gli obiettivi di business. Gli elementi del CIM sono concettualmente “vicini” a quelli implementati Il CIM non solo specifica il sistema, ma descrive anche le business rules; Si ritiene veramente possibile una trasformazione automatica e diretta del CIM in codice (!?!) Gaetanino PAOLONE &,0 0RGHO!! 3,0 0RGHO!! 360 0RGHO!! &RGH!! Sistemi informativi aziendali I principali problemi da risolvere hanno a che fare: − con gli obiettivi di business, i quali devono essere rispettati dai dipartimenti di IT; − con le piattaforme Middleware, le quali possono cambiare nel tempo (evoluzione tecnologica, integrazione di infrastrutture IT, etc.) ; − con la piattaforma, che non dovrebbe condizionare gli obiettivi di business (ma quasi sempre lo fa). Gli elementi del CIM sono concettualmente “vicini” a quelli implementati dal Middleware, infatti il CIM non solo specifica il sistema, ma descrive anche le business rules, pertanto si ritiene veramente possibile una trasformazione automatica e diretta del CIM in codice (!?!). Integrazione Manutenzione Prodotto Testing Profile Customer Care 63(0 Implementazione Qualità Business Management Testing System Engineering 63(0 Project Management La progettazione industriale: l’influenza del successo di UML Come per il Systems Engineering con il SysML, anche altre discipline di progettazione si affidano alla modellazione e alla visione “unificante” dell’UML. Gaetanino PAOLONE Sistemi informativi aziendali Sulla scorta dello straordinario esempio di UML nel Software Engineering, anche le altre discipline ingegneristiche che contribuiscono alla realizzazione di sistemi complessi sono oggi fortemente orientate alla ricerca di un linguaggio di modellazione capace di unificare le proprie diverse metodologie e pratiche di progettazione, meglio se questo avviene sulla stessa strada tracciata da OMG con UML, ancora meglio se si riesce ad usare UML per i propri scopi o anche adattarlo ed estenderlo al proprio specifico contesto. Contenuti Il Business Modelling. Analisi e Definizione dei Requisiti. Analisi Concettuale. Progettazione. Realizzazione e verifica. Gaetanino PAOLONE Sistemi Informativi Aziendali Con le slides che seguono verranno esaminate le discipline del RUP relative al Business Modeling, all’ Analisi e Definizione dei Requisiti, all’ Analisi Concettuale, alla Progettazione e alla Realizzazione e Verifica. Business Modeling: quando 1. Progettazione di un nuovo Sistema Informativo per una nuova azienda. 2. Reingegnerizzazione di un Sistema Informativo esistente: Ottimizzazione dei flussi informativi. Estensione del sistema azienda. 3. Automazione del Sistema Informativo di una azienda. Gaetanino PAOLONE Sistemi Informativi Aziendali I motivi che inducono ad intraprendere l’attività di Business Modeling possono essere i seguenti: − la progettazione del sistema informativo per una nuova azienda; − la reingegnerizzazione del sistema informativo in essere, dovuta o alla necessità di ottimizzare i flussi informativi o in caso di estensione del sistema azienda; − l’automazione del sistema informativo di un’azienda. In tutti questi casi il punto da cui partire per individuare la soluzione più adatta alla specifica circostanza è la modellazione di business. Obiettivo del Business Modeling L’obiettivo del Business Modelling è la realizzazione di modelli del dominio del problema che descrivano logicamente la proposta di soluzione del sistema (il cosa deve fare) che sarà dettagliata e realizzata durante la progettazione e la realizzazione. Vengono prodotti degli elaborati (diagrammi statici e dinamici, per esempio rappresentati con la notazione UML) che costituiscono una rappresentazione del problema che deve essere risolto. Gaetanino PAOLONE Sistemi Informativi Aziendali Approcci al Business Modeling Other approaches Business Process Modeling Language Unified Modeling Language Business Analysis System Analysis Our approach Unified Modeling Language Gaetanino PAOLONE Sistemi Informativi Aziendali Business Modeling Quando gli elaborati sono completati, relativamente all’iterazione alla quale di sta lavorando, il modello globale viene verificato: eseguendo il sistema sulla carta avvalendosi del consiglio di esperti del dominio. Gaetanino PAOLONE Sistemi Informativi Aziendali Una volta terminata la singola iterazione, gli elaborati prodotti vengono sottoposti a verifica. Questo passaggio serve a garantire la perfetta aderenza del modello di business ai requisiti espressi. Sia che la modellazione sia finalizzata alla creazione di un sistema informativo nuovo, sia che si tratti di un processo di reingegnerizzazione, è importante che il modello rispecchi fedelmente i caratteri e la natura del sistema azienda che si vuole svilupppare o di quello già in essere, in quanto dal modello stesso scaturirà la soluzione. Piano metodologico Permette la definizione di: 1. 2. 3. Attività da svolgere. Modelli da utilizzare. Elaborati da produrre. Rappresenta il riferimento per lo sviluppo di un progetto. Gaetanino PAOLONE Sistemi Informativi Aziendali Avvalersi di un piano metodologico equivale ad avere chiare: − le attività da svolgere; − i modelli da utilizzare; − gli elaborati da produrre. Ciò naturalmente facilita lo svolgimento dell’intero processo di sviluppo del sistema. Piano metodologico di riferimento Disciplina •Business Modeling Modello Elaborato Linguaggio naturale UML Organization Unit Diagram Business System diagram Business Use Case diagrams Business Use Case Realization diagrams Business Objects diagram Activity diagrams Documento di Visione •Analisi e definizione dei requisiti •Analisi concettuale •Progettazione •Realizzazione •Verifica Business Modelling: stessi elaborati per un progetto di creazione, reingegnerizzazione ad automazione di un Sistema Informativo Aziendale Gaetanino PAOLONE Sistemi Informativi Aziendali Il piano metodologico scelto come riferimento è quello riporato in tabella. La prima colonna elenca le discipline, ovvero le attività da compiersi; la seconda colonna suggerisce i modelli da utilizzare per ogni singola attività, mentre l’ultima colonna conterrà tutti i possibili elaborati da produrre. Per quanto riguarda la disciplina di Business Modeling i modelli da utilizzare sono il linguaggio naturale e UML. Tutti gli elaborati producibili (Organization Unit Diagram, Business System Diagram, Business Use Case Diagram, Business Use Case Realization Diagram, Business Object Diagram, Activity Diagram e il Documento di Visione) valgono sia che si tratti di modellare un nuovo sistema informativo (creazione), reingegnerizzare o automatizzare un sistema già esistente. Piano per la progettazione del Sistema Informativo Aziendale 1. Business Modeling: Business Modeling. Analisi e definizione dei requisiti. 2. Realizzazione del progetto. Gaetanino PAOLONE Sistemi Informativi Aziendali Business Modelling: come Per ogni Organization Unit Æ Business Systems di livello 1. Per ogni Business System di livello i Æ Business Systems di livello i+1 fino al grado k. Per ogni Business System di livello K Æ Classi di Attori. Per ogni Classe di Attori Æ Business Use Cases (BUCs), attraverso l’individuazione dei Business Goals. Business Objects Definizione delle Organization Unit. Per ogni Business Use Case Æ Business Use Cases Realization (BUCRs). Gaetanino PAOLONE Sistemi Informativi Aziendali Come svolgere la disciplina di Business Modeling? E’ possibile riassumere l’attività di modellazione in una serie di passaggi. Innanzitutto si tratta di individuare e definire le Organization Units, ossia le unità organizzative che compongono il sistema azienda nella sua totalità. Per ogni Organization Unit individuata, si trovano i Business Systems di livello 1. In pratica si tratta di esaminare ciascuna Organization Units e suddividerla nelle sue sottoparti. Questa scomposizione viene ripetuta per ogni Business System di livello i (che viene scomposto nei Business System di livello i+1) fino al grado k. A questo punto per ogni Business System di livello k si rintracciano le diverse classi di attori e per ciascuna classe si definiscono dapprima i Business Goals e successivamente, i Business Use Case. Infine per ogni Business Use Case, il livello di dettaglio aumenta attraverso l’individuazione dei relativi Business Use Case Realization. Business Modeling La rappresentazione dei processi di business. Diagrammi delle attività a due livelli di astrazione Relazione tra elementi comportamentali e strutturali del business. • Matrice di corrispondenza • Diagrammi di sequenza Gaetanino PAOLONE Sistemi Informativi Aziendali Business Modeling Diagramma delle attività per i processi di business. Diagramma delle attività per ogni Business Use Case. Gaetanino PAOLONE Sistemi Informativi Aziendali Business Modeling (punto di partenza) Enterprise Department 1 Department n Organization Unit Business System Sistemi Informativi Aziendali Gaetanino PAOLONE Business Systems Decomposition Degree: Gaetanino PAOLONE 1 2 … k Sistemi Informativi Aziendali Il primo passo da compiere è esaminare l’azienda nella sua interezza (Enterprise) e individuare gli n Departments che la compongono. Durante la modellazione l’azienda sarà rappresentata tramite lo stereotipo di Organization Unit mentre le sue sottoparti, tramite Business Systems. Analogamente, la scomposizione per livelli che verrà applicata a partire dai Business Systems di livello 1, si ripeterà fino al livello k. An incremental and iterative Methodology Phase 1 IN Activity <<refine>> Activity Activity Activity Phase 2 Activity Activity OUT Activity Activity Gaetanino PAOLONE Sistemi Informativi Aziendali Innanzitutto è importante chiarire il concetto che sta dietro alla parola metodologia. A differenza di un processo metodologico (che prevedendo una struttura rigida formata da un punto di partenza a cui fa seguito una serie di steps predeterminati, si adatta bene solo al particolare contesto per cui è stato definito), la metodologia ha una struttura flessibile, pertanto la si può adattare a diverse circostanze. Ciò premesso, verrà presentata la metodologia da noi proposta basata su un modello iterativo e incrementale. In altre parole la metodologia proposta prevede delle fasi, ciascuna avente un artefatto in ingresso (IN) e uno in uscita (OUT), e ogni fase è caratterizzata da un ciclo, nel quale si susseguono le attività. La scelta di seguire una logica iterativa e incrementale per la metodologia da proporre è stata dettata dall’esigenza di tornare indietro alla fase precedente per migliorarne gli artefatti prodotti. Solo in questo modo infatti, ciò risulta possibile: ad esempio, terminata la seconda fase (dopo aver iterato il ciclo di attività un certo numero di volte) è possibile tornare indietro e migliorare i prodotti in uscita dalla prima fase. Business Use-Case Modeling Phase1: Business Use-Case Modeling Phase 1 IN Activity Activity Activity These activities aren’t sequential but they are iterative and incremental Activity Next Phase Sistemi Informativi Aziendali Gaetanino PAOLONE Business Use-Case Modeling Phase1: Business Use-Case Modeling Define Organizations Units Business Actors GOALS Business Use Case BUC Actors Goals These activities aren’t sequential but they are iterative and incremental Next Phase Gaetanino PAOLONE Sistemi Informativi Aziendali Viene analizzata ora una singola fase, la prima, quella relativa alla modellazione a livello di Business Use Case. In questa fase l’analista descrive il progetto e produce un documento contenente i requisiti, in collaborazione con tutti gli stakeholders. In particolare l’analista descrive le unità organizzative, i processi e gli attori coinvolti nel sistema informativo. L’input a questa prima fase coincide con quanto emerso dalla scomposizione del sistema azienda, prima nelle diverse Organization Unit, poi nei Business Systems. Le attività che, succedendosi, formano il ciclo sono le seguenti: − individuazione dei Business Actors riassunti nel relativo diagramma degli attori; − individuazione dei Business Goals, maggiormente dettagliati nel Business Goals Document; − individuazione dei Business Use Case e organizzazione degli stessi in uno o più Business Use Case Diagram; − determinazione delle relazioni tra gli attori di business e i relativi obiettivi passando attraverso i BUCs e e successiva rappresentazione delle relazioni nel modello. Queste attività non sono sequenziali, ma si realizzano secondo un meccanismo di tipo iterativo e incrementale. Una caratteristica molto importante del ciclo appena descritto riguarda la sua consistenza: infatti se si introducesse un obiettivo, un attore o un BUC nel modello, deve comparire necessariamente un’interazione che leghi questi elementi. Business Modeling Phase2: Business Modeling Phase 2 IN Activity Activity Activity Activity Next Phase Sistemi Informativi Aziendali Gaetanino PAOLONE Business Modeling Phase2: Business Modeling Business Use Case Model Phase 2 Business Use Case Realization Activity Sequence 0..* 1 1: 2: Business Object Model 3: 0..1 For each Business Use Case 4: 5: Activity Documentation These activities aren’t sequential but they are iterative and incremental Next Phase Gaetanino PAOLONE Sistemi Informativi Aziendali La fase di Business Modeling ha inizio al termine della fase precedente, ossia quando è stato rilasciato il modello dei casi d’uso di business relativo al sistema informativo in esame. In questa seconda fase si realizzano il modello degli oggetti di business (Business Object Model) e il diagramma dei Business Use Case Realization. Il software engineer analizza il sistema informativo nel suo complesso, focalizzando l’attenzione su cosa fa il sistema e non su come dovrebbe essere fatto il sistema. In altre parole, durante la fase di modellazione di business l’aspetto più importante su cui bisogna concentrarsi riguarda le funzionalità del sistema, piuttosto che le soluzioni tecnologiche da adottare. I prodotti delle attività di questa seconda fase sono: − uno o più diagrammi di Business Use Case Realization; − il modello degli oggetti di business; − uno o più diagrammi di sequenza, che esprimono l’interazione tra i BUCR, gli attori di business e gli oggetti di business); − la documentazione, grazie alla quale fornire una descrizione esaustiva degli attori, dei BUCRs e degli oggetti di business. Il ciclo di attività che costituiscono questa seconda fase è un ciclo di controllo: gli artefatti di ciascuna attività infatti, sono la rappresentazione del medesimo sistema, il sistema informativo. Business Modeling BUC0 BUC1 BUC2 BActivity1 {BO1, BO3, BO4} {BO2, BO5} BActivity2 {BO2, BO3} {BO1, BO2} BActivity0 C1= BActivity3 Gaetanino PAOLONE {BO3} {BO1, BO4} {BO5} Sistemi Informativi Aziendali Business Modeling Una matrice di corrispondenza (C2) per ogni BUC BUCR0 DActivity0 C2 = DActivity1 BUCR2 {BO2, BO5} {BO2} {BO1, BO4} {BO1, BO3, BO6} DActivity2 Gaetanino PAOLONE BUCR1 {BO5} Sistemi Informativi Aziendali La matrice di corrispondenza C1 mette in relazione le Business Activity con i BUCs tramite i Business Objects. Considerato un BUC, la matrice di corrispondenza C2 mette in relazione i suoi BUCRs con i diagrammi di attività tramite i Business Objects. Business Modeling Æ System Modeling RUP <trace> <realize> <realize> CIM CIM <trace> <realize> <realize> <trace> PIM Gaetanino PAOLONE PIM Sistemi Informativi Aziendali Per quanto riguarda il passaggio dal Business Modeling al System Modeling si confrontano due differenti approcci metodologici. La metodologia tradizionale basata sul RUP (immagine a sinistra) propone una soluzione di carattere iterativo e incrementale ricorrendo ad un framework di tipo model driven che pone i casi d’uso al centro dell’attività di modellazione. La metodologia a cui ci si riferisce è strutturata in quattro layers distinti ed è basata su un approccio topdown di tipo iterativo e incrementale che procede per raffinamenti successivi: i primi due layers di analisi dei casi d’uso riguardano più specificamente la modellazione di business ed hanno l’obiettivo di fornire una rappresentazione completa e approfondita della realtà aziendale; i due layers sottostanti invece, riguardano la modellazione di sistema, che equivale alla rappresentazione del software destinato ad automatizzare il sistema aziendale o un suo sottosistema. Con l’applicazione della metodologia basata sul RUP si ha la possibilità di descrivere entrambi gli aspetti, quello di business e quello di sistema, con ricchezza sempre maggiore di particolari e, soprattutto, viene assicurato il passaggio da un modello all’altro senza perdita di informazioni. Il processo infatti è guidato dai casi d’uso, use case driven, che ritroviamo sia a livello di business che di sistema, seppur rappresentati con stereotipi differenti a sottolinearne la diversa valenza. Il passaggio dal modello CIM (Computetional Indipendent Model), formato dai primi due layers, al modello PIM (Platform Indipendent Model) avviene attraverso un’operazione di <trace>. La logica da seguire è semplice: una volta individuati tutti i BUCRs (per ognuno dei BUCs) si stabilisce quali di questi andranno automatizzati. In questo modo si individuano i SUCs e, con il successivo <realize>, i SUCRs che completano il modello PIM. La nostra proposta metodologica (immagine a destra) introduce alcune novità significative. Analogamente all’approccio basato sul RUP, anche il nostro approccio prevede l’adozione di quattro layers distinti, due per la modellazione a livello di business e due per la modellazione a livello di sistema, entrambi collegati tra loro da una operazione di <realize>. Quello che cambia è la relazione che intercorre tra modello di business e modello di sistema: viene introdotta infatti una doppia operazione di <trace> che dai livelli di business conduce ai due livelli di modellazione del sistema. In questo modo si possono riprodurre tutti i BUCs e i relativi BUCRs nella prospettiva di sistema, trasformandoli rispettivamente nei SUCs e nei SUCRs. L’obiettivo dell’operazione di <trace>, come nella metodologia basata sul RUP, resta quello di trasferire alla modellazione di sistema solo ciò che è destinato all’automazione. Business Modeling Æ System Modeling RUP <trace> CIM CIM <trace> <trace> <trace> PIM Gaetanino PAOLONE PIM Sistemi Informativi Aziendali Le modifiche introdotte con la nostra metodologia riguardano esclusivamente gli aspetti comportamentali del sistema, lasciando inalterato l’approccio relativamente alla componente strutturale. Questo equivale a dire che in entrambi i casi, sia che si scelga di adottare la metodologia tradizionale basata sul RUP sia che si opti per quella innovativa da noi proposta, ogni Business Entity verrà sottoposta a tracciatura dando luogo, a livello di sistema, ad una classe ad essa relativa. Approccio metodologico RUP Gestione Docum ento <<communicate>> <<communicate>> <<com municate>> <<communicate>> Ges tione Prodotto/Servizio ICCREA Responsabile Banca (f rom Actors) (f rom Actors) <<communicate>> Gestione Modello di Documento Gestione Documento Gestione Struttura <<realize>> <<realize>> <<realize>> <<realize>> <<realize>> Smis tamento Documento Ges tione Struttura Fisica Ges tione Area Aziendale (from Documento) (from Area Azi en dale) (from Area Azi en dale) Business Modeling System Modeling <<trace>> Caricamento Documento ICCREA Acquisi tore (from Actors) Smistamento Documento ICCREA Responsabile (from Actors) Validazi one Documento Acquisizione Documento (from Docum en to) <<realize>> <<realize>> <<realize>> <<realize>> GestioneFascicoli <<include>> <<include>> <<extend>> AcquisizioneDocumento Allega File Approccio metodologico proposto Gestione Docum ento <<communicate>> <<communicate>> <<com municate>> <<communicate>> Ges tione Prodotto/Servizio ICCREA Responsabile Banca (f rom Actors) (f rom Actors) <<communicate>> <<trace>> Gestione Modello di Documento Caricamento Documento ICCREA Acquisi tore (from Actors) Smistamento Documento ICCREA Responsabile (from Actors) <<realize>> Validazi one Documento Gestione Documento Gestione Struttura <<realize>> <<realize>> <<trace>> <<realize>> <<realize>> <<realize>> Smis tamento Documento Ges tione Struttura Fisica Ges tione Area Aziendale (from Documento) (from Area Azi en dale) (from Area Azi en dale) Acquisizione Documento (from Docum en to) <<realize>> <<realize>> GestioneFascicoli <<realize>> <<include>> <<include>> <<extend>> AcquisizioneDocumento Allega File Scendendo più nel dettaglio si può affermare che la modellazione di business ha inizio con la rappresentazione del sistema aziendale scomposto in tutte le sue parti (aree, dipartimenti, divisioni, uffici,…) svolta affidandosi ad un certo grado di astrazione per descrivere la realtà d’interesse. Considerate tutte le unità organizzative, ciascuna con i suoi sistemi di business, per ognuno di questi vengono rilevati i principali obiettivi e gli attori coinvolti nel loro raggiungimento per poi procedere all’analisi, quindi all’individuazione, dei principali casi d’uso di business (BUC) con cui costruire il modello dei casi d’uso di business (primo layer per entrambi gli approcci). Quest’ultimo fornisce una rappresentazione sufficientemente esaustiva dell’aspetto comportamentale delle diverse unità organizzative. In seguito ogni BUC individuato viene specializzato, nel layer successivo, con uno o più Business Use Cases Realization (BUCRs) che vengono organizzati secondo il diagramma di realizzazione dei BUCs. A questo punto, dal modello completo che descrive l’intero business, ci si focalizza unicamente su quella parte destinata all’automazione desumendo i requisiti di sistema direttamente da quelli di business. Questo può avvenire in due diversi modi. Se si procede secondo l’approccio metodologico RUP, si esegue un’operazione di <trace> con la quale i BUCRs vengono tracciati nella prospettiva di sistema divenendo dunque System Use Cases (SUCs), con lo scopo di delineare i contorni del sistema informativo da automatizzare (terzo layer). A completamento della fase di modellazione del sistema, ogni SUC verrà infine ulteriormente raffinato con almeno un SUCR, organizzati secondo un diagramma di realizzazione dei SUCs appartenente all’ultimo dei quattro layers. In alternativa, procedendo secondo l’approccio metodologico da noi proposto, si esegue una doppia operazione di <trace> con la quale i BUCs vengono tracciati nella prospettiva di sistema divenendo SUCs (terzo layer) e, parallelamente, i BUCRs vengono tracciati divenendo SUCRs (quarto layer). System Modeling Æ Code Modeling RUP PIM PIM UseCaseRealization Class ? PSM Æ code Gaetanino PAOLONE PSM Æ code Sistemi Informativi Aziendali Summary of methodology Summary of methodology Le slides riassumono i contenuti della metodologia proposta. Si parte innanzitutto dall’attività di modellazione dei BUCs che produce il Business Use Case Model; analogamente dall’attività di analisi del business deriva il Business Analisys Model. L’attività relativa all’analisi concettuale realizza il Conceptual Analisys Model. Infine l’attività di progettazione produce il Design Model. L’aspetto focale dei modelli introdotti cambia da caso a caso: al centro del Business Use Case Model evidentemente ci saranno i BUCs, i quali verranno chiaramente identificati e descritti nel modello, mentre il Business Analisys Model si concentrerà principalmente sui BUCRs. Per quanto riguarda il Conceptual Analisys Model e il Design Model , invece, l’attenzione sarà focalizzata sui casi d’uso (SUCs) e sui casi d’uso di realizzazione (SUCRs) rispettivamente. Indipendentemente dallo stereotipo assegnatogli, il caso d’uso è il concetto intorno al quale ruotano tutti e quattro i modelli ed equivale non solo alla rappresentazione formale dei requisiti espressi dagli utenti del sistema, ma anche alla connessione tra i requisiti e il codice. In questo modo la trasformazione che va dai requisiti al codice avviene senza perdita di informazioni e il progetto può ritenersi completo: anche un solo requisito non tradotto da luogo ad un progetto incompleto, quindi errato. La nostra metodologia unitamente al nostro framework sono quindi strumenti che permettono di realizzare un progetto esattamente aderente a ciò che è stato richiesto dal committente servendosi del costrutto caso d’uso. Bank Document Management System Bank Administration Unit Gaetanino PAOLONE Document Management Sistemi Informativi Aziendali Un esempio relativo al sistema di gestione dei documenti di una banca. Innanzitutto è stata rappresentata la banca (Bank) servendosi dello stereotipo Organization Unit. A seguire la banca, intesa come una struttura gerarachica a n-livelli, è stata suddivisa nei relativi Business Systems fino al livello k in cui è stato identificato il sottosistema inerente la gestione dei documenti che sarà oggetto dell’attività di modellazione. A questo punto si passa alla caratterizzazione del Business System Document Management attraverso l’individuazione dei suoi BUCs. Business Modeling: activity diagram I Gaetanino PAOLONE Sistemi Informativi Aziendali A questo punto della modellazione il piano per la progettazione suggerisce la rappresentazione dei processi di business tramite diagrammi di attività a due livelli di astrazione: − i diagrammi di attività per i processi di business; − i diagrammi di attività per ogni BUC. Nella slide è mostrato un esempio di diagramma di attività al primo livello di astrazione, infatti riguarda il processo di acquisizione e archiviazione del documento. Secondo quanto riportato nel diagramma, il documento acquisito, viene prima validato ( a patto che risulti completo) e poi inviato alla sede di archiviazione. Document Management: Business Goals <support> Fast retrieval of docs Document Management <support> Filing of documents Gaetanino PAOLONE Sistemi Informativi Aziendali Il Business System Document Management supporta due Business Goals: il sistema di gestione da modellare deve permettere da un lato l’archiviazione dei documenti presso le sedi di archiviazione stabilite, dall’altro il recupero rapido di tutti i documenti gestiti dalla banca. Document Management: BUCRs Document Management Gaetanino PAOLONE Sistemi Informativi Aziendali La slide mostra il diagramma di realizzazione del BUC Document Acquisition. Il documento da condividere con la banca può essere acquisito ad opera degli organi interni della banca (BUCR Internal Document Acquisition), di una filiale (BUCR Branch Document Acquisition) o di un cliente (BUCR Customer Document Acquisition). In tutti i casi, durante l’acquisizione, risulta possibile gestire anche i fascicoli allegati al documento (BUCR Brief Manager legato da una relazione di <extend> agli altri BUCRs). Inoltre ai fini dell’acquisizione bisognerà gestire anche tutte le tipologie di documento possibili (BUCR Document Type Manager). Business Modeling: activity diagram II Gaetanino PAOLONE Sistemi Informativi Aziendali Il piano per la progettazione suggerisce la rappresentazione dei processi di business tramite diagrammi di attività a due livelli di astrazione: − i diagrammi di attività per i processi di business; − i diagrammi di attività per ogni BUC. Nella slide sono mostrati due esempi di diagramma di attività al secondo livello di astrazione, infatti uno (a sinistra) riguarda il BUC Document Acquisition dal punto di vista di un operatore interno della banca, l’altro (a destra) rappresenta il medesimo BUC, ma dal punto di vista del cliente. Document Management: Double Tracing <realize> <realize> Document Acquisition <trace> Internal Document Acquisition Document from supplier <realize> Document Acquisition <realize> <trace> <trace> <realize> <extend> Internal Document Acquisition Gaetanino PAOLONE <extend> Link File Document from supplier Sistemi Informativi Aziendali Il passaggio dal Business Model al System Model è stato svolto applicando una doppia operazione di <trace> coerentemente con quanto introdotto dalla recente proposta metodologica. Per mostrare la potenza espressiva del nuovo approccio, la slide sottolinea che è possibile raggruppare assieme in un unico diagramma dei casi d’uso le varie attività di <realize> e <trace> in modo da avere così una visione globale di come le modalità operative aziendali sono portate avanti e come esse devono essere automatizzate. Business Modeling Gaetanino PAOLONE Sistemi Informativi Aziendali La matrice di corrispondenza mette in relazione le Business Activity (prima colonna) con i BUCs (prima riga) tramite i Business Objects (Document, Business Area, Document’s Type). Business Modeling Gaetanino PAOLONE Sistemi Informativi Aziendali Considerato un BUC, in questo caso Document Acquisition, la matrice di corrispondenza mette in relazione i suoi BUCRs (prima riga) con i diagrammi di attività (prima colonna) tramite i Business Objects. Piano metodologico di riferimento: automazione Disciplina Modello •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Elaborato Linguaggio naturale UML Trace Diagram: Class Trace Diagram: Use Case Trace Diagram: Use Case Realization Trace Diagram: Actors Use Cace Realization Diagram - Actor Documento dei Requisiti •Analisi concettuale •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali La disciplina di Analisi e Definizione dei Requisiti ha l’obiettivo di documentare compiutamente ciò che il sistema deve fare, in modo da garantire facilità di comunicazione tra cliente e sviluppatori. Per realizzare il trasferimento dei requisiti di business a livello dei requisiti software si procede ad una duplice operazione di <trace> che interessa sia l’aspetto comportamentale che quello strutturale, permettendo dunque che entrambi gli aspetti progrediscano parallelamente. La logica da seguire nell’applicazione dell’operazione di tracciatura si riassume nella scelta di quali siano le “parti” del business che necessitano di essere automatizzate: la prima operazione di <trace> interesserà esclusivamente i BUCs che il Business Analyst ritiene debbano essere automatizzati, la seconda operazione di <trace> in SUCRs sarà effettuata limitatamente ai BUCRs che, in qualche maniera, prendono parte all’automazione del processo. Allo stesso modo vengono tracciate tutte le classi di business nelle classi di dominio e tutti quegli attori di business che comporteranno un corrispettivo a livello di sistema: si ottiene così un primo modello del sistema nel quale i vari elementi saranno corredati da una breve descrizione. La disciplina di Analisi e Definizione dei Requisiti si avvale del linguaggio naturale e UML. Gli elaborati producibili (Trace Diagram Class, Trace Diagram Use Case, Trace Diagram Use Case Realization, Trace Diagram Actors, Use Case Realization Diagram-Actors e il Documento dei Requisiti) valgono nel caso in cui il processo di sviluppo in atto sia rivolto all’automazione di un sistema già esistente. Tracciabilità fra Requisiti e Use Case Durante l’analisi e definizione dei requisiti, è importante capire se qualche requisito non è stato considerato nel modello degli use case e, viceversa, se c’è qualche use case che non corrisponde a nessun requisito. La verifica si può fare velocemente tramite una tabella di mapping fra requisiti e use case. 8VHFDVH Requisito 8& 5 5 8& ; 8& ; ; 5 5 8& ; ; ; Piano metodologico di riferimento: automazione Disciplina Modello Elaborato •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Linguaggio naturale UML •Analisi concettuale Linguaggio naturale UML Modello E-R Prototyping Diagrammi di Sequenza di I livello Diagramma delle Classi View Diagramma delle Classi (Attributi) Diagramma Entità-Relazioni Prototipo Documento di Analisi •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali L’obiettivo della disciplina di Analisi Concettuale è quello di definire come il sistema dovrà essere realizzato. Pertanto ogni SUC precedentemente individuato verrà meglio descritto attraverso l’individuazione dei possibili scenari, utili a chiarire il comportamento elementare del caso d’uso a prescindere dall’automazione ricorrendo ai Sequence Diagrams; inoltre per ogni scenario verranno individuate anche tutte le classi di oggetti di business coinvolte. Infine vengono aggiunti ai SUCRs derivanti dal <trace>, quelli di natura puramente tecnologica e, successivamente, creati i diagrammi di realizzazione a livello di sistema che mettano in evidenza il legame che intercorre tra i SUCs e i relativi SUCRs. Per fare quanto detto la disciplina di Analisi Concettuale si avvale del linguaggio naturale, UML, del modello Entità-Relazione e del Prototyping. Gli elaborati producibili (Diagramma di Sequenza di primo livello, Diagramma delle Classi, Diagramma delle Classi con attributi, Diagramma Entità-Relazione, Prototipo e Documento di Analisi) valgono nel caso in cui il processo di sviluppo in atto sia rivolto all’automazione di un sistema già esistente. Prototyping ,.,:,6,² ´,·OONQRZLWZKHQ,VHHLWµ Durante la fase di Analisi Concettuale può essere utile ricorrere alla prototipazione per testare la validità della soluzione, far emergere eventuali criticità o, più semplicemente, per mostrare un prototipo della soluzione in via di sviluppo al committente. Prototyping ËO·LPSOHPHQWD]LRQHSDU]LDOHGLXQVLVWHPD FRQORVFRSRGLDLXWDUHDFDSLUHPHJOLRL UHTXLVLWLVLDDJOLXWHQWLFKHDJOL VYLOXSSDWRUL 6FRSL 7LSRORJLH Chiarire e completare i requisiti Prototipi orizzontali Esplorare alternative progettuali Usa e getta Sviluppare il prodotto finale Evolutivi Prototipi verticali Prototyping (YROXWLYR 9HUWLFDOH 2UL]]RQWDOH 8VDHJHWWD VHUYHSHUGLPRVWUDUHL FDVLG·XVRFKHO·XWHQWH SRWUHEEHDYHUHD GLVSRVL]LRQHFKLDULUHH UDIILQDUHLUHTXLVLWL XWHQWH LPSOHPHQWDLSURFHVVL FKLDYH LPSOHPHQWDSURFHVVL DJJLXQWLYLVRORVXOODEDVHGL SULRULWjDVVHJQDWH SHUHVSORUDUHH YDOXWDUHLOORRNDQGIHHO LQWHUIDFFLDXWHQWHH VWUXWWXUDGHOOD QDYLJD]LRQH DGHJXDLOVLVWHPD YHORFHPHQWHDOOHQHFHVVLWj GHOEXVLQHVV SHUGLPRVWUDUHOD IDWWLELOLWjWHFQLFDGL XQDVROX]LRQH LPSOHPHQWDLSURFHVVLVXSL OLYHOOLDUFKLWHWWXUDOL SURJUHVVLYDPHQWH LPSOHPHQWDHRWWLPL]]D DOJRULWPLFRPSOHVVL WHVWHWXQLQJGHOOH SHUIRUPDQFH Fattori Critici per il Successo della Prototipazione Stabilire, condividere e comunicare al cliente il tipo e l’obiettivo del prototipo prima della sua realizzazione Considerare le attività prototipali parte del piano di progetto Valutare la realizzazione di più prototipi Non prototipare i requisiti che sono già chiari nei prototipi “usa e getta” Un prototipo non sostituisce completamente la specifica dei requisiti Creare i prototipi “usa e getta” nel modo più economico e veloce possibile Progettazione del Software Definizione dell’architettura del sistema individuazione dei sottosistemi individuazione dei componenti software descrizione delle interfacce dei sottosistemi descrizione delle interfacce dei componenti individuazione dei nodi di elaborazione Individuazione delle classi di progettazione e delle relazioni Descrizione della dinamica fra i componenti e fra le classi Allocazione delle classi di progettazione nei componenti Allocazione dei componenti nei sottosistemi Definizione del modello di deployment Gaetanino PAOLONE Sistemi Informativi Aziendali Il concetto fondamentale relativamente alla progettazione del software è quello di architettura software. Il primo passo da compiere consiste dunque nella scelta dell’architettura su cui basare il successivo sviluppo del sistema, ovverosia nell’individuazione dei sottosistemi, dei componenti software e dei nodi di elaborazione. Inoltre durante la progettazione si procede all’individuazione delle classi di progettazione e delle relative relazioni, alla descrizione della dinamica fra i componenti e fra le classi, all’allocazione delle classi di progettazione nei componenti, all’allocazione dei componenti nei sottosistemi e nella definizione del modello di deployment. La Babele delle Architetture … Il concetto di architettura è usato talmente in tante diverse accezioni che risulta privo di senso se non lo si contestualizza. Tipologie di architetture: architettura funzionale architettura dei dati architettura stratificata architettura multi-tier architettura orientata a oggetti architettura basata su componenti architettura web architettura orientata ai servizi … La scelta relativa all’architettura da adottare per il progetto informatico da realizzare è al centro della fase di progettazione. Tale scelta non è affatto banale se si considera che il concetto di architettura risulta, se non contestualizzato, privo di senso e se si tiene conto della molteplicità di tipologie di architetture possibili tra cui effettuare la scelta. Cos'è un'Architettura del Software L'architettura software di un programma o di un'applicazione è l'insieme: degli elementi software strutturali delle proprietà degli elementi visibili esternamente delle relazioni fra gli elementi. Gli elementi che stanno diventando sempre più importanti per le architetture sono: Un pattern è una "idea" i pattern e gli stili architetturali che è stata provata positivamente in un contesto pratico e che probabilmente sarà utile in altri Lo Stile Architetturale Uno "Stile architetturale" è l'insieme: delle proprietà dei vincoli delle linee guida delle decisioni progettuali da seguire per la realizzazione delle strutture e delle interconnessioni all'interno dei componenti e fra i componenti. I principali stili architetturali di riferimento per le applicazioni software distribuite sono: architettura basata sulle risorse – Resource-Oriented Architecture (web) architettura basata su componenti – Component-Based Architecture architettura basata sui servizi – Service-Oriented Architecture. Architettura Gotica Stile Architetturale Orvieto, Duomo Milano, Duomo Ecco cosa vuol dire seguire uno stile architetturale! Lo stile architetturale è un elemento importante dell’architettura pertanto la scelta di quest’ultima risente anche dello stile architetturale che la contraddistingue. Uno stile architetturale è l’insieme delle proprietà, dei vincoli, delle linee guida e delle decisioni progettuali da seguire per la realizzazione delle architetture. Architettura MVC • Model Incapsula le logiche di business e la rappresentazione delle informazioni • View Gestisce l’interfaccia utente dell’applicazione • Controller Coordina l’interazione tra Model e View e gestisce le azioni dell’utente Gaetanino PAOLONE Sistemi Informativi Aziendali The software architecture UseCase Piano metodologico di riferimento: automazione Disciplina Modello •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Linguaggio naturale UML •Analisi concettuale Linguaggio naturale UML Modello E-R Prototyping •Progettazione •Realizzazione Elaborato Linguaggio naturale UML Modello Relazionale Prototyping Ambiente di sviluppo Diagrammi di Sequenza di II livello Diagramma delle Classi View Diagramma delle Classi (Attributi e metodi) Diagramma delle classi controller Diagramma delle classi Entit Diagramma Entità-Relazioni Prototipo Documento di Progettazione Linguaggio di programmazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali L’obiettivo della disciplina di progettazione è quello di definire esattamente come il sistema dovrà essere realizzato nella fase successiva. A tal fine, la fase di progettazione restituisce più in generale il modello di design il quale va a descrivere in modo dettagliato la struttura del sistema e come il sistema deve essere costruito. Esso rappresenta dettagliatamente i componenti del sistema e individua dove e come si inseriscono nell’architettura prescelta. In questo modello sono presenti i sequence diagrams di secondo livello, ossia ad un livello di dettaglio elevato tale da descrivere precisamente come le varie componenti del sistema (design classes, oggetti, interfacce, design sub-systems) interagiscono. Unitamente si avranno il diagramma delle classi (nelle diverse varianti), il diagramma EntitàRelazione, eventualmente il proptotipo e, certamente, il documento di progettazione. La dinamicità del sistema può essere ulteriormente chiarita utilizzando gli state machine diagrams mentre l’architettura software e fisica del sistema possono essere rappresentate rispettivamente mediante i component diagrams e i deployment diagrams; I modelli a servizio della fase di progettazione sono numerosi e comprendono il linguaggio naturale,. UML, il modello relazionale, il prototyping e l’ambiente di sviluppo scelto. Ancora una volta gli elaborati producibili elencati nella slide riguardano il caso in cui valgono nel caso in cui il processo di sviluppo in atto sia rivolto all’automazione di un sistema già esistente. Creazione di un nuovo Sistema Informativo Aziendale Rimangono le stesse discipline? Disciplina Modello Elaborato •Business Modeling •Analisi e definizione dei requisiti •Analisi concettuale •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali Si considera adesso il caso in cui l’intento sia quello di creare un sistema informativo ex-novo. Anche in una simile circostanza si sceglie di avvalersi di un piano metodologico di riferimento che faciliti il processo di sviluppo nonchè la gestione del progetto. Le discipline inerenti al piano che sono già state esaminate a proposito dello sviluppo di un progetto informatico derivante da un processo di automazione, valgono anche nel caso in cui si tratti di creare un sistema informativo automatizzato a meno di qualche differenza nei modelli e negli elaborati. Business Modeling Pre-condizione: • modello organizzativo aziendale Il Business Modelling è parte integrante della progettazione del sistema organizzativo aziendale Stessi elaborati: • • • • • • • Organization Unit Diagram Business System diagram Business Use Case diagrams Business Use Case Realization diagrams Business Objects diagram Activity diagrams Documento di Visione Gaetanino PAOLONE No rilevazione Ma progettazione Sistemi Informativi Aziendali Per poter procedere alla modellazione del business è necessario far riferimento al modello organizzativo aziendale. Mentre questa condizione risulta sempre verificata nei casi in cui il progetto informatico da definire e realizzare scaturisca da un processo di reingegnerizzazione o di automatizzazione di un sistema informativo esistente, nel caso della creazione ex-novo del sistema informativo bisognerà innanzitutto assicurarsi di poter far riferimento ad un modello organizzativo. Qualora l’azienda per la quale si intende realizzare il sistema informativo non esistesse ancora e, con essa, non esistesse alcun modello organizzativo, l’attività di Business Modeling non consisterebbe nella rilevazione ma piuttosto nella progettazione del sistema organizzativo aziendale. Per quanto riguarda invece i modelli e gli elaborati della disciplina di Business Modeling, restano uguali a quelli già visti in precedenza a proposito dell’automazione. Analisi e Definizione dei requisiti Requisiti: • specifica del sistema informativo aziendale da realizzare. Obiettivi: • specifica dei requisiti; • analisi delle parti di sistema informativo da automatizzare (make or buy); a. adeguamento del business model a soluzioni informatiche esistenti; b. attuazione di un processo metodologico per lo sviluppo di un progetto informatico. Gaetanino PAOLONE Sistemi Informativi Aziendali Ai fini dell’Analisi e della Definizione dei Requisiti bisogna partire dalle specifiche del sistema informativo aziendale che si intende realizzare, espressamente definite dal committente. A partire dalle specifiche, gli obiettivi a cui si dovrà tendere riguarderanno innanzitutto la specifica dei requisiti e, in un secondo momento, l’analisi delle sole parti del sistema informativo da automatizzare. Per ciascuna delle parti destinate all’automazione si tratterà di effettuare una valutazione make or buy. Se la scelta ricade sulla soluzione make, bisognerà procedere all’attuazione di un processo metodologico finalizzato allo sviluppo di un progetto informatico; alternativamente, se la scelta è di tipo buy bisognerà adeguare il business model alle soluzioni informatiche esistenti. Definizione delle Organization Unit. Per ogni Organization Unit Æ Business Systems di livello 1. Per ogni Business System di livello i Æ Business Systems di livello i+1 fino al grado k. Per ogni Business System di livello K Æ Classi di Attori. Per ogni Classe di Attori Æ Business Use Cases (BUCs), attraverso l’individuazione dei Business Goals. Per ogni Business Use Case Æ Business Use Cases Realization (BUCRs). Automazione: a qualsiasi livello Analisi e Definizione dei requisiti: come? per ogni sottosistema da automatizzare: • make or buy? Gaetanino PAOLONE Sistemi Informativi Aziendali Gli step sono gli stessi visti in precedenza con una sola differenza: arrivati al punto in cui per ogni BUC si individuano i BUCRs, non solo bisognerà chiedersi quali parti del sistema saranno automatizzate ma anche come sarà possibile la loro automazione, se attraverso la “costruzione” di soluzioni applicative nuove oppure ricorrendo a quanto già disponibile sul mercato. Analisi e Definizione dei requisiti: come? Per ogni soluzione informatica acquistata: • verifica di adeguamento dei requisiti; • e quindi del business model. Per ogni soluzione informatica da realizzare: • verifica della porzione di business model; • e quindi attuazione di un processo di automazione. Gaetanino PAOLONE Sistemi Informativi Aziendali Una volta stabilito in che modo debba avvenire l’automatizzazione delle parti del sistema, se acquistando soluzioni informatiche già esistenti oppure realizzandone di nuove, seguirà una fase di verifica, la quale diverge a seconda della soluzione scelta. Piano metodologico di riferimento: creazione Disciplina Modello •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Elaborato Linguaggio naturale UML Trace Diagram (make and buy): Class Trace Diagram (make and buy): Use Case Trace Diagram (make and buy): Use Case Realization Trace Diagram (make and buy): Actors Use Cace Realization Diagram – Actor Diagrammi di business mdel rivisitati Documento dei Requisiti •Analisi concettuale •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali Nel caso di creazione di un sistema informativo ex-novo la disciplina di Analisi e Definizione dei Requisiti si avvale del linguaggio naturale e UML. Gli elaborati relativi al Trace Diagram Class, Trace Diagram Use Case, Trace Diagram Use Case Realization e Trace Diagram Actors riguarderanno tutte le parti del business destinate all’automazione, sia che questa abbia luogo secondo la soluzione make che secondo quella buy. Analisi concettuale Fasi: 1. Analisi concettuale relativa alle parti da automatizzare con sviluppo di software. 2. Analisi concettuale relativa alle parti da automatizzare con acquisto di software. 3. Analisi concettuale relativa alle parti da non automatizzare. Gaetanino PAOLONE Sistemi Informativi Aziendali Analisi concettuale: come? Fasi: 1. Analisi concettuale relativa alle parti da automatizzare con sviluppo di software. (identica al processo di automazione) 2. Analisi concettuale relativa alle parti da automatizzare con acquisto di software. (analoga al processo di automazione: verifica della corrispondenza tra modelli attesi e soluzione informatica) 3. Analisi concettuale relativa alle parti da non automatizzare. Gaetanino PAOLONE Sistemi Informativi Aziendali Piano metodologico di riferimento: creazione Disciplina Modello Elaborato •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Linguaggio naturale UML •Analisi concettuale Linguaggio naturale UML Elaborati per l'automazione Sequence diagram dei casi d'uso non automatizati Class Diagram Activity Diagram Modulistica Documento di Analisi •Progettazione •Realizzazione •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali L’obiettivo della disciplina di Analisi Concettuale è quello di definire come il sistema informatico dovrà essere realizzato. Pertanto l’Analisi Concettuale interesserà: − le parti da automatizzare con sviluppo software (soluzione make); − le parti da automatizzare con acquisto di software (soluzione buy); − le parti da non automatizzare. In particolare, l’Analisi Concettuale condotta relativamente alle parti da automatizzare con sviluppo software durante la creazione di un nuovo sistema informativo equivale esattamente all’ Analisi Concettuale svolta in caso di automazione di un sistema già esistente. Dunque si tratterà di descrivere ogni SUC precedentemente individuato attraverso l’individuazione dei possibili scenari, inoltre per ogni scenario verranno individuate anche tutte le classi di oggetti di business coinvolte. Infine verranno aggiunti ai SUCRs derivanti dal <trace>, quelli di natura puramente tecnologica e, successivamente, creati i diagrammi di realizzazione a livello di sistema che mettano in evidenza il legame che intercorre tra i SUCs e i relativi SUCRs. Anche per quanto riguarda l’Analisi Concettuale per le parti da automatizzare con acquisto di software, è possibile far riferimento al processo in caso di automazione. Si tratterà quindi di verificare la corrispondenza tra i modelli attesi e la soluzione informatica che si è scelto di acquistare. Infine, dal momento che l’obiettivo dell’Analisi è quello di stabilire come il sistema dovrà essere realizzato, bisognerà condurre l’Analisi anche per quel che riguarda le parti del sistema che non verranno in alcun modo automatizzate. Per fare quanto detto la disciplina di Analisi Concettuale si avvale del linguaggio naturale e UML. Gli elaborati producibili (Elaborati per l'automazione, Diagramma di Sequenza dei casi d'uso non automatizzati, Diagramma delle Classi, , Diagramma di Attività, Modulistica e Documento di Analisi) valgono nel caso in cui il processo di sviluppo in atto sia rivolto alla creazione di un sistema informativo ex-novo. Piano metodologico di riferimento: creazione Disciplina Modello Elaborato •Business Modeling Linguaggio naturale UML •Analisi e definizione dei requisiti Linguaggio naturale UML •Analisi concettuale Linguaggio naturale UML •Progettazione Linguaggio naturale UML Architettura informativa Activity Diagram Modulistica Elaborati per l'automazione •Realizzazione Linguaggio naturale Architettura informativa Modulistica •Verifica Gaetanino PAOLONE Sistemi Informativi Aziendali L’obiettivo della disciplina di Progettazione è quello di definire esattamente come il sistema dovrà essere realizzato nella fase di Realizzazione. A tal fine, la fase di Progettazione restituisce, più in generale, il modello di design il quale va a descrivere in modo dettagliato la struttura del sistema e come il sistema deve essere costruito. I modelli a cui è possibile ricorrere in fase di Progettazione sono il linguaggio naturale e. UML, mentre gli elaborati producibili riguardano l’architettura informativa, i diagrammi di attività, la modulistica e tutti gli elaborati per l’automazione. Durante la fase di Realizzazione ci si avvale prevalentemente del linguaggio naturale per produrre elaborati che definiscono l’architettura informativa e la modulistica, entrambi utili per la successiva fase di Verifica. Reingegnerizzazione del Sistema Informativo Aziendale Quando? I flussi non sono ben definiti. Costi elevati di produzione dell'informazione. Costi elevati di fruizione dell'informazione. Introduzione di un nuovo sottosistema. o semplicemente quando si è in presenza di un nuova strategia ... Sistemi Informativi Aziendali Gaetanino PAOLONE Reingegnerizzazione di un Sistema Informativo Aziendale Rimangono le stesse discipline? Disciplina Modello Elaborato • Business Modeling Linguaggio naturale UML Organization Unit Diagram Business System diagram Business Use Case diagrams Business Use Case Realization diagrams Business Objects diagram Activity diagrams Documento di Visione • Analisi e definizione dei requisiti Linguaggio naturale UML Use Case Realization Diagram - Actor Documento dei Requisiti •Business Design Linguaggio naturale UML • Realizzazione e verifica Gaetanino PAOLONE Automazione???? Sistemi Informativi Aziendali Reingegnerizzazione di un Sistema Informativo Aziendale Business Modeling come rilevazione della situazione esistente Analisi e definizione dei requisiti di intervento Gaetanino PAOLONE Sistemi Informativi Aziendali In presenza di un processo di reingegnerizzazione del sistema informativo aziendale, dettato da circostanze di varia natura (flussi informativi non ben definiti, costi di produzione dell’informazione elevati, costi di fruizione dell’informazione elevati, introduzione di un nuovo sottosistema, adozione di una nuova strategia,...) il piano metodologico di riferimento prevede le discipline di Business Modeling, Analisi e Definizione dei Requisiti, Business Design e Realizzazione e Verifica Il processo di reingegnerizzazione riguarderà una parte o l’intero sistema informativo aziendale e farà riferimento al modello organizzativo esistente. Di conseguenza l’attività di Business Modeling si svolgerà come rilevazione della situazione esistente, esattamente come avviene nel caso di un processo di automatizzazione del sistema informativo. I modelli da utilizzare per il Business Modeling sono il linguaggio naturale e UML, mentre gli elaborati producibili (Organization Unit Diagram, Business System Diagram, Business Use Case Diagram, Business Use Case Realization Diagram, Business Object Diagram, Activity Diagram e il Documento di Visione) sono gli stessi già visti in precedenza, sia nel caso di un processo di automatizzione, sia nel caso della creazione di un nuovo sistema informativo. Per la disciplina di Analisi e Definizione dei Requisiti saranno sufficienti il Diagramma Casi d’uso di realizzazione-Attori e il Documento dei Requisiti per la definizione dei requisiti di intervento. Reingegnerizzazione di un Sistema Informativo Aziendale Elaborati della progettazione di Business? Disciplina Modello • Business Modeling Linguaggio naturale UML • Analisi e definizione dei requisiti Linguaggio naturale UML •Business Design • Realizzazione e verifica Gaetanino PAOLONE Elaborato Linguaggio naturale UML Organization Unit Diagram Business System diagram Business Use Case diagrams Business Use Case Realization diagrams Business Objects diagram Activity diagrams Use Case Realization Diagram - Actor Documento di Progettazione Automazione???? Sistemi Informativi Aziendali Per quanto concerne la disciplina di Business Design ci si avvale del linguaggio naturale e UML per produrre Organization Unit Diagram, Business System Diagram, Business Use Case Diagram, Business Use Case Realization Diagram, Business Object Diagram, Activity Diagra, Use Case Realization Diagram Actor e il Documento di Progettazione a cui fare riferimento nellle fasi di Realizzazione e Verifica. Contenuti Ciclo di vita dei sistemi informativi. Studio di fattibilità. Gaetanino PAOLONE Sistemi Informativi Aziendali Le slide che seguono trattano il ciclo di vita dei sistemi informativi con particolare attenzione alla fase relativa allo studio di fattibilità di un progetto informativo. Ciclo di vita dei sistemi informativi Pianificazione Reingegnerizzazione dei processi Assessment e Benchmarking Studio di fattibilità Analisi e definizione dei requisiti del sistema informativo Progettazione Realizzazione Manutenzione Gestione e conduzione Project Management Gaetanino PAOLONE Sistemi informativi aziendali E’ bene chiarire che la necessità di uno studio di fattibilità nasce quando un’idea progettuale si presenta tale da richiedere opportuni approfondimenti e specificazioni per governarne la complessità e diminuire l’incertezza dei risultati, prima di avviare le attività operative di progetto. Lo studio di fattibilità serve dunque ad esaminare preliminarmente la fattibilità tecnica, organizzativa ed economica di un’idea progettuale che si intende intraprendere valutando, al tempo stesso, gli aspetti che possono eventualmente determinare scelte fra soluzioni progettuali diverse. Lo studio di fattibilità prende pertanto spunto da una pre-esistente idea di progetto scaturita da un ciclo di pianificazione e controllo, da un’iniziativa di reingegnerizzazione, dall’attività di benchmarking o, ancora, dettata dalle nuove opportunità tecnologiche, per la quale gli impegni economici, l’impatto organizzativo nonché i rischi associati risultano significativi. Obiettivi Obiettivo principale è quello di fornire ai centri di responsabilità l’insieme delle informazioni necessarie alle decisioni sul progetto. Deve quindi: esplicitare le condizioni favorevoli all’effettuazione del progetto; definire i benefici attesi; stimare i costi e i rischi; delineare l’evoluzione del progetto dallo stato iniziale a quello finale atteso, valutando le possibili alternative. Gaetanino PAOLONE Sistemi informativi aziendali L’obiettivo principale dello studio di fattibilità è quello di fornire ai centri di responsabilità l’insieme delle informazioni necessarie alle decisioni sul progetto. Lo studio di fattibilità deve quindi: − esplicitare le condizioni favorevoli all’effettuazione del progetto per la realizzazione di sistemi informativi automatizzati e l’erogazione di servizi informatici; − definire esattamente i benefici attesi dal progetto e chiarire come e in quale misura essi contribuiscano al raggiungimento degli obiettivi di miglioramento dell’organizzazione; − stimare i costi di investimento e di esercizio che bisognerà sostenere e individuare e valutare i rischi connessi; − dare concretezza all’ipotesi progettuale delineando, ad un livello di dettaglio proporzionale all’entità del progetto, come dovrà evolvere il processo di passaggio dallo stato iniziale allo stato finale considerando alternative differenti. Scopi di uno studio di fattibilità L’individuazione delle applicazioni o progetti che l’azienda intende realizzare non esaurisce il processo di pianificazione delle tecnologie di informazione. La realizzazione di un qualunque sistema informativo rappresenta per una azienda un investimento che mobilita risorse: finanziarie umane impiantistiche Gaetanino PAOLONE Sistemi informativi aziendali Studio di fattibilità: primo tipo Input: soluzione tecnico organizzativa gia’ data (ad esempio dal bpr) Output: fattibilita’ della soluzione rischi costi benefici make or buy tipo di progetto Gaetanino PAOLONE Sistemi informativi aziendali Studio di fattibilità: secondo tipo Input: diagnosi dell’ esistente Output intermedio: un insieme di soluzioni tecnico organizzative Output finale: una soluzione scelta analisi comparata della fattibilita’, dei rischi, dei costi, dei benefici scelta del make or buy scelta del tipo di progetto Gaetanino PAOLONE Sistemi informativi aziendali Studio di fattibilità: terzo tipo Input: diagnosi dell’ esistente Output intermedio: un insieme di soluzioni tecnico organizzative Output finale: analisi comparata della fattibilita’ (senza scelta della soluzione), dei rischi, dei costi, dei benefici delle diverse soluzioni scelta del make or buy scelta del tipo di progetto Gaetanino PAOLONE Sistemi informativi aziendali Possibili conclusioni dello studio di fattibilità Il progetto non si puo’ realizzare Il progetto si puo’ realizzare, ma basta un intervento organizzativo Il progetto si puo’ realizzare con questa soluzione, con questi costi, con questi rischi Il progetto si puo’ realizzare, con queste soluzioni comparate, scegli tu Gaetanino PAOLONE Sistemi informativi aziendali La necessità di svolgere uno studio di fattibilità può scaturire da situazioni differenti, pertanto a seconda della circostanza che induce allo studio si avranno output diversi. Studio di fattibilità e “progetti impossibili” Sono “impossibili” quei progetti per i quali la distanza tra stato iniziale e stato finale è troppo elevata per garantire livelli di rischio accettabili. In genere tale distanza deriva: da insufficienti elementi di conoscenza della situazione da un elevato grado di incertezza da un elevato grado di complessità Per superare tale situazione lo SF può: modificare lo stato iniziale (recuperando e incrementando la conoscenza della situazione attuale, diminuendo incertezza o governando la complessità), attreverso sue specifiche attività “spezzare” il progetto prevedendo progetti parziali (evolutivi in caso di incertezza o incrementali in caso di complessità) al posto del progetto unico prevedere un piano di lavoro che comprenda specifici punti di decisione (in tal caso il progetto deve prevedere modalità contrattuali coerenti) Gaetanino PAOLONE Sistemi informativi aziendali SF come strumento per migliorare i progetti AIUTA LA VALUTAZIONE DEI PROGETTI E DELLE PRIORITA’ CHIARIFICA E DETTAGLIA GLI OBIETTIVI MODIFICA LO STATO INIZIALE AUMENTANDO IL LIVELLO DI CONOSCENZA SPINGE AD UNA VISIONE NON SOLO TECNOLOGICA FORNISCE IL QUADRO DI RIFERIMENTO DI PARTENZA PER LA GESTIONE DEL PIANO DEI RILASCI, DELLE ATTIVITA’, DEI RISCHI E PER LA VERIFICA DEI RISULTATI DIMINUZIONE DELL’INCERTEZZA GOVERNO DELLA COMPLESSITA’ ATTIVAZIONE DEL CONTROLLO DEL PROGETTO RYYHUR DIMINUZIONE DEI RISCHI Gaetanino PAOLONE Sistemi informativi aziendali La qualità del prodotto/servizio Occorre sempre ricordare che il sistema informatico fornisce un servizio al sistema organizzativo: la qualità può perciò essere misurata a vari livelli Sistema informatico Sistema informativo Sistema organizzativo Utenti interni Utenti esterni Sistema informatico Percezioni della qualità Utente: interessato alla QUALITÀ ESTERNA, relativa alle modalità d’uso, alle prestazioni e agli effetti derivanti dall’uso del software. Sviluppatore: interessato alla QUALITÀ INTERNA, relativa aagli aspetti tecnici legati allo sviluppo e alla manutenzione del software. Gestore del sistema: interessato agli aspetti di qualità relativi ad installazione, configurazione ed esercizio del sistema. Committente: interessato alla QUALITÀ GLOBALE, considerata come media pesata dei diversi aspetti di qualità. Il sistema di pesatura dipende dal tipo di sistema e dal tipo di organizzazione. Gaetanino PAOLONE Sistemi informativi aziendali Valutazione delle alternative Programma complessivo di cambiamento Risolto a monte in fase di pianificazione Requisiti Inesistenti, poiché derivati direttamente a partire dalle esigenze e dagli obiettivi Specifiche generali del sistema Oggetto dello studio di fattibilità Modalità e specifiche realizzative Demandate alle offerte dei fornitori Modalità realizzative “minori” A proposito delle alternative da valutare in fase di studio di fattibilità, esse riguardano soluzioni differenti in termini di: − specifiche generali del sistema: che definiscono la natura della soluzione a livello di architettura tecnologica -sistema centralizzato/decentralizzato-, dei dati e funzionale; − modalità e specifiche realizzative: che modificano la natura strategica della soluzione incidendo sui costi, sui tempi e sulle caratteristiche di qualità: si tratta di valutare l’alternativa di acquistare pacchetti disponibili sul mercato, eventualmente da personalizzare, o procedere ad una realizzazione ad hoc, tenendo conto della possibilità di recuperare o meno componenti del sistema esistente (scelte make or buy). Studio di fattibilità: contenuti Situazione attuale; Progetto di massima; Analisi del rischio; Analisi costi-benefici; Progetto proposto; Raccomandazioni per le fasi realizzative. Gaetanino PAOLONE Sistemi informativi aziendali I contenuti dello studio di fattibilità variano secondo la natura del progetto analizzato. Tuttavia risulta possibile la definizione di una struttura di riferimento che, con gli opportuni adattamenti, si applica ad un ampio spettro di casi. Tipicamente la struttura prevede sei sezioni: la situazione attuale, il progetto di massima, l’analisi del rischio, l’analisi costi-benefici, il riepilogo del progetto proposto e le raccomandazioni per le fasi realizzative. Studio di fattibilità: la situazione attuale 1. Progetto di reingegnerizzazione: Modello di business 2. Progetto di automazione: Modello di business Analisi portafoglio applicativo 3. Progetto di creazione: Analisi di modelli similari. Studio di fattibilità: la situazione attuale La situazione attuale Il contesto dello studio •Ripresa della visione strategica in termini di servizi, organizzazione, tecnologia; •Ripresa dei principali passaggi che hanno portato all’individuazione del progetto; •Collocazione del progetto all’interno del piano di informatizzazione. Descrizione della problematica •Descrizione e rilevanza del problema/opportunità; •Esigenze da soddisfare (rispetto a utenti interni e esterni). Descrizione della situazione attuale del sistema informativo •Individuazione e rappresentazione dei processi coinvolti; •Individuazione e rappresentazione dei flussi informativi; •Individuazione e rappresentazione della struttura organizzativa e dell’utenza coinvolta; •Attuale livello di automazione. Analisi e diagnosi della situazione attuale •Individuazione dei fenomeni che costituiscono le cause del problema; •Collocazione di tali fenomeni sulle diverse componenti del processo di servizio; •Individuazione di metriche atte a rappresentare dei fenomeni critici e la loro evoluzione; •Misurazione della situazione attuale. Identificazione dei vincoli •Quadro normativo di riferimento; •Vincoli tempoprali e altri vincoli (economici, organizzativi, ...) Definizione degli obiettivi del progetto Il documento si apre con il paragrafo relativo al contesto di studio che serve ad inquadrare il progetto analizzato nell’ottica più generale della strategia di sviluppo del sistema informativo. Si tratterà pertanto di riprendere la visione strategica in termini di servizi, organizzazione e utilizzo della tecnologia e, alla luce di ciò, illustrare brevemente il percorso che ha condotto all’individuazione del progetto evidenziando gli aspetti più critici che motivano lo studio di fattibilità intrapreso. Il paragrafo di descrizione della problematica illustra i problemi o le opportunità da cui scaturisce il progetto indicandone la rilevanza e stabilendone esattamente i confini. Sempre in questa sezione è essenziale specificare le esigenze e le attese dell’utenza rispetto alla soluzione progettuale in esame (aspetto questo che verrà ripreso al termine della realizzazione del progetto al fine di verificare in che misura sono state soddisfatte le esigenze degli utenti). Il paragrafo di descrizione della situazione attuale è di fondamentale rilevanza dal momento che le successive fasi di analisi considereranno lo stato attuale qui descritto come base di partenza per la stima dei rischi da assumere, dei costi da sostenere e dei benefici che sarà possibile trarre dalla sua evoluzione futura. In particolare per la rappresentazione dei processi e dei flussi informativi si può ricorrere ad un’ampia gamma di modelli già visti, mentre per l’individuazione dell’utenza impattata e di come si distribuisce sulle varie strutture organizzative possono essere utili sia un funzionigramma dell’organizzazione sia matrici di relazione tra processi e strutture organizzative che evidenzino anche il livello di responsabilità nel processo delle varie strutture e il livello di convolgimento. Infine per la descrizione dell’attuale sistema di automazione è opportuno ricorrere alle consuete notazioni per la rappresentazione dell’architettura applicativa e tecnologica. Il paragrafo di analisi e diagnosi della situazione attuale approfondisce la precedente descrizione evidenziando i fenomeni critici su cui intervenire, individuandone le cause, da collocare sulle varie componenti di processo, e definendone le metriche atte a misurarli. Per l’analisi e la diagnosi di processi e di strutture organizzative esistono una pluralità di approcci, metodi e tecniche. Tra di essi figurano approcci e metodi basati sull’esame della catena del valore (Activity Based Costing), approcci e metodi orientati all’esame dei fattori critici di successo, approcci e metodi derivanti dall’approccio totale alla qualità, approcci e metodi basati sull’utilizzo sistematico del confronto con altre situazioni (benchmarking). Il paragrafo di identificazione dei vincoli identifica e descrive le condizioni di ambiente non modificabili che caratterizzano la situazione attuale: tali vincoli, appunto, possono essere di varia natura, giuridico-amministrativa, economica, organizzativa o temporale. In questa sezione occorre inoltre esplicitare le condizioni di necessaria invarianza in termini di distribuzione delle responsabilità sui prodotti/servizi erogati, di coinvolgimento delle strutture organizzative, di numero e di caratteristiche delle risorse da impiegare a regime e quant’altro risulti necessario. La delicata opera di integrazione tra le spinte al cambiamento con i limiti imposti dalla situazione attuale che prende forma proprio in questa sezione è una delle cause più comuni del fallimento dei progetti e del loro mancato raggiungimento dei benefici attesi. Infine nel paragrafo di definizione degli obiettivi del progetto gli obiettivi vanno espressi in forma quantitativa e faranno riferimento a costi, tempi e caratteristiche qualitative misurabili. E’ quindi necessario descrivere gli obiettiv i e collegare ad ognuno di questi la metrica da utilizzare per la verifica del suo raggiungimento, i valori attuali e quelli obiettivo, eventualmente scadenzati nel tempo. Il progetto di massima: livello di aggregazione Lo studio di fattibilità deve essere realizzato a un livello di dettaglio tale da rispondere ai quesiti per cui è stato richiesto, quindi: lo studio di fattibilità dovrà essere svolto un elevato livello di aggregazione (intendendo che non tutte le componenti del SI dovranno essere completamente scomposte e descritte); dovranno essere studiate solo le funzionalità principali e i casi di utilizzo standard; lo studio potrà riguardare solo la porzione più importante del SI che presenta le principali criticità e su cui incombono i principali dubbi. Gaetanino PAOLONE Sistemi informativi aziendali Il progetto di massima consiste in una descrizione generale del sistema informativo previsto ad un livello di dettaglio caratterizzato da un alto grado di aggregazione e generalizzazione e, dal punto di vista della completezza, da un grado di definizione del progetto caratterizzato da un’estensione parziale e non totale. Una simile scelta è dovuta essenzialmente al fatto che l’elaborazione del progetto di massima all’interno dello studio di fattibilità risponde prima di tutto all’esigenza di verificare la fattibilità e di stimare costi, benefici e tempi, ragion per cui la descrizione del progetto sarà necessariamente ad uno stadio di definizione non esaustivo. Studio di fattibilità: il progetto di massima Il progetto di massima Requisiti della soluzione •Dettaglio del progetto previsto (dopo la reingegnerizzazione); •Interventi previsti sulle componenti non informative del processo; •Necessità di modifica della normativa; •Requisiti del sistema informativo da realizzare: informazioni trattate, funzioni informatizzate, modalità di lavoro, requisiti architetturali, requisiti di qualità. Specifiche generali del sistema •Specifiche applicative: architettura dati e architettura applicativa con esame e valutazione delle eventuali alternative, interfaccia utente; •Specifiche tecnologiche : architettura tecnologica, ambiente e strumenti di sviluppo con esame e valutazione delle eventuali alternative. Modalità di realizzazione •Realizzazione o acquisizione con esame e valutazione delle eventuali alternative; •Riuso di componenti esistenti con esame e valutazione delle eventuali alternative; •Avvio del sistema; •Esercizio e manutenzione del sistema con esame e valutazione delle eventuali alternative; •Formazione e assistenza utenti. Gaetanino PAOLONE Sistemi informativi aziendali Il progetto di massima sarà suddiviso in tre sezioni: la prima relativa ai requisiti della soluzione, la seconda contenente le specifiche generali del sistema e l’ultima sulle modalità di realizzazione da adottare. In particolare bisognerà anzitutto dettagliare la soluzione, ossia esporre quanto prodotto dalla reingegnerizzazione dei processi di servizio allo stato attuale. Naturalmente, prima di procedere alla descrizione dei requisiti essenziali a cui il nuovo sistema informativo dovrà rispondere in termini di informazioni trattate, funzioni informatizzate, modalità di lavoro previste, elementi architetturali e caratteristiche qualitative da rispettare, sarà opportuno dedicare un paragrafo alla descrizione degli interventi che bisognerà intraprendere in fase realizzativa, sia che riguardino le componenti informative sia quelle organizzative del processo. Nella sezione relativa alle specifiche generali del sistema vanno evidenziate le caratteristiche applicative e tecnologiche che sono essenziali per rispondere ai requisiti individuati. Oltre alla specifica sui dati e sulle funzioni, di particolare interesse poiché essenziale per garantire l’apprendibilità e la facilità d’uso della nuova soluzione, è la specifica dell’interfaccia utente che riguarderà le modalità di presentazione e di navigazione all’interno delle applicazioni, la robustezza del sistema rispetto ad operazioni improprie, la sicurezza. In questa fase, inoltre, si apre la questione relativa alle alternative architetturali in termini tecnologici tra le quali quella più critica, in quanto impatta più significativamente sui costi, riguarda la scelta tra il sistema centralizzato e quello distribuito. Nello stesso tempo sarà necessario che lo studio espliciti i criteri con cui verranno valutate le varie alternative, distinguendo tra criteri di qualità e criteri economici. Infine è importante un riepilogo sintetico con l’esplicitazione della scelta proposta. Il progetto di massima si conclude con la sezione dedicata alle modalità di realizzazione da adottare. Il gruppo di lavoro, una volta definiti i requisiti di sistema che si deve realizzare, dovrà esaminare innanzitutto l’offerta di mercato, selezionando un numero limitato di possibili fornitori e vagliandone le proposte, e valutare in maniera comparata queste possibilità con la realizzazione exnovo (make or buy). In secondo luogo bisognerà valutare l’eventualità di un affidamento all’esterno delle attività di conduzione, gestione e manutenzione del sistema informativo, nota come outsourcing. Anche in questo caso è legittimo che lo studio di fattibilità affronti la questione sulla base di un confronto in termini economici e di qualità. A completamento della descrizione delle modalità di realizzazione, bisognerà risolvere un’altra questione essenziale, ossia quella riguardante il riuso delle componenti esistenti a livello di apparecchiature, dati e software applicativi. Tra tutti quello più critico è l’aspetto legato al riutilizzo delle componenti software. In questo caso lo studio di fattibilità dovrà approfondire, con il dettaglio sufficiente per una scelta ragionata, lo stato delle applicazioni che è possibile incorporare nel nuovo sistema e decidere tra una semplice ristrutturazione o una vera e propria riprogettazione integrale. Inoltre sempre in questa sezione si esaminano le problematiche relative alla messa in produzione e all’avvio del nuovo sistema, nonché le necessità e le iniziative di formazione e assistenza degli utenti. Studio di fattibilità: analisi del rischio Analisi del rischio Fattori di rischio del progetto •Complessità: -complessità gestionale, -dimensioni del progetto, - altri fattori; •Incertezza: -incertezza dei requisiti, -innovazione tecnologica. Analisi del rischio di progetto Modalità di gestione del rischio Gaetanino PAOLONE Sistemi informativi aziendali Il rischio connesso a un progetto è dato dall’esistenza di eventi capaci di pregiudicare il buon esisto del progetto come la sua mancata conclusione, l’ottenimento di prodotti difettosi, la lievitazione dei costi, l’allungamento dei tempi o la difficile integrazione con il restante sistema informativo. Pertanto uno dei compiti essenziali dello studio di fattibilità è quello di evidenziare i rischi più importanti di un progetto e soprattutto di individuarne le cause allo scopo di indicare le contromisure che devono essere intraprese nella gestione del progetto. Pertanto l’analisi del rischio si esplica attraverso tre passi fondamentali: 1. individuazione dei principali fattori di rischio del progetto imputabili alla complessità e all’incertezza dei requisiti o derivanti dall’uso di una nuova tecnologia, facendo riferimento allo specifico contesto applicativo e organizzativo (rischi organizzativi) e al sistema informatico (rischi tecnici); 2. valutazione sistematica di tutti i fattori di rischio individuati. La modalità operativa più diffusa consiste nell’attribuire ad ogni fattore di rischio un coefficiente qualitativo (alto, medio, basso) che classifica l’importanza di ogni singolo fattore e di ogni classe di fattori; 3. definizione di una strategia che consente la gestione del rischio ai fini del buon andamento del progetto. Tra le azioni possibili assumono particolare importanza le scelte di segmentazione del progetto, la definizione dei punti di decisione e le modalità di controllo del progetto. Principali fattori di rischio Fattore di rischio Parametri Interfunzionalità Interventi su organizzazione e ruoli Complessità gestionale Interventi su procedure di lavoro Livello di inesperienza dell’utente sulla problematica Livello di inesperienza dell’azienda sulla problematica Partecipazione e supporto direzionale Utilizzo di nuovo hardware Innovazione tecnologica Utilizzo di nuovo software di ambiente Utilizzo di soluzioni in ambiente TLC Necessità di software ad hoc Dimensione del progetto Numero di persone (es.basso [0,2], medio [3,6], alto [>6] ) Durata totale (utenti interni, esterni) espressa in mesi-uomo (es.basso [0,12], medio [13,24], alto [>24] ) Dimensione economica:impegno economico espresso in milioni di € Incertezza sui requisiti Stabilità dell’ambiente e dei processi Disponibilità, chiarezza e stabilità dei requisiti Livello di formalizzazione dei processi e delle procedure aziendali Studio di fattibilità: il progetto proposto Il progetto proposto Segmentazione del progetto •Realizzazione/installazione in soluzione unica; •Realizzazione/installazione incrementale; •Realizzazione/installazione evolutiva. Riepilogo delle acquisizioni e realizzazioni previste Piano di massima del progetto •Piano dei rilasci; •Punti di controllo; •WBS, Pert, Gantt Gaetanino PAOLONE Sistemi informativi aziendali Le scelte sulla segmentazione del progetto determinano la definizione puntuale e concreta del progetto realizzativo comprensivo di un piano dei rilasci, dell’evidenza dei punti di decisione previsti e di un piano di massima delle attività. I criteri di segmentazione ossia i possibili approcci con cui affrontare le problematiche relative alle fasi di realizzazione e installazione sono: − realizzazione/installazione in soluzione unica: il nuovo sistema informativo viene realizzato/installato in un’unica versione, generalmente con un’unica attività continuativa; − realizzazione/installazione incrementale: la realizzazione/installazione avviene per parti successive ciascuna delle quali contiene un sottoinsieme delle funzionalità e dei servizi previsti. In questo caso i requisiti del sistema sono completamente definiti prima della realizzazione iniziale e non variano nel corso delle successive installazioni; − realizzazione/installazione evolutiva: la realizzazione/installazione avviene per versioni successive, in cui ogni versione può contenere o tutte le funzionalità o un loro sottoinsieme. In questo caso i requisiti del sistema possono essere variati tra due successive versioni, dopo aver appreso nuove informazioni dal collaudo della versione precedente. Per la scelta tra i vari approcci si utilizzano dei procedimenti euristici basati sulle considerazioni su incertezza e complessità derivanti dall’analisi del rischio, nonchè, naturalmente, dalla situazione delle scadenze normative e contrattuali. In genere l’approccio evolutivo è indicato quando la situazione è incerta, mentre l’approccio incrementale è adeguato a situazioni complesse ma non incerte. Inoltre gli approcci incrementale e evolutivo sono da preferirsi quando ci sono tempi stretti, ossia è necessario realizzare qualcosa al più presto, tipicamente per rispondere in tempo a nuove esigenze normative. Una volta fissati i criteri di segmentazione, il progetto realizzativo proposto risulta definito, pertanto è possibile riepilogare definitivamente le attività realizzative, di cui si propone l’immediata attivazione, e le acquisizioni previste. In ultimo, a completamento del progetto, si illustra il piano di massima che costituirà la base di partenza per la stesura della prima versione del piano di progetto. Studio di fattibilità: analisi costi-benefici Analisi costi-benefici Valutazione dei benefici attesi •Individuazione e descrizione dei benefici attesi; •Individuazione ed esplicitazione delle metriche e dei valori attesi; •Correlazione obiettivi-benefici. Stima dei costi •Individuazione delle principali voci di costo; •Esplicitazione delle metriche utilizzate; •Stima dell’impegno delle risorse umane; •Stima dei costi di impianto e di esercizio. Analisi dell’investimento Gaetanino PAOLONE Sistemi informativi aziendali In questa fase di analisi si parte anzitutto con la valutazione dei benefici attesi, sia quelli monetizzabili che quelli riconducibili in qualche modo alla modifica di un fenomeno osservabile e quantificabile, esplicitando le metriche utilizzate per la loro misurazione, dichiarando i valori attesi e correlando i benefici individuati con gli obiettivi generali del progetto espressi in precedenza. Analogamente, il paragrafo successivo, dedicato alla stima dei costi di progetto, prevede l’individuazione delle principali voci di costo, l’esplicitazione delle modalità di stima utilizzate e il riepilogo della stima effettuata, sia come costi di realizzazione e d’impianto che come costi di esercizio, riferita allo stesso periodo già utilizzato per la quantificazione dei benefici. In questo modo sarà possibile effettuare il confronto tra i benefici e i costi associati al progetto sul quale, da un lato, si basa la scelta tra possibili alternative e, dall’altro, è possibile basare una giustificazione economica all’investimento necessario in fase decisionale. Individuazione dei benefici Benefici monetizzabili : quelli a cui è possibile associare direttamente un valore di tipo monetario; Benefici misurabili : pur non essendo possibile associrgli direttamente un valore economico è necessario individuare dei misuratori tramite i quali si possa quantificarne il loro valore. E’ necessario definire l’istante temporale a cui fare riferimento attualizzando costi e benefici rispetto a tale data. Avendo a disposizione dati comparabili sarà possibile effettuare un’analisi comparativa che indichi quale sarà la redditività del progetto. Gaetanino PAOLONE Sistemi informativi aziendali La stima dei costi Costi per tipologia di risorsa: costi delle tecnologie (hardware e software); costi del personale; costi dei servizi esterni; altri costi. Costi per missione: costi di sviluppo; costi di esercizio. Costi interni ed esterni Gaetanino PAOLONE Sistemi informativi aziendali I costi legati a un Sistema Informativo possono essere classificati utilizzando diversi criteri. • Costi per tipologia di risorsa: − costi delle tecnologie (hardware e software); − costi del personale: costi del personale informatico dedicato allo sviluppo, gestione e manutenzione delle applicazioni, assistenza agli utenti, pianificazione e amministrazione; − costi dei servizi esterni: sono i costi legati a tutte le attività di manutenzione e assistenza agli utenti; − altri costi: non legati direttamente alle tecnologie informatiche (es.immobili, materiali di consumo, ecc.). • Costi per missione: − costi di sviluppo: tra i quali si distinguono i costi di costruzione (per la progettazione e la realizzazione dunque gli oneri necessari per ottenere il sistema da utilizzare) e i costi di avviamento (oneri legati alle attività per mettere in esercizio il sistema acquisito); − costi di esercizio: costi necessari per il corretto funzionamento dei sistemi e l’utilizzo delle applicazioni da parte degli utenti. Normalmente i costi di esercizio rappresentano il 70%-80% di tutti i costi informatici di un’azienda (fonte Gartner Group). • Costi interni ed esterni: − costi interni: tra i quali si distinguono i costi interni diretti (costi del personale tecnico informatico impegnato nelle attività di sviluppo e di esercizio del sistema) e i costi indotti (costi legati alle attività svolte dagli utenti finali per attività connesse al progetto come ad esempio il tempo impiegato dagli utenti a caricare i dati negli archivi, oppure a imparare l’utilizzo di un applicativo); − costi esterni: sono relativi all’acquisizione di prodotti hardware e software e dei servizi affidati a società esterne anziché svolti internamente. La stima dei costi Principali voci di costo Quantificazione delle risorse Valorizzazione Costi hardware Dimensione degli impianti richiesti a partire dalle caratteristiche funzionali, dai volumi elaborativi e dalle prestazioni richieste dal sistema (capacity planning). •Valore di listino per fascia o per specifica configurazione + sconti volume; •Prezzo di mercato per unità prestazionale (MIPS, GB). Costi di sviluppo software Dimensionamento dell’impegno in tempo uomo a partire dalle caratteristiche qualitative e quantitative del sistema da realizzare. Vlorizzazione del tempo uomo impeganto a costi standard o tariffe di mercato. Costi di avviamento Dimensionamento dell’impegno in tempo uomo a partire dall’analisi delle singole attività pianificate. Valorizzazione del tempo uomo impegnato a costi standard o tariffe di mercato. Costi di gestione dei sistemi Dimensionamento dell’impegno in tempo uomo a partikre dall’analisi delle singole attività pianificate sulla base delle caratteristiche qualitative e quantitative dei sistemi da gestire e dei livelli di servizi richiesti + altre risorse usate nell’erogazione del servizio. Valorizzazione del tempo uomo impegnato a costi standard o tariffe di mercato + valorizzazione altre risorse utilizzate. % del prezzo dell’hardware e del software in manutenzione. Costi di manutenzione I procedimenti di stima e di valorizzazione dei costi varia a seconda del tipo di costo. Studio di fattibilità: raccomandazioni per le fasi realizzative Raccomandazioni per le fasi realizzative Indicazioni per l’approvvigionamento •Criteri per la determinazione della tipologia di fornitori; •Criteri di selezione delle offerte; •Indicazioni sulle modalità di approvvigionamento. Indicazioni per la gestione del progetto •Indicazioni per la gestione del piano di qualità; •Indicazioni sul Project Management; •Esigenze di negoziazione delle varianti. Gaetanino PAOLONE Sistemi informativi aziendali In primo luogo si sviluppano le indicazioni per l’approvvigionamento che consistono non solo nelle informazioni necessarie alla stesura dell’allegato tecnico al capitolato ma comprendono anche i criteri per la determinazione della tipologia di fornitore, le modalità di approvvigionamento più adeguate e i criteri di selezione delle offerte. Si sottolinea che, per quanto concerne il capitolato tecnico, l’obiettivo è quello di porre le aziende candidate nelle migliori condizioni possibili per esprimere la loro proposta e la loro offerta, al fine di ottenere il meglio dal mercato. Pertanto sarà necessario fornire un quadro di chiarezza che eviti incomprensioni e minimizzi esclusioni senza tuttavia giungere ad una definizione troppo formale e definitiva del testo di capitolato e/o di contratto. Per quanto riguarda invece i criteri per la determinazione della tipologia del fornitore, si parte dalla natura della fornitura richiesta per giungere alla definizione delle caratteristiche preferibili dei fornitori in termini di solidità finanziaria, dimensione e localizzazione, tipologia di prodotti/servizi offerti e capacità di innovazione tecnologica, che poi potranno tradursi in requisiti vincolanti e in parametri di valutazione delle offerte. L’insieme delle raccomandazioni sulla tipologia del fornitore e sui criteri di valutazione delle offerte conduce naturalmente anche a raccomandazioni sulla modalità di approvvigionamento, ossia della scelta tra le varie procedure possibili. Nell’ultimo paragrafo saranno elencate le indicazioni per la gestione del progetto realizzativo derivanti principalmente dalla valutazione del rischio e dalle considerazioni sul piano di massima del progetto.Gli elementi in generale più critici sui quali vale la pena soffermarsi con maggiore attenzione riguardano essenzialmente la gestione del piano di qualità, l’organizzazione e la gestione del progetto, le esigenze e le modalità di negoziazione delle varianti. Per finire lo studio di fattibilità può eventualmente prevedere una sezione di sintesi contenente tutti gli elementi e gli aspetti utili alla stesura formale del capitolato. Riassumendo... Sezione I: Analisi della situazione attuale •Il contesto di studio Sezione II: Progetti di massima •Descrizione della problematica •Requisiti della soluzione •Descrizione della situazione attuale del SI •Specifiche generali del sistema •Analisi e diagnosi della situazione attuale •Modalità di realizzazione •Identificazione dei vincoli Sezione III: Analisi dei rischi •Definizione degli obiettivi di progetto •Fattori di rischio del progetto •Analisi del rischio di progetto •Modalità di gestione del rischio Sezione IV: Il progetto proposto •Segmentazione del progetto •Riepilogo delle acquisizioni e realizzazioni previste •Piano di massima del progetto Sezione VI: Sezione V: Analisi costi-benefici Raccomandazioni per le fasi •Valutazione dei benefici attesi realizzative •Stima dei costi •Indicazioni per •Analisi dell’investimento l’approvvigionamento •Indicazioni per la gestione del piano di qualità