Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo del Centro IPPARI, Ingegneria del software
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Centro ricerche IPPARI, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Ingegneria del software

Specifica di vincoli in modelli UML con OCL

Lezione 10 di Ingegneria del software 2

Docente: Giuseppe Scollo

Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2006-7

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 2

Indice

  1. Specifica di vincoli in modelli UML con OCL
  2. OCL: origini, cenni storici, definizioni
  3. OCL e MDA nello sviluppo del software
  4. livelli di maturità di modellazione
  5. UML + OCL → MDA
  6. un esempio più convincente
  7. UML + OCL → modelli più espressivi
  8. UML + OCL → modelli più precisi
  9. criteri di progetto di OCL
  10. cosa è un modello?
  11. come usare OCL

OCL: origini, cenni storici, definizioni

origini ed evoluzione:

linguaggio per espressioni su modelli UML a oggetti:

vincolo:

espressioni:

OCL e MDA nello sviluppo del software

OCL è inteso favorire l'uso di modelli per l'automazione dello sviluppo del software, nella concezione della Model Driven Architecture (MDA), ovvero di uno sviluppo basato su modelli e loro trasformazioni

le trasformazioni da PIM a PSM sono intese avvalersi di strumenti basati su definizioni standard delle trasformazioni fra i linguaggi in gioco:

schema MDA di generazione automatica di software da modelli UML

tratta da: (Warmer & Kleppe, 2003), Cap. 1

livelli di maturità di modellazione

in analogia con i livelli di maturità del processo produttivo (CMM):

  1. : nessuna specifica
    • da dilettanti
    • sviluppo di piccole dimensioni e/o di breve durata
  2. : testo naturale
    • problemi: ambiguità, difficile manutenibilità
  3. : testo naturale + diagrammi di alto livello
    • migliore comprensibilità, ma stessi problemi
  4. : modelli + testo naturale
    • migliore corrispondenza con il prodotto, ma ancora sviluppo manuale
  5. : modelli precisi
    • il target di MDA, automazione significativa dello sviluppo da modelli
    • caratteristica del modello: consistenza
  6. : solo modelli precisi
    • goal del futuro, automazione completa dello sviluppo da modelli
    • caratteristiche del modello: consistenza e completezza

UML + OCL → MDA

UML + OCL → modelli precisi → maturità di livello 4

un esempio dei limiti espressivi dei soli diagrammi UML:

modello UML di associazioni fra passeggeri, voli e aerei

tradotto da: (Warmer & Kleppe, 2003), Cap. 1

problema: voli a numero di passeggeri illimitato ?

soluzione con OCL:

un esempio più convincente

un altro esempio dei limiti espressivi dei soli diagrammi UML:

modello UML di associazioni fra case, mutui e proprietari

tradotto da: (Warmer & Kleppe, 2003), Cap. 1

nel diagramma, pur se si mostrano i tipi degli attributi e i parametri delle operazioni:

molti vincoli ovvi restano tuttavia non specificati ...

UML + OCL → modelli più espressivi

per la precisione, c'è da aggiungere fra l'altro che:

  1. si possono ipotecare solo case di cui si è proprietari
  2. la data di inizio di un mutuo deve essere anteriore alla data della sua fine
  3. il codice fiscale di ciascun acquirente deve essere unico
  4. un mutuo viene concesso solo a chi dispone di un reddito annuo sufficiente
  5. un mutuo viene concesso solo in presenza di una garanzia sufficiente

UML + OCL → modelli più precisi

con precisione, in OCL:

criteri di progetto di OCL

caratteristiche del linguaggio e loro motivazioni:

espressione sia di vincoli che di interrogazioni

notazione non matematica (ma semantica matematica)

tipizzazione forte

linguaggio dichiarativo

cosa è un modello?

un insieme coerente e consistente di elementi del modello con caratteristiche (features) e vincoli

unitarietà del modello:

la dichiarazione del contesto di un'espressione OCL

come usare OCL

alcuni suggerimenti di metodo:

cominciare con la stesura di diagrammi di classi

data una collezione coerente di diagrammi, individuare le necessità di ulteriore specifica, tipicamente: