Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ......

24
Strumenti di modellazione Gabriella Trucco

Transcript of Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ......

Page 1: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Strumenti di modellazioneGabriella Trucco

Page 2: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 3: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Il prodotto software

Parlando di software, dobbiamo tener conto di:

Affidabilità

Correttezza

Interoperabilità

Mantenibilità

Riusabilità

Usabilità

Verificabilità

Page 4: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Classificazione dei linguaggi di

modellazione

Numerosi criteri di classificazione:

grafici o testuali

interpretabili o non interpretabili

oggetto della modellazione

Page 5: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Diagramma di flusso

Linguaggio di modellazione grafico

Consente di descrivere in modo schematico:

Operazioni da compiere

Sequenza di operazioni

Page 6: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 7: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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.

Page 8: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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.

Page 9: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 10: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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.

Page 11: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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.

Page 12: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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.

Page 13: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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)

Page 14: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 15: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 16: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 17: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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, … ).

Page 18: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Esempio: fase di analisi

Analista: deve raccogliere più informazioni possibili sul sistema della

biblioteca

Risultato: casi d’uso del sistema informativo della biblioteca

Page 19: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Esempio: Casi d’uso del sistema

informativo della biblioteca

Page 20: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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;

Page 21: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Esempio: diagramma di collaborazione

Page 22: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Esempio: diagramma di sequenza

Page 23: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

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

Page 24: Fasi della programmazione - homes.di.unimi.it · Linguaggio di programmazione fittizio, ... Diagrammi E-R Modello per la ... Il modello E-R si basa su un insieme di concetti molto

Esempio