La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

O C L Object Constraint Language. LINGUAGGIO DI SPECIFICAZIONE DI OGGETTI OCL si può utilizzare in qualche contesto dove si usa il diagrama di classe.

Presentazioni simili


Presentazione sul tema: "O C L Object Constraint Language. LINGUAGGIO DI SPECIFICAZIONE DI OGGETTI OCL si può utilizzare in qualche contesto dove si usa il diagrama di classe."— Transcript della presentazione:

1 O C L Object Constraint Language

2 LINGUAGGIO DI SPECIFICAZIONE DI OGGETTI OCL si può utilizzare in qualche contesto dove si usa il diagrama di classe che sta associato (per essempio, nel modello concettuale o disegno). OCL si può utilizzare in qualche contesto dove si usa il diagrama di classe che sta associato (per essempio, nel modello concettuale o disegno). È un linguaggio ibrido orientato a oggetti-funzionale, ed è tipificato, perché usa il concetto di tipi di dati. È un linguaggio ibrido orientato a oggetti-funzionale, ed è tipificato, perché usa il concetto di tipi di dati. Gli utenti di UML e di altri linguaggi, possono usare l’OCL per specificare restrizioni e altri espressioni inserite nei suoi modelli. Gli utenti di UML e di altri linguaggi, possono usare l’OCL per specificare restrizioni e altri espressioni inserite nei suoi modelli. OCL ha caratteristiche di un linguaggio d’espressione, di linguaggio di modellazione e di linguaggio formale. OCL ha caratteristiche di un linguaggio d’espressione, di linguaggio di modellazione e di linguaggio formale.

3 LINGUAGGIO D’ ESPRESSIONE È un linguaggio d’espressione puro. Garantisce che la valutazione di una espressione OCL non avrà effetti collaterali; non può cambiare niente del modello, ovvero, lo stato del sistema non cambierà mai come conseguenza di una espressione OCL. È un linguaggio d’espressione puro. Garantisce che la valutazione di una espressione OCL non avrà effetti collaterali; non può cambiare niente del modello, ovvero, lo stato del sistema non cambierà mai come conseguenza di una espressione OCL. Tutti i valori degli oggetti, inclusi tutti i collegamenti, non possono cambiare durante la valutazione di una espressione OCL. Tutti i valori degli oggetti, inclusi tutti i collegamenti, non possono cambiare durante la valutazione di una espressione OCL. Una espressione OCL ritorna semplicemente un valore. Una espressione OCL ritorna semplicemente un valore.

4 LINGUAGGIO DI MODELLAZIONE OCL non è un linguaggio di programazione: non è possibile scrivere logica di programmazione o un flusso di controllo. Non è possibile invocare processi o attivare operazioni diverse da query in OCL. OCL non è un linguaggio di programazione: non è possibile scrivere logica di programmazione o un flusso di controllo. Non è possibile invocare processi o attivare operazioni diverse da query in OCL. OCL è un linguaggio di modellazione in primo luogo. OCL è un linguaggio di modellazione in primo luogo. Dal momento che OCL è un linguaggio di modellazione, tutte le considerazioni implementative sono fuori dal suo dominio e non si possono esprimere con linguaggio OCL. Concettualmente, ogni espressione OCL è atomica. Dal momento che OCL è un linguaggio di modellazione, tutte le considerazioni implementative sono fuori dal suo dominio e non si possono esprimere con linguaggio OCL. Concettualmente, ogni espressione OCL è atomica.

5 LINGUAGGIO FORMALE OCL è un linguaggio formale dove tutti i construttori hanno un loro significato formalmente definido, OCL è formalizzato all’interno di UML. OCL è un linguaggio formale dove tutti i construttori hanno un loro significato formalmente definido, OCL è formalizzato all’interno di UML. OCL non pretende di sostituire linguaggi formali come VDM o Z OCL non pretende di sostituire linguaggi formali come VDM o Z

6 PERCHÈ OCL E NON ALTRI? Lo svantaggio dei linguaggi formali tradizionali è che sono pensati per persone con una forte formazione matematica, ma sono difficili per il progettista di sistema. Lo svantaggio dei linguaggi formali tradizionali è che sono pensati per persone con una forte formazione matematica, ma sono difficili per il progettista di sistema. OCL è stato sviluppato per risolvere questo problema. OCL è stato sviluppato per risolvere questo problema. È un linguaggio formale, facile da leggere e scrivere. È un linguaggio formale, facile da leggere e scrivere.

7 DOVE USARE OCL OCL si può usare con diversi scopo: OCL si può usare con diversi scopo: - Specificare caratterische statiche delle classi e dei tipi di un modello di classe - Specificare caratterische statiche di tipo per gli Stereotipi - Specificare pre e post-condizioni sulle Operazioni e i Metodi. - Come linguaggi di navigazione di alberi (tipo X-Path). - Specificare restrizioni sulle operazioni (pre e post condizioni). Può formare parte di una caratteristica statica ovvero una restrizione stereotipata tramite >. Può formare parte di una caratteristica statica ovvero una restrizione stereotipata tramite >. Può formare parte di pre-condizioni e post-condizioni che sono restrizioni stereotipate con > e >. Può formare parte di pre-condizioni e post-condizioni che sono restrizioni stereotipate con > e >.

8 OGGETTI E PROPRIETÀ Le espressioni OCL si possono riferire a tipi, classi, interfacce, associazioni (come tipi) e tipi di dati. Le espressioni OCL si possono riferire a tipi, classi, interfacce, associazioni (come tipi) e tipi di dati. Anche a tutti gli attributi, gli end-point di una associazione, metodi e operazioni che non hanno effetti collaterali. Anche a tutti gli attributi, gli end-point di una associazione, metodi e operazioni che non hanno effetti collaterali.

9 TIPI PREDEFINITI Si definiscono all’interno di OCL i tipi di dati base, cosí come le operazioni che si possono realizare con la siguiente tabella: Si definiscono all’interno di OCL i tipi di dati base, cosí come le operazioni che si possono realizare con la siguiente tabella: TIPOVALOREOPERAZIONE Boolean True, False And, Or, Not, Xor Integer 1, 2, 34,5242… +, /, abs Real 1.5, 3.14, 6.78… +, -, /, floor String To be, or, not toUpper, concat

10 TIPI DI DEFINIZIONI Invarianti Invarianti Invarianti di metodo/responsabilità Invarianti di metodo/responsabilità Definizione di attributi derivati Definizione di attributi derivati Definizione di metodi/responsabilità derivate Definizione di metodi/responsabilità derivate

11 TIPI DI DATI 1. Predefiniti a) Basici  Boolean  Integer  Real  String  OCLAny  OCLType 2. Non Predefiniti Sono ogni classe e enumeratore del diagrama delle classi b) Strutturati  Collection(T)  Set(T)  Bag(T)  OrderedSet(T)  Sequence  Tuple

12 ESEMPIO DI USO (1) Faremo un caso pratico. Faremo un caso pratico. Nel nostro esempio, andiamo a eseguire espressioni OCL su un classico diagramma che rappresenta una impresa. Nel nostro esempio, andiamo a eseguire espressioni OCL su un classico diagramma che rappresenta una impresa.

13 Fase 1: Carga del Modello UML 2.0 Essempio d’empresa generado con eclipse per modelo UML2.0: Essempio d’empresa generado con eclipse per modelo UML2.0:

14 Fase 1: Caricamento del Modello UML 2.0 Nel modello UML 2.0 i collegamenti tra classi sono allo stesso livello delle classi e dei tipi primitivi. Nel modello UML 2.0 i collegamenti tra classi sono allo stesso livello delle classi e dei tipi primitivi. Riassumendo, le classi sono: dipartamento, compagnia, persona, impiegato, gruppo. Riassumendo, le classi sono: dipartamento, compagnia, persona, impiegato, gruppo. I tipi base che useremo nel nostro package sono: intero, lista, boolean e un tipo enumerato (tipo persona) I tipi base che useremo nel nostro package sono: intero, lista, boolean e un tipo enumerato (tipo persona)

15 Fase 2: Esempi di espressioni a) Lavoramo in una impresa, la quale necessita di costraint per essere correttamente rappresentata ad esempio un package non deve contenere più di 3 elementi Context Package inv:ownedMember->size() size()<=3 b) Tutti I nomi di dipartamenti devono iniziare con una lettera maiuscola tra la A e la D comprese Context Department inv: Set{‘A’,’B’,’C’,’D’}>=includes(name.substring(1,1))

16 COLLEGAMENTI D’INTERESSE Inglese: Inglese: Spagnolo: 2005_2/apuntes/OCL.pdf Spagnolo: 2005_2/apuntes/OCL.pdfhttp://www-2.dc.uba.ar/materias/isoft1/is _2/apuntes/OCL.pdfhttp://www-2.dc.uba.ar/materias/isoft1/is _2/apuntes/OCL.pdf Italiano: Italiano: Francese: Francese:


Scaricare ppt "O C L Object Constraint Language. LINGUAGGIO DI SPECIFICAZIONE DI OGGETTI OCL si può utilizzare in qualche contesto dove si usa il diagrama di classe."

Presentazioni simili


Annunci Google