This is not the document you are looking for? Use the search form below to find more!

Report home > Computer / Internet

OCL Cheat Sheet

5.00 (2 votes)
Document Description
OCL cheat sheet
File Details
Submitter
  • Name: DISI
Embed Code:

Add New Comment




Showing 2 comments

by Stefano Gogioso on September 04th, 2011 at 05:47 am
Mi fa piacere vedere che questo cheatsheet è ancora in giro dopo ben 4 anni che l'ho creato :)
by Stefano Gogioso on September 04th, 2011 at 07:39 am
Ah sì: c'è un piccolo typo.
L'operazione di differenza insiemistica è ovviamente di tipo Set(T), non Boolean.
Related Documents

The Web Developer's SEO Cheat Sheet

by: williamstt, 2 pages

The Web Developer's SEO Cheat Sheet Important SEO HTML tags Search Engine Indexing Limits Common Canonical Homepage Issue Important Search Engine Robots Common Robot ...

BMW Cheat Sheet

by: clevenger, 3 pages

This cheat sheet contains useful everyday information on maintenance procedures, common value setting, oil and radiator fluids information, some bolt torque values, parts adjustment, alarm set ...

Cisco Ios Cheat Sheet Router Commands

by: hanno, 2 pages

Cisco Ios Cheat Sheet Router Commands

Cisco Ios Cheat Sheet Show Commands

by: przemek, 2 pages

Cisco Ios Cheat Sheet Show Commands

Forex Cheat Sheet

by: zigzagfx, 61 pages

Forex Cheat Sheet

Farmville Crop Cheat Sheet

by: khulood, 1 pages

Farmville Hacks, Cheats & Secrets CLICK HERE

Manual Mode Cheat Sheet

by: Kate Johnson, 1 pages

Beginner tips for shooting manually with a digital camera.

Online Bingo Cheat Sheet

by: laashley, 7 pages

This document is about how to play the online games with ease using the secret tips and tricks provided in this document to maximize the probability of winning.

biology, cheat, sheet

by: humza, 14 pages

biology

Bash Cheat Sheet -- Vi Editing Mode Cheat Sheet

by: henriette, 2 pages

Bash Cheat Sheet -- Vi Editing Mode Cheat Sheet

Content Preview
OCL 2.0 CheatSheet
Integer / Real
a,b : Integer/Real;
Notazioni:
i,j : Integer;
RT = Integer/Real

S,T : OclType; St : OclState;
Tipi Base
Tipi Collection
S/B ::= Set(T) | Bag(T) ;
Uguaglianze
a=b : Boolean
Uguaglianza
Integer
Set
OS/Sq ::= OrderedSet(T) | Sequence(T)
a<>b : Boolean
Disuguaglianza
Real
Bag
Disuguaglianze
a<b : Boolean
Minoranza stretta
TExp /TExpB /SExp ::= espressioni OCL di tipo T/T/S String
OrderedSet
a>b : Boolean
Maggioranza stretta
sse=iff
Boolean
Sequence
a<=b : Boolean
Minoranza debole
a>=b : Boolean
Maggioranza debole
Tutti gli Oggetti
a,b : OclAny;
Op. Algebriche
a+b : RT
Somma
Uguaglianze
a=b : Boolean
Uguaglianza
a*b : RT
Prodotto
a<>b : Boolean
Disuguaglianza
a-b : RT
Differenza
Stati e Istanze
a.oclIsTypeOf(T) : Boolean
True sse a : T
a/b : Real
Divisione reale
a.oclIsKindOf(T) : Boolean
True sse a : S, con S=T o S derivato di T
-a : RT
Passaggio al reciproco
a.oclIsInState(St) : Boolean
True sse a e' nello stato ST
Altre Operazioni
a.abs() : RT
Valore assoluto
a.oclIsNew() : Boolean
True sse a e' stato appena creato (solo
a.max(b) : RT
Massimo tra a e b
nelle postcondizioni)
a.min(b) : RT
Minimo tra a e b
a.oclIsInvalid() : Boolean
True sse a : OclInvalid
a.floor() : Integer
Parte intera di a
a.oclIsUndefined() : Boolean
True sse a.oclIsInvalid() oppure a=null
a.ceil() : Integer
Piu' piccolo intero maggiore di a
T.allInstances() : Set(T)
Insieme di tutte le istanze del tipo T
a.round() : Integer
Numero intero piu' vicino ad a
Cast
a.oclAsType(T) : T
Cast di a al tipo T
Divisione Intera
i.div(j) : Integer
Divisione intera
i.mod(j) : Integer
Resto della divisione intera
String
s,t : String;
lower,upper : Integer

