Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Modellazione di sistema E. TINELLI
Contenuti Approcci di analisi Linguaggi di specifica Modelli di analisi Modelli contestuali Modelli comportamentali Modelli di informazione Modelli a oggetti Modelli strutturati 2
Approcci all Analisi Approccio Informale nessun modello del sistema viene costruito (uso di un linguaggio informale) la raccolta delle informazioni avviene attraverso una serie di riunioni tra gli utenti/committenti ed analisti, l uso di questionari, studio di documentazione esistente, si procede attraverso la formulazione e il raffinamento di vari documenti di SRS che sono sottoposti alla convalida nell ambito di opportuni meeting Approccio basato su modelli concettuali produce rappresentazioni del dominio applicativo e del sistema basate su linguaggi formali o semi-formali inseriti nel documento Approccio basato sulla prototipazione il problema viene analizzato ed i requisiti sono compresi grazie all uso di un prototipo del sistema da parte di cliente ed utenti 3
Alcuni approcci basati sui modelli concettuali Analisi Strutturata basata sull uso di Data Flow Diagrams (DFD) e Dizionario dei Dati l analisi del problema viene eseguita usando l approccio della decomposizione delle funzioni i dati e le relative relazioni sono modellati con linguaggi diversi (es. modello Entità-Relazioni) Analisi Object-Oriented l analisi del problema viene eseguita usando l approccio della decomposizione in oggetti (entità/ concetti del dominio del problema) uso di linguaggi di modellazione, es. UML 4
Data Flow Diagram (DFD) Rappresenta le trasformazioni che i dati subiscono nel loro flusso all interno del sistema Ogni sistema di elaborazione effettua una trasformazione di dati di ingresso in dati di uscita Permette anche di descrivere processi di business Un produttore o consumatore di dati (persone, dispositivi, sensori) Un elaboratore di dati (trasforma dati di input in dati di output) Il flusso dati in un sistema inizia come input e termina come output I dati devo essere spesso memorizzati per elaborazioni successive 5
DFD Esempi 6
Dizionario dei dati Lista ordinata alfabeticamente dei nomi inclusi nei modelli del sistema (nomi di entità, di relazioni, di attributi, di servizi, ecc.) Possibile struttura di un dizionario: Nome Descrizione Tipo Data Composizione Creatore Vantaggio quando si sviluppa un grande modello di sistema in cui intervengono molte persone è possibile che vengano usati gli stessi nomi (strumenti CASE per verificare l unicità del nome) 7
Tecniche di specifica Le tecniche si suddividono rispetto al grado di formalità della descrizione (del rispettivo linguaggio). La formalità indica il rigore con cui sono definite la sintassi e la semantica del linguaggio. rispetto a cosa descrivono del sistema (il loro stile) ossia quale aspetto del sistema è più facile descrivere utilizzando il linguaggio (comportamento o proprietà) 8
Grado di Formalità Notazioni informali: le specifiche del sistema sono descritte in linguaggio naturale. Spesso usato perché è facilmente comprensibile dal committente ma è una possibile fonte di ambiguità Notazioni formali: la specifica è un oggetto formale rappresentata in una notazione logico-matematica definita in modo rigoroso sul piano sintattico e semantico. Aumenta le capacità di astrazione ed elimina le ambiguità. Consente di ragionare su e verificare proprietà, anche con strumenti (semi)automatici che supportano quel linguaggio. Notazioni semi-formali: immediatamente comprensibili utilizzano notazioni grafiche accompagnate da descrizioni in linguaggio naturale; riducono le interpretazioni ambigue; i modelli semiformali sono allo stato dell arte i più flessibili ed i più usati 9
Stili di specifica Stile descrittivo definisce le proprietà desiderate del sistema con un elevato grado di astrazione cioè non descrive una possibile realizzazione del sistema E più difficile capire come si comporta il sistema descritto E più facile fare ragionamenti (es. dimostrare formalmente che vale una certa proprietà, modificare la descrizione perché valga una proprietà) Stile operazionale: definisce il comportamento desiderato del sistema. Si descrive il comportamento atteso mediante una macchina astratta suggerendone una possibile implemementazione Pro E facilmente eseguibile E facile costruire un prototipo e verificarne l aderenza alla descrizione (medesimo comportamento) Contro Spinge decisamente verso una certa implementazione E più difficile risalire alle proprietà del sistema e provarle Specifica mista 10
Stili di specifica e Linguaggi Specifica operazionale: Diagrammi del Flusso Dati (DFD) Macchine a Stati Finiti (FSM) - sono molto usate per verificare formalmente le proprietà dei sistemi. Una FSM si trova sempre in un solo stato e permette di specificare soltanto uno stato successivo per una stessa azione. Reti di Petri (PN) - formalismo ideato negli anni 60 per modellare sistemi concorrenti si focalizza sul controllo. Formalmente sono definite da una quadrupla <P,T,F,W> mentre con token si indica lo stato della rete. Specifica descrittiva: Diagrammi Entità- Relazione (ER) Specifiche basate sulla Logica es. TRIO linguaggio di specifica sviluppato fine anni 80 esteso con costrutti orientati agli oggetti (TRIO+) è una logica temporale del primo ordine, con una nozione metrica di tempo. Specifica mista: Linguaggio Z - fornisce un modello (una macchina astratta) e poi descrive, facendo uso di logica, il meccanismo con cui funziona questa macchina astratta. UML 11
I linguaggi di specifica - Riepilogo 12
Che cosa è un modello? Per modello del sistema si intende una rappresentazione astratta del sistema che facilita la comprensione delle proprietà del sistema e delle sue caratteristiche di funzionamento, prima che il sistema venga costruito Per descrivere completamente un sistema è necessario costruire vari modelli che rappresentino il sistema da vari punti di vista (informazioni, funzioni e comportamento dinamico) Si possono sviluppare diversi modelli per rappresentare il sistema secondo diverse prospettive (prospettiva esterna, prospettiva comportamentale, prospettiva strutturale) 13
Modello contestuale Durante la fase di deduzione ed analisi dei requisiti è bene fissare i confini del sistema (distinguere cosa è il sistema e cosa è l ambiente del sistema) Es. per BiblioSYS bisogna decidere se i vari database delle biblioteche fanno parte del sistema o no Un modello contestuale è generalmente costituito da un semplice modello architetturale di alto livello espresso come diagramma a blocchi: ogni rettangolo è un sottosistema e le linee rappresentano le relazioni tra i sottosistemi Un modello architetturale descrive l ambiente di un sistema e non le relazioni con altri sistemi utilizzare altri modelli quali modelli di processo o modelli di data-flow 14
Modello comportamentale È utilizzato per descrivere il comportamento generale del sistema e ne rappresenta gli aspetti funzionali: Data-flow diagram se si vuole mettere in evidenza come il sistema elabora i dati secondo una prospettiva funzionale in cui ogni trasformazione rappresenta una singola funzione o processo Macchina a stati finiti se si vuole descrivere come il sistema reagisce ad eventi esterni o interni mostrando gli stati del sistema e gli eventi che causano la transizione da uno stato all altro e non i dati scambiati (usato per sistemi real-time generalmente gestiti da stimoli esterni) Diagrammi UML per rappresentare gli aspetti funzionali del sistema (use case diagram, activity diagram, interaction diagram) 15
Modello di informazione È utilizzato per definire la forma logica dei dati elaborati dal sistema (modellazione semantica dei dati) Si possono utilizzare i modelli Entità-Relazioni (ER) gli schemi logici ottenuti da tali modelli sono naturalmente in terza forma normale Database a oggetti Rappresentazione UML di un modello ER entità sono classi di oggetti semplificate e gli attributi sono gli attributi delle classi Diagramma delle dipendenze produce schemi logici in quinta forma normale I modelli di informazione mancano di dettaglio e si dovrebbero mantenere descrizioni più dettagliate su entità, attributi e relazioni in un Dizionario dei Dati 16
Diagramma delle dipendenze convenzioni grafiche 17
Tipi di bolle Target è la bolla a cui arriva una dipendenza singola Chiave finale è la bolla a cui arriva una dipendenza multipla e da cui non parte alcuna dipendenza Chiave primaria - è la bolla da cui dipende la bolla Target, se la dipendenza è singola, oppure la bolla Finale, se la dipendenza è multipla Chiave uplink è la bolla da cui parte una dipendenza multipla per una chiave primaria o per un altra uplink Bolla doppia, tripla, ecc. questo tipo di bolla serve a rappresentare diverse dipendenze tra i dati di uno stesso diagramma 18
Esempio di diagramma delle dipendenze 19
Modello a oggetti Comunemente utilizzato per l intero processo di sviluppo software Una classe è un astrazione da un insieme di oggetti che identifica gli attributi comuni ed i servizi/operazioni fornite da ogni oggetto. Gli oggetti sono istanze della classe ossia entità eseguibili con gli attributi ed i servizi della classe relativa. Il processo di analisi per identificare gli oggetti e le classi è riconosciuto come una delle più difficili aree dello sviluppo orientato agli oggetti Diversi metodi di analisi orientata agli oggetti furono proposti negli anni 90 integrati per produrre un unico modello: Unified Process 20
Modello strutturato È un metodo sistematico di produrre modelli di un sistema che generalmente ha il proprio insieme di modelli preferito (es. UP) Definiscono un processo da cui derivare i modelli ed un insieme di linee guida Sono disponibili strumenti CASE che supportano l editing del modello, la generazione di codice e report e alcune proprietà di verifica Punti deboli: non forniscono adeguato supporto per i requisiti NON funzionali, sono indiscriminati, possono produrre troppa documentazione e troppo dettagliata 21