SlideShare a Scribd company logo
Dalla programmazione tradizionale
all’Object-Oriented
Un’importante svolta nel campo della programmazione si è avuta con
l’introduzione della programmazione a oggetti, che può essere considerata
una logica evoluzione della programmazione strutturata. In questo caso
l’enfasi viene posta sulla fase di progettazione e propone la riduzione e la
semplificazione del processo di costruzione e manutenzione del software.
Per giungere alla soluzione di un problema l’uomo generalmente utilizza
procedimenti quali:
Il modello a oggetti
Il modello a oggetti propone di mantenere, anche nella fase di sviluppo del
software, la tecniche proprie dell’approccio concettuale cercando di
rappresentare la realtà e non un modello della realtà (natural modelling).
Un programma è quindi costituito dalla definizione di un insieme di oggetti
che si richiamano tra di loro attraverso i metodi, ovvero operazioni che
agiscono sull’oggetto stesso.
Con la diffusione dell’approccio Object-Oriented sono stati unificati i vari
approcci così da avere un unico linguaggio di modellizzazione e
progettazione: UML – Unified Modelling Language.
Vantag
gi
Incapsulamento
Il principio dell’incapsulamento afferma che l’unico modo
per accedere ai dati dell’oggetto è l’invocazione dei metodi;
non è quindi possibile usare la struttura in modo differente
da quello per cui è stata prevista.
L’encapsulation può essere vista come un’estensione del
concetto di modularità. Dal momento che le interazioni tra
gli oggetti possono avvenire solamente tramite i metodi,
risulta facilitata la costruzione di sistemi e la localizzazione di
eventuali malfunzionamenti.
Ogni entità del sistema che si vuole descrivere è rappresentata da un
oggetto. Un oggetto possiede:
•determinate caratteristiche strutturali (proprietà o attributi) che,
globalmente, determinano lo stato dell’oggetto;
•determinati comportamenti che vengono codificati in un insieme di
operazioni chiamate metodi.
Gli
oggetti
Classe
La classe è lo strumento che permette di definire le proprietà degli oggetti
(gli attributi) e le funzioni che verranno usate per agire su di essi (i metodi).
Con la classe quindi si possono costruire strutture dati che contengano non
solo i dati, ma anche il codice per gestirli.
La classe viene dunque descritta attraverso:
•Un nome;
•Un insieme di attributi per definire le caratteristiche;
•Un insieme di metodi per definire quali azioni si possono eseguire.
Operazioni e
metodi
I metodi sono gruppi di istruzioni correlate in una classe che
gestiscono un’operazione. La definizione di un metodo comprende
quattro parti:
I metodi vengono richiamati facendo precedere il loro nome da
quello dell’oggetto della classe dove il metodo stesso è stato
definito.
Mio_libro. Restituzione();
Costruttore e
distruttore
A ogni classe sono sempre associati due metodi speciali detti
costruttore e distruttore.
Definire una classe in
C++class nomeclasse {
tipo1 att1;
tipo2 att2;
……………..
tipoN attN;
//metodi
public:
//costruttore
nomeclasse() {…..}
//distruttore
-nomeclasse() {….}
tipo1 metodo1() {….}
tipo2 metodo2() {….}
tipoN metodoN() {…}
};
Metodologia UMLMetodologia UML
Tra tutte le metodologie Object-Oriented quella che è diventata lo standard è l’UML che
ha il pregio di gestire appieno gli aspetti temporali sfruttando, per gli aspetti statici, le
metodologie preesistenti.
La peculiarità dell’UML consiste nel coprire gli aspetti funzionali, temporali e dei dati
delle metodologie tramite un modello degli oggetti, un modello dinamico e un
modello funzionale.
L’utilizzo di uno stesso formalismo in entrambe le fasi è conseguenza del fatto che,
nell’approccio Object-Oriented, si parla di oggetti dalla fase di analisi fino
all’implementazione. Questi ultimi racchiudono sia la parte funzionale sia dati: ne risulta
una forte corrispondenza tra le entità che costituiscono il dominio e gli oggetti
individuati durante la fase di analisi.
Class Diagram
I diagrammi di classe mostrano le diverse classi presenti nel sistema e
le relazione tra di esse.
Le classi vengono rappresentate graficamente utilizzando la
metodologia UML attraverso il diagramma delle classi ovvero un
rettangolo contenente il nome della classe, l’elenco degli attributi e
l’elenco dei metodi. Esempio:
Persona
Cognome
Nome
Età
Indirizzo
StampaDati()
IncrementaEtà()
StampaIndirizzo()
Nome Classe
Attributi: in UML gli attributi sono mostrati con il
loro nome e possono mostrare anche il loro tipo,
il valore inziale e altre proprietà
Operazioni: le operazioni (metodi) sono
anch’esse mostrate con il loro nome, i loro
parametri e i tipi restituiti
Object oriented
Modello dinamico
Il modello dinamico mostra il comportamento, dipendente dal tempo,
del sistema e degli oggetti in esso contenuto. Vengono individuati e
formalizzati dapprima i casi d’uso, cioè l’interazione degli oggetti a
fronte degli eventi provenienti dal mondo esterno. Quindi per ogni
caso d’uso viene creato un diagramma che rappresenta la sequenza
temporale delle interazioni tra gli oggetti del dominio.
Un caso d’uso descrive, dal punto di vista dell’attore ovvero un’entità esterna
che interagisce con esso attraverso un caso d’uso, un gruppo di attività in un
sistema. Praticamente descrive l’interazione tra un utente e il sistema,
rappresenta l’interfaccia del sistema con l’esterno, indicando ciò che fa il
sistema ma non come lo fa.
I tipi più comuni di relazioni con altri casi d’uso sono:
Specifica che un caso d’uso eredita le
caratteristiche del «sovra» caso d’uso, e può
sostituirne alcune o aggiungerne nuove.
Specifica che in certe situazioni, o a un certo
punto, un caso d’uso sarà esteso da un altro.
Specifica che un caso d’uso avviene
all’interno di un altro caso d’uso.
Sequence
diagram
I diagrammi di sequenza
mostrano lo scambio di
messaggi, cioè la
chiamata ai metodi, tra
diversi oggetti in una
situazione temporale
precisa.
Nei diagrammi di
sequenza gli oggetti
sono rappresentanti
con linee verticali
tratteggiati.
L’asse temporale è
verticale, in modo che i
messaggi che si trovano
nella parte alta del
diagramma siano quelli
inviati prima. L’invio di un
messaggio è indicato con
una freccia.
Object oriented
Ereditarietà
L’ereditarietà (inheritance) consente la definizione di un nuovo oggetto
mediante il raffinamento di un oggetto già esistente: è cioè possibile creare
proprietà e metodi del nuovo oggetto modificando opportunamente quelli
dell’oggetto preesistente e aggiungendo ulteriori proprietà e/o metodi
caratterizzanti.
Polimorfismo
La ridefinizione dei metodi è possibile grazie al concetto di
polimorfismo, una delle caratteristiche dell’Object-Oriented, grazie a
cui una nuova stessa operazione può avere comportamenti differenti
per classi differenti.
Vi sono due modi per ridefinire un metodo:

More Related Content

PPT
Pensiero Orientato Agli Oggetti
PPT
progettazione concettuale database
PPT
Object oriented programming
PPTX
Programmazione ad oggetti
PPTX
Renacimiento.
PPT
нобелевская премия
PPTX
Jonas Lilienthal Presentation on IWMC 2015
Pensiero Orientato Agli Oggetti
progettazione concettuale database
Object oriented programming
Programmazione ad oggetti
Renacimiento.
нобелевская премия
Jonas Lilienthal Presentation on IWMC 2015

Viewers also liked (9)

PPTX
Audiominutes presentation
PPTX
Teori organisasi umum 2
PDF
Jacques Van Niekerk Workshop on IWMC 2015
PDF
Ao cep2 evaluacion_deopciones_chn
PPT
Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...
PDF
Psychopath Manipulators
PDF
Andrew_Anwar (Recruitment) 2015
DOCX
Apa tarea1 organigrama
PDF
Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...
Audiominutes presentation
Teori organisasi umum 2
Jacques Van Niekerk Workshop on IWMC 2015
Ao cep2 evaluacion_deopciones_chn
Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...
Psychopath Manipulators
Andrew_Anwar (Recruitment) 2015
Apa tarea1 organigrama
Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...
Ad

Similar to Object oriented (20)

