Paradigma object-oriented



Documenti analoghi
Strumenti di modellazione. Gabriella Trucco

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

Alessandra Raffaetà. Basi di Dati

Modellazione di sistema

UML - Unified Modeling Language

Object Oriented Programming

Modellazione dei dati in UML

Programmi e Oggetti Software

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

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

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

Database. Si ringrazia Marco Bertini per le slides

Soluzione dell esercizio del 2 Febbraio 2004

UML. Una introduzione incompleta. UML: Unified Modeling Language

Gestione del workflow

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

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Informatica Industriale Modello funzionale Casi d uso

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Concetti di base di ingegneria del software

EA 03 Prospetto economico degli oneri complessivi 1

UniRoma2 - Ingegneria del Software 1 1

Lezione 4. Modello EER

PROGETTAZIONE DEL SOFTWARE

Ingegneria del Software UML - Unified Modeling Language

Esercitazione di Basi di Dati

7. Architetture Software

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

object oriented analysis

Lezione 1. Introduzione e Modellazione Concettuale

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

Dalla progettazione concettuale alla modellazione di dominio

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

Indice. pagina 2 di 10

Progettazione orientata agli oggetti Introduzione a UML

Gestione Turni. Introduzione

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

Object Oriented Software Design

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

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

Progettazione : Design Pattern Creazionali

Gestione Automatizzata di una Lista Nozze

Unified Modeling Language

Elementi di UML (2) Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico

EXPLOit Content Management Data Base per documenti SGML/XML

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Programmazione A.A Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

La Progettazione Concettuale

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

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

Il Software. Il software del PC. Il BIOS

Sistemi Informativi I Caso di studio con applicazione di UML

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Progettaz. e sviluppo Data Base

Activity Diagrams. Ing. Orazio Tomarchio

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Piano di gestione della qualità

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Generazione Automatica di Asserzioni da Modelli di Specifica

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

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

Ciclo di vita dimensionale

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

Organizzazione degli archivi

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

Diagrammi di Flusso dei Dati

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

SOMMARIO Gruppo 4 - All right reserved 1

Capitolo 13. Interrogare una base di dati

Il modello Entity-Relationship: pattern di progettazione

Guida all uso del Portale Web

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

DBMS (Data Base Management System)

Access. P a r t e p r i m a

Lezione 2. Il modello entità relazione

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

La specifica del problema

Sistemi di misurazione e valutazione delle performance

Tecniche di Simulazione: Introduzione. N. Del Buono:

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Meno rischi. Meno costi. Risultati migliori.

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Le Basi di Dati. Le Basi di Dati

Ciclo di Vita Evolutivo

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

UML Component and Deployment diagram

Progettazione di Basi di Dati

11. Evoluzione del Software

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

ANALISI E PROGETTAZIONE OBJECT ORIENTED UNIFIED MODELLING LANGUAGE (UML)

Transcript:

Paradigma object-oriented Dati & Comportamento Implementazione trasparente dei servizi Facile mantenimento Omogeneità nella gerarchia dati-funzioni Procedural approach OO approach Data hierarchy Replaced by Hierarchy of functions Class hierarchy

Cosa sono gli oggetti? Il mondo può essere percepito Punto di vista filosofico Oggetto = astrazione di un entità reale Il mondo è fatto di oggetti Gli oggetti interni nascono e muoiono Gli oggetti esterni sono eterni Punto di vista di un modello Oggetto = Identificatore + Stato + Comportamento Stato attributi variabili Comportamento operazioni Punto di vista dell ingegneria del Software Oggetto = astrazione di un entità che contiene i dati e le operazioni Costruttore e distruttore Archiettura Object-oriented Organizzazione di un sistema software in termini di una collezione strutturata di oggetti Strutturata = include associazioni di Utilizzo Aggregazione ( parte di o contiene un ) Ereditarietà ( è un ) Collezione = Gli oggetti sono indipendenti dal sistema cui appartengono, perché Sono interessanti e utili individualmente Riutilizzabili per sistemi differenti

