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
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.
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

Viewers also liked

Audiominutes presentation
Audiominutes presentationAudiominutes presentation
Audiominutes presentation
adredfern
 
Teori organisasi umum 2
Teori organisasi umum 2Teori organisasi umum 2
Teori organisasi umum 2
bryansoendoro
 
Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015
Iran Entrepreneurship Association
 
Ao cep2 evaluacion_deopciones_chn
Ao cep2 evaluacion_deopciones_chnAo cep2 evaluacion_deopciones_chn
Ao cep2 evaluacion_deopciones_chn
Evelyn Galicia Maeve
 
Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...
Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...
Exploring and Elevating Healthy Behaviors with Social Technologies (AAHB Conf...
Derek Hansen
 
Psychopath Manipulators
Psychopath ManipulatorsPsychopath Manipulators
Psychopath Manipulators
Kongo Zen Shorinji Kempo
 
Andrew_Anwar (Recruitment) 2015
Andrew_Anwar (Recruitment) 2015Andrew_Anwar (Recruitment) 2015
Andrew_Anwar (Recruitment) 2015
Andrew Anwar
 
Apa tarea1 organigrama
Apa tarea1 organigramaApa tarea1 organigrama
Apa tarea1 organigrama
Evelyn Galicia Maeve
 
Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...
Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...
Buenas prácticas de preparación de medicamentos en los Servicios de Farmacia ...
UGC Farmacia Granada
 

Viewers also liked (9)

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

Similar to Object oriented

Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]Anna_1969
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
Felice Pescatore
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
Anna_1969
 
Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
Sebastiano Merlino (eTr)
 
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
Onofrio Panzarino
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
Sergio Ronchi
 
WSMO Restricted
WSMO RestrictedWSMO Restricted
WSMO Restricted
Dario Mazza
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggettimariacaporale
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object Oriented
Stefano Fago
 
Database Entity
Database EntityDatabase Entity
Database Entity
Sergio Ronchi
 
Plant UML come creare Grafici UML in modo facile
Plant UML come creare Grafici UML in modo facilePlant UML come creare Grafici UML in modo facile
Plant UML come creare Grafici UML in modo facile
Stefano Trojani
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experience
Stefano Bussolon
 
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
Riva Giuseppe
 
TellMeQuality
TellMeQualityTellMeQuality
TellMeQuality
Synapta
 
Progettazione n
Progettazione nProgettazione n
Progettazione nimartini
 
Progettazione di un database relazionale
Progettazione di un database relazionaleProgettazione di un database relazionale
Progettazione di un database relazionale
Nicola Iantomasi
 

Similar to Object oriented (20)

Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Corso UML
Corso UMLCorso UML
Corso UML
 
Data base elvira asile
Data base elvira asileData base elvira asile
Data base elvira asile
 
Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
 
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
WSMO Restricted
WSMO RestrictedWSMO Restricted
WSMO Restricted
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object Oriented
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Database Entity
Database EntityDatabase Entity
Database Entity
 
Plant UML come creare Grafici UML in modo facile
Plant UML come creare Grafici UML in modo facilePlant UML come creare Grafici UML in modo facile
Plant UML come creare Grafici UML in modo facile
 
Cmap
CmapCmap
Cmap
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experience
 
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
10. LA PSICOLOGIA DEI NUOVI MEDIA IN PRATICA: COMMERCIO ELETTRONICO E FORMAZI...
 
TellMeQuality
TellMeQualityTellMeQuality
TellMeQuality
 
Progettazione n
Progettazione nProgettazione n
Progettazione n
 
Progettazione di un database relazionale
Progettazione di un database relazionaleProgettazione di un database relazionale
Progettazione di un database relazionale
 

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
  • 12.
  • 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.
  • 16.
  • 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: