Analisi e progettazione ad oggetti

Documenti analoghi
Introduzione alla programmazione Object Oriented. Luca Lista

Ingegneria del Software

Modelli e Metodi per la Simulazione (MMS)

Numero di contratto di noleggio CodiceInterno Chiave primaria CodiceInternazionale Codice identificativo internazionale

Programmazione con Java

IL TIME MANAGEMENT: ORGANIZZARE IL TEMPO E GOVERNARLO

Ore settimanali di lezione: 3 h di cui 2 in compresenza con l insegnante di Lab. di Informatica prof.ssa E.De Gasperi

Metodologia di lavoro: PCM & GOPP

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

Ingegneria del Software

Pro/INTRALINK Guida al curriculum

Introduzione alla OOP Object Oriented Programming

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Basi di Dati. Il Modello Entità-Relazione. Il Modello Entità-Relazione

SCUOLA PRIMARIA CURRICOLO SCIENZE DELIBERATO ANNO SCOL. 2015/2016

PIANO DI LAVORO DI ECONOMIA AZIENDALE

Progettazione logica

Il modello Entità/Relazioni (ER)

NUCLEI FONDANTI L azienda come sistema: elementi soggetti e tipologie La localizzazione e la gestione dell azienda I calcoli finanziari

Sommario. Introduzione... 13

Esercizi svolti sul modello ER con regole di lettura. Esercizio 1

Le basi di dati. Definizione 1. Lezione 2. Bisogna garantire. Definizione 2 DBMS. Differenza

Metodologie e modelli di progetto

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Classe prima. Classe seconda

Modulo 16. Introduzione ai Design Patterns. Tutte le case assolvono alla medesima funzione: offrire uno spazio abitativo

Parte della gestione finanziaria che ha l'obiettivo di ottimizzare il flusso di disponibilità liquide di un'azienda. Ha lo scopo di non mantenere mai

CREARE UNA NUOVA IMPRESA

PSR Misure strutturali. Modalità e criteri per estrazione campione controlli in loco

PERCORSO DI TECNICO DEI SERVIZI DI ANIMAZIONE TURISTICO SPORTIVA IeFP - ISIS MAMOLI BERGAMO

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Kit Documentale Qualità UNI EN ISO 9001:2015. Templates modificabili di Manuale, Procedure e Modulistica. Nuova versione 3.

ABILITA PREREQUISITI NECESSARI. Applicare le quattro operazioni aritmetiche ATTIVITA DIDATTICHE E STRUMENTI CONSIGLIATI

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo

CURRICOLO DI SCIENZE Scuola Primaria CLASSI 1^ e 2^ COMPETENZE CONOSCENZE ABILITÀ

ARGOMENTI IN TEMA DI INFEZIONI

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Standard di Percorso Formativo Tecnico della progettazione e della stampa con tecnologia 3D Allegato 2B

Programmazione a Oggetti Modulo B

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Introduzione alle macchine a stati (non definitivo)

CURRICOLO DI SCIENZE Scuola Primaria CLASSI 1^ e 2^ COMPETENZE CONOSCENZE ABILITÀ

Elena Baralis, Claudio Demartini

Esercizio 1: un semplice schema concettuale. Descrivere lo schema concettuale della seguente realtà:

RISOLVERE I TEMI D ESAME

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Programmi e Oggetti Software

NEGOZIO ELETTRONICO. Premesse e Funzionalità

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

ECONOMIA AZIENDALE Prova scritta del 3 febbraio 2017

IL PERCORSO LOGICO DI D U N P R P O R GET E T T O T

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

Esercitazione di Basi di Dati

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

MODULO BIMESTRALE N.1:Le Grandezze in Fisica

LA PROGETTAZIONE CONCETTUALE

La programmazione ad oggetti: chiamate di metodi. Overloading. This

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Programmazione di INFORMATICA e Laboratorio

Istituto Professionale di Stato per l Industria e l Artigianato Brugnera (pn)

Import Dati da Esatto Release 5.0

SCUOLA SECONDARIA DI I GRADO ALIGHIERI - TANZI MOLA DI BARI ANNO SCOLASTICO 2011/1012

I database. Introduzione alla teoria delle basi di dati

Principi di Progettazione del Software a.a Introduzione al corso Prof. Luca Mainetti Università del Salento

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

DIPARTIMENTO DISCIPLINARE: SCIENZE (SC) N.B. L'ordine delle competenze non è tassonomico, ma è da considerare secondo una mappa concettuale.

Ingegneria del Software 6. Classi e oggetti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Guida introduttiva: Gestisci utenti e visibilità partner

CITTA DI SAN DANIELE DEL FRIULI

TECNOLOGIA SCUOLA SECONDARIA CLASSE SECONDA

OBIETTIVI PER LA SUFFICIE ZA DELLE CLASSI PRIME SCIE ZE ATURALI

Procedura Amministrativo-Contabile Funzionario delegato. La gestione del Funzionario delegato

Classe III specializzazione elettronica. Sistemi automatici

Corso di Ingegneria del Software. Activity Diagram

PIANO DI LAVORO. Disciplina: Diritto e tecnica amministrativa della struttura ricettiva Ore settimanali di insegnamento: 4 Classe: 3CC

Progettazione concettuale

TRACEABILITY&FASHION (TESSILE, ABBIGLIAMENTO, CALZATURIERO, PELLETTERIA, PELLICCERIA) IL SISTEMA DI TRACCIABILITÀ VOLONTARIO

Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++

ECONOMIA AZIENDALE Indirizzo AFM, IGEA, Liceo e Mercurio

SISTEMI OPERATIVI, RETI, INTERNET

