La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Marina Mongiello Principi di Programmazione Object-Oriented.

Presentazioni simili


Presentazione sul tema: "Marina Mongiello Principi di Programmazione Object-Oriented."— Transcript della presentazione:

1 Marina Mongiello Principi di Programmazione Object-Oriented

2 Marina Mongiello Modello ad oggetti Concetto di oggetto riconducibile a diversi settori: –Software engineering –Linguaggi di programmazione –Basi di dati –Intelligenza Artificiale

3 Marina Mongiello Approcci alla produzione di programmi Programmazione in the small –Progetto di algoritmi e strutture dati Programmazione in the large –Software engineering

4 Marina Mongiello Metodi per la produzione di programmi Metodi tradizionali: –programmazione strutturata orientata alle funzioni: flusso di controllo flusso di dati Metodi attuali: –programmazione orientata agli oggetti: classe oggetti servizi

5 Marina Mongiello Strumenti per la progettazione Orientati alle funzioni: –Diagramma di flusso (in the small) –Analisi e progetto strutturato (in the large) Orientati agli oggetti: –OOSE, OMT, ecc. (in the large) Unified Modeling Language UML

6 Marina Mongiello Approcci e Metodi Programmazione OO Programmazione strutturata Programming in the large Programming in the small UML Flow chart Structured software engineering

7 Marina Mongiello Modello del software Necessità di modellare un sistema: –creare una astrazione del sistema attraverso cui specificarne la struttura ed il comportamento. Il modello di un software deve rappresentare le informazioni trasformate dal software, le funzioni e sottofunzioni che effettuano tali trasformazioni e il comportamento del sistema conseguente alle trasformazioni stesse

8 Marina Mongiello Processo software Definisce la strategia adottata nella realizzazione del software. –Comprende metodi, tecniche e strumenti. –Si fonda sul concetto di qualità totale –E caratterizzato da: Attività portanti Un insieme di compiti: punti di controllo, prodotti intermedi (modelli, documenti), punti di garanzia dalla qualità. Attività ausiliarie: garanzie dalla qualità, gestione delle configurazioni

9 Marina Mongiello Processo di sviluppo unificato Fasi del ciclo di vita –Avviamento: consente di stabilire leffettiva realizzabilità del progetto –Elaborazione: preparazione del piano del progetto –Costruzione: implementazione di un sistema funzionante per un ristretto numero di utenti tester –Transizione: consegna ai clienti del sistema completamente funzionante

10 Marina Mongiello Workflow del Processo Unificato Requisiti: costruzione del modello dei casi duso che definisce i requisiti funzionali del sistema modellato Analisi: raffinamento e strutturazione dei requisiti funzionali descritti nel modello dei casi duso mediante la costruzione del modello di analisi Progetto: descrizione della realizzazione fisica dei casi duso costruzione di un modello di progetto ed un modello di deployment Implementazione:definizione dei componenti software che realizzazione gli elementi del modello di progetto Test: descrizione dei dati test e delle modalità secondo cui condurre i test del sistema nel modello di test

11 Marina Mongiello Modelli UML associati a ciascun workflow –dei casi duso –di analisi –di progetto –di implementazione –di test –di deployment Lo sviluppo di ciascun modello è condotto in modo trasversale attraverso le 4 fasi del processo unificato

12 Marina Mongiello Iterazioni e raffinamenti Occorre adottare un modello iterativo e incrementale nel processo di sviluppo –Iterazione: un progetto che attraversa trasversalmente ciascuno dei workflow del processo unificato –Raffinamento: è prodotto in ciascuna iterazione versione del progetto con maggiori funzionalità rispetto alla versione precedente Scopo dellapproccio: –Gestione dei rischi del progetto iniziale –Valutazione dellestensione del progetto iniziale

13 Marina Mongiello Punti di vista sul sistema I 6 modelli sono sviluppati in modo incrementale attraverso i 5 workflow e attraverso le 4 fasi del processo unificato E possibile definire diversi punti di vista sul sistema sotto cui considerare i diversi modelli

14 Marina Mongiello Punti di vista su un sistema software Progetto Implementazione ProcessoDeployment Casi duso

15 Marina Mongiello Modello guidato dai casi duso UML considera un sistema secondo prospettive diverse in base agli utilizzatori Fondamentale è la prospettiva dei casi duso che rappresentano la descrizione di un particolare aspetto del sistema La modellazione in UML è guidata dai casi duso

16 Marina Mongiello Casi duso Definiscono gli scenari duso del sistema Offrono una descrizione dei modi in cui il sistema sarà utilizzato. Scenario: –una sequenza di passi che descrivono linterazione tra un utente ed il sistema Per la descrizione dei casi duso occorre individuare: –attori principali secondari –ruoli E un testo informale che descrive il ruolo di un attore nel corso dellinterazione con il sistema

17 Marina Mongiello Rappresentazione grafica in UML Attore Caso duso

18 Marina Mongiello Concetti object oriented Oggetto: una entità del mondo reale Classe:un insieme di oggetti aventi le stesse caratteristiche Attributi: proprietà di classi ed oggetti che ne definiscono le caratteristiche Metodi: definiscono il comportamento di un oggetto Operazioni: definiscono il comportamento degli oggetti istanze di una classe

19 Marina Mongiello Principi object oriented Ereditarietà: –ciascuna classe può essere definita in termini di una classe esistente. La nuova classe (sottoclasse) contiene automaticamente la definizione di elementi propri della classe originaria (superclasse) Polimorfismo: –pluralità di forme, gli oggetti possono ridefinire le operazioni della classe di cui fanno parte Information Hiding (incapsulamento): –ciascuna classe nasconde al proprio interno i dettagli implementativi

20 Marina Mongiello Esempio: ereditarietà Classificazione delle specie animali Vertebrati PesciAnfibiRettiliMammiferiUccelli

21 Marina Mongiello Oggetto Identità: espressa da un nome Stato: include le proprietà dette attributi che descrivono gli oggetti Comportamento: rappresentato da funzioni dette metodi che utilizzano o cambiano il valore degli attributi

22 Marina Mongiello Classe Un insieme di oggetti aventi le stesse caratteristiche. E caratterizzata da: –Identità: definisce il nome della classe –Attributi: la classe non ha stato, ma definisce proprietà locali che sono lastrazione delle proprietà comuni agli oggetti istanze della classe –Operazioni: definiscono il comportamento della classe. Rappresentano i servizi che possono essere richiesti da un oggetto. I metodi sono implementazioni delle operazioni

23 Marina Mongiello Visibilità delle proprietà Una classe è concettualmente divisa in due parti: Una parte visibile che fornisce lunico modo tramite il quale è possibile operare sugli oggetti della classe e descrive che cosa, in termini di operazioni ammissibili è possibile fare sugli oggetti Una parte nascosta il cui contenuto non è visibile allesterno della classe e che riguarda come le funzionalità visibili sono realizzate

24 Marina Mongiello Rappresentazione grafica in UML ClasseOggetto operazioni Classe attributi Oggetto:Classe attributo1=valore1 attributo2=valore2

25 Marina Mongiello Relazioni tra classi Associazione: connessione strutturale tra classi Aggregazione: relazione in cui una o più classi sono parti di una classe intera Generalizzazione: (ereditarietà) relazione in cui una classe (sottoclasse) eredita gli attributi e le operazioni di una superclasse –multipla –semplice

26 Marina Mongiello Rappresentazione in UML delle relazioni tra classi classe1classe2 classe intera classe parte sottoclasse superclasse generalizzazione aggregazione associazione

27 Marina Mongiello Relazioni tra i casi duso –Inclusione: un caso duso include esplicitamente il comportamento di un altro in un punto specifico dellazione. Il meccanismo serve per eliminare comportamenti ripetuti allinterno di più casi duso –Estensione: un caso duso include implicitamente il comportamento di un altro in uno o più punti detti di estensione Il meccanismo è utilizzato per fattorizzare comportamenti opzionali o che si verificano in determinate circostanze –Generalizzazione: analoga alla generalizzazione per le classi

28 Marina Mongiello extend Rappresentazione in UML delle relazioni tra casi duso generalizzazione estensione inclusione include Caso duso padre Caso duso figlio Caso duso baseCaso duso esteso

29 Marina Mongiello Diagrammi UML Strutturali –Delle classi –Degli oggetti Comportamentali –Casi duso (use case) –Attività (activity diagram) –Sequenza –Collaborazione –Transizione di stato (state/transition diagram) Architetturali –Componenti

30 Marina Mongiello Workflow di Analisi Scopo del workflow di analisi è delineare un modello di analisi Il modello di analisi –si compone di una serie di diagrammi che descrivono il software nel suo contesto operativo rispetto ai requisiti. –rappresenta le informazioni, le funzionalità e il comportamento nel contesto degli elementi di un modello ad oggetti

31 Marina Mongiello Diagramma delle classi Rappresenta la struttura del sistema che si sta sviluppando Descrive il tipo degli oggetti che compongono il sistema e le relazioni statiche tra loro esistenti Mostra gli attributi e le operazioni di una classe

32 Marina Mongiello Diagramma degli oggetti Rappresenta una parte della struttura del sistema che si sta modellando Rappresenta oggetti e valori specifici per gli attributi

33 Marina Mongiello Diagramma dei casi duso Descrive le funzionalità fondamentali che il sistema deve realizzare in termini di scenari di utilizzo del sistema Descrive gli scenari percepiti in modi diversi dai diversi attori Contiene la rappresentazione degli attori e dei casi duso usando delle frecce per associare gli attori ai casi duso con cui interagiscono

34 Marina Mongiello Diagramma di casi duso Caso duso punti di estensione > punti di estensione Generalizzazione

35 Marina Mongiello Package di analisi Rappresenta il raggruppamento concettuale di elementi dellanalisi. Comprende le classi di analisi e rappresenta le loro interazioni

36 Marina Mongiello Workflow di progetto Nel workflow di progetto si delinea il modello di progetto. Nel modello di progetto: –si indicano gli oggetti derivati da ciascuna classe e le loro interazioni –si implementano i comportamenti e le comunicazioni –si rappresenta dinamicamente il comportamento del sistema mediante la modellazione delle comunicazioni fra gli oggetti

37 Marina Mongiello Messaggio Rappresenta la comunicazione tra due oggetti o allinterno di un oggetto La comunicazione è rappresentata da due tipi di diagrammi: –di collaborazione –di sequenza che rappresentano la stessa informazione con diversi dettagli

38 Marina Mongiello Diagramma di sequenza Specifica come gli oggetti interagiscono evidenziando la sequenza temporale dei messaggi scambiati Il diagramma ha due dimensioni –sullasse orizzontale sono rappresentati gli oggetti che interagiscono –sullasse verticale la sequenza temporale dei messaggi

39 Marina Mongiello Elementi del diagramma di sequenza Gli oggetti sono rappresentati come box in cima ad una linea tratteggiata verticale –Lifeline: rappresenta la vita delloggetto –Box di attivazione: rappresenta il periodo durante il quale loggetto ha il controllo del flusso

40 Marina Mongiello Diagramma di sequenza un Oggetto nuovo Oggetto creazione messaggio ritorno delega interna distruzione

41 Marina Mongiello Diagramma di collaborazione Illustra come gli oggetti interagiscono evidenziando le relazioni tra gli oggetti che collaborano Le relazioni sono specificate anche nel diagramma delle classi; in questo diagramma assumono la forma di link istanza della associazione

42 Marina Mongiello Diagramma di collaborazione nome delloggetto: classe nome delloggetto : classe 1: messaggio semplice() messaggio asincrono nome del ruolo nome del ruolo 1.1*: messaggio di iterazione() 1.2: [condizione] messaggio()

43 Marina Mongiello Raffinamento della struttura del sistema Il modello di progetto include oltre ai diagrammi di collaborazione e di sequenza che modellano gli aspetti dinamici del comportamento del sistema anche diagrammi che modellano gli aspetti strutturali Raffinando la struttura del modello, il diagramma delle classi viene arricchito con ulteriori informazioni riguardanti le operazioni e gli attributi. Le classi diventano più specifiche: classi di progetto

44 Marina Mongiello Classi di progetto Dettagli di attributi e di operazioni –Visibilità pubblica + protetta # privata - –Dettagli di attributi molteplicità modificabilità frozen –Dettagli di operazioni proprietà per lesecuzione parallela e thread

45 Marina Mongiello Attività e azioni Attività: –E un lavoro svolto da un oggetto in maniera continuativa –Può essere suddivisa in attività più semplici Azione: –E un insieme di computazioni eseguibili in modo indivisibile (è atomica) –Si assume che sia istantanea

46 Marina Mongiello Diagramma delle attività Rappresenta azioni sequenziali o parallele E necessario rappresentare punti di sincronismo

47 Marina Mongiello Ciclo di vita di un oggetto Evento: –Qualcosa che accade ed ha rilevanza per un oggetto Stato: –Condizioni in cui un oggetto può trovarsi durante il suo ciclo di vita Transizione: –Passaggio di un oggetto da uno stato ad un altro

48 Marina Mongiello Diagramma di stato Rappresenta la macchina a stati di un oggetto. Indica: –Gli stati che un oggetto può assumere durante il suo ciclo di vita –Gli eventi a cui può rispondere –Le possibili risposte che può fornire a quegli eventi –Le transizioni tra gli stati delloggetto

49 Marina Mongiello Evento(parametri)[condizione]/azione Diagramma di stato Nome dello Stato entry / azione do / attività exit / azione evento/ azione(parametri) Nome dello stato Nome del superstato

50 Marina Mongiello Package di progetto Rappresenta il raggruppamento degli elementi di progetto. Comprende i diagrammi: –di sequenza –di collaborazione –di stato –delle attività –delle classi di progetto

51 Marina Mongiello Workflow di implementazione Si sviluppa il modello di implementazione –Illustra come gli elementi del modello di progetto sono organizzati in componenti software sotto forma di file di codice sorgente, librerie collegate dinamicamente ecc.

52 Marina Mongiello Elementi del sistema Package: –Raggruppamento concettuale di elementi del modello Componente: –Raggruppamento di elementi fisici del sistema –Rappresenta un modulo di codice Package e componenti possono coincidere ma anche essere differenti: una singola classe può essere presente in più componenti ma essere definita in un solo package

53 Marina Mongiello Diagramma di componenti Illustra i componenti di un sistema e le relative dipendenze. Dipendenze: mostrano come i cambiamenti apportati ad un componente si ripercuotono sugli altri. Esistono dipendenze: –di comunicazione –di compilazione

54 Marina Mongiello Diagramma di deployment Mostra le relazioni fisiche tra i componenti software ed hardware del sistema finito. Le unità computazionali sono rappresentate come nodi Le associazioni tra nodi rappresentano le connessioni fisiche usate dai componenti del sistema per interagire

55 Marina Mongiello Diagramma di deployment Componente 2 Componente 1

56 Marina Mongiello Fattori di qualità del SW Qualità esterne –Riusabilità –Estendibilità Qualità interne –Strutturazione –Modularità

57 Marina Mongiello Riusabilità: vantaggi Riduce la quantità di lavoro necessario Evita di ripetere le fasi di sviluppo Aumenta la qualità del software: il codice è già stato testato verificato e luso Software più affidabile

58 Marina Mongiello Fattori di qualità influenzati dallapproccio OO EsterneFavorite daInterneFavorite da EstensibilitàEreditarietàStrutturazioneIncapsulamento Ereditarietà RiusabilitàEreditarietà Concetto di Classe ModularitàConcetto di classe

59 Marina Mongiello Esempio: diagramma delle classi Classe operazioni Individuo Nome: Cognome: Telefono: Rubrica attributo1=valore1 attributo2=valore2

60 Marina Mongiello Esempio: diagramma dei casi duso Iscrizione Verifica pagamento Verifica esonero tasse Verifica dati Controllo pagamento Controllo documenti Studente

61 Marina Mongiello Esempio: diagramma delle classi operazioni Studente Nome: stringa Cognome:stringa Matricola:int Età:int


Scaricare ppt "Marina Mongiello Principi di Programmazione Object-Oriented."

Presentazioni simili


Annunci Google