software engineering 1 rad: case study lesson 9. rsa: rose per sistema di ateneo rsa team

66
ftware Engineering 1 Software Engineering Software Engineering RAD: Case Study Lesson 9

Upload: marcella-spinelli

Post on 01-May-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

Software Engineering 1

Software EngineeringSoftware Engineering

RAD: Case Study

Lesson 9

Page 2: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

RSA: Rose per Sistema di Ateneo

RSA Team

Page 3: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

3

Ingegneria dei Sistemi

• 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).

Page 4: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

4

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.

Page 5: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

5

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.

Page 6: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

6

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, …)

Page 7: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

7

Out

put

Page 8: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

8

AA: Dipendenze tra DeliverableValue Chain Definition Operating Objectives

Operating Vision

Organization Relationship Diagram

Subject Area Data Model

Entity Type Definition

Process Relationship Diagram

Subject Area Data/Process Matrix

Process Definition

Physical Network Topology

Delivery Vehicle/Application Diagram

Delivery Vehicle/Application Matrix

Software Selection Criteria Business Process Definition Workflow Diagram

Learning Needs

Instructor Training Material

Packaged Software Gap

Packaged Software Design

Data Conversion Design

Application Product Test Model

Application Interface Definition

Application Definition Workflow Scenario

Page 9: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

9

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.

Page 10: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

10

Assessment: Metodologia AA

• Vantaggi:– Consolidata– Strutturata– Copre l’intero ciclo– Deliverable strutturati ed articolati.

• Svantaggi:– Non supportata da tool– Orientata prevalentemente su RAD

Page 11: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

11

AA: Dipendenze tra DeliverableValue Chain Definition Operating Objectives

Operating Vision

Organization Relationship Diagram

Subject Area Data Model

Entity Type Definition

Process Relationship Diagram

Subject Area Data/Process Matrix

Process Definition

Physical Network Topology

Delivery Vehicle/Application Diagram

Delivery Vehicle/Application Matrix

Software Selection Criteria Business Process Definition Workflow Diagram

Learning Needs

Instructor Training Material

Packaged Software Gap

Packaged Software Design

Data Conversion Design

Application Product Test Model

Application Interface Definition

Application Definition Workflow Scenario

Page 12: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

12

Assessment: UML

• Vantaggi:– Consolidata e conosciuta– Interesse/Standardizzazione– Intuitiva (ma nel mondo funzionale…)– Ben supportata da tool.

• Svantaggi:– Analisti tipicamente formati nel “mondo”

funzionale (adattamento notazioni/formazione)

Page 13: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

13

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

Page 14: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

14

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)

Page 15: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

15

Struttura Presentazione

• MetodologiaPARTE I. Presentazione della strutturazione del modello e delle linee guida adottate nella modellazione della Business Architecture

• StrumentiPARTE II. Presentazione delle soluzioni tecniche e degli algoritmi implementati a supporto della metodologia

• Casi di StudioPARTE III. Rapida presentazione dei casi di studio affrontati

• Conclusioni e Prossimi Passi

Page 16: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

Parte I. Metodologia

Page 17: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

17

Struttura Modelli

Qualsiasi modello in Rational Rose deve muoversi all’interno

della struttura in package proposta a

sinistra

Modello: <Nome>

Package: Use Case View

Package: Logical View

Package: Component View

Package: Deployment View

Page 18: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

18

Struttura Modelli

Business Architecture:

contenitore per la definizione delle

strutture di Ateneo

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

Page 19: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

19

Struttura Modelli

Business Architecture• Organigramma • Processi• Processi Comuni• Attori• Entità• Glossario

Modello: Sistema Ateneo

Package: Use Case View

Package: Business Architecture

Package: <Nome Struttura 1>Package: OrganigrammaPackage: ProcessiPackage: Processi ComuniPackage: AttoriPackage: EntitàPackage: Glossario

Package: <Nome Struttura 2>

...

Package: Logical View

Package: Component View

Package: Deployment View

Page 20: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

20

Struttura Modelli

Solution Delivery: contenitore per la

definizione dei Sistemi di Ateneo (Use Case View =

requirements, Logical View = architecture)

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: Solution Delivery

Package: <Nome Sistema 1>...

Package: <Nome Sistema 2>...

Package: Component View

Package: Deployment View

Page 21: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

21

Struttura Modelli

Business Architecture• Organigramma • Processi• Processi Comuni• Attori• Entità• Glossario

Modello: Sistema Ateneo

Package: Use Case View

Package: Business Architecture

Package: <Nome Struttura 1>Package: OrganigrammaPackage: ProcessiPackage: Processi ComuniPackage: AttoriPackage: EntitàPackage: Glossario

Package: <Nome Struttura 2>

...

Package: Logical View

Package: Component View

Package: Deployment View

Page 22: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

22

OrganigrammaL’organigramma viene costruito mediante l’uso di package

(classi) nidificati e di diagrammi dei package (classi).

Direzione Risorse UmaneM

Divisione Amministrazione del Personale

Divisione Retribuzioni e Previdenza

Divisione Sviluppo e Gestione Risorse Umane

Ufficio Personale Docente e Ricercatore

Ufficio Personale Tecnico Amministrativo

Ufficio Previdenza Ufficio Formazione e Aggiornamento

Ufficio Rapporti Sindacali e Valutazione Risorse Umane

Ufficio Selezione e Sviluppo Risorse Umane

Ufficio Sviluppo Organizzativo

Segreteria di Direzione

Servizi Ausiliari

Ufficio Retribuzioni

Page 23: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

23

Organigramma

Direzione Risorse UmaneM

Divisione Amministrazione del Personale

Divisione Retribuzioni e Previdenza

Divisione Sviluppo e Gestione Risorse Umane

Ufficio Personale Docente e Ricercatore

Ufficio Personale Tecnico Amministrativo

Ufficio Previdenza Ufficio Formazione e Aggiornamento

Ufficio Rapporti Sindacali e Valutazione Risorse Umane

Ufficio Selezione e Sviluppo Risorse Umane

Ufficio Sviluppo Organizzativo

Segreteria di Direzione

Servizi Ausiliari

Ufficio Retribuzioni

<DESCRIPTION>Descrizione del package/struttura</DESCRIPTION>

Page 24: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

24

Processi

Gerarchica ProcessiOrganizza gerarchicamente i processi.

Process FlowMostra 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

I processi sono rappresentati attraverso casi d’uso opportunamente stereotipati

Page 25: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

25

Gerarchia Processi• Caratteristica:

– 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

Gestione giuridico-amministrativa PTA

degli interventi realizzati

<<followed by>>

Assunzione CEL <<contain>>

Cessazione CEL

<<contain>>Gestione giuridico-amministrativa

corrente CEL

<<contain>>

<<contain>>

<<contain>>

Assunzione PTA

<<contain>>

Cessazione PTA

<<contain>>

Gestione adempimenti amministrativi PTA

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>Gestione previdenziale corrente PTA

<<contain>>Gestione retributiva corrente PTA

<<contain>>

• Nel modello la gerarchia è presentata per livelli

• La visione di insieme è comunque ottenibile costruendosi un apposito diagramma

Page 26: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

26

Gerarchia Processi

La gerarchia dei processi è realizzata mettendo in relazione processi attraverso tre diversi stereotipi.

• generalizzazione

• stereotipo <<contain>>

• stereotipo <<include>>

Page 27: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

27

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”.

Padre

A B

C D

Padre

<<contain>> <<contain>>

Page 28: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

28

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.

Padre

E F

<<include>> <<include>>

Ad ogni passo di decomposizione viene utilizzato un solo tipo di

stereotipo

Page 29: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

29

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

<<contain>>

Gestione adempimenti

amministrativi PTA

<<contain>>

<<contain>>

Gestione previdenziale corrente PTA

<<contain>>

Gestione retributiva corrente PTA

<<contain>>

Come si compongono i processi figli a realizzare il processo padre?

Page 30: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

30

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

Page 31: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

31

Process Flow

Calcolo trattenute stipendi

Conguaglio fiscale

Applicazione sostituto d'imposta

Gestione giuridico-amministrativa CEL

Gestione giuridico-amministrativa PTA

degli interventi realizzati

<<followed by>>

Assunzione CEL <<contain>>

Cessazione CEL

<<contain>>Gestione giuridico-amministrativa

corrente CEL

<<contain>>

<<contain>>

<<contain>>

Assunzione PTA

<<contain>>

Cessazione PTA

<<contain>>

Gestione adempimenti amministrativi PTA

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>Gestione previdenziale corrente PTA

<<contain>>Gestione retributiva corrente PTA

<<contain>>

Decomposizione Gerarchica Process Flow

Le specializzazioni rappresentano organizzazionilogiche di processi.Process Flow non ha senso.

Page 32: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

32

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.

Page 33: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

33

Actors and Responsibility

Calcolo trattenute stipendi

Conguaglio fiscale

Applicazione sostituto d'imposta

Gestione giuridico-amministrativa CEL

Gestione giuridico-amministrativa PTA

degli interventi realizzati

<<followed by>>

Assunzione CEL <<contain>>

Cessazione CEL

<<contain>>Gestione giuridico-amministrativa

corrente CEL

<<contain>>

<<contain>>

<<contain>>

Assunzione PTA

<<contain>>

Cessazione PTA

<<contain>>

Gestione adempimenti amministrativi PTA

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>Gestione previdenziale corrente PTA

<<contain>>Gestione retributiva corrente PTA

<<contain>>

Page 34: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

34

Actors and Responsibility

Senato Accademico

Ufficio Personale Docente e Ricercatore

Segreteria di Facoltà

Presidio amministrativo di Facoltà

Dirigente DRU

Collaboratore

Predisposizione contratto per attività didattica

<<is responsible for>>

• 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)

Page 35: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

35

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.

Page 36: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

36

Activities and Entities

Ricezione richiesta stipuala contratto

a01: Aggiornamento tabelle riassuntive e preparazione delibera di Senato

Delibera approvazione contratti : Delibera di Senato Accademico

<<create>>

a02: Predisposizione lettera di incarico e contratto

a03: Invio documentazione alla Facoltà

: Tabelle riassuntive contratti per didattica

<<create>>

: Lettera di incarico

<<create>>

: Contratto di collaborazione

<<create/update>>

: Modulo di richiesta contratto<<read>>

Comunicazione di assegnazione incarico : Lettera di comunicazione

<<create>>

<<read>>

<<read>>

• 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

Page 37: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

37

Activities and Entities:Esempi di Stereotipi

• <<create>>

• <<update>>

• <<read>>

• <<delete>>

a01: Aggiornamento tabelle riassuntive e preparazione delibera di Senato

a02: Predisposizione lettera di incarico e contratto

a03: Invio documentazione alla Facoltà

: Lettera di incarico

<<create>>

: Contratto di collaborazione

<<update>>

: Modulo di richiesta contratto

<<read>>

Comunicazione di assegnazione incarico : Lettera di comunicazione

<<delete>>

Page 38: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

38

Processi Comuni

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

Page 39: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

39

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.

Page 40: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

40

Documentazione ProcessiTag 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, …)

<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>

Page 41: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

41

Attori, Entità, Glossario• Attori:

– 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.

Page 42: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

Parte II. Strumenti

Page 43: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

43

Strumenti RSA

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

Page 44: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

44

Rational RoseCaratteristiche:

• 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.

Page 45: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

45

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

Page 46: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

46

Alcuni Interventi effettuati

1. Estrazione di documentazione dal modello e sintesi dipendenze nel modello

• Generazione matrice CRUD• Estrazione e generazione automatica deliverable• Generazione glossario

2. Controlli di qualità del modello• Controlli di correttezza

3. Miglioramento interfaccia utente (redazione modelli)

• Integrazione con editor esterno• Integrazione con spell-checker

Page 47: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

47

Interventi Effettuati

Page 48: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

48

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

Page 49: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

49

Generazione CRUD

Algoritmo in due passi:

1. Navigazione del modello ed estrazione delle informazioni(Macro REI, output in CSV file)

2. Sintesi delle informazioni in forma matriciale(input CSV file, XML, HTML)

Page 50: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

50

Generazione CRUDLe informazioni vengono estratte dal modello esaminando i diagrammi di attività associati ai

casi d’uso.

Ricezione richiesta stipuala contratto

