Evoluzione di UML Andrea Bencini 24-03-2004.

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

Programmazione ad oggetti
INFORMATICA Altre Istruzioni di I/O
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
Analisi e progettazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Linguaggi algoritmici
Recupero debito quarto anno Primo incontro
Analizzatori Lessicali con JLex
Algoritmi e Programmazione
Metodologie di Programmazione = decomposizione basata su astrazioni
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Iterazione enumerativa (for)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Il linguaggio UML Luca Lista. Metodi Object Oriented –Booch Method by Grady Booch –OMT by Jim Rumbaugh –Objectory (Use Cases) by Ivar Jacobson –CRC by.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 13 1 La Manipolazione Diretta Sensazione di interagire con un mondo di oggetti piuttosto.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Unità Didattica 2 I Linguaggi di Programmazione
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
Sistemi Operativi GESTIONE DEI PROCESSI.
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Daniel Stoilov Tesi di Laurea
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dellInformazione Applicazione.
Java base II: Strutture di Controllo
Elementi di Informatica
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
INFORMATICA MATTEO CRISTANI.
L’ingegneria del software
CODIFICA Da flow-chart a C++.
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Il linguaggio UML Luca Lista.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Linguaggi e modelli computazionali LS Manni Tiziano
Corso di Visual Basic 6.0 OBBIETTIVI
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
I processi.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
Diagramma delle Classi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
Corso di Laurea in Informatica
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Realizzazione software
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti.
Strutture di controllo
Unified Modeling Language. –un linguaggio (e notazione) universale, per rappresentare qualunque tipo di sistema software –uno standard OMG (Object Management.
UML Unified Modelling Language Linguaggio per la modellazione unificato.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Transcript della presentazione:

Evoluzione di UML Andrea Bencini

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.

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.

UML 1.1

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

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

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

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.

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

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.

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.

If factor = 2 then…

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.

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.

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

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

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.

UML 2.0: Azioni

UML 2.0: Le eccezioni

UML 2.0: Regione di Espansione

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

UML 2.0: Gruppi di Generalizzazione

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

UML 2.0: Corsie

UML 2.0: Interfacce

UML 2.0: Componenti

UML 2.0: Diagrammi di Comunicazione

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.

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

UML 2.0: Frammenti Combinati

UML 2.0: Diagrammi Temporali

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.