Modello a cascata Sviluppo iterativo del SW Unified Modeling Language ... - Di … ·...

32
Unified Modeling Language Ing. Gianluca Di Tomassi www.ditomassi.it Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 2 Sommario Modello a spirale Modello incrementale Sviluppo iterativo del SW Modello a cascata Modelli del processo SW Activity Diagram Use case Diagram I diagrammi di UML Un po’ di storia e gli obiettivi Unified Modeling Language Interaction Diagram Class Diagram Package Diagram State Transaction Diagram Component Diagram Deployment Diagram XP (eXtreme Programming) RUP (Rational Unified Process) Alcune metodologie per lo sviluppo di un progetto applicat. Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 3 Modelli del processo SW Ciclo di vita di un progetto software = Modello delle attività di sviluppo e dell’operare il sistema informatico. Tipi di modelli: Il modello sequenziale lineare (“modello a cascata”) Il modello basato sulla prototipazione Il modello RAD (Rapid Application Development) Modelli evolutivi Il modello incrementale Il modello a spirale Il modello ad assemblaggio di componenti Il modello dei metodi formali Elementi che influiscono sulla scelta del modello del processo: la natura del progetto e dell’applicazione le competenze specifiche e l’esperienza acquisita in progetti precedenti dai membri del team di sviluppo i metodi e strumenti che si vogliono utilizzare i controlli e prodotti richiesti. Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 4 Modello a cascata Strutturazione e modellazione del sistema e dei dati (livello sistema) Analisi dei requisiti sw. Progettazione Codifica Collaudo Il software è una parte di un sistema più ampio. Sono necessarie un’analisi e una progettazione di alto livello per raccogliere tutti i requisiti, da cui il software utilizza solo una parte. dominio delle informazioni, funzionalità, comportamento, prestazioni, interfacce strutture di dati, architettura del software, interfacce, algoritmi delle operazioni codice Problemi: • i progetti reali non si conformano allo schema sequenziale • ogni modifica nello schema può causare confusioni • non può essere governata l’incompletezza dei requisiti • versione funzionante solo verso la fine del progetto • “stati bloccanti” per colpa della sincronizzazione tra le attività o tra i membri del team

Transcript of Modello a cascata Sviluppo iterativo del SW Unified Modeling Language ... - Di … ·...

  • Unified Modeling Language

    Ing. Gianluca Di Tomassiwww.ditomassi.it

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 2

    Sommario

    � Modello a spirale� Modello incrementale� Sviluppo iterativo del SW� Modello a cascata

    � Modelli del processo SW

    � Activity Diagram� Use case Diagram

    � I diagrammi di UML� Un po’ di storia e gli obiettivi

    � Unified Modeling Language

    � Interaction Diagram� Class Diagram

    � Package Diagram� State Transaction Diagram

    � Component Diagram

    � Deployment Diagram

    � XP (eXtreme Programming)� RUP (Rational Unified Process)

    � Alcune metodologie per lo sviluppo di un progetto applicat.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 3

    Modelli del processo SW

    Ciclo di vita di un progetto software = Modello delle attività di sviluppo e dell’operare il sistema informatico.Tipi di modelli:Il modello sequenziale lineare (“modello a cascata”)Il modello basato sulla prototipazioneIl modello RAD (Rapid Application Development)Modelli evolutivi� Il modello incrementale� Il modello a spirale� Il modello ad assemblaggio di componenti

    Il modello dei metodi formaliElementi che influiscono sulla scelta del modello del processo:la natura del progetto e dell’applicazionele competenze specifiche e l’esperienza acquisita in progetti precedenti

    dai membri del team di sviluppoi metodi e strumenti che si vogliono utilizzarei controlli e prodotti richiesti.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 4

    Modello a cascata

    Strutturazione e modellazione del sistema e dei dati (livello sistema)

    Analisi dei requisiti sw. Progettazione Codifica Collaudo

    Il software è una parte di un sistema più ampio. Sono necessarie un’analisi e una progettazione di alto livello per raccogliere tutti i requisiti, da cui il software utilizza solo una parte.

    dominio delle informazioni, funzionalità, comportamento, prestazioni, interfacce

    strutture di dati, architettura del software, interfacce, algoritmi delle operazioni

    codice

    Problemi:• i progetti reali non si conformano allo schema sequenziale • ogni modifica nello schema può causare confusioni• non può essere governata l’incompletezza dei requisiti• versione funzionante solo verso la fine del progetto• “stati bloccanti” per colpa della sincronizzazione tra le attività o tra i membri del team

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 5

    Sviluppo iterativo del SW

    1. Non c’è tempo per una versione completa però dobbiamo uscire sul mercato.2. Esiste un nucleo di requisiti di sistema ma i dettagli delle estensioni non esistono ancora. Soluzione: modello di processo per un prodotto che evolve nel tempo

    Vantaggi dello sviluppo iterativo•È pianificato e gestito•È prevedibile •Permette variazioni dei requisiti più facilmente•È basato su prototipi eseguibili evolutivi e non solo documentati•Implica il cliente nell’arco dell’intero processo•È guidato da rischi

    Definire l’output del sistema

    Specificare l’incremento del

    sistema

    Costruire l’incremento del

    sistema

    Collaudare l’incremento del

    sistema

    Rilasciare l’incremento del

    sistema

    Sistema ècompleto?

    Completare il rilascio del

    sistema

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 6

    Modello Incrementale

    Strutturazione del sistemae dei dati

    Analisi Proget tazione

    Codifica Collaudo

    Stadio 1

    Consegna dello stadio 1

    Analisi Proget tazione

    Codifica CollaudoStadio 2 Consegna dello stadio 2

    Analisi Proget tazione

    Codifica CollaudoStadio 3 Consegna dello stadio 3

    Analisi Proget tazione

    Codifica CollaudoStadio 4 Consegna dello stadio 4

    Utile quando la disponibilità del personale èinsufficiente a garantire l’implementazione completa. Si comincia con un piccolo team. Il team accresce se l’accoglienza è positiva.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 7

    Modello a spirale

    Il modello abbina la natura iterativa della prototipazione e gli aspetti controllati e sistematici del modello sequenziale.

    Sei attività portanti(task region):

    Pianificazione

    Analisi dei rischi

    Strutturazione

    Costruzione e rilascio

    Comunicazioni con il cliente

    Valutazione da parte del cliente

    Asse dei punti di entrata

    Progetti di sviluppo di nuove ideeProgetti di sviluppo di un nuovo prodottoProgetti di miglioramento di un prodottoProgetti di manutenzione di un prodotto

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 8

    Sommario

    � Modello a spirale� Modello incrementale� Sviluppo iterativo del SW� Modello a cascata

    � Modelli del processo SW

    � Activity Diagram� Use case Diagram

    � I diagrammi di UML� Un po’ di storia e gli obiettivi

    � Unified Modeling Language

    � Interaction Diagram� Class Diagram

    � Package Diagram� State Transaction Diagram

    � Component Diagram

    � Deployment Diagram

    � XP (eXtreme Programming)� RUP (Rational Unified Process)

    � Alcune metodologie per lo sviluppo di un progetto applicat.

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 9

    Un pò di storia

    UML nasce per soddisfare il bisogno di un linguaggio di modellazione per sistemi complessi che sia semplice e capace di affrontare tutte le problematiche del progetto di tali sistemi complessi

    Lo sviluppo di UML comincia nell’ottobre del 1994

    UML e’ il prodotto di una unificazione dei metodi

    1. Booch espressivo durante il progetto e adatto ad applicazioni engineering-intensive (Autore Grady Booch)

    2. OMT (Object Modeling Tecnique) è un linguaggio di modellazione per l’analisi e adatto a sistemi data-intensive

    2. OOSE (Object Oriented Software Engineering) orientato agli use-case � fornisce un eccellente supporto all’analisi dei requisiti

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 10

    Un pò di storia

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 11

    Che cosa è UML

    1. E’ un linguaggio per specificare, costruire, visualizzare e documentare manufatti sia di sistemi software, sia di processi produttivi e altri sistemi non strettamente software.

    2. Rappresenta una collezione di best practices di ingegneria, dimostratesi vincenti nella modellazione di vasti e complessi sistemi

    3. Permette di visualizzare, per mezzo di un formalismo rigoroso, “manufatti” dell’ingegneria, consentendo di illustrare idee, decisioni prese, e soluzioni prese

    4. Favorisce, inoltre, la divulgazione delle informazioni, in quanto standard internazionale “de facto” non legato alle singole imprese (Dal 1997 standard effettivo adottato dall’OMG)

    5. Permette di realizzare modelli potranno essere implementati con diversi linguaggi di programmazione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 12

    Che cosa NON è UML

    1. Non è un linguaggio di programmazione visuale

    2. Non è un processo di sviluppo (cioè non dice “prima bisogna fare questa attività, poi quest’altra”)

    3. UML include suggerimenti utili per coloro che si occupano di realizzare dei tool di supporto, ma non stabilisce ogni necessario particolare.

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 13

    Obiettivi dell‘UML

    1. Fornire agli utenti un linguaggio di modellazione visuale pronto ad essere utilizzato per sviluppare e scambiare modelli espressivi

    2. Fornire meccanismi di estensione e specializzazione al fine di accrescere i concetti presenti nel nucleo.

    3. Supportare specifiche che risultino indipendenti da un particolare linguaggio di programmazione o processo di sviluppo.

    4. Fornire le basi formali per comprendere il linguaggio di modellazione.

    5. Incoraggiare la crescita del mercato dei tool Object Oriented

    6. Supportare concetti di sviluppo di alto livello come componenti, collaborazioni, framework e pattern.

    7. Integrare le best practices.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 14

    Generalità

    � Le iconeIn UML vi sono quatto costrutti grafici:

    � I simboli bidimensionali

    � I collegamenti

    � Le stringhe

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 15

    I diagrammi UML

    � Use case diagram (Diagramma dei casi d’uso):elenca i casi d’uso del sistema e le loro relazioni

    � Class diagram (Diagramma delle classi):descrive la struttura dati degli oggetti, del sistema e le loro relazioni

    � Object diagram (Diagramma degli oggetti):insieme di oggetti della realtà d’interesse e loro relazioni

    � Interaction diagram (Diagramma d’interazione): interazione tra oggetti

    � State e activity diagram (Diagramma di stato e di attività): Stato di un oggetto e sequenze eventi-azioni-transazioni

    � Deployment diagram (Diagramma di distribuzione):descrive la struttura del sistema HW e l’allocazione dei moduli SW

    � Component diagram (Diagramma dei componenti): Descrive l’architettura fisica del sistema

    � Sequence diagram (Diagramma sequenziale)

    � Collaboration diagram (Diagramma di collaborazione)

    Statici

    Dinamici

    Imple

    m.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 16

    Use case diagram: Elementi Fondamentali

    Mostra:• le modalità di utilizzo del sistema (casi d’uso)• gli utilizzatori e coloro che interagiscono con il

    sistema (attori)• le relazioni tra attori e casi d’uso

    Un caso dcaso d ’’usouso• rappresenta un possibile “modo” di utilizzo del sistema• descrive l’interazione tra attori e sistema, non la “logica

    interna” della funzioneuna funzionalità dal punto di vista di chi la utiliz za

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 17

    Use case diagram: Come si producono ? (01)

    � Gli use case possono essere ricavati dalle interviste con gli utenti.

    Si identificano:

    � Gli obiettivi: ciò che il sistema dovrebbe fare secondo gli utenti

    � Le interazioni: cosa vorrebbero (o potrebbero) fare i diversi utenti

    � Gli use case di alto livello sono generici

    � I dettagli si aggiungono raffinando le funzionalità del sistema

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 18

    Use case diagram: Come si producono ? (02)

    � La loro definizione è iterativa

    � Si inizia identificando i comportamenti più semplici

    � Si continua descrivendo i comportamenti più complessi

    Quando ci si può fermare ?

    � Un buon livello di dettaglio facilità tutte le attività successive

    � Se ci si focalizza troppo sui dettagli questi:

    � Potrebberò introdurre troppo presto scelte progettuali

    � Non consentirebbero una visione d’insieme

    � Complicherebbero la descrizione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 19

    Use case diagram: Elementi Fondamentali

    Casi : un caso è un’unità funzionale parte del sistematipiche interazioni fra utente e sistemaesprimono le procedure esistenti nel dominio intermini di scenari operativi

    Attore : è qualcuno (utente) o qualcosa (sistemi esterni -hardware) che:

    � Scambia informazioni con il sistema� Fornisce input o riceve output dal sistema� Responsabile dell’istanziazione di 1 o più Use

    Case� Non fa parte del sistema

    SemanticaNotazione grafica

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 20

    Use case diagram: Esempio

    acquistare articoli

    log in cassierecliente

    rimborsare articoli venduti caso d'uso: un "modo" di utilizzare il sistema

    attore: un utilizzatore del sistema

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 21

    Use case diagram: Relazioni Fondamentali

    extends : definisce una funzionalità per estensione di una funzionalità già esistente (descrive una variazione sul normale comportamento)

    Uses (o include) : uso di una certa funzionalità (utile quando funzionalità simili sono presenti in più contesti o Use Case, utile per evitare ripetizioni)

    Interazione : indicano relazioni tra attori e casi

    SemanticaNotazione grafica

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 22

    Use case diagram: Extends

    Extends: indica che uno use case è simile a un altro ma è piùspecifico� Pertanto gli attori hanno una relazione verso lo use

    case che viene esteso

    � Si assume che un dato attore sia legato sia al caso base che a tutte le estensioni

    Esempio: Ordine di un prodotto e ordine via internet

    cliente Ordine Ordine via Internet

    Nota: uno use case che estende un altro sono allo stesso livello, ma offrono funzionalità diverse (uno non è più generico dell’altro)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 23

    Use case diagram: Uses

    Uses (o include ): fattorizza attività ricorrenti e condivise. Quindi uno use case ne utilizza un altro (magari comune a più use case); è una dipendenza (stereotipo predefinito)

    Ordine

    Dati cliente Disp. prodotto

    Mod. pagamentoGestione credito

    Esempio: Ordine di un prodotto

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 24

    Use case diagram: Alcuni suggerimenti

    � Identificare sostantivi e verbi

    � Distinguere tra sostantivi che indicano componenti interni ed esterni

    � Selezionare i verbi che indicano azioni principali da parte del sistema

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 25

    Use case diagram : Utilizzo

    Un possibile metodo per definire gli use case

    � Modellazione ad alto livello del comportamento di un elemento: intero sistema o sottosistema

    � Strumento di comunicazione fra analisti, utenti, sviluppatori

    � Base per il test

    � Individuare gli attori

    � Organizzare gli attori (casi particolari: generalizzazioni)

    � Per ogni attore individuare le principali iterazioni con il sistema (casi base e alternative ed eccezioni)

    � Organizzare gli use case

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 26

    Use case diagram: Esercizio-Sistema registrazione corsi (01)

    All’inizio di ogni semestre, l’ufficio amministrativo dell’università dovrà fornire agli studenti la lista dei corsi disponibili, attraverso un sistema di registrazione on-line. Il sistema dovrà fornire tutte le informazioni relative al corso: professore, dipartimento eventuali propedeuticità.Il nuovo sistema dovrà consentire agli studenti di selezionare quattro corsi fra quelli disponibili. In aggiunta ogni studente indicherà due alternative. Nessun corso potrà avere più di 10 studenti. Corsi con meno di 3 studenti verranno cancellati in modo automatico dal sistema. In caso di richiesta adeguata si potrebbero anche fare più corsi per la stessa materia.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 27

    Use case diagram: Esercizio-Sistema registrazione corsi (02)

    I professori dovranno essere in grado di accedere al sistema on-line per indicare i corsi in cui insegneranno e anche per vedere gli studenti iscritti ai loro corsi.Il processo di registrazione dura 3 giorni. Il primo giorno èriservato agli studenti del primo anno. Il secondo giorno èriservato agli altri studenti. Durante il terzo giorno si risolvono eventuali conflitti.Finito il processo di registrazione, le informazioni relative ad un studente sono inviate all’ufficio contabile per determinare le tasse da pagare.Durante il semestre gli studenti devono essere in grado di accedere al sistema per aggiungere o togliere corsi

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 28

    Use case diagram: Possibile soluzione

    Cambiamento Organizzazione Corso

    Richiesta Iscritti

    Professore

    Selezione Corso

    Gestione Informazioni Professori

    Gestione Informazioni Studenti

    Archivista

    Gestione Curriculum

    Richiesta Catalogo Corsi

    Cambiamento Agenda Corsi

    Studente

    Registrazione CorsiUfficio Contabile

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 29

    Use case diagram: Scenari

    Uno scenario è un’istanza di uno use case:

    � Definisce gli eventi in un caso particolare di esecuzione del programma

    � Uno scenario è solitamente definito in linguaggio naturale. Si rispetta l’ordine temporale

    � Gli eventi devono essere semplici e autoesplicativi (non devono includere alternative complesse)

    NOTA: Servono tanti scenari quanti sono quelli necessari per capire il sistema

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 30

    Use case diagram: Scenari

    �Scenario principale (più possibile) � Tutto funziona correttamente

    Bisogna considerare diversi livelli d’astrazione

    �Scenari secondari (pochi e significativi) � Eccezioni (eventuali problemi o malfunzionamenti)

    Ogni use case potrebbe avere un insieme di scenari:

    Gli scenari sono descritti per mezzo dei diagrammi di interazione (di sequenza e di collaborazione)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 31

    Use case diagram: Un esempio di scenario

    Registrazione ai corsi:Gianluca sceglie i corsi: informatica, fisica, analisi e disegnoCome corsi alternativi sceglie: fotografia e giornalismoI corsi scelti sono immessi nel sistema di registrazioneLo studente viene aggiunto ai primi 3 corsi principaliIl quarto corso non è disponibileSE la prima alternativa è disponibile ALLORA

    lo studente viene aggiunto al corsoALTRIMENTI SE la seconda alternativa è disponibile ALLORA

    lo studente viene aggiunto al corsoALTRIMENTI si notifica allo studente che non è iscritto ad

    un numero sufficiente di corsiSE NON fallisce ALLORA

    Si crea la cartella corsi dello studenteSi mandano le informazioni all’ufficio contabile

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 32

    Use case diagram: Documentazione

    Per ogni caso d’uso:

    Eccezioni

    …..Scenari

    …..Post-condizioni

    Non identificatePre-condizioni

    Ufficio contabile, Studente registratoAttori

    Quando le iscrizioni di uno studente sono state accettate si inviano le informazioni all’ufficio contabile

    Descrizione

    Rossi e BianchiAutori

    Computo tasseTitolo

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 33

    Activity Diagrams

    Permette di modellare processi paralleli e la loro sincronizzazione

    Si descrive il comportamento attraverso un’insieme di attività

    Modellazione di workflow:

    � Attività a livello abbastanza alto (il flusso di oggetti può essere importante; le corsie possono essere utili)

    � A livello più dettagliato (branch, fork, join sono importanti)

    Modellazione di operazioni:

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 34

    Activity Diagrams: Elementi

    Stati : i nodi del diagramma

    � Stati di azioni (action state): atomici� Stati di attività: decomponibili

    � Stati particolari: inizio e fine

    Transizioni : archi che descrivono il passaggio da una attivitàad un'altra

    � Semplici

    � Diramazioni (branching)

    � Stati concorrenza: fork e join

    Corsie (swimlanes): descrivono la "competenza" per lo svolgimento delle attività (in termini di soggetti del mondo reale) Si delimita da altri gruppi con una linea verticale.

    Flusso di oggetti : le attività si possono inviare oggetti, nel cedere il controllo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 35

    Activity Diagrams: Elementi principali

    [ espress. Bool. ]

    etichetta

    Rilascioautorizzazione

    *

    Transizione

    Barra di sincronizzazione(Join, fork)

    Condizioneguardiano,trigger

    Stato di azione(Attività)

    Pseudo stato iniziale

    Pseudo stato finale

    Decisione

    Iterazione

    � Possono essere associati all’implementazione di un’operazione, ad un caso d’uso o una classe.

    � Servono ad enfatizzare i flussi dell’elaborazione interna.

    � Sono utili nei casi in cui la fine delle attività interne è considerata un evento oppure è accompagnata dall’emissione di uno o più eventi.

    I diagrammi di attività sono un’alternativa agli STD in cui i nodi/stati sono attività/azioni che rappresentano l’esecuzione di operazioni.Quando gli eventi sono asincroni, sono preferibili i diagrammi STD.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 36

    Activity Diagrams: Esempio

    Cliente Vendite Magazzino

    Paga

    Spediscimerce

    Riceviordine Completa

    ordine

    Ricevimerci

    Richiediservizio

    attività

    Barra disincronizzazione

    corsie

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 37

    Activity Diagrams: Fork e Join

    Fork = Rappresenta un flusso di controllo spaccato in più flussi di controllo concorrenti. Una fork ha un flusso in ingresso e più flussi in uscita. Per ciascun flusso in uscita, le attivitàassociate continuano in parallelo con le attività dei flussi paralleli.

    fork

    join

    Le attività che sono in flussi paralleli possono comunicare tra loro inviando dei segnali

    Join = Rappresenta la sincronizzazione di due o più flussi di controllo concorrenti. All’arrivo nella join, un flusso deve aspettare finché tutti i flussi sono arrivati. Tra una fork e la joincorrispondente ci deve essere un bilanciamento: N flussi escono dalla fork, N flussi debbono entrare nella join.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 38

    Activity Diagrams: Esempio

    Rilasciare barattolo Cola

    Trovata la bevanda

    Mettere il caffènel filtro

    Aggiungere acqua Rilasciare il bichiere

    Mettere il filtro nella macchina

    Attivare la macchina

    Fare bollire il caffe Consumare la bevanda

    [ manca Cola ][ manca il caffè ]

    [ trovato il caffè ]

    [ le luci spente ]

    decisione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 39

    Activity Diagrams: Esercizio

    Descrivere il processo con un activity diagram

    La ricezione di un ordinativo in un’azienda comporta il controllo della forma di pagamento prevista ed il controllo della disponibilità delle merci ordinate. La mancata autorizzazione al pagamento comporta la cancellazione dell’ordine. Ogni merce, se disponibile, viene assegnata all’ordine. Quando tutte le merci richieste sono state selezionate l’ordine può essere evaso e si procede a riordinare le merci la cui disponibilità non è più sufficiente.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 40

    Activity Diagrams: Possibile soluzione

    RiceviOrdine

    ControllaPagamento

    ControllaDisponibilità

    CancellaOrdine

    Assegna a Ordine

    RiordinaMerce

    EvadiOrdine

    * Per ogni linea dell’ordinefallimento

    successo

    tutte le merci disponibili

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 41

    Class Diagrams

    • E’ il caposaldo dell’object oriented e definiscono la visione statica del sistema

    • Rappresenta le classi di oggetti del sistema con i loro attributi e operazioni

    • Può essere utilizzato a diversi livelli di dettaglio (in analisi e in disegno)

    • Mostra le relazioni tra le classi (associazioni, aggregazioni e gerarchie di specializzazione/generalizzazione)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 42

    Class Diagrams

    Descrizione statica del sistema:

    Classi� Nomi

    � Attributi (lo stato)

    � Metodi (il comportamento)

    Relazioni tra classi� Associazioni (uso)

    � Generalizzazione (ereditarietà)

    � Aggregazione (contenimento)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 43

    Class Diagrams: Classi

    Una classe è un insieme di entità del sistema o dell’ambiente, con caratteristiche comuni. Una classe è composta da tre parti:

    Nome

    Nome e metodi

    Nome e attributi

    � nome

    � attributi

    � metodi

    Professore

    Nome

    Cognome

    Professore

    Professore

    Nome

    Cognome

    Create()Delete()

    Professore

    Create()Delete()

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 44

    Class Diagrams: Classi come individuarle?

    � Evidenziare i nomi (oggetti) nella specifica del problema

    � Considerare gli use case e gli scenari

    � Si raggruppano gli oggetti in classi

    � Si definiscono gli use case

    � Si specificano alcuni use case in scenari

    � Si identificano gli oggetti propri di ogni scenario

    Quindi:

    � Guardare � Considerare i risultati precedenti e altri sistemi, prototipi, specifiche

    � Cercare � Strutture, cose ed eventi, ruoli, unitàorganizzative, procedure operative

    � Considerare � molteplicità di attributi e istanze, funzioni sempre presenti, requisiti del dominio

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 45

    Class Diagrams: Esercizio

    Identificare gli oggetti per il sistema di registrazione dei corsi a partire da:

    use case (slide 26, 27)scenario (slide 31)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 46

    Class Diagrams: Possibile soluzione

    Gianluca

    Corso

    Informatica

    Fisica

    Analisi

    Disegno

    Corso alternativo

    Fotografia

    Giornalismo

    Sistema di registrazione

    Studente

    Corso principale

    Alternativa

    Notifica

    Cartella studente

    Informazioni

    Selezione

    Ufficio contabile

    Come raggruppare ?

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 47

    Class Diagrams: Come raggruppare

    � Esaminando gli oggetti identificati negli scenari, alcuni oggetti possono essere raggruppati

    � Tutti i corsi specifici appartengono alla classe Corso

    � La lista può crescere considerando i diversi scenari

    � Si individua anche la classe Studente, Professore,…..

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 48

    Class Diagrams: Esercizio

    Definire il modello iniziale delle classi per il sistema “Registrazione corsi” slide 26, 27 a partire dalla lista di nomi identificati

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 49

    Class Diagrams: Soluzione modello iniziale delle classi

    Catalogo Corsi

    Professore

    Elenco Iscritti

    Corso

    Informazioni Contabili

    Studente

    Cartella Studente

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 50

    Class Diagrams: Attributi come individuarli ? (01)

    � Un attributo è una caratteristica della classe

    � Gli attributi hanno una loro identità non la si deve aggiungere

    � Ogni attributo deve essere definito in modo preciso

    � Gli attributi dipendono dal dominio

    Persona in ambito medico� nome, cognome, peso, altezza

    ESEMPIO:

    Persona in ambito bancario� nome, cognome, codiceFiscale, numeroConto

    Per studente attributi corretti� nome, cognome

    Per studente attributi NON corretti� CorsiScelti

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 51

    Class Diagrams: Attributi come individuarli ? (02)

    � Direttamente nel testo della specifica

    � Durante la definizione delle classi stesse

    � Conoscenza del dominio applicativo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 52

    Class Diagrams: Attributi derivati

    Un attributo derivato è un attributo il cui valore viene calcolato in base ai valori di altri attributi (quindi calcolato e non memorizzato)

    ESEMPIO:

    � età, area, perimetro

    Si usa quando non si vuole ricalcolare tutti i valori per quell’attributo nei vari oggetti

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 53

    Class Diagrams: Metodi

    � Un metodo è una trasformazione applicabile a una istanza di una classe

    � Tutti e solo i metodi rilevanti per il dominio applicativo

    In ambito medico� EsegueEsame, PrendeMedicina, …

    ESEMPIO:

    In ambito bancario� ApreContoCorrente, EffettuaPrelievo, …

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 54

    Class Diagrams: Relazioni

    � La molteplicità definisce il numero di istanze che prendono parte alla relazione

    � Una relazione definisce un canale di comunicazione bidirezionale fra due classi

    � Alcune relazioni sono: associazioni e aggregazioni

    � Tutti i sistemi sono composti da oggetti che collaborano per realizzare le funzionalità richieste

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 55

    Class Diagrams: Relazioni durante l’analisi ed il progetto

    � Le connessioni sono date dalla (insite nella) natura stessa del problema

    � Durante l’analisi si stabiliscono relazioni (associazioni o aggregazioni) fra classi

    � Si deve pensare alle possibili molteplicità per esplicitare assunzioni implicite

    Durante il progetto:

    � Le molteplicità vengono modificate e raffinate

    � Le associazioni stesse vengono raffinate

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 56

    Class Diagrams: Associazioni

    Corso CartellaStudenteappare

    � indica una relazione tra classi (ad es. una persona che lavora per una azienda)

    � deve avere un nome, solitamente un verbo (un etichetta al centro della linea che definisce l’associazione)

    Un’associazione:

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 57

    Class Diagrams: Molteplicità

    Corso Studente3 .. 100..*

    � Se l’associazione è obbligatoria oppure no

    La molteplicità indica:

    � Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto

    segue

    ESEMPIO:

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 58

    Class Diagrams: Molteplicità

    1..1Esattamente 1

    * 0 o più

    0..10 o uno

    m..n, 4..7, 9 entro gli estremi specificati

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 59

    Class Diagrams: Aggregazioni

    Corso Curriculum1..11..*

    Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un oggetto (part-of)

    A B Indica che A e’ parte di B

    ESEMPIO:

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 60

    Class Diagrams: Associazione o aggregazione ?

    Curriculum1..*

    Corso1..1

    Studente3..10

    � Aggregazione se due oggetti sono “uniti” da una relazione part-of (ad es: auto con motore e ruote)

    � Associazione se due oggetti sono solitamente considerati indipendenti, anche se spesso “collegati”

    0..* segue

    ESEMPIO:

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 61

    Class Diagrams: Associazioni riflessive

    AggregazionePropedeuticità

    0..*0..*

    La Un’associazione è riflessiva se coinvolge oggetti della stessa classe

    � Indicano oggetti multipli della stessa classe che collaborano in qualche modo

    Corso Parte

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 62

    Class Diagrams: Attributi delle associazioni

    3..10Studente Corso

    Frequenza

    Profitto

    Percentuale

    0..*segue

    � È permesso una sola classe attributo per associazione

    � La classe attributo può avere proprietà specifiche

    � L’attributo si mette all’interno dell’icona di una classe e si collega l’icona all’associazione (si parla di classe associativa)

    ESEMPIO:

    Solo un’istanza della classe associativa tra ogni coppia di oggetti associati

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 63

    Class Diagrams: Esempio

    *Persona Azienda

    Impiego

    Periodo

    0..1lavora

    *Persona Azienda

    Impiego

    Periodo

    0..1lavora

    1 1

    0..* *

    Si permette ad una persona di avere più di un impiego nella stessa azienda

    Si permette ad una persona di avere al massimo un impiego nella stessa azienda

    Da classe associativa a classe quando ?

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 64

    Class Diagrams: Ereditarietà (� Generalizzazione)

    � Esplicità eventuali comportamenti comuni

    � Richiede che si debba:

    � Aggiungere nuove proprietà alle classi

    � Ridefinire/modificare metodi esistenti

    � Definisce il concetto di generalizzazione

    � La classe figlie ereditano attributi e metodi dalla classe ‘padre’ e possono avere propri attributi e metodi

    Persona

    Studente Docente

    Padre general.

    Figli general.

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 65

    Class Diagrams: Esempio

    Amministratore

    Cassiere

    Negozio

    nome

    indirizzo

    Prodotto

    POST

    *

    1

    *

    1

    avviato da

    11 11

    utilizzato da

    1..*1

    1..*1

    Riga vendita0..*

    1

    0..*

    1

    descrive

    Vendita

    data

    ora

    crea_vendita()

    11*

    1..* 11..* 1

    ha

    Pagamento

    importo

    11

    1riferito a

    Pag. Contanti

    Pag. Carta Credito

    Aggregazione

    Associazione

    Specializzazione/ Generalizzazione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 66

    Class Diagrams: Esercizio

    Definire le relazioni per il modello delle classi per il sistema di registrazione corsi (slide 26, 27)

    Catalogo Corsi

    Professore

    Elenco Iscritti

    Corso

    Informazioni Contabili

    Studente

    Cartella Studente

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 67

    Class Diagrams: Una soluzione (inizio)

    3..10

    Precedenze

    0..*0..*

    1..1

    1..*1..1

    1..1

    1..1

    1..10..*

    1..*

    1..*

    Catalogo Corsi Cartella Studente

    Studente

    Professore

    Elenco Iscritti

    Corso

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 68

    Interaction Diagrams

    � Sequence Diagram

    � Oggetti

    Descrivono il comportamento dinamico del sistema.

    Specifica del modo in cui vengono inviati messaggi tra diverse istanze per eseguire un compito specifico

    Ad uno use case si possono associare diversi interaction diagrams

    Comprendono

    � Collaboration Diagram

    Elementi fondamentali

    � Scambio messaggi� Sequenza di invocazione dei messaggi

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 69

    Interaction Diagrams: Messaggi e interazione

    Interazione : specifica del modo in cui vengono inviati messaggi tra diverse istanze per eseguire un compito specifico.

    Messaggio : specifica di una comunicazione tra istanze, che trasmette informazione nell'aspettativa che ne consegua attività�evento

    � Call : invoca un'operazione su oggetto (anche se stesso)

    Tipi di messaggi:

    � Return : restituisce un valore al chiamante

    � Send : invia un "segnale" ad un oggetto

    � Create : crea un oggetto

    � Destroy : distrugge un oggetto (anche se stesso)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 70

    Interaction Diagrams: Notazione per i messaggi e interazione

    Call:

    Return:

    Send:

    Create:

    Destroy:

    Interazione sincrona:

    risposta:

    Interazione asincrona:

    Interazione non specificata(di solito asincrona)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 71

    Sequence diagram

    � E’ utilizzato per definire la logica di uno scenario (specifica sequenza di eventi) di un caso d’uso (in analisi e poi ad un maggior livello di dettaglio in disegno)

    � E’ uno dei principali input per l’implementazione dello scenario

    � Mostra gli oggetti coinvolti specificando la sequenza temporaledei messaggi che gli oggetti si scambiano

    � E’ un diagramma di interazione ed evidenzia come un caso d’uso è realizzato tramite la collaborazione di un insieme di oggetti

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 72

    Sequence diagram: elementi principali

    Oggetto “Linea della vita”dell’oggetto

    Messaggio- call- return- send- create- destroy

    {b-a

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 73

    Sequence diagram: Esempio

    Scegli corso

    Inoltra selezioneCorso disponibile?

    Aggiungi UtenteRegistrazione OK

    Utente Selezione corso Corso

    Oggetti

    TempoUnified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 74

    Sequence diagram: Quando e perché utilizzarli ?

    � Si possono specificare nodi decisionali o iterazioni

    � Aggiungere se necessario vincoli di spazio e tempo o pre o post condizioni ai msg

    � Utilizzare il focus of control per visualizzare il nesting dei messaggi o i tempi in cui avviene la computazione

    � Identificare gli oggetti coinvolti e posizionarli per importanza

    � Individuare il contesto dell’interazione (sistema, sottosistema,…)

    � Usati per modellare un flusso di controllo per ordine temporale

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 75

    Sequence diagram: Esercizio

    Scrivere il sequence diagram corrispondente ad un prestito in una biblioteca

    Utente Controllo tessera Ricerca volume

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 76

    Sequence diagram: Una soluzione

    Utente Controllo tessera Ricerca volume

    Invia richiesta

    Prestito OK

    Ricerca volume

    Volume disponibile

    Tessera OK

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 77

    Collaboration diagram: elementi principali

    Classe:Oggetto

    Oggettopartecipante

    Link

    Self-link

    2: etichetta Messaggio

    � E’ un diagramma di interazione e rappresenta un insieme di oggetti che collaborano per realizzare il comportamento di uno scenario di un caso d’uso

    � Può essere utilizzato in fasi diverse (analisi, disegno di dettaglio)

    � A differenza del diagramma di sequenza, mostra i link (legami) tra gli oggetti che si scambiano messaggi, mentre la sequenza di tali messaggi è meno evidente

    � Non prevedono l’uso del concetto di tempo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 78

    Collaboration diagram: Esempio

    Si vuole realizzare un’applicazione per la condivisione di file. Gli utenti devono autenticarsi con il server fornendo una usernamee password. Una volta autenticati possono effettuare ricerche per cercare file. Trovato il file desiderato l’utente puo’ effettuarne il download

    :Utente

    :Server

    1: Autenticazione

    2: Ricerca 3: Risultato

    4: Dowload

    Realizzare il corrispondente sequence diagram

    Utente Server

    Ricerca

    Risultato

    Autenticazione

    Download

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 79

    Collaboration diagram: Esercizio

    Riprendere l’esercizio sul “Sistema registrazione corsi”(slide 26, 27) e realizzare il relativo Collaboration diagram

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 80

    Collaboration diagram: Soluzione

    :Corso

    :SelezioneCorso

    :InformazioniContabili

    :CartellaStudente

    :Studente

    1: Seleziona 4 corsi

    2: Seleziona informatica3: Seleziona analisi4: Seleziona fisica5: Seleziona disegno

    6: Seleziona 2 corsi alt.

    7: Seleziona fotografia8: Seleziona giornalismo9: Sottometti corsi

    10: Corso disponibile11: Aggiungi Studente

    12: Crea cartella

    13: Crea info contabili

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 81

    Riassumendo ...

    � Uno scenario può essere rappresentato per mezzo di un interaction diagram, Sequence diagram e collaboration diagramche quindi rappresentano le stesse informazioni

    � Cambia la forma concreta

    � Si pone l’enfasi su aspetti leggermente diversi

    � I collaboration facilitano il raggruppamento delle classi in packages e sono più evidenti i legami fra gli oggetti

    � Commenti testuali possono fornire ulteriori dettagli al modello definito

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 82

    State Transition Diagrams

    � E’ normalmente utilizzato per modellare il ciclo di vita degli oggetti di una singola classe

    � Mostra gli eventi che causano la transizione da uno stato all’altro, le azioni eseguite a fronte di un determinato evento

    � Quando un oggetto si trova in un certo stato può essere interessato da determinati eventi (e non da altri)

    � è opportuno utilizzarlo solo per le classi che presentano un ciclo di vita complesso e segnato da una successione ben definita di eventi

    � In UML Statechart

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 83

    State Transition Diagrams: elementi principali

    TransizioneCondizione/azione

    c/a

    Auto transizione

    Condizioneguardiano

    statoStato dell’oggetto

    Pseudo stato inizialePseudo stato finale

    [n

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 85

    State Transition Diagrams: Esercizio

    Progettare il diagramma degli stati (Statechart) per la classe selezione corso“Il sistema dovrà consentire agli studenti di selezionare quattro corsi fra quelli disponibili. In aggiunta ogni studente indicherà due alternative”

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 86

    State Transition Diagrams: Possibile Soluzione

    CreazioneSelezione

    corsi

    Selezione corsi extra

    Sospeso

    Salva

    Sottometti

    corsi < 2

    corsi < 4sospendi

    ricomincia

    quit

    corsi = 2

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 87

    Package Diagrams

    � Permettono la partizione del sistema in sottosistemi (utili per dominare la complessità del dominio) costituiti da elementi omogenei di:

    � Ogni elemento appartiene ad un solo package

    � natura logica (classi, casi d’uso, …)

    � natura fisica (moduli, tabelle, …)

    � altra natura (processori, risorse di rete, …)

    � Un package può referenziare elementi appartenenti ad altri package

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 88

    Package diagram: elementi principali

    XX

    global

    (from XX) (from XX)

    Pacchetto Relazione di dipendenza Relazione di generalizzazione

    Streotipizzare Relazione “possiede”

    Ai pacchetti si applicano cinque stereotipi standard:facade - specifica un pacchetto che è solo una vista su un altro pacchettoframework - specifica un pacchetto che contiene patternsstub - specifica un pacchetto che serve come un proxy per gli elementi esportati di un altro pacchettosubsystem - specifica un pacchetto che rappresenta una parte indipendente del sistema da modellaresystem - specifica un pacchetto che rappresenta l’intero sistema da modellare.

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 89

    Package Diagrams: Esempio

    Servizi di base

    Oracle Java VirtualMachine

    Java.applet

    Negozio

    1..*Negozio Manager1*1

    Package

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 90

    Deployement Diagrams

    � Sono propri della fase di implementazione

    � Raggruppamento del codice in moduli

    � Evidenziano le dipendenze tra i moduli

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 91

    Component Diagrams

    � Evidenzia l'organizzazione e le dipendenze tra i componenti software

    � I componenti (come a livello logico i casi d’uso o le classi) possono essere raggruppati in package

    � Un componente è una qualunque porzione fisica riutilizzabile con un’identità e un’interfaccia (dichiarazione di servizi offerti) ben definite

    � Un componente può essere costituito dall’aggregazione di altri componenti

    � I component e deployment diagrams sono simili ai diagrammi delle classi, eccetto che invece di contenere classi contengono componenti e nodi rispettivamente

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 92

    Component Diagrams: Notazione

    � Si esplicitano le dipendenze tra moduli

    NewPackageSpec

    NewComponent

    NewPackage

    Specifica di un nuovo Package

    Componente

    Package

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 93

    Component Diagrams: Esempio

    Vendita.exe

    Vendita.java

    Prodotto.java

    POST.java

    Java.awt

    Componente

    Dipendenza

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 94

    UML: Considerazioni

    � UML rappresenta un’evoluzione dei modelli preesistenti, più che una rivoluzione

    � UML è adatto a esprimere modelli di varia tipologia, creati per obiettivi diversi

    � UML può descrivere un sistema software a diversi livelli di astrazione, dal piano più svincolato dalle caratteristiche tecnologiche fino all’allocazione dei componenti software nei diversi processori in un’architettura distribuita

    � UML è sufficientemente complesso per rispondere a tutte le necessità di modellazione, ma è opportuno “ritagliarlo” in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ciò che serve nello specifico contesto

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 95

    Sommario

    � Modello a spirale� Modello incrementale� Sviluppo iterativo del SW� Modello a cascata

    � Modelli del processo SW

    � Activity Diagram� Use case Diagram

    � I diagrammi di UML� Un po’ di storia e gli obiettivi

    � Unified Modeling Language

    � Interaction Diagram� Class Diagram

    � Package Diagram� State Transaction Diagram

    � Component Diagram

    � Deployment Diagram

    � XP (eXtreme Programming)� RUP (Rational Unified Process)

    � Alcune metodologie per lo sviluppo di un progetto applicat.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 96

    Metodologie per UML

    � Per usare con successo UML occorre adottare una metodologia

    � Utilizzare una metodologia aumenta la possibilità di riuso

    � Le caratteristiche di una metodologia

    � Descrive cosa fare, come, quando e perchè

    � Comporta un certo numero di attività da portare a termine in un certo ordine

    � Permette la realizzazione di una documentazione di progetto esauriente

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 97

    Metodologie per UML: Requisiti (01)

    � Guidata dai casi d’uso

    � I casi d’uso catturano i requisiti funzionali del sistema, e influenzano tutte le fasi

    � L’architettura di massima deve essere stabilita prima possibile

    � Centrata sull’architettura

    � L’architettura definisce le parti del sistema, le loro relazioni e interazioni, i meccanismi di comunicazione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 98

    Metodologie per UML: Requisiti (02)

    � Il sistema non viene rilasciato “tutto insieme” al termine del progetto, ma viene sviluppato e rilasciato (esternamente o internamente) in più parti

    � Incrementale

    � Un incremento del sistema (versione) è costituito da una o più iterazioni

    � Lo sviluppo di ciascun diagramma comprende una sequenza di passi, ognuno aggiunge informazioni o dettagli

    � Iterativa

    � Ciascuna iterazione viene valutata ed eventualmente prototipata

    � Conviene affrontare i problemi più difficili durante le prime iterazioni

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 99

    Sviluppo tradizionale

    � Produce diagrammi dei casi d’uso, alcuni semplici diagrammi delle classi, eventualmente qualche diagramma di attività

    � Analisi dei requisiti: genera un accordo tra il cliente e il fornitore del sistema su aspetti funzionali, prestazionali, di affidabilità; ambienti operativi; integrazione con l’esistente;

    � Produce diagrammi delle classi, di interazione, di stato e di attività

    � Analisi: genera un modello del dominio applicativo, libero da dettagli tecnici e implementativi

    � produce diagrammi dei componenti e di distribuzione

    � Progettazione: genera una estensione tecnica del modello di analisi,che specifica dettagli tecnici e implementativi

    � Implementazione

    � Testing

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 100

    RUP ovvero Rational Unified Process

    � E’ la versione commerciale, prodotta da Rational Software, di Unified Process, il processo definito da Booch, Rumbaugh, Jacobson (gli autori di UML)

    � E’ un framework di processo, da adattare alle diverse tipologie di progetto

    � E’ utilizzato in contesti di business estremamente competitivi, e in ambiti applicativi eterogenei

    � Risponde agli obiettivi primari di time to market, controllo del rischio e visibilità degli stati di avanzamento

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 101

    RUP: Principali caratteristiche (01)

    � Guidato dai casi d’uso. Essi costituiscono la base per:� La definizione e negoziazione dei requisiti, e la loro

    validazione da parte del committente

    � La progettazione dell’architettura e dei componenti

    � La definizione dei test di accettazione

    � La pianificazione dei rilasci (in un’ottica incrementale) e quindi del progetto

    � Iterativo

    � Il progetto si articola in una serie di iterazioni (sequenze di attività), che hanno lo scopo di ridurre progressivamente i rischi di fallimento, a partire da quelli principali (es. incomprensioni sui requisiti, incertezze sull’architettura)

    � in ogni iterazione si ripetono, in misura e percentuali diverse, le medesime tipologie di attività (es. analisi dei requisiti, design, implementazione, test)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 102

    RUP: Principali caratteristiche (02)

    � Centrato sull’architettura

    � La definizione dell’architettura applicativa e tecnologica costituisce il fondamento tecnico dell’applicazione e del progetto

    � Il consolidamento dell’architettura avviene solo quando si ècerti della sua fattibilità tecnica.

    � Fino a quando l’architettura non è consolidata, non esistono elementi sufficienti per determinare (con precisione sufficiente alla definizione di un contratto) tempi, costi e rischi dell’intervento progettuale

    � Incrementale� La realizzazione (ed eventualmente il rilascio) dell’applicazione

    avviene in modo progressivo

    � La pianificazione è guidata dai casi d’uso e dalle prioritàarchitetturali (es. precedenza ai componenti infrastrutturali)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 103

    RUP: Principali caratteristiche (03)

    � Basato sui modelli

    � RUP enfatizza lo sviluppo e il mantenimento di modelli piuttosto che la produzione di montagne di documentazione cartacea

    � Orientato agli oggetti

    � Gran parte dei modelli usati sono basati sui concetti di classe,oggetto, associazione

    � Orientato al controllo qualità e alla gestione dei rischi

    � Sono parte inscindibile di ciascuna fase

    � Configurabile

    � Nessun processo è adatto per tutte le situazioni; la configurabilità si raggiunge attraverso la selezione delle viste e dei diagrammi utili e attraverso la gestione delle iterazioni

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 104

    RUP: Un modello

    � Un ruolo definisce il comportamento e le responsabilità di un individuo o un gruppo

    � Il comportamento è espresso in termini di attività

    � Le responsabilità sono espresso in termini di elaborati da produrre e gestire

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 105

    RUP: Elaborati

    � Set di gestione� elaborati di pianificazione (software development plan,…)

    � elaborati operazionali (Sal, descrizione versione, …)

    � Set dei requisiti� documento di visione � modello dei casi d’uso

    � modello di business

    � Set di progettazione� documento di design � modello architetturale

    � modello di test� Set di implementazione

    � codice sorgente ed eseguibili � file di dati� Set di rilascio agli utenti

    � script di installazione � documentazione e materiale formativo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 106

    RUP: Le fasi

    � Inception: definisce gli obiettivi del progetto, ne investiga la fattibilità,ne stima i costi, il potenziale di mercato e i rischi, analizza i prodotti concorrenti

    � Elaboration: pianifica il progetto e ne definisce le caratteristiche funzionali, strutturali e architetturali

    � Construction: sviluppa il prodotto attraverso una serie di iterazioni, effettua il testing, prepara la documentazione

    � Transition: consegna il sistema agli utenti finali (include marketing, installazione, configurazione, formazione, supporto, mantenimento)

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 107

    RUP: Output fasi

    � Inception: Documenti fattibilità

    � Elaboration: SRS (Specifica dei Requisiti Software) e Architettura consolidata e verificata

    � Construction: Versione sistema in pre-produzione (Beta)

    � Transition: Versione sistema in produzione

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 108

    RUP: Fasi e attività (01)

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 109

    RUP: Fasi e attività (02)

    � Le fasi sono sequenziali, e corrispondono a milestone significativi per Committenti, Utenti, Management

    � Le tipologie di attività non sono rigidamente sequenziali, e vengono svolte dal progetto in ogni iterazione

    � Il numero delle iterazioni dipende dalle scelte del Project Manager e dai rischi del progetto

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 110

    RUP: Caratteristiche del processo (01)

    Iterativo e

    incrementale

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 111

    RUP: Caratteristiche del processo (02)

    � I problemi gravi sono evidenziati all’inizio del ciclo di vita,quando il costo per la correzione è inferiore

    � Viene incoraggiato lo scambio di informazioni con gli utenti

    � Il team di sviluppo si focalizza da subito sugli aspetti più critici del progetto

    � Il test eseguito a ogni iterazione permette una valutazione oggettiva dello stato di avanzamento del progetto

    � Le incoerenze tra requisiti e progetto vengono identificate molto presto

    � Il carico di lavoro del team è suddiviso nel tempo in modo piùuniforme

    � Il team può utilizzare le competenze acquisite nel corso del progetto per migliorare il processo di sviluppo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 112

    RUP: Punti di forza

    � le attività da effettuare

    � i documenti in input e in output alle diverse attività

    � E’ un processo ampiamente utilizzato, da anni, in contesti eterogenei quindi è sperimentato e consolidato

    � Comprende una massa notevole di linee guida e template: fornisce indicazioni concrete su come operare in un approccio diprogettazione Object Oriented

    � Definisce in modo approfondito:

    � i ruoli coinvolti nel processo di sviluppo

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 113

    RUP: Limiti

    � È un processo il cui ambito è esclusivamente il singolo progetto

    � è un framework di processo generico, non mirato ad alcuna tipologia specifica di applicazioni

    � Ha origine in una cultura di sviluppo mirata alla realizzazione di prodotti commerciali, e quindi non prevede:

    � la gestione dei rapporti contrattuali con fornitori

    � l’acquisizione (ed eventuale personalizzazione) di package commerciali

    � La gestione dei rapporti contrattuali tra committenti “business”e sviluppatori

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 114

    RUP: Cosa fare per utilizzarlo ?

    � deve essere adattato, senza stravolgimenti, alle esigenze e allecaratteristiche dell’organizzazione tenendo conto di:

    � L’adattamento deve avvenire in modo progressivo, e costituisce a sua volta un progetto, iterativo e incrementale

    � Cultura dell’organizzazione in cui viene calato

    � Struttura organizzativa, ruoli, responsabilità

    � Tipologia di sistemi da realizzare (automazione, gestionale,B2C)

    � Modalità di rapporto con i committenti

    � Differenze tra progetti di nuovo sviluppo ed evoluzioni

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 115

    RUP: Costi

    � Costi di impatto culturale

    � Costi tecnologici

    � Costi a Regime

    � Costi di impatto organizzativo

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 116

    RUP: Costi di impatto organizzativo

    � Può portare ad una ridefinizione dei ruoli, rispetto a quelli in essere

    � Può portare ad una ridefinizione delle modalità di comunicazione e di rapporto con Committenti e Utilizzatori

    � Il processo può risultare molto diverso dagli “stili” di lavoro in essere nell’organizzazione che lo adotta

    � Può portare ad una ridefinizione delle modalità di comunicazione e di rapporto con eventuali Fornitori

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 117

    RUP: Costi di impatto culturale

    � Una diversa percezione del proprio ruolo in rapporto alla committenza ed agli utilizzatori

    � Una ridefinizione di alcuni concetti cardine dello sviluppo (analisi, requisiti, test, manutenzione)

    � un cambiamento significativo del modo di lavorare (procedure,responsabilità, tecniche)

    � La necessità di apprendere nuove tecniche (es. approccio Object Oriented alla progettazione dei sistemi, gestione dei requisiti)

    Può portare:

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 118

    RUP: Costi tecnologici

    � La disponibilità degli strumenti non è comunque un prerequisito indispensabile per l’efficacia del processo

    � L’utilizzo del nuovo processo può essere agevolato dall’acquisizione di strumenti specifici disponibili sul mercato per le attività primarie di sviluppo, tra cui:

    � gestione dei requisiti e delle richieste di cambiamento

    � analisi e design

    � generazione di codice

    � testing

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 119

    RUP: Costi a regime

    � Deve essere adattato ad ogni specifico progetto, per tenere conto delle specifiche caratteristiche e limitazioni

    � Il processo deve essere gestito in un’ottica di continuo miglioramento e adattamento all’evolversi delle esigenze aziendali

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 120

    XP ovvero eXtreme Programming

    XP è un rappresentante delle cosiddette metodologie agili

    Una metodologia agile è una metodologia leggera ed adattiva:

    Una metodologia si dice leggera se prevede lo svolgimento di un numero ridotto di attività e produzione di relativamente pochi elaborati (ma in quantità e di qualità sufficiente per il progetto di interesse)

    una metodologia si dice adattiva se è in grado di gestire efficacemente cambiamenti e richieste di cambiamenti, ad esempio cambiamenti nei requisiti.

    Processo recente e molto dibattuto

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 121

    XP: Punti caratteristici (01)

    � L’idea di fondo che legittima l’intero processo è l’insufficienza cronica di tempo tipica dei progetti

    invece di non seguire assolutamente un processo, il che rischierebbe di produrre risultati assolutamente non desiderabili, probabilmente è più opportuno seguirne uno “intuitivo”, leggero, pragmatico e quindi molto operativo

    � Tutte le fasi del ciclo di vita del software vengono compresse afavore dell’attività di codifica

    l’evoluzione delle API del sistema si acquisisce leggendo direttamente il codice, il comportamento di oggetti complessi viene definito per mezzo della codifica di appositi casi di test, gli inconvenienti vengono mostrati attraverso i problemi emersi dall’esecuzione dei casi di test, ...

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 122

    XP: Punti caratteristici (02)

    � elevata importanza agli unit test

    � prima di scrivere il codice effettivo è assolutamente necessaria la scrittura dei relativi casi di test

    � La realizzazione di unit test equivale a dire che il comportamento viene analizzato e “modellato” a priori sempre attraverso codice

    Quindi:

    � Il processo di sviluppo equivale ad una continua reingegnerizzazione del software

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 123

    XP: Vantaggi

    � Utile se si lavora a progetti con cicli di consegna molto compressi

    � Utile se si lavora a progetti con fattori di rischio tecnologicomolto elevati

    � Ottimo strumento a supporto di persone intelligenti

    � Utile nel realizzare opportuni frameWork

    la collezione di classi via via prodotte viene immediatamente verificata ed eventuali lacune vengono alla luce rapidamente.

    NOTA : Il processo non rifiuta completamente la fase di disegno, ma ne prevede l’utilizzo in casi estremi, quando non sia possibile codificare: in tutti gli altri casi l’attività di implementazione ha la precedenza.

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 124

    XP: Svantaggi (01)

    � complicato sottoporre il modello ad altre persone, al fine di ricevere qualche considerazione

    � complicato considerare i modelli stessi come risorse preziose per il futuroESEMPIO: Si pensi agli Use Case o modelli di analisi e disegno presenti in organizzazioni bancarie che rappresentano veri e propri investimenti indipendenti dal linguaggio utilizzato per l’implementazione, di un valore elevatissimo per futuri sviluppi e reingegnerizzazioni

    � Il team deve prevedere persone di talento, cooperative, dotate di buon affiatamento, coordinate da un Team Leader dotato di esperienza e capacità personali

  • Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 125

    XP: Svantaggi (02)

    � L’XP non porta a produrre tutta una serie di modelli estremamente importanti per l’organizzazione in cui il sistema funzionerà

    La metodologia RUP permette di realizzare, oltre al sistema stesso, tutta una serie di manufatti di estremo interesse, come per esempio il modello del business che può essere utilizzato per aggiornare il sistema, per future reingegnerizzazioni, per insegnare a nuovi dipendenti l’area di business, ecc. Per capirne l’importanza, basti pensare che mentre la tecnologia tende a rinnovarsi molto rapidamente, non altrettanto vale per il business, e quindi un buon modello può risultare valido per decine di anni

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 126

    XP: Per tutti ?

    � Progetti di dimensioni medio-piccole

    � Team di buona qualità e di dimensioni medio/piccole

    � Persone in grado di capire i limiti e le virtù del processo stesso

    Unified Modeling Language Università degli Studi Roma Tre - Gianluca Di Tomassi 127

    Riferimenti

    � UML Distilled Guida rapida al linguaggio di modellazione standard Autore Fowler Martin, Editore Pearson Education ItaliaTitolo originale UML Distilled: a brief guide to the standard object modeling language, third edition (Addison Wesley)

    BIBLIOGRAFIA

    � The Unified Modeling Language - UserGuideAutore G. Booch, J. Rumbaugh, I. Jacobson, Editore Addison-Wesley

    � UML e ingegneria del software - Dalla teoria alla praticaDownload: http://www.mokabyte.it/umlbook/index.htm

    SITOGRAFIA

    � http://www.rational.com/ Rational

    � http://www.omg.org Object Management Group(per documenti ufficiali UML)

    � Rational Unified ProcessAutore P. Kruchten, Editore Addison-Wesley