a01: Aggiornamento tabelle riassuntive e preparazione delibera di Senato

Delibera approvazione contratti : Delibera di Senato Accademico

<<create>>

a02: Predisposizione lettera di incarico e contratto

a03: Invio documentazione alla Facoltà

: Tabelle riassuntive contratti per didattica

<<create>>

: Lettera di incarico

<<create>>

: Contratto di collaborazione

<<create/update>>

: Modulo di richiesta contratto<<read>>

Comunicazione di assegnazione incarico : Lettera di comunicazione

<<create>>

<<read>>

<<read>>

Calcolo trattenute stipendi

Conguaglio fiscale

Applicazione sostituto d'imposta

Gestione giuridico-amministrativa CEL

Gestione giuridico-amministrativa PTA

degli interventi realizzati

<<followed by>>

Assunzione CEL <<contain>>

Cessazione CEL<<contain>>Gestione giuridico-amministrativa

corrente CEL

<<contain>>

<<contain>>

<<contain>>

Assunzione PTA

<<contain>>

Cessazione PTA

<<contain>>

Gestione adempimenti amministrativi PTA

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>Gestione previdenziale corrente PTA

<<contain>>Gestione retributiva corrente PTA

<<contain>>

Ricezione richiesta stipuala contratto

a01: Aggiornamento tabelle riassuntive e preparazione delibera di Senato

Delibera approvazione contratti : Delibera di Senato Accademico

<<create>>

a02: Predisposizione lettera di incarico e contratto

a03: Invio documentazione alla Facoltà

: Tabelle riassuntive contratti per didattica

<<create>>

: Lettera di incarico

<<create>>

: Contratto di collaborazione

<<create/update>>

: Modulo di richiesta contratto<<read>>

Comunicazione di assegnazione incarico : Lettera di comunicazione

<<create>>

<<read>>

<<read>>

Page 51: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

51

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

1000000 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

Page 52: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

52

Generazione CRUD: Esempio

Page 53: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

53

Estrazione DocumentazionePermette 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

Page 54: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

54

Estrazione Documentazione

Algoritmo in tre passi:

1. Trasformazione modello Rose in XML(Macro REI, output XML file)

2. Trasformazione XML in HTML(input: XSL, XSLT engine, output HTML file)

3. Import HTML in Microsoft Word(input HTML files, Macro Word)

Page 55: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

55

Estrazione Doc.: Rose 2 XML • La gerarchia del modello viene navigata e

trasformata in XML che ne rispetta la struttura• XMI versus RSA-XML

Page 56: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

56

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>…

Page 57: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

57

Estrazione Doc.: XML 2 HTML

Gestione elementi Base

Business Architecture Solution Delivery

Layout base HTML file

Page 58: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

58

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)

Page 59: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

59

Generazione Sito Web

Page 60: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

60

Altri interventi

• Controlli di correttezzaSono 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.

Page 61: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

61

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

Page 62: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

Parte III. Applicazioni

Page 63: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

63

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

Page 64: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

Parte IV. Conclusioni

Page 65: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

65

Direzione Risorse UmaneFormazione PTA

Gestione adempimenti amministrativi di Ateneo

Gestione Co.Co.Co.

Gestione giuridico-amministrativa CEL

Gestione giuridico-amministrativa PDR a contratto

Gestione giuridico-amministrativa PDR di ruolo

Gestione giuridico-amministrativa PTA

Gestione rapporti sindacali

Gestione servizi accessori

Valutazione e incentivazione PTA

Analisi dei bisogni formativi

<<contain>>

Gestione dei curricula formativi individuali

<<contain>>

Gestione iscrizione a corsi disponibili sul mercato

<<contain>>

Monitoraggio e valutazione finale degli interventi realizzati

<<contain>>

<<followed by>>

Pianificazione delle attività di formazione

<<contain>>

<<followed by>>

Realizzazione e gestione delle iniziative formative

<<contain>>

<<followed by>>

<<followed by>>

Gestione anagrafe delle prestazioni

<<contain>>

Gestione budget

<<contain>>

Stesura dichiarazione annuale categorie protette

<<contain>>

Gestione budget di acquisto servizi

Gestione budget di assunzione PTA

Gestione budget di Ateneo per finanziamento trattamenti accesso...

Dichiarazione INAIL per Co.Co.Co.

Assunzione CEL

Cessazione CEL

Gestione giuridico-amministrativa corrente CEL

<<followed by>>

<<followed by>>

Gestione selezioni CEL

<<contain>>

Reclutamento CEL

<<contain>>

<<followed by>>

Predisposizione contratto per attività didattica

<<contain>>

Selezione collaboratori CIAL

<<contain>>

Assunzione PDR di ruolo

Cessazione PDR di ruolo

Gestione adempimenti amministrativi PDR di ruolo

Gestione giuridico-amministrativa corrente PDR di ruolo

Gestione previdenziale corrente PDR di ruolo

Gestione retributiva corrente PDR di ruolo

Assunzione per chiamata di idoneo PDR di ruolo

Assunzione per chiamata diretta o per chiara fama

Assunzione per concorso PDR di ruolo

Assunzione per trasferimento PDR di ruolo

Gestione concorso PDR di ruolo

Nomina PDR di ruolo

<<followed by>>

Cessazione per collocazione a riposo o decesso PDR di ruolo

Cessazione per trasferimento in altra sede PDR di ruolo

Cessazione volontaria per dimissioni PDR di ruolo

Predisposizione conto annuale PDR per MIUR

Gestione autorizzazione per incarichi retribuiti PDR di ruolo<<contain>>

Gestione carico didattico

<<contain>>

Gestione carriera PDR di ruolo

<<contain>>

Gestione incentivazione mig lioramento didattica PDR di ruolo

<<contain>>

Gestione rilascio congedi e aspettative PDR

<<contain>>

Gestione supplenze PDR di ruolo

<<contain>>

Gestione variazione dati anagrafici e famigliari

<<contain>>

Cambio di opzione per il regime di impegno PDR

<<contain>>

Cambio di settore scientifico-disciplinare

<<contain>>

Conferma di ruolo PDR

<<contain>>

Domanda di residenza fuori sede

<<contain>>

Gestione fuori ruolo PDR

<<contain>>

Limitazione attività didattica

<<contain>>

Passaggio di facoltà

<<contain>>

Prolungamento biennale

<<contain>>

Ricostruzione carriera PDR

<<contain>>

Determinazione di spesa

<<contain>>

Ripartizione del fondo incentivante

<<contain>>

Aspettativa obbligatoriaAspettativa per infermità

Aspettativa per motivi di famiglia

Astensione per maternità

Congedo per motivi di studio o per anno sabbatico

Congedo straordinario

Autorizzazione per supplenze fuori sede

Procedimento per supplenze esterneAssunzione PTA

Cessazione PTA

Gestione adempimenti amministrativi PTA

Gestione giuridico-amministrativa corrente PTA

Gestione previdenziale corrente PTA

Gestione retributiva corrente PTA

Assunzione per selezione PTA

<<contain>>

Assunzione per trasferimento PTA

<<contain>>

Gestione fine periodo di prova PTA

<<contain>>

<<contain>>

Gestione selezione/concorso PTA

<<contain>>

<<contain>>

Predisposizione contratto per PTA

<<contain>>

<<followed by>><<contain>>

<<followed by>>Cessazione per fallimento periodo di

prova

<<followed by>>

Cessazione per limiti d'età, dimissioni, dispensa PTA

Cessazione per morte PTA

Cessazione per trasferimento presso altra Università o ente pubblico

Gestione autorizzazione attività extra contratto

Gestione congedo/aspettativa PTA

Gestione infortunio PTA

Gestione richiesta liquidazione dello straordinario PTA

Gestione variazione dati anagrafici e familiari

Gestione variazione di orario PTA

Rilevazione presenze PTA

Rientro in servizio a fine aspettativa

<<contain>>

Rilascio aspettativa PTA

<<contain>>

<<followed by>>

Rilascio congedo parentale PTA

<<contain>>

Rilascio congedo per complicanze nella gestazione PTA

<<contain>>

Rilascio congedo per malattia del figlio

<<contain>>

Rilascio congedo per maternità PTA

<<contain>>

Rilascio congedo per motivi di famiglia, di studio e formazione PTA

<<contain>>

Denuncia infortuni PTA

<<contain>>

Prolungamento infortunio PTA

<<contain>>

Richiesta visita fiscale PTA

<<contain>>

Elaborazione mensile presenze PTA

Gestione contabilizzazione permessi PTA

Gestione giustificazione per malattia PTA

Gestione elezioni RSU <<contain>>

Gestione permessi sindacali

<<contain>>

Gestione supporto alla contrattazione decentrata

<<contain>>

Assegnazione monte ore permessi

Consuntivazione permessi sindacali

Rendicontazione bimestrale permessi sindacali

Trasmissione consuntivo annuale permessi sindacali all'ARAN

Trasmissione deleghe sindacali al MIUR

Gestione contratto di sorveglianza portinerie

Gestione servizio sostitutivo civile

Gestione sorveglianza sanitaria

Gestione tessere parcheggio

Predisposizione reportistica

Rilascio certificati e attestazioni

Assunzione obiettore <<contain>>

Cessazione obiettore

<<contain>>

Gestione amministrativa corrente obiettore

<<contain>>

Attivazione sorveglianza sanitaria nuovi lavoratori esposti a rischio

<<contain>>

Censimento lavoratori presenti nei laboratori

<<contain>>

Chiusura sorveglianza lavoratori esposti a rischio

<<contain>>Gestione accertamenti sanitari

<<contain>>

Analisi e valutazione delle posizioni

Attuazione economica dell' istituto contrattuale

Gestione indennità

Gestione PEO PTA

<<followed by>>

Gestione PEV PTA

<<followed by>>

Gestione sistema di valutazione

Mappatura PTA

<<followed by>>

<<extend>>

Monitoraggio delle posizioni valutate

<<extend>>

Gestione indennità di carica

<<followed by>>

Gestione indennità di risultato

Applicazione d'imposta

Conguaglio fiscale ed emissione CUD

Dichiarazione fiscale

Monitoraggio della spesa del personale

Predisposizione dati per MIUR

Predisposizione statistiche

Riepilogo trattenute fiscali previdenziali ed extraerariali

Aggiornamento fascicolo previdenziale

<<followed by>>

<<followed by>>

Apertura fascicolo previdenziale

Chiusura fascicolo previdenziale

Chiusura fascicolo previdenziale per assunzione in altra amm. statale

Chiusura fascicolo previdenziale per assunzione in un ente locale

Chiusura fascicolo previdenziale per assunzione nel settore privato

Chiusura fascicolo previdenziale per pensionamento

Predisposizione progetto liquidazione indennità fine rapporto

<<followed by>>

<<followed by>>

Aggiornamento fascicolo retributivo

<<followed by>>

<<followed by>>

Apertura fascicolo retributivo

Chiusura fascicolo retributivo

<<followed by>>

<<followed by>>

Computo previdenziale

<<followed by>>

Gestione assegno nucleo familiare

<<followed by>>

Gestione credito INPDAP/ENPAS

<<followed by>>

Gestione prosecuzione volontaria

<<followed by>>

Ricongiunzione previdenziale

Riconoscimento previdenziale

<<followed by>>

Riscatto previdenziale

Totalizzazione servizi all'estero

<<followed by>>

Accantonamento del TFR<<contain>>

Erogazione stipendi

<<contain>>

Gestione voci stipendiali variabili

<<contain>>

<<followed by>>

<<extend>>

Aggiornamento situazione corpo docente

Aggiornamento fascicolo personale PDR

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>><<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>> <<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

Apertura fascicolo personale PDR

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

Chiusura fascicolo personale PDR

<<followed by>>

Aggiornamento fascicolo personale PTA

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>><<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

Apertura fascicolo personale PTA

<<followed by>>

<<followed by>>

<<followed by>>

Chiusura fascicolo personale PTA

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<contain>>

<<contain>><<contain>>

<<include>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<extend>>

<<followed by>>

<<followed by>><<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<contain>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>> <<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>><<contain>>

<<contain>><<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<followed by>>

<<followed by>>

<<followed by>>

<<extend>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<followed by>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

<<contain>>

Page 66: Software Engineering 1 RAD: Case Study Lesson 9. RSA: Rose per Sistema di Ateneo RSA Team

66

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– …