Classi e Oggetti Classe = descrizione di un dato astratto Offre Nome Definizione della sua struttura dati Servizi per accedere alla sua struttura dati Elemento statico Oggetto = istanza di una classe Offre Identità Stato, accessibile attraverso i servizi definiti dalla classe Elemento run time Classi e Oggetti (cont.) A run time Esistono solo oggetti Nel codice sorgente Esistono solo classi

Instanziazione Processo per la creazione di un oggetto Gli attributi sono inizializzati L istanza è assegnata ad una variabile Operatori per l instanziazione Costruttore Distruttore Dictionary language create_dictionary() insert_word() search_word() give_next_word() D1: Dictionary language = German Associazioni Relazioni tra classi e tra oggetti Cardinalità delle associazioni Numero degli oggetti partecipanti 1, 0..1, M..N, *, 0..*, 1..* Tipo di associazione Numero di classi che partecipano all associazione Binaria, ternaria, N-aria

Associazione asimmetrica Criteri che implicano l aggregazione Una classe rappresenta una parte di un altra classe Gli attributi di una classe sono propagati ad un altra classe Un azione di una classe implica un azione di un altra classe Le istanze di una classe sono subordinate alle istanze di un altra classe Aggregazione +owner co-owner Person Car 1..* 0..* aggregate class 1 1 Building Engine Ereditarietà Si realizza attraverso i meccanismi di Estensione delle classi Specializzazione delle classi Combinazione delle classi

Ereditarietà (cont.) superclass Object Point Polygon heir subclass Triangle Rectangle Un erede Offre i servizi dell antenato Del quale rappresenta un estensione Offrendo nuovi servizi E/O una specializzazione Sfruttando le potenzialità definite dai servizi degli antenati e ridefinendoli per il loro caso specifico (polimorfismo) Unified Modeling Language

Motivazione Perchè una notazione unificata? Potenza espressiva Completezza Consistenza Il valore dell UML È uno standard aperto Supporta l intero ciclo di sviluppo del software Supporta diverse aree di applicazione É basato sull esperienza e le necessità degli utenti È supportato da molte applicazioni

Motivazione (cont.) Perchè una notazione con diagrammi multipli? Obiettivo Coprire più aspetti di un sistema complesso Complessità Necessario per un analisi e un design dettagliato La visione del Software Architect End-user Functionality Logical View Process System integrators Performance View Scalability Throughput Conceptual Implementation View Programmers Use Case Software management View Deployment View System engineering System topology Delivery, installation Communication Physical P. Kruchten, Nov. 1995 The 4+1 View Model of Architecture IEEE Software

Modelli, Viste e Diagrammi Static views Sequence Use Case Class Object Collaboration Models Component Statechart Dynamic views Activity Deployment Use Case Diagram

Analisi e Specifica dei Requisiti Attività per l analisi e la raccolta dei requisiti Studiare l ambito di un applicazione Identificare i confini e le interazioni tra l applicazione e il mondo esterno Identificazione e comprensione dei requisiti Attività per la specifica dei requisiti Specifica dei requisiti (basati su cosa e non su come) Validazione/Verifica dei requisiti specificati Analisi: Metodologie Nessun metodo scientifico Linee guida, principi generali e tecniche empiriche Troppi Fattori soggettivi, Fattori umani, e Problemi di comunicazione

Analisi: Linee Guida L analisi dovrebbe identificare Una rappresentazione delle informazioni più significative Un modello del comportamento del software L analisi dovrebbe considerare come il sistema Sarà strutturato (dalla prospettiva utente) Fornirà le funzionalità I sistemi complessi devono essere suddivisi in modo gerarchico: L analisi è eseguita separatamente sulle differenti parti Specifica: livelli di formalismo Specifica Informale Basata sul linguaggio naturale (ambiguo) Specifica Formale Basata sul linguaggio matematico Specifica mista (Semi-formale) Composta da una parte formale e una informale

