Strumenti di modellazioneGabriella Trucco
Linguaggio di modellazione
Linguaggio formale che può essere utilizzato per descrivere (modellare) un
sistema
Il concetto trova applicazione soprattutto nell’ingegneria del software
Disciplina tecnologica e manageriale che riguarda la produzione sistematica e
la manutenzione dei prodotti software entro tempi e costi preventivati
Il prodotto software
Parlando di software, dobbiamo tener conto di:
Affidabilità
Correttezza
Interoperabilità
Mantenibilità
Riusabilità
Usabilità
Verificabilità
Classificazione dei linguaggi di
modellazione
Numerosi criteri di classificazione:
grafici o testuali
interpretabili o non interpretabili
oggetto della modellazione
Diagramma di flusso
Linguaggio di modellazione grafico
Consente di descrivere in modo schematico:
Operazioni da compiere
Sequenza di operazioni
Pseudocodice
Linguaggio di programmazione fittizio, non direttamente compilabile o
interpretabile da un programma compilatore o interprete, il cui scopo è
quello di rappresentare algoritmi.
Utilizzato alternativamente al diagramma di flusso e non è soggetto a
molte limitazioni intrinseche di quest'ultimo tipo di rappresentazione.
Non esiste uno pseudolinguaggio standard e convenzionalmente usato
Dipendente dal paradigma di programmazione scelto per risolvere un
problema, mentre indipendente dal linguaggio di programmazione,
purché quest'ultimo rispetti il paradigma scelto
Diagrammi E-R
Modello per la rappresentazione concettuale dei dati ad un alto livello di astrazione,
Spesso utilizzato nella prima fase della progettazione di una base di dati in cui è necessario tradurre le informazioni risultanti dall'analisi di un determinato dominio in uno schema concettuale.
Il modello E-R si basa su un insieme di concetti molto vicini alla realtà di interesse:
Infatti, pur essendo orientato alla progettazione di basi di dati, il modello prescinde dai criteri specifici di organizzazione fisica dei dati persistenti nei sistemi informatici.
Tecniche per la traduzione dei concetti ad alto livello (meglio comprensibili) in concetti di più basso livello tipici dei vari modelli logici (ad esempio il modello relazionale) implementati nei diversi DBMS esistenti.
Uno degli approcci più solidi per la modellazione di applicativi in ambito informatico;
spesso usato anche al di fuori del contesto della progettazione di database, ed è stato utilizzato come modello di riferimento per numerose altre notazioni per la modellazione.
Al modello E-R è ispirato UML.
Entità
Rappresentano classi di oggetti (fatti, cose, persone, ...) che hanno
proprietà comuni ed esistenza autonoma ai fini dell'applicazione di
interesse.
Un'occorrenza di un'entità è un oggetto o istanza della classe che l'entità
rappresenta
In uno schema, ogni entità ha un nome che la identifica univocamente, e
viene rappresentata graficamente tramite un rettangolo con il nome
dell'entità al suo interno.
Relazioni (o associazioni)
Rappresentano un legame tra due o più entità.
Grado dell'associazione: un buono schema E-R è caratterizzato da una
prevalenza di associazioni con grado due.
È possibile legare un'entità con se stessa (attraverso un'associazione ad
anello), nonché legare le stesse entità con più associazioni.
Rappresentata graficamente da un rombo contenente il nome
dell'associazione. Il nome può essere un verbo in modo da fornire una
direzione di lettura, oppure può essere un sostantivo in modo da non dare
una direzione di lettura
Attributi
Le entità e le associazioni possono essere descritte usando una serie di
attributi.
Tutti gli oggetti della stessa classe entità (associazione) hanno gli stessi
attributi: questo è ciò che si intende quando si parla di oggetti simili.
La scelta degli attributi riflette il livello di dettaglio con il quale vogliamo
rappresentare le informazioni sulle entità e sulle associazioni.
Per ciascuna classe entità o associazione si definisce una chiave.
Si rappresenta con un'ellisse al cui interno viene specificato il nome
dell'attributo o anche semplicemente, nel caso di diagrammi complessi,
indicandone solo il nome, eventualmente in corrispondenza.
In caso di chiave primaria, il nome dell'attributo viene sottolineato.
UMLUnified Modeling Language: linguaggio di modellazione unificato
linguaggio di modellazione e specifica basato sul paradigma object-
oriented.
Usato per
modellazione di sistemi software: descrivere il dominio applicativo di un sistema
software e/o il comportamento e la struttura del sistema stesso
descrivere sistemi hardware,
Descrivere strutture organizzative aziendali,
Descrivere processi di business.
UML
insieme di viste che rappresentano diversi aspetti della cosa modellata
(funzionamento, struttura, comportamento …)
sintassi e regole di interpretazione; non si tratta quindi di una metodologia
di progettazione e per questo motivo può essere adottato con diverse
metodologie o in ambiti diversi da quello informatico.
UML
La notazione UML è semi-grafica; un modello UML è costituito da una collezione organizzata di diagrammi correlati, costruiti componendo elementi grafici (con significato formalmente definito), elementi testuali formali, ed elementi di testo libero. Ha una semantica molto precisa e un grande potere descrittivo.
Il linguaggio è stato progettato con l'obiettivo esplicito di facilitare il supporto software alla costruzione di modelli e l'integrazione di questo supporto con gli ambienti integrati di sviluppo.
Molti ambienti di sviluppo comprendono strumenti di modellazione in UML e forniscono meccanismi automatici di traduzione parziale dei diagrammi UML in codice. Viceversa, molti ambienti software dedicati alla modellazione in UML consentono di generare codice in diversi linguaggi.
UML è un linguaggio di modellazione general purpose, che fornisce concetti e strumenti applicabili in tutti i contesti.
UML fornisce un meccanismo standard che consente di estendere il linguaggio. (profilo UML)
UML
Descrizione di un sistema secondo tre aspetti principali:
modello funzionale: rappresenta il sistema dal punto di vista dell'utente,
diagrammi dei casi d'uso
modello a oggetti (object model) rappresenta la struttura e sottostruttura
del sistema utilizzando i concetti object-oriented di classe, oggetto, le
relazioni fra classi e fra oggetti.
diagrammi delle classi, diagrammi degli oggetti, e diagrammi di deployment
modello dinamico: rappresenta il comportamento degli oggetti del
sistema,
diagrammi di sequenza, diagrammi delle attività, diagrammi degli stati
Modello UML
Un modello UML è costituito da:
Viste: mostrano i diversi aspetti del sistema per mezzo di un insieme di diagrammi.
Diagrammi: permettono di descrivere graficamente le viste logiche.
Elementi del modello: concetti che permettono di realizzare vari diagrammi (es.
attori, classi, packages, oggetti, e così via).
Viste
Lo strato più esterno dell’UML è costituito dalle seguenti viste:
Vista dei casi d'uso
Vista di progettazione
Vista di implementazione
Vista dei processi
Vista di sviluppo
UML: un esempio
Supponiamo di dover realizzare il software per una biblioteca, quindi dovremo
progettare il suo sistema informativo che dovrà gestire una serie di informazioni
relativi alle risorse ( libri, utenti, operatori, … ) e gestire una serie di
movimentazione delle risorse ( prestiti, arrivo di nuovi libri, dismissioni, … ).
Esempio: fase di analisi
Analista: deve raccogliere più informazioni possibili sul sistema della
biblioteca
Risultato: casi d’uso del sistema informativo della biblioteca
Esempio: Casi d’uso del sistema
informativo della biblioteca
Esempio: fase di design (o progettazione)
fase successiva all'analisi, in cui tutta la documentazione prodotta
dall'analista viene presa in carico dai DESIGNER.
distinguere le varie parti del sistema, in modo da creare una sorta di
blocchi che interagiscono tra loro
LOGICA DEL PROGETTO, ovvero come viene gestita la biblioteca a livello
macroscopico ( Libri, Utenti, Prestiti );
GRAFICA, ovvero l'interfaccia front-end per il bibliotecario (ed eventualmente
per l'utente che guarda i libri da casa );
PERSISTENZA, ovvero come sono organizzati i dati della biblioteca;
Esempio: diagramma di collaborazione
Esempio: diagramma di sequenza
Esempio: Diagramma di classe
Per ogni oggetto del sistema vengono elencati i metodi che dovranno essere
esposti per permettere l'interazione con gli altri elementi del sistema
Esempio