Contabile. Classificazione ATECO ATTIVITÀ DI SUPPORTO PER LE FUNZIONI D'UFFICIO E ALTRI SERVIZI DI SUPPORTO ALLE IMPRESE

Progettazione di Database

Corso di Ingegneria del Software. Modelli di produzione del software

Ciclo di vita di un sistema informativo

10 Quasi esperimenti. Giulio Vidotto Raffaele Cioffi

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Istituto Comprensivo di Sissa Trecasali Allegato 2.E al Piano Triennale dell Offerta Formativa 2016/19 CURRICOLO DI SCIENZE SCUOLA DELL INFANZIA

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Materiale didattico. Sommario

Psicoterapia cognitivo-comportamentale in età evolutiva. Dott.ssa Elena Luisetti

LA PIANIFICAZIONE DEI PROGETTI

PANE AL PANE Pane e farine nella tradizione della mia Regione

PROGRAMMAZIONE DISCIPLINARE SCUOLA PRIMARIA

Bagnasco, Barbagli, Cavalli, Corso di sociologia, Il Mulino, 2007 Capitolo VI. Identità e socializzazione. Identità e socializzazione

Transcript:

Analisi e progettazione ad oggetti

Richiami di Analisi e progettazione ad oggetti L idea di base della analisi ad oggetti è di partire da una descrizione del problema in termini di entità e relazioni tra di esse, per poi arrivare ad identificare le classi e le loro relazioni, utilizzando i principi base della programmazione ad oggetti, ereditarietà, polimorfismo ed incapsulamento Si possono individuare tre fasi 1. Identificare le classi 2. Attribuire le responsabilità ed i comportamenti a ciascuna classe 3. Descrivere le relazioni fra le classi 2

Identificare le classi Nella prima fase si identificano i concetti principali che identificano l applicazione o il problema da affrontare Possono identificare sia entità (animate o no), come Persona, Libro, Auto; che concetti (conto corrente, pagamento, partita) E utile fare un elenco di tutte le classi possibili, che poi possono essere eliminate 3

Esempio gestione dei conti Possibili classi corrente in una banca Banca, cliente, conto corrente, versamento, bonifico, saldo, ottenere valuta estera 4

Attribuire i comportamenti Identificazione metodi e attributi Per identificare i metodi e gli attributi degli oggetti si può far riferimento alle azioni che effettuano le identità identificate come oggetti Gli attributi rappresentano le principali proprietà degli oggetti, i metodi sono i comportamenti richiesti per la risoluzione del problema Identificare possibili aggregazioni tra oggetti per rappresentare aspetti più complessi (il conto corrente associato ad un risparmiatore) 5

Esempio (continua) Calcolare il saldo conto Effettuare un bonifico a favore di un beneficiario 6

Le responsabilità Cercare comportamenti comuni a più classi e verificare se sia possibile creare una classe astratta Bisogna identificare chiaramente le responsabilità, e distribuirle equamente (non accollarle in una sola o poche classi, non usare classi ridondanti) 7

Esempio (continua) Chi deve calcolare il saldo conto? IL cliente o la banca? Chi deve convertire la valuta? La banca può chiedere aiuto? 8

Relazione client / server Distinguere tra i ruoli tra richiedente e fornitore (client / server) Un client sa di cosa ha bisogno, e come richiederlo al server. Si disinterssa di come il lavoro venga svolto, se questo viene delegato dal server ad altri Allo stesso modo il server sa adempiere alla richiesta dei client, ma non è interessato alla natura del client, ne vuole rilevare come viene svolto il lavoro (se a sua volta viene delegato) 9

Assegnare le responsabilità Un aspetto centrale nel design ad oggetti è una giusta attribuzione delle responsabilità tra le classi, per assicurare sial la modularità che il riuso degli oggetti In generale, si deve evitare di creare classi troppo accentratrici, con metodi complessi che rimandano alla programmazione procedurale più che a quella ad oggetti Le classi dovrebbero essere egoiste cercare di rifiutare responsabilità, di lavorare di meno e di delegare 10

Identificare le relazioni E importare identificare correttamente le relazioni in gioco, in termini di collaborazioni aggregazioni generalizzazioni Evitare le relazioni inutili e di eccedere nelle dipendenze 11

Implementazione delle relazioni Generalizzazione (Ereditarietà ): E un.. Aggregazione/Associazione: Ha (Composizione creazione) Dipendenza: Conosce (Composizione) Usare ereditarietà se effettivamente è richiesto il polimorfismo Cercare di non modificare il comportamento della classe base 12

La banca cambia la valuta con la collaborazione della banca centrale Il cliente dispone un bonifico alla banca dando gli estremi del beneficiario 13

Sviluppo evolutivo Nell'analisi e nella programmazione ad oggetti si predilige uno sviluppo evolutivo del progetto, attraversi più cicli di requisiti/analisi/progettazione/test/verifica, rispetto ad un tradizionale separazioni delle fasi a cascata 14

Ereditarietà ed aggregazione 15

Estensione del modello per includere segretarie, impiegati di magazzino, venditori 16

Riassestamento della gerarchia per tenere conto delle caratteristiche introdotte: attribuire le nuove caratteristiche nella super classe? 17

Introdurre delle classi intermedie? 18

Come prevedere le future espansioni del modello? 19

Spesso è preferibile interpretare le relazioni in termine di composizione/aggregazione piuttosto che di ereditarietà 20

Interpretare le relazioni in termini di ereditarietà aggregazione dipendenza influisce l intero ciclo di vita del software ad oggetti L aggregazione spesso deve essere preferita all ereditarietà quando favorisce l evoluzione del modello, inoltre si presta meglio anche ad essere interpretata nei modelli ER (database) 21