Progettazione ad oggetti



Похожие документы
Soluzione dell esercizio del 2 Febbraio 2004

Progettazione concettuale

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Automazione Industriale (scheduling+mms) scheduling+mms.

Fasi di creazione di un programma

Strumenti di modellazione. Gabriella Trucco

Organizzazione degli archivi

Alessandra Raffaetà. Basi di Dati

Rappresentazione grafica di entità e attributi

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Concetti di base di ingegneria del software

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

Lezione 2. Il modello entità relazione

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

La Progettazione Concettuale

Progettaz. e sviluppo Data Base

Database. Si ringrazia Marco Bertini per le slides

Esercitazione di Basi di Dati

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Corso di Informatica

Officina Meccanica. Analisi, progetto e sviluppo

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

I DATABASE Database relazionale

Soluzione dell esercizio del 12 Febbraio 2004

Un modello è ragionevole quando contiene queste tre caratteristiche.

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Object Oriented Programming

Dalla progettazione concettuale alla modellazione di dominio

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Esercitazione 7 Progettazione concettuale. Versione elettronica: L07.progConcettuale.pdf

Modulo 4: Ereditarietà, interfacce e clonazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Prova scritta del corso di Basi di dati attive 17 Dicembre Agenzia

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011.

Programmi e Oggetti Software

Introduzione all Information Retrieval

Introduzione alla teoria dei database relazionali. Come progettare un database

Modellazione di sistema

Una metodologia per la specifica di software basato su componenti

Progettazione : Design Pattern Creazionali

Progettaz. e sviluppo Data Base

Sistemi informativi secondo prospettive combinate

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Le Basi di Dati. Le Basi di Dati

MODELLO RELAZIONALE. Introduzione

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Gestione Iter Manuale Sistemista. Gestione Iter Manuale Sistemista

DATABASE. A cura di Massimiliano Buschi

Corso di. Dott.ssa Donatella Cocca

1. BASI DI DATI: GENERALITÀ

Corso di Amministrazione di Reti A.A. 2002/2003

Basi di Dati Relazionali

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Raggruppamenti Conti Movimenti

BASI DI DATI - : I modelli di database

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

IL SISTEMA INFORMATIVO

LEAD GENERATION PROGRAM

Progettazione Logica. Progettazione Logica

Data Base. Prof. Filippo TROTTA

Database 1 biblioteca universitaria. Testo del quesito

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

ITI M. FARADAY Programmazione modulare a.s

Diagrammi di Flusso dei Dati

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Object Oriented Software Design

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Progetto Motorizzazione. Si vuole realizzare un'applicazione base di dati per la gestione di un ipotetico ufficio della motorizzazione.

Ciclo di vita dimensionale

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Informatica Industriale Modello funzionale Casi d uso

Progettazione di una base di dati Ufficio della Motorizzazione

Automazione Industriale 4- Ingegneria del Software

SISTEMA DI GESTIONE SICUREZZA

Progetto di basi di dati Laboratorio di diagnosi mediche

Traccia di soluzione dell esercizio del 25/1/2005

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

ref building AREA ASSET AREA PROPERTY AREA FACILITY AREA AGENCY SCHEDA DI PRODOTTO CONSISTENZA CATASTO FISCALITA GESTIONE DOCUMENTALE CAD GIS

Guida all uso di Java Diagrammi ER

Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono:

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Транскрипт:

Progettazione ad oggetti Gli elementi reali vengono modellati tramite degli oggetti Le reazioni esistenti nel modello reale vengono trasformate in relazioni tra gli oggetti Cos'è un oggetto? Entità dotata di uno stato (informazione) Entità che offre un numero di operazioni (comportamento) Un oggetto è caratterizzato da un numero di operazioni e da uno stato che tiene traccia delle operazioni eseguite

Esempio: una famiglia Modelliamo una famiglia e le relazioni fra di esse Il nostro oggetto modella una persona i due termini sono spesso utilizzati come sinonimi, in realtà l'oggetto persona è sempre una rappresentazione della persona reale Ogni persona ha associate le informazioni (es. età) ad essa relative (attributi) Operazioni (metodi) per accedere alle informazioni ed eventualmente modificarle Operazioni per modellare il comportamento (cammina, balla, etc) - stimoli

Relazioni fra gli oggetti Relazioni statiche due oggetti conoscono l'esistenza uno dell'altro relazioni a lungo termine aggregati partizioni Relazioni dinamiche scambio di informazioni fra i due oggetti collegati agli stimoli Balla Balla

Data hiding Separazione netta tra mondo esterno ed interno interagisco con gli oggetti attraverso le operazioni messe a disposizione dall'esterno non ho conoscenza di come l'oggetto compie l'operazione La realizzazione delle funzionalità interne non dipende dall'interfaccia e viceversa Concetto di tipo di dati astratto

Classi e istanze Le persone dell'esempio hanno tutte proprietà comuni La classe è un template per costruire oggetti e descrive come gli oggetti sono strutturati e quali sono le loro operazioni (abstract data type) La classe inoltre definisce come vengono eseguite queste operazioni (implementazione del data type) Ogni persona ha però una propria identità diversa da tutte le altre L'istanza è un oggetto appartenente ad una classe La classe definisce il comportamento e l'istanza definisce lo stato dell'oggetto

Raffiniamo il modello Alcune proprietà od operazioni non sono uguali per tutti gli oggetti Es: distinguo le persone in uomini e donne Alcune operazioni sono comuni, altre sono diverse o specifiche di una delle due nuove classi Posso definire la classe uomo e la classe donna come classi distinte

Polimorfismo La classe uomo può avere un attributo migliore amico l'attributo migliore amico può fare riferimento sia a un (istanza della classe) uomo o ad una donna Questa situazione si chiama polimorfismo chi invia uno stimolo non ha necessità di sapere a che classe appartiene l'istanza della classe a cui si riferisce Lo stimolo può essere interpretato in diversi modi a seconda della classe che lo riceve Posso imporre limiti al polimorfismo (l'amico può essere un uomo o una donna ma non una macchina)

Ereditarietà Le classi uomo e donna hanno molte parti in comune Estraiamo le parti comuni a formare una classe persona Le classi uomo e donna derivano o ereditano dalla classe persona Se la classe B deriva dalla classe A, tutte le informazioni e metodi di A appartengono anche a B Vantaggi dell'ereditarietà le parti comuni sono definite in un solo punto riduzione delle ridondanze semplificazione delle modifiche

Terminologia Persona Antenati Generalizzazione Specializzazione Uomo Donna Discendenti Classi astratte: progettate per essere derivate (non si creano istanze) Classi concrete: progettate per creare istanze

Gerarchie di classi Esempio: vogliamo definire la classe anziano Persona Persona Uomo Donna Anziano Uomo Donna Anziano Persona maschio Donna Anziano Uomo

Ragioni dell'ereditarietà Riutilizzo le parti comuni di codice possono essere inseriti in un unica classe padre Tipizzazione (subtyping) La classe derivata aggiunge nuove funzioni alla classe da cui deriva il comportamento non è modificato Specializzazione Elimino o modifico i comportamenti della classe padre Concettuale L'ereditarietà modella una relazione concettuale presente nel mondo reale

Analisi orientata agli oggetti Individuare gli oggetti Quali oggetti sono presenti nel dominio? Quali sono quelli essenziali? Organizzare gli oggetti relazioni statiche tra oggetti gerarchie ed ereditarietà Descrivere le interazioni degli oggetti use case Descrivere le operazioni degli oggetti deriva dalla formalizzazione degli use case Descrivere l'interno degli oggetti attributi macchine a stati

Diagrammi degli oggetti Interfaccia utente Controllo Entità

Differenti tipologie di oggetti funzioni comportamento dati informazione presentazione

Macchina del caffè gettoniera display tastiera resto gestore cuoco gestione denaro cassa prodotto caffè cioccolata motore valvola produzione bevande

Interfacce Le interfacce sono il punto di contatto con l'esterno (estraibili dagli use case) Allocazione delle funzionalità controllo dominante: l'interfaccia non include funzionalità di gestione od elaborazione dialogo dominante: l'interfaccia include le funzionalità di controllo del flusso controllo misto: le funzionalità di controllo sono divise tra interfaccia e entità controllo separato: le funzioni sono separate da entrambi gli oggetti e messe in un oggetto specifico

Entità Oggetti destinati a mantenere informazioni oltre la durata di uno use case Informazioni centrali per il funzionamento del sistema Attributi ed entità hanno funzioni simili due informazioni si associato ad entità diverse se sono in qualche modo indipedenti Operazioni comuni: Salvare e caricare informazioni creare e distruggere l'oggetto comportamenti che sono legati alla struttura dei dati

Oggetti di controllo Avendo definito interfacce ed entità ci sono funzioni che non hanno una collocazione In prima approssimazione abbiamo un oggetto di controllo per ogni use case Le informazioni associate ad un oggetto di controllo sono a breve termine Solitamente abbiamo un oggetto di controllo per ogni attore

Progettazione e produzione Traduzione dei modelli di analisi nei modelli realizzativi Si deve tenere conto delle esigenze realizzative (linguaggio, database, architettura...) Il diagramma ideale può essere modificato elementi aggiunti elementi modificati elementi rimossi Tracciabilità

Modelli realizzativi Diagramma delle interazioni Diagramma degli stati Diagramma delle classi

Interaction diagram esterno gettoniera gestore resto display tastiera cuoco moneta moneta(imp) totale(imp) pressione tasto selezione costo selezione eroga preparazione in corso t

Macchine a stati In molti sistemi l'uscita al tempo t dipende da quello che è accaduto prima di t Si può esprimere l'uscita in funzione degli ingressi I(t) e della storia H(t) Si parla di sistema a stati finiti quando esistono un numero finito di storie che hanno effetti diversi L'intera storia può essere rappresentata da un vettore X(t) con un numero finito di elementi

Equazioni di stato Out(t) = f(i(t), X(t)) X(t+1) = g(i(t), X(t)) I(t) X(t) f() O(t) I(t) X(t) g() X(t+1) Ritardo

Diagramma di transizione b,c A a a,c B A,B,C: stati a,b,c: eventi c b C a,b

IEC 62304: ciclo di vita

Tipi di test Correttezza il programma deve dare i risultati attesi Affidabilità non si devono avere crash o problemi in situazioni limite Performance le risorse richieste e il tempo necessario devono essere accettabili Sicurezza protezione contro accessi non autorizzati