La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Evoluzione di UML Andrea Bencini 24-03-2004.

Presentazioni simili


Presentazione sul tema: "Evoluzione di UML Andrea Bencini 24-03-2004."— Transcript della presentazione:

1 Evoluzione di UML Andrea Bencini

2 Scopo della Tesi  Questa tesi ha lo scopo di approfondire i cambiamenti che sono stati fatti durante gli anni su UML.  La tesi si propone di essere un utile strumento per chi, conoscitore di una versione di UML, volesse conoscere ed apprendere le più importanti novità introdotte nelle versioni successive.  La particolare attenzione riservata ai cambiamenti grafici permette all’osservatore di un modello di risalire velocemente alla versione di UML utilizzata per lo sviluppo dello stesso e di conoscerne quindi in anticipo le eventuali limitazioni espressive.

3 Origine di UML  I primi linguaggi di modellazione orientati agli oggetti cominciarono ad apparire tra la metà degli anni 70 e la fine degli anni 80 con vari esperimenti che adottavano approcci differenti all’analisi e alla progettazione Object-Oriented.  Tra il 1989 e il 1994 il numero di linguaggi di modellazione passò da 10 a più di 50, ma nessuno di questi riusciva a soddisfare pienamente le esigenze degli utenti.  I metodi più diffusi erano comunque il metodo Booch’93 di Booch, il metodo OMT-2 (Object Modelling Technique) di Rumbaugh e il metodo OOSE (Object- Oriented Software Engineering) di Jacobson.

4 UML 1.1

5 UML 1.2  La versione 1.2 venne resa disponibile dalla OMG nel Luglio del  Apportò modifiche editoriali, tese a migliorare l’organizzazione del documento e a eliminare errori grammaticali e di stampa, ma non sostituì la versione 1.1 che rimase lo standard ufficiale di UML.  La versione 1.2 non è stata ufficialmente approvata, poiché non apporta cambiamenti di alcun tipo

6 UML 1.3  Dopo l’adozione di UML 1.1 nel novembre 1997, la OMG istituì una “Revisions Task Force (RTF)” per valutare i commenti del pubblico e provvedere a una revisione della specifica tesa all’eliminazione di bug, incoerenze, ambiguità, ed omissioni.  I membri della RTF emisero diversi rapporti preliminari, che terminarono nel 1999 con la proposta di una nova specifica: UML 1.3.  La versione 1.3 di UML va considerata come una versione interna e non standard ufficiale della OMG.  Aggiunti gli stati di sync per la sincronizzazione di attività concorrenti  Ridefinite le relazioni dei casi d’uso: generalizzazione, include ed estende  Viene aggiunta la specifica di XMI 1.0.  Vengono definiti gli stati di sottoattività  Nei diagrammi di collaborazione e di sequenza, vengono distinte due forme: la forma descrittore e la forma istanza

7 UML 1.4  Rilasciato nel 2001  Nei diagrammi di collaborazione è ora possibile contenere anche vincoli  Diagrammi di Sequenza spezzati  Cambia leggermente la notazione grafica dei componenti  Definiti anche gli artefatti per specificare i componenti fisici (file sorgenti, file eseguibili, e script) che implementano i componenti.  Aggiunta la visibilità di package (simbolo “ ~ ”) adatta ai modelli riguardanti l’implementazione Java.  Aggiunta la proprietà di ordinamento per gli attributi (“ordinati” o “non ordinati” ).

8 UML 1.5  Il principale cambiamento nella specifica della versione 1.5 è stata l’aggiunta della semantica delle Azioni. Un passo necessario per rendere UML un linguaggio di programmazione in attesa di UML 2.0.  Una azione primitiva è una azione che non può essere decomposta in altre azioni. Le azioni primitive comprendono funzioni matematiche, azioni che lavorano su oggetti in memoria, e azioni riguardanti l'interazione tra oggetti, come lo scambio di messaggi.  Una procedura è gruppo di azioni con un input e un output.  Per adattarsi alle elaborazioni concorrenti, la semantica di UML definisce le azioni come elementi eseguiti tutti in maniera concorrente, se non altrimenti specificato da un flusso di dati o da flusso di controllo.