Boolean
a,b : Boolean
Op. elementari
s.size() : Integer
Lunghezza
Op. Unarie
not a : Boolean
Negazione logica
s.concat(t) : String
Concatenazione di s e t
Op. Binarie
a and b : Boolean
And logico
s.substring( lower, upper ) :
Sottostringa con estremi i
a or b : Boolean
Or logico
String
caratteri in posizione lower e upper
a xor b : Boolean
Or logico esclusivo
Parsing
s.toReal() : Real
Parsing di s e conversione a Real
a implies b : Boolean
Implicazione logica (if a then b)
s.toInteger() : Integer
Parsing di s e conversione a Integer
a <=> b
Congruenza logica (a iff b)
Collection(T)
c,d : Collection(T); o : T
Uguaglianze
c=d : Boolean
Uguaglianza (i criteri dipendono dalla particolare specializzazione di Collection)
c<>d : Boolean
Disuguaglianza
Dimensioni
c.size() : Integer
Numero di elementi
c.isEmpty() : Boolean
True sse c e' vuota
c.notEmpty() : Boolean
True sse c non e' vuota
Appartenenza
c.includes(o) : Boolean
True sse o appartiene a c
c.excludes(o) : Boolean
True sse o non appartiene a c
c.includesAll(d) : Boolean
True sse ogni elemento di d appartiene a c
c.excludesAll(d) : Boolean
True sse nessun elemento di d appartiene a c
Conversioni
c.asSet() : Set(T)
Conversione (non cast) della collezione a Set
c.asBag() : Bag(T)
Conversione (non cast) della collezione a Bag
c.asOrderedSet() : OrderedSet(T)
Conversione (non cast) della collezione a OrderedSet
c.asSequence() : Sequence(T)
Conversione (non cast) della collezione a Sequence
Altre Operazioni
c.sum() : T
Somma di tutti gli elementi di c (T(+) deve essere gruppo commutativo)
c.count(o) : Integer
Numero di occorrenze di o in c

c.flatten() : Collection(S)
Se T=Collection(S), la collezione di tutti gli elementi delle sottocollezioni, self altrimenti
Operazioni Iterative
c->exists( iterators | boolExp ) : Boolean
True sse boolExp e' vera per almeno un elemento
c->forall( iterators | boolExp ) : Boolean
True sse boolExp e' vera per ogni elemento
c->isUnique( iterators | body ) : Boolean
True sse elementi differenti danno valutazioni di body differenti
c->one( iterator | boolExp ) : Boolean
True sse esiste un unico elemento per cui boolExp sia vera
c->any( iterator | boolExp ) : T
Un qualsiasi elemento della collezione per cui boolExp sia vera
c->collect( iterator | SExp ) : Bag(S)/Sequence(S)
La Bag/Sequence contenente tutte le valutazioni (flattened) di body per ogni elemento di c
Set / Bag
s,t : Set(T); b : Bag(T); sb : S/B; o: T;
Unione e inserimento
s.union(sb) : S/B
Unione Insiemistica (eventualmente con ripetizioni)
b.union(sb) : Bag(T)
Unione Insiemistica con ripetizioni
sb.including(o) : S/B
Aggiunta dell'elemento o
Intersezione e rimozione
s.intersection(sb) : Set(T)
Intersezione Insiemistica
b.intersection(sb) : S/B
Intersezione Insiemistica (eventualmente con ripetizioni)
sb .excluding(o) : S/B
Rimozione dell'elemento o
s-t : Boolean
Differenza Insiemistica
Operazioni Iterative
sb->select( iterator | boolExp) : S/B
Set/Bag di tutti gli elementi di sb per cui boolExp e' vera
sb->reject( iterator | boolExp) : S/B
Set/Bag di tutti gli elementi di sb per cui boolExp e' false
sb->collectNested( iterator | TExp ) : Bag(T)
Come collect, ma non esegue il flatten()
sb->sortedBy( iterator | body ) : OS/Sq
OrderedSet/Sequence contenente gli elementi di sb ordinati in maniera debolmente crescente
OrderedSet / Sequence
oss : OS/Sq; s,t : Sequence(T); o : T; i : Integer
Inserimento
oss.append(o) : OS/Sq
Aggiunta dell'elemento o in coda
oss.prepend(o) : OS/Sq
Aggiunta dell'elemento o in testa
oss.insertAt(i, o) : OS/Sq
Aggiunta dell'elemento o alla posizione i
oss.including(o) : OS/Sq
Aggiunta in coda di elemento
s.union(t) : Sequence(T)
Concatenazione di s e t
Rimozione
oss.excluding(o) : OS/Sq
Eliminazione di elemento
Accesso
oss.at(i) : T
Accesso all'elemento in posizione i
oss.indexOf(o) : Integer
Indice della prima occorrenza di o
oss.first() : T
Primo elemento
oss.last() : T
Ultimo elemento
Operazioni Iterative
oss->select( iterator | boolExp ) : OS/Sq
OrderedSet/Sequence di tutti gli elementi di sb per cui boolExp e' vera
oss->reject( iterator | boolExp ) : OS/Sq
OrderedSet/Sequence di tutti gli elementi di sb per cui boolExp e' false
oss->collectNested( iterator | TExp ) : Sequence(T)
Come collect, ma non esegue il flatten()
oss->sortedBy( iterator | body ) : OS/Sq
OrderedSet/Sequence contenente gli elementi di sb ordinati in maniera debolmente crescente
Costrutti del linguaggio
Self
'self'
Riferimento alla classe corrente
Constraints
'context' [name ':' ] class 'inv:' boolExp
Definizione di un invariante per la classe class
'context' class ::’ op’(' params ')’ [ ‘:’ T ] 'pre:' boolExp
Precondizione per l'operazione op della classe class
'context' class ‘::’ op’(' params ')’ [ ‘:’ T ] 'post:' boolExp
Postcondizione per l'operazione op della classe class
'context' class ‘::’ op’(' params ')’ [ ‘:’ T ] 'body:' Texp
Corpo dell'operazione op della classe class
'context' class ‘::’ attr ‘:’ T 'derive' TExp
Definisce il valore dell' attributo composto/ association end attr
'context' class 'def' name ‘:’ T '=' TExp
Definisce name all'interno della classe come il valore di Texp
Let, If, @pre
'let' name ':' T '=' TExp 'in' body
Definisce name all'interno di body
'if' boolExp 'then' TExp 'else' TExpB 'endif'
Se boolExp e' vera, allora TExp, altrimenti TExp2
class '::' attr'@pre'
Nelle postcondizioni, usato per riferirsi al valore dell'attributo class::attr prima dell'operazione
class '::' op'@pre'('params')'
Nelle postcondizioni, usato per riferirsi al valore di ritorno di class::op prima dell'operazione
class '::' ass'@pre'
Nelle postcondizioni, usato per riferirsi al valore dell'associazione class::ass prima dell'operazione

Download
OCL Cheat Sheet

 

 

Your download will begin in a moment.
If it doesn't, click here to try again.

Share OCL Cheat Sheet to:

Insert your wordpress URL:

example:

http://myblog.wordpress.com/
or
http://myblog.com/

Share OCL Cheat Sheet as:

From:

To:

Share OCL Cheat Sheet.

Enter two words as shown below. If you cannot read the words, click the refresh icon.

loading

Share OCL Cheat Sheet as:

Copy html code above and paste to your web page.

loading