Specifica: tipi Specifica dei dati (vista statica) Specifica del comportamento (vista dinamica) Specifica: stili per il comportamento Operazionale Specifica le procedure Esempio: La lista B è ottenuta dalla lista A muovendo il più piccolo elemento di A nella prima posizione di B, il nuovo più piccolo elemento di A nella seconda posizione di B, e procedendo in questo modo finché la lista A è vuota. Descrittivo Specifica le proprietà Esempio: la lista B è una permutazione ordinata della lista A

Use Case Diagram Notazione semi-formale Specifica le interazioni tra il sistema e il mondo esterno Utile per Obbligare l analista ad esprimere dei confini ben definiti tra il sistema e il mondo esterno Organizzare le funzioni del sistema in elementi (use cases) sui quali focalizzare l attenzione Fornire una prima base per la specifica della struttura del sistema dal punto di vista dell utente Elementi di un Use Case Diagram Actor Qualcuno (utente) o qualcosa (sistema esterno, hardware) che Scambia informazioni con il sistema Fornisce input al sistema, o riceve output dal sistema Use Case Un unità funzionale (funzionalità) parte del sistema

Relazioni tra Use Cases Actor Actor Use Case Use Case Interaction. Determina: Quali attori participano in un use case Dove l esecuzione inizia Use Case A <<include>> Use Case B Usage. Modella il fatto che una funzionalità selezionata è usata nel contesto di un altra funzionalità (una è la fase dell altra) Use Case A Use Case B Generalization. Definisce una funzionalità come un estensione di un altra già esistente (special case) Esempio: Corsi on line All inzio del semestre la segreteria deve fornire agli studenti la lista dei corsi disponibili attraverso un sistema di registrazione on line. Ogni studente deve selezionare 4 corsi disponibili ed esprimere due possibili alternative. Ogni corso deve avere tra 3 e 20 studenti: corsi con meno di 3 studenti sono cancellati, e quelli con più di 20 sono suddivisi. All inzio i professori accedono al sistema per inserire i loro corsi nella lista, in seguito alle selezioni degli studenti loro accedono per controllare lo stato degli studenti. Dopo il periodo di selezione, il sistema crea le liste definitive, risolvendo tutte le anomalie e le manda all ufficio amministrativo che procede alla tassazione di ogni studente. Gli studenti accedono al sistema per vedere la lista dei loro corsi Tutte le interazioni utente sono autenticate

Esempio: Corsi on line Administrative Office Course Selection <<include>> Request Students List <<include>> Students User Authentication <<include>> <<include>> Professor Request Course List Insert Course Esempio: Sistema di prenotazione albergo L utente esegue la richiesta di prenotazione Il sistema di prenotazione controlla la disponibilità di posti Il sistema di prenotazione acquisisce i dati utente Il sistema di prenotazione garantisce la prenotazione con carta di credito

Esempio: Sistema di prenotazione <<include>> Hotel Booking Check availability <<include>> Customer Acquire Customer data <<include>> Acquire Credit Card data Hotel Booking guaranteed by Credit Card Esercizio Estendere il sistema di prenotazione in modo che: Sia prevista la conferma della prenotazione via e-mail Sia previsto un rifiuto della prenotazione se la carta di credito non è valida Siano possibili delle scelte alternative nel caso in cui il tipo di camera non è disponibile

Esercizio Modellare un sistema per la gestione di una biblioteca in modo: L utente può accedere solo se autenticato Gli utenti sconosciuti devono registrarsi Sia possibile cercare i libri secondo alcuni criteri (autore, argomento, titolo) Il bibliotecario può inserire nuovi libri, ma non può cancellarli Soltanto l amministratore può rimuovere dei libri dal catalogo L utente può richiedere l acquisto di alcuni libri non presenti compilando un modulo Il modulo di acquisto è inviato via e-mail al direttore della biblioteca.