PPT
Programmazione ad oggetti
PDF
PPT
Programmaoggetti[1]
PDF
Approccio Pratico al Domain Driven Design
PPTX
C#, imparare a programmare e sopravvivere
PDF
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
PPTX
Object Oriented with Java Programmazione Base
PPT
programmazione ad oggetti
PPT
Programmazione ad oggetti
PDF
Object Oriented Programming
PPT
Presentazione principi oop
PPT
Presentazione primi principi oop
PPT
Java lezione 4
PPSX
PDF
Introduzione alla programmazione object oriented - Scheda corso LEN
PDF
Corso Unified Modeling Language (UML)
PPT
Corso ABAP OO 02
PPTX
Introduzione a UML
PPTX
Corso pratico di C# - 2013
PDF
Progettazione e realizzazione di un sistema software per il time logging
Programmazione ad oggetti
Programmaoggetti[1]
Approccio Pratico al Domain Driven Design
C#, imparare a programmare e sopravvivere
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
Object Oriented with Java Programmazione Base
programmazione ad oggetti
Programmazione ad oggetti
Object Oriented Programming
Presentazione principi oop
Presentazione primi principi oop
Java lezione 4
Introduzione alla programmazione object oriented - Scheda corso LEN
Corso Unified Modeling Language (UML)
Corso ABAP OO 02
Introduzione a UML
Corso pratico di C# - 2013
Progettazione e realizzazione di un sistema software per il time logging
Ad

