Software Engineering RAD: Case Study Lesson 9
RSA: Rose per Sistema di Ateneo RSA Team
Ingegneria dei Sistemi Si occupa della costruzione di modelli in grado di descrivere realta’ organizzative complesse Modella Procedure + Sistemi Informatici Piano dei Sistemi Progetto speciale avviato dall’Universita’ di Trento. Obiettivo: Ingegneria dei sistemi per Sistema di Ateneo. Effetti: Documentazione strutture, processi e procedure centralizzata e condivisa. Controllo processo (misurazione e monitoraggio). Re ingegnerizzazione di processo (ottimizzazione processo).
Ingegneria dei Sistemi (ctd) Gli ingredienti base sono: Metodologia: metodi e procedure per la rilevazione dei processi e dei sistemi informatici. Notazione: formalismo con cui rappresentare le informazioni relative a strutture e sistemi informatici. Strumenti: tool software a supporto di metodologia e notazione.
Metodologia: Esempio Metodologia Arthur Andersen per Universita’ di Trento: Strategy: definizione degli obiettivi strategici e definizione della catena del valore (composizione dei processi per formare valore aggiunto). Business Architecture (BA): definizione delle strutture organizzative e delle procedure (processi) esistenti (siano esse informatizzate o no). Solution Delivery (SD): individuazione gap tra SD e BA. Identificazione bisogni (tipicamente in termini di sistemi informatici). Operate (OP): monitoraggio dei sistemi informatici per fine tuning dei sistemi e per misurazione del raggiungimento degli obiettivi strategici.
Notazioni e Strumenti: Esempio Metodologia Arthur Andersen per Universita’ di Trento: Notazioni: Notazioni informali (e.g. Flow Chart, descrizion testuali) Strumenti: Strumenti per disegnare diagrammi (vs. Case tools), strumenti Office (strumenti per presentazioni, word processor, spreadsheet, …)
Output
AA: Dipendenze tra Deliverable
Rose per Sistema Ateneo Ambito: Piano dei Sistemi (PDS) Obiettivi di RSA: Adattare una metodologia di documentazione Arthur Andersen per le esigenze di Ateneo. Selezionare notazioni e strumenti (UML + Rose). Personalizzare strumenti per le esigenze specifiche di Ateneo.
Assessment: Metodologia AA Vantaggi: Consolidata Strutturata Copre l’intero ciclo Deliverable strutturati ed articolati. Svantaggi: Non supportata da tool Orientata prevalentemente su RAD
AA: Dipendenze tra Deliverable
Assessment: UML Vantaggi: Svantaggi: Consolidata e conosciuta Interesse/Standardizzazione Intuitiva (ma nel mondo funzionale…) Ben supportata da tool. Svantaggi: Analisti tipicamente formati nel “mondo” funzionale (adattamento notazioni/formazione)
Assessment Strumenti: Rose Vantaggi: Standard de facto Flessibile/Programmabile (REI API) Buon supporto UML Forte know-how/investimento in Universita’ Svantaggi: Costo licenze (Licenza Educational senza supporto) A volte troppo flessibile Orientato alla fase di sviluppo piu’ che di analisi Carenze e bug (soprattutto in fase di estrazione della documentazione). Integrazione di modelli sviluppati in parallelo
Caratteristiche Principali Metodologia Linee guida per Business Architecture (BA) Definizione preliminare per Solution Delivery (SD) Gestione progetto singolo Implementazione Generazione Documentazione per BA e SD Estrazione Selettiva Documentazione Integrazione con text editor e spell checker Computo Matrice CRUD Casi di Studio Direzione Risorse Umane (BA) Procedura di Budget (BA) Sistema Bibliotecario (BA) – in progress Rose per Sistema Ateneo (SD)
Struttura Presentazione Metodologia PARTE I. Presentazione della strutturazione del modello e delle linee guida adottate nella modellazione della Business Architecture Strumenti PARTE II. Presentazione delle soluzioni tecniche e degli algoritmi implementati a supporto della metodologia Casi di Studio PARTE III. Rapida presentazione dei casi di studio affrontati Conclusioni e Prossimi Passi
Parte I. Metodologia
Modello: <Nome> Struttura Modelli Modello: <Nome> Package: Use Case View Package: Logical View Package: Component View Package: Deployment View Qualsiasi modello in Rational Rose deve muoversi all’interno della struttura in package proposta a sinistra
Modello: Sistema Ateneo Struttura Modelli Modello: Sistema Ateneo Package: Use Case View Package: Business Architecture Package: <Nome Struttura 1> ... Package: <Nome Struttura 2> Package: Logical View Package: Component View Package: Deployment View Business Architecture: contenitore per la definizione delle strutture di Ateneo
Modello: Sistema Ateneo Struttura Modelli Modello: Sistema Ateneo Package: Use Case View Package: Business Architecture Package: <Nome Struttura 1> Package: Organigramma Package: Processi Package: Processi Comuni Package: Attori Package: Entità Package: Glossario Package: <Nome Struttura 2> ... Package: Logical View Package: Component View Package: Deployment View Business Architecture Organigramma Processi Processi Comuni Attori Entità Glossario
Modello: Sistema Ateneo Struttura Modelli Modello: Sistema Ateneo Package: Use Case View Package: Business Architecture Package: <Nome Struttura 1> Package: <Nome Struttura 2> Package: Solution Delivery Package: <Nome Sistema 1> ... Package: <Nome Sistema 2> Package: Logical View Package: Component View Package: Deployment View Solution Delivery: contenitore per la definizione dei Sistemi di Ateneo (Use Case View = requirements, Logical View = architecture)
Modello: Sistema Ateneo Struttura Modelli Modello: Sistema Ateneo Package: Use Case View Package: Business Architecture Package: <Nome Struttura 1> Package: Organigramma Package: Processi Package: Processi Comuni Package: Attori Package: Entità Package: Glossario Package: <Nome Struttura 2> ... Package: Logical View Package: Component View Package: Deployment View Business Architecture Organigramma Processi Processi Comuni Attori Entità Glossario
Organigramma L’organigramma viene costruito mediante l’uso di package (classi) nidificati e di diagrammi dei package (classi).
Organigramma <DESCRIPTION> Descrizione del package/struttura
Actors and Responsibility Activities and Entities Processi I processi sono rappresentati attraverso casi d’uso opportunamente stereotipati Gerarchica Processi Organizza gerarchicamente i processi. Process Flow Mostra come un processo non elementare viene realizzato attraverso la concatenazione di processi più elementari. Actors and Responsibility Mette in evidenza responsabilità e attori (interni ed esterni) che partecipano a un processo Activities and Entities Definisce come un processo elementare si decompone in attività e quali entità manipola
Gerarchia Processi Caratteristica: Notazione: Aspetti Standard: Organizza gerarchicamente i processi. Notazione: Use Case Diagrams Aspetti Standard: Utilizzo di stereotipo Business Use Case Utilizzo di stereotipi <<include>> e generalize Aspetti meno Standard (ma utili): Decomposizione ad albero. Utilizzo di stereotipo <<contain>> Calcolo trattenute stipendi Conguaglio fiscale Applicazione sostituto d'imposta Gestione giuridico-amministrativa CEL PTA degli interventi realizzati <<followed by>> Assunzione CEL <<contain>> Cessazione CEL corrente CEL Assunzione PTA Cessazione PTA Gestione adempimenti amministrativi PTA Gestione previdenziale corrente PTA Gestione retributiva corrente PTA Nel modello la gerarchia è presentata per livelli La visione di insieme è comunque ottenibile costruendosi un apposito diagramma
Gerarchia Processi La gerarchia dei processi è realizzata mettendo in relazione processi attraverso tre diversi stereotipi. generalizzazione stereotipo <<contain>> stereotipo <<include>>
Gerarchia Processi: Stereotipi La generalizzazione dal processo “Padre” nei processi “A”, “B” viene usata per indicare che il processo “Padre” si specializza nei processi “A” o “B”. (Usata per raggruppare logicamente processi) Lo stereotipo <<contain>> dal processo “Padre” in “C”, “D”, viene usato per indicare che il caso d’uso “Padre” si realizza attraverso una composizione di un sottoinsieme dei processi figli “C” e “D”.
Gerarchia Processi: Stereotipi Lo stereotipo <<include>> dal processo “Padre” ai processi “E”, “F” viene usato per indicare che il processo “Padre” è composto esattamente dai processi E ed F. Ad ogni passo di decomposizione viene utilizzato un solo tipo di stereotipo
Process Flow I Process Flow diagram vengono utilizzati per rappresentare come processi legati (attraverso “include” o “contain”) ad uno stesso processo padre si compongono a realizzare il processo padre Gestione giuridico-amministrativa PTA Assunzione PTA <<contain>> Cessazione PTA Gestione adempimenti amministrativi PTA Gestione previdenziale corrente PTA Gestione retributiva corrente PTA Come si compongono i processi figli a realizzare il processo padre?
Process Flow Caratteristica: Sequenzia i processi. Notazione: Activity Diagram Aspetti standard: Intera potenza espressiva degli activity diagram Utilizzo di stereotipo <<rpw>> Aspetti meno standard (ma utili): NESSUNO
Decomposizione Gerarchica Process Flow Decomposizione Gerarchica Process Flow Assunzione CEL <<contain>> Gestione giuridico-amministrativa CEL <<contain>> Cessazione CEL Gestione giuridico-amministrativa corrente CEL <<contain>> Le specializzazioni rappresentano organizzazioni logiche di processi. Process Flow non ha senso. <<followed by>> Gestione giuridico-amministrativa PTA <<contain>> <<contain>> <<contain>> degli interventi realizzati <<contain>> Gestione adempimenti Gestione retributiva corrente PTA <<contain>> amministrativi PTA <<contain>> Cessazione PTA Conguaglio fiscale <<contain>> <<contain>> Assunzione PTA <<contain>> <<contain>> <<contain>> <<contain>> Gestione previdenziale corrente PTA Applicazione sostituto d'imposta Calcolo trattenute stipendi
Actors and Responsibility Il diagramma degli “Actors and Responsibility” mette in evidenza, per i processi foglia, attori (interni ed esterni) che prendono parte (attiva o passiva) nel processo ed alloca la responsabilità di processo ad un attore interno.
Actors and Responsibility Calcolo trattenute stipendi Conguaglio fiscale Applicazione sostituto d'imposta Gestione giuridico-amministrativa CEL PTA degli interventi realizzati <<followed by>> Assunzione CEL <<contain>> Cessazione CEL corrente CEL Assunzione PTA Cessazione PTA Gestione adempimenti amministrativi PTA Gestione previdenziale corrente PTA Gestione retributiva corrente PTA
Actors and Responsibility Caratteristica: Definisce “interfaccia” processo e responsabile Notazione: Use Case Diagram Aspetti standard: Attori esterni Processi con stereotipo “Business Use Case” Business Actor Aspetti meno standard (ma utili): <<is responsible for>> <<business worker>> come attori del processo (confini del sistema) Senato Accademico Ufficio Personale Docente e Ricercatore Segreteria di Facoltà Presidio amministrativo di Dirigente DRU Collaboratore Predisposizione contratto per attività didattica <<is responsible for>>
Activities and Entities I processi foglia hanno sempre associato un diagramma delle attività che definisce la strutturazione in attività del processo e indica le attività manipolate dal processo.
Activities and Entities Caratteristica: Definisce strutturazione processo in attività e entità manipolate Notazione: Activity Diagram Aspetti standard: Costrutti Activity Diagram Attività-Entità (UML 1.4) Aspetti meno standard (ma utili): Stereotipi per manipolazione entità Stereotipi per richiamare processi A02: Processo1
Activities and Entities: Esempi di Stereotipi <<create>> <<update>> <<read>> <<delete>> a02: Predisposizione lettera di <<create>> incarico e contratto : Lettera di incarico <<update>> : Contratto di collaborazione a01: Aggiornamento tabelle riassuntive e <<read>> : Modulo di richiesta contratto preparazione delibera di Senato a03: Invio documentazione alla Facoltà <<delete>> Comunicazione di assegnazione incarico : Lettera di comunicazione
Processi comuni: processi trasversali definiti in una struttura I processi comuni sono definiti in una parte indipendente del modello (package “Processi Comuni”) I processi comuni possono essere decomposti gerarchicamente (ma, usualmente, non accade) I processi comuni sono referenziati nei Process Flow e negli Activity Diagram
Documentazione Processi Tutti i processi sono documentati attraverso il campo di documentazione standard di Rational Rose. La documentazione dei processi impiega tag XML per marcare semanticamente alcune parti di informazione La documentazione dei processi impiega tag HTML per marcare visualmente la descrizione della documentazione.
Documentazione Processi <DOCUMENTATION> <GOAL>Obiettivo del caso d'uso</GOAL> <TRIGGER>Evento scatenante</TRIGGER> <INPUTS> <INPUT>Dati in ingresso</INPUT> </INPUTS> <OUTPUTS> <OUTPUT>Dati in uscita</OUTPUT> </OUTPUTS> <DESCRIPTION> Descrizione del caso d'uso. Scenario: <OL> <LI>Inizio</LI> <LI>Continuazione</LI> <LI>Fine</LI> </OL> </DESCRIPTION> </DOCUMENTATION> Tag XML: Marcano semanticamente la documentazione per strutturare le informazioni testuali associate ad un processo. DTD definito appositamente per il progetto. Tag HTML: Aggiungono direttive visuali alla documentazione dei processi. Supporto per HTML 3.2 quasi completo (eccezioni: alcuni argomenti dei tag A, IMG, …)
Attori, Entità, Glossario Utilizzati negli Actors and Responsibility Diagrams. Vanno inseriti nel package Attori, eventualmente raggruppati in package. Entità: Utilizzate negli Activity Diagram dei processi foglia Vanno inserite nel package Entità sotto forma di classi, eventualmente raggruppate facendo uso di package. Glossario: Utilizzato nei deliverable, per la spiegazione di termini specifici al dominio. Vanno inseriti, sotto forma di classi, in un package apposito del modello.
Parte II. Strumenti
Strumenti RSA Strumenti commerciali o di robustezza industriale Insieme di strumenti appositamente implementati per supportare metodologia e processo di redazione del modello “Sistema di Ateneo” e superare i limiti degli strumenti Rational Valenza spesso più generale dell’ambito del progetto (ad es.: XML export) Architettura distribuita e prevalentemente basata su Strumenti commerciali o di robustezza industriale Linguaggi di scripting Insieme di Strumenti Integrati Repository, Web Server, Rational Rose, Text/HTML Editor, MS Word, Excel
Rational Rose Standard quasi di fatto Buon supporto di UML Caratteristiche: Standard quasi di fatto Buon supporto di UML Programmabile (REI) Limiti Principali: Documentazione elementi del modello (per es. campi solo testuali, niente spell checker). Sintesi delle dipendenze tra elementi del modello. Decomposizione pienamente gerarchica del modello.
Rational SoDA Caratteristiche: Estrae documenti da modelli Rose Basato su macro e template Word Svantaggi: Interazione utente spesso inaccettabile (definizione template, riuso, stabilità). Non affronta comunque problemi relativi a formattazione campi testo degli elementi Rose Impossibilità (pratica) di raggiungere determinati standard di formattazione (ad es. tabelle) Impossibilità di raggiungere standard adeguati di documentazione
Alcuni Interventi effettuati Estrazione di documentazione dal modello e sintesi dipendenze nel modello Generazione matrice CRUD Estrazione e generazione automatica deliverable Generazione glossario Controlli di qualità del modello Controlli di correttezza Miglioramento interfaccia utente (redazione modelli) Integrazione con editor esterno Integrazione con spell-checker
Interventi Effettuati
Generazione Matrice CRUD Mette in relazione processi ed entità, descrive come i processi manipolano (operazioni di Create, Read, Update, Delete) le entità. Estratta automaticamente dal modello Rose Stato attuale: Costruzione CRUD a livello di attività, processi, macroprocessi. Generalizzazione a qualsiasi livello delle gerarchia Gestione Processi Comuni Situazione a Divenire: Aggiornamento per nuovi stereotipi
Generazione CRUD Algoritmo in due passi: Navigazione del modello ed estrazione delle informazioni (Macro REI, output in CSV file) Sintesi delle informazioni in forma matriciale (input CSV file, XML, HTML)
Generazione CRUD Le informazioni vengono estratte dal modello esaminando i diagrammi di attività associati ai casi d’uso. Calcolo trattenute stipendi Conguaglio fiscale Applicazione sostituto d'imposta Gestione giuridico-amministrativa CEL PTA degli interventi realizzati <<followed by>> Assunzione CEL <<contain>> Cessazione CEL corrente CEL Assunzione PTA Cessazione PTA Gestione adempimenti amministrativi PTA Gestione previdenziale corrente PTA Gestione retributiva corrente PTA … … …
Generazione CRUD Tipo operazione (CRUD) Nome entità, Classe entità, Nome attività, Nome swimlane del diagramma, Nome caso d’uso, Nome macro caso d’uso Azione Nome_oggetto Classe_oggetto Nome_Attività Nome_Swimlane Nome_CasoUso Nome_MacroUC 1000000 Autorizzazione aumento di spesa Decreto del Direttore Generale b01: predisposizione autorizzazione di spesa Ufficio Personale Tecnico Amministrativo: Gestione variazione di orario PTA Gestione giuridico-amministrativa corrente PTA Richiesta ricongiunzione Modulo richiesta ricongiunzione Compila modulo per richiesta provvedimento di ricongiunzione Dipendente: Ricongiunzione da ente locale a stato Gestione giuridico-amministrativa PTA 10000 Assegnazione istituto contrattuale Disposizione del dirigente DRU a01: rilascio attuazione economica Ufficio Selezione e Sviluppo Risorse Umane: Attuazione economica dell'istituto contrattuale Valutazione e incentivazione PTA
Generazione CRUD: Esempio
Estrazione Documentazione Permette all’utente di generare automaticamente deliverable per BA e SD direttamente dal modello Rose Struttura documenti secondo gerarchia modello Integra testo e figure Supporta formattazione semantica e visuale Formati di output supportati: HTML Microsoft Word
Estrazione Documentazione Algoritmo in tre passi: Trasformazione modello Rose in XML (Macro REI, output XML file) Trasformazione XML in HTML (input: XSL, XSLT engine, output HTML file) Import HTML in Microsoft Word (input HTML files, Macro Word)
Estrazione Doc.: Rose 2 XML La gerarchia del modello viene navigata e trasformata in XML che ne rispetta la struttura XMI versus RSA-XML
Estrazione Doc.: XML 2 HTML Trasformazione attraverso XSL engines Insieme di Stylesheet generici per trasformazione di elementi XML (riuso per BA e SD) <XSL:MATCH = …> <XLS:APPLY-TEMPLATE name=“use-case”/> </XSL-MATCH> …
Estrazione Doc.: XML 2 HTML Business Architecture Solution Delivery Layout base HTML file Gestione elementi Base
Integrazione con Ms Word Macro che consente di incollare i documenti HTML in un unico documento MS Word Controllo fine su template da utilizzare per la stampa Generazione automatica sommario Generazione documento auto-contenuto (figure)
Generazione Sito Web
Altri interventi Controlli di correttezza Sono state sviluppate delle procedure che effettuano verifiche affinché il modello rispetti certi criteri (ad esempio, per la computazione della CRUD) Generazione Glossario È stato implementato un metodo per estrarre tutte le operazioni e gli attributi delle classi contenute nel modello.
Altri interventi Integrazione con editor esterno In modalità sincrona, con editor scelto dall’utente Prossimo Passo: integrazione con HTML/XML editor Integrazione con Spell-Checker Con granularità definita dall’utente (intero modello, …) Integrazione con strumenti standard Basato su esportazione XML In fase di testing
Parte III. Applicazioni
Alcune Applicazioni Direzione Risorse Umane (BA) Guida per la definizione di BA Deliverable di circa 450 pagine Rose per Sistema Ateneo (SD) Guida per la sperimentazione su SD Deliverable di circa 50 pagine
Parte IV. Conclusioni
Direzione Risorse Umane
Conclusioni Ingegneria di processo e’ un passo fondamentale per monitoraggio e ottimizzazione di strutture/procedure. Soluzioni basate su case tools offrono vantaggi sostanziali. Per es: Manipolazione oggetti del modello (vs. manipolazione ellissi, …) Coerenza del modello (vs. duplicazione informazioni) Generazione automatica deliverable Soluzioni informatiche richiedono lo sviluppo di: Architetture distribuite Implementazioni basate su linguaggi di scripting …