9 UML 1.5: Azioni  Gruppi di Azioni: raggruppano azioni in unità più larghe per essere usate in procedure, condizioni, e cicli  Azioni Condizionali: prevedono l’esecuzione condizionata di sotto-azioni a seconda di un risultato di un test eseguito a tempo di esecuzione  Azioni Cicliche: permettono l’esecuzione ripetuta di una sotto-azione in base al risultato di un test eseguito ripetutamente a tempo di esecuzione. L’output di una iterazione è usato come input per la successiva iterazione

10 UML 1.5: Azioni  Azioni di lettura e azioni di scrittura. Le prime prendono valori mentre le seconde modificano valori o creano e distruggono oggetti e collegamenti.  Azioni computazionali trasformano un insieme di valori di input per produrre un insieme di valori di output  Azione di Mappatura: applica una sottoazione in parallelo ad ogni elemento di una collezione di dati, restituendo un output che è una collezione di dati della stessa dimensione e forma.

11 UML 1.5: Azioni  Azione Filtro: sceglie un sottoinsieme degli elementi della collezione di ingresso e restituisce una nuova collezione della stessa forma, in base al risultato “booleano” di una sottoazione applicata ad ogni elemento.  Azione Iterata: applica una sottoazione in maniera ripetuta ad ogni elemento della collezione, accumulando i risultati in variabili del ciclo "loop".  Azione di Riduzione: applica ripetutamente una sottoazione a coppie di elementi adiacenti sostituendoli col risultato della operazione. L'azione continua fino a che il risultato finale non è composto da un singolo elemento.

12 If factor = 2 then…

13 UML 2.0  UML 2.0 rappresenta la più grande novità da quando l’UML è stato originariamente approvato. La specifica ufficiale dell’ Unified Modeling Language versione 2.0 è attesa per il 30 Aprile  Non si tratta di una semplice correzione e evoluzione delle specifiche precedenti, ma di una vera e propria nuova specifica con novità importanti in ogni sua parte.

14 UML 2.0: Le Request For Proposals  Per la definizione di UML 2.0, la OMG ha creato quattro Request For Proposals (RFP) complementari: UML 2.0 Infrastructure UML 2.0 Superstructure UML 2.0 Object Constraint Language UML 2.0 Diagram Interchange.  Queste quattro parti, dovranno essere completamente adeguate per formare un solo standard UML 2.0.

15 UML 2.0: Novità  Potenziata l’estensione nei casi d’uso  Potenziati i diagrammi di classe  Nuova visualizzazione delle interfacce  Definiti i Gruppi di Generalizzazioni  Definite Corsie gerarchiche e a più dimensioni  Aggiunti i Frammenti Combinati nei Diagrammi di Sequenza  Nuovi vincoli temporali nei Diagrammi di Sequenza  Aggiunti i Diagrammi Temporali  Diagrammi di Collaborazione vengono rinominati in Diagrammi di Comunicazione  Nuova grafica per i Componenti  Le azioni vengono integrate nei diagrammi di attività  Nuova gestione delle Eccezioni  Aggiunte le Regioni di Espansione per raggruppare le azioni

16 UML 2.0: Estensione nei Casi d’uso  Il caso d’uso “Perform ATM Transaction” ha un punto di estensione Selection”. Questo caso d’uso è esteso attraverso questo punto di estensione dal caso d’uso “On- Line Help” ogni volta che l’esecuzione di “Perform ATM Transaction” si trova nella posizione indicata dal punto di estensione “Selection” e l’utente seleziona il tasto HELP

17 Azioni nei Diagrammi di Attività  UML 2.0 effettua una fusione tra i diagrammi di attività e le azioni, e le attività vengono separate dalla semantica dei diagrammi di stato.  Le azioni prendono il posto degli stati di azione e degli stati di sottoattività.  Le attività sono una struttura di ordine superiore composte da una sequenza di azioni  L’attività gestisce la coordinazione della esecuzione delle azioni, utilizzando metodi di controllo di flusso e dei dati.  Le azioni possono ora visualizzare le pre e le post- condizioni come note attaccate alla azione. Una pre- condizione a una azione indica cosa deve essere verificato prima che inizi l’azione. Una post-condizione è una restrizione che diventa vera dopo che l’azione è stata completata.

18 UML 2.0: Azioni

19 UML 2.0: Le eccezioni

20 UML 2.0: Regione di Espansione

21  Il modo parallelo permette a una regione di espansione di eseguire le interazioni in modo indipendente, sovrapponendole nel tempo. Se la collezione degli elementi in ingresso è ordinata, gli elementi vengono fatti eseguire alla regione in base a questo ordine.  Nel modo iterativo, l’esecuzione della regione avviene in modo sequenziale, ogni esecuzione comincia solo dopo che la precedente è terminata. Se la collezione degli elementi in ingresso è ordinata, gli elementi vengono fatti eseguire alla regione in base a questo ordine.  Nel modo stream, tutti gli elementi di ingresso entrano nella regione di espansione nello stesso momento come un flusso. La regione viene quindi eseguita una sola volta; gli elementi, se ordinati, mantengono il loro ordine nella esecuzione.

22 UML 2.0: Gruppi di Generalizzazione

23  La classe “persona” può essere specializzata o da “persona di sesso femminile”, o da “persona di sesso maschile”. Questo gruppo di generalizzazione è “{completo, disgiunto}” visto che una persona è necessariamente o uomo o donna. Inoltre una persona può essere impiegata. In questo caso il vincolo è {incompleto, disgiunto} poiché esistono anche persone che non rientrano nella categoria di impiegati.  E’ possibile raggruppare gli oggetti per categorie o per classi, permettendo importanti e potenti tecniche di organizzazione.

24 UML 2.0: Corsie

25

26 UML 2.0: Interfacce

27 UML 2.0: Componenti

28

29 UML 2.0: Diagrammi di Comunicazione

30 UML 2.0: Tempo nei Diagrammi di Sequenza  L’utente “:User” manda un messaggio Code e la cui durata viene misurata e memorizzata in “d”. “:ACSystem” manderà indietro due messaggi all’utente: CardOut è vincolato a durare tra 0 e 13 unità di tempo. In aggiunta, l’intervallo tra l’invio di Code e la ricezione di OK è vincolato a durare tra “d” e “3*d”. Si può notare anche l’osservazione del tempo “t” all’invio del segnale di OK e di come questo sia usato per vincolare il tempo di ricezione di CardOut.

31 UML 2.0: Frammenti Combinati  Uno dei cambiamenti più evidenti nei diagrammi di sequenza, è l’aggiunta dei Frammenti Combinati per gestire comportamenti iterativi, condizionali.  Questo permette di esprimere algoritmi abbastanza completi nei diagrammi di sequenza. Sono stati quindi eliminati i vecchi sistemi per marcare le iterazioni.  Un frammento combinato è composto da un operatore di iterazione e da un corrispondente operando di iterazione.  La semantica varia a seconda dell’operatore di iterazione

32 UML 2.0: Frammenti Combinati

33 UML 2.0: Diagrammi Temporali

34 Conclusioni  L’UML si muove rapidamente per fornire un ambiente di modellazione visuale capace di esprimere le attuali tecnologie software.  L’evoluzione di UML è stata sempre guidata dalla comunità degli utenti utilizzatori.  Le modifiche di UML 2.0 apportano un grande cambiamento alla semantica e alla visualizzazione grafica dei modelli. UML 2.0 acquisisce una maggiore capacità di modellare graficamente gli algoritmi dei linguaggi di programmazione.  Vengono inseriti anche nuovi e più potenti forme per il riuso dei modelli.  La strada seguita permette comunque ad UML di adattarsi direttamente alle necessità dell’industria e di rimanere il linguaggio di modellazione visuale standard anche per i prossimi anni.


Scaricare ppt "Evoluzione di UML Andrea Bencini 24-03-2004."

Presentazioni simili


Annunci Google