Object oriented

  • 1. Dalla programmazione tradizionale all’Object-Oriented Un’importante svolta nel campo della programmazione si è avuta con l’introduzione della programmazione a oggetti, che può essere considerata una logica evoluzione della programmazione strutturata. In questo caso l’enfasi viene posta sulla fase di progettazione e propone la riduzione e la semplificazione del processo di costruzione e manutenzione del software. Per giungere alla soluzione di un problema l’uomo generalmente utilizza procedimenti quali:
  • 2. Il modello a oggetti Il modello a oggetti propone di mantenere, anche nella fase di sviluppo del software, la tecniche proprie dell’approccio concettuale cercando di rappresentare la realtà e non un modello della realtà (natural modelling). Un programma è quindi costituito dalla definizione di un insieme di oggetti che si richiamano tra di loro attraverso i metodi, ovvero operazioni che agiscono sull’oggetto stesso. Con la diffusione dell’approccio Object-Oriented sono stati unificati i vari approcci così da avere un unico linguaggio di modellizzazione e progettazione: UML – Unified Modelling Language.
  • 4. Incapsulamento Il principio dell’incapsulamento afferma che l’unico modo per accedere ai dati dell’oggetto è l’invocazione dei metodi; non è quindi possibile usare la struttura in modo differente da quello per cui è stata prevista. L’encapsulation può essere vista come un’estensione del concetto di modularità. Dal momento che le interazioni tra gli oggetti possono avvenire solamente tramite i metodi, risulta facilitata la costruzione di sistemi e la localizzazione di eventuali malfunzionamenti.
  • 5. Ogni entità del sistema che si vuole descrivere è rappresentata da un oggetto. Un oggetto possiede: •determinate caratteristiche strutturali (proprietà o attributi) che, globalmente, determinano lo stato dell’oggetto; •determinati comportamenti che vengono codificati in un insieme di operazioni chiamate metodi. Gli oggetti
  • 6. Classe La classe è lo strumento che permette di definire le proprietà degli oggetti (gli attributi) e le funzioni che verranno usate per agire su di essi (i metodi). Con la classe quindi si possono costruire strutture dati che contengano non solo i dati, ma anche il codice per gestirli. La classe viene dunque descritta attraverso: •Un nome; •Un insieme di attributi per definire le caratteristiche; •Un insieme di metodi per definire quali azioni si possono eseguire.
  • 7. Operazioni e metodi I metodi sono gruppi di istruzioni correlate in una classe che gestiscono un’operazione. La definizione di un metodo comprende quattro parti: I metodi vengono richiamati facendo precedere il loro nome da quello dell’oggetto della classe dove il metodo stesso è stato definito. Mio_libro. Restituzione();
  • 8. Costruttore e distruttore A ogni classe sono sempre associati due metodi speciali detti costruttore e distruttore.
  • 9. Definire una classe in C++class nomeclasse { tipo1 att1; tipo2 att2; …………….. tipoN attN; //metodi public: //costruttore nomeclasse() {…..} //distruttore -nomeclasse() {….} tipo1 metodo1() {….} tipo2 metodo2() {….} tipoN metodoN() {…} };
  • 10. Metodologia UMLMetodologia UML Tra tutte le metodologie Object-Oriented quella che è diventata lo standard è l’UML che ha il pregio di gestire appieno gli aspetti temporali sfruttando, per gli aspetti statici, le metodologie preesistenti. La peculiarità dell’UML consiste nel coprire gli aspetti funzionali, temporali e dei dati delle metodologie tramite un modello degli oggetti, un modello dinamico e un modello funzionale. L’utilizzo di uno stesso formalismo in entrambe le fasi è conseguenza del fatto che, nell’approccio Object-Oriented, si parla di oggetti dalla fase di analisi fino all’implementazione. Questi ultimi racchiudono sia la parte funzionale sia dati: ne risulta una forte corrispondenza tra le entità che costituiscono il dominio e gli oggetti individuati durante la fase di analisi.
  • 11. Class Diagram I diagrammi di classe mostrano le diverse classi presenti nel sistema e le relazione tra di esse. Le classi vengono rappresentate graficamente utilizzando la metodologia UML attraverso il diagramma delle classi ovvero un rettangolo contenente il nome della classe, l’elenco degli attributi e l’elenco dei metodi. Esempio: Persona Cognome Nome Età Indirizzo StampaDati() IncrementaEtà() StampaIndirizzo() Nome Classe Attributi: in UML gli attributi sono mostrati con il loro nome e possono mostrare anche il loro tipo, il valore inziale e altre proprietà Operazioni: le operazioni (metodi) sono anch’esse mostrate con il loro nome, i loro parametri e i tipi restituiti
  • 13. Modello dinamico Il modello dinamico mostra il comportamento, dipendente dal tempo, del sistema e degli oggetti in esso contenuto. Vengono individuati e formalizzati dapprima i casi d’uso, cioè l’interazione degli oggetti a fronte degli eventi provenienti dal mondo esterno. Quindi per ogni caso d’uso viene creato un diagramma che rappresenta la sequenza temporale delle interazioni tra gli oggetti del dominio.
  • 14. Un caso d’uso descrive, dal punto di vista dell’attore ovvero un’entità esterna che interagisce con esso attraverso un caso d’uso, un gruppo di attività in un sistema. Praticamente descrive l’interazione tra un utente e il sistema, rappresenta l’interfaccia del sistema con l’esterno, indicando ciò che fa il sistema ma non come lo fa. I tipi più comuni di relazioni con altri casi d’uso sono: Specifica che un caso d’uso eredita le caratteristiche del «sovra» caso d’uso, e può sostituirne alcune o aggiungerne nuove. Specifica che in certe situazioni, o a un certo punto, un caso d’uso sarà esteso da un altro. Specifica che un caso d’uso avviene all’interno di un altro caso d’uso.
  • 15. Sequence diagram I diagrammi di sequenza mostrano lo scambio di messaggi, cioè la chiamata ai metodi, tra diversi oggetti in una situazione temporale precisa. Nei diagrammi di sequenza gli oggetti sono rappresentanti con linee verticali tratteggiati. L’asse temporale è verticale, in modo che i messaggi che si trovano nella parte alta del diagramma siano quelli inviati prima. L’invio di un messaggio è indicato con una freccia.
  • 17. Ereditarietà L’ereditarietà (inheritance) consente la definizione di un nuovo oggetto mediante il raffinamento di un oggetto già esistente: è cioè possibile creare proprietà e metodi del nuovo oggetto modificando opportunamente quelli dell’oggetto preesistente e aggiungendo ulteriori proprietà e/o metodi caratterizzanti.
  • 18. Polimorfismo La ridefinizione dei metodi è possibile grazie al concetto di polimorfismo, una delle caratteristiche dell’Object-Oriented, grazie a cui una nuova stessa operazione può avere comportamenti differenti per classi differenti. Vi sono due modi per ridefinire un metodo: