Please enable JavaScript.
Coggle requires JavaScript to display documents.
Objet Oriented Programming OOP - Coggle Diagram
Objet Oriented Programming
OOP
RAPPRESENTAZIONE UML
Unified Modelling Language
standart OGM Objet Management Group e standard
ISO(19505:2012)
un linguaggio per specificare, visualizzare e realizzare i prodotti di sistemi software
PER GLI OGGETTI
Sintetico:
si utilizza un rettangolo con due sezioni dove viene indicato solo il nome dell'oggetto
Completa:
si utilizza un rettangolo con due sezioni con indicati anche i valori relativi agli attributi che descrivono l'oggetto, con la visibilità ottenuta scivendo +(public) e - (private)
PER LE CLASSI
Sintetica:
si utilizza un rettangolo con tre sezioni dove si indica solo il nome della classe
Completa:
si utilizza un rettangolo con tre sezioni con indicati anche gli attributi e i metodi
REGOLATA DA:
CLASSI
DEFINIZIONE
definire tutte le operazioni applicabiliagli oggetti del del tipo di dato astratto
garantire che l'utente possa manopolare gli oggetti tramite operazioni del tipo di dato astratto(TDA) a cui gli oggetti appartengono(protezione)
Abstract Data Type(TDA in ita): l'insieme dei valori che può assumere una variabile(dato), comprese le operazionipossibili su quel tipo
Definire ( nascondere ) la rappresentazione dei dati dell'utente
VISIBILITÀ
privata(private"-"):
nasconde metodi e codici che risulteranno non utilizzabili ed è la clausola di default
protetta(protecred)
:
sono visibili solamente nella classe dove sono definiti e anche nei metodi delle classi figlie(public"+")ma mai in altri punti del programma(private"-")
pubblica(public"+")
permette l'utilizzo di variabili e metodi dall'esterno
OGGETTI
DEFINIZIONE
entià del problema o della realtà che vengono astratti, sono sempre sostantivi e hanno lo scopo di operare con altri oggetti
OGGETTI SIMILI
Devono avere gli stessi metodi ma gli attributi devono essere caratteristiche, coltello e macete hanno gli stessi verbi ma attributi diversi. Lo stato è un'insieme di valori che rispetta condizioni booleane, 1 o 0, si o no.
COMPOSTI DA:
METODI
DEFINIZIONE
Gli oggetti che hanno specifiche modalità di utilizzo(es. il coltello taglia) che caratterizzanop il loro comportamento
SETTERS
Permette di inpostare i metodi interfacciandosi con gli attributi
GETTERS
Permette di leggere i metodi interfacciandosi con gli attributi
ATTRIBUTI
DEFINIZIONE
Qualsiasi qualità misurabile o enumerabile, alcuni sono presenti in tutti gli oggetti altri sono caratteristiche solo in una classe
PRINCIPI FONDAMENTALI
EREDITARIETÀ
DEFINIZIONE
Processo grazie al quale una classe acquisisce un bagaglio di di proprietà da una classe più genericaper ampliarla e specializzarla, in modo da permettere di descrivere una classificazione gerarchica di oggetti senza ridefinire ogni volta le singole caratteristiche comuni ad ogni classe.
CLASSIFICAZIONE GERARCHICA
SUPERCLASSE e SOTTOCLASSE
Superclasse: la classe antenato(padre) di una nuova classe prende il nome si superclasse
Sottoclasse:
la classe figlio di una classe già esistente,
eridita le caratteristiche della sua superclassecon lo scopo di ottenere oggetti più specializzati.
Ogni istanza di una sottoclasse coincide con un'istanza nella superclasse
Ogni istanza di una sotto classe è (IS- A), un'istanza di una sottoclasse è generalizzazione. La relazione IS-A è la relazione tra una classe (superclasse o classe base) e una o più versioni specializzate (sottoclassi o classi derivate.
La verifica avviene ponendo due semplic, "è un", "è un tipo di".
Vale la proprietà transitiva.
Il meccanismo è ricorsivo cioè una sottoclasse può diventare una superclasse
FUNZIONI
può aggiungere nuovi campi attributi e nuovi campi metodi a quelli della superclasse .
può riderfinire( sovrascrivere ) alcuni metodi ereditati dalla superclasse , riscivendone il codice utilizzando lo stesso nome e firma(override)
può restringere in qualche modo la visibilità di una variabile o un metodo ereditato dalla superclasse.
non può eliminare campi attributi o metodi della superclasse
POLIMORFISMO
DEFINIZIONE
Capacità di far assumere agli oggetti comportamneti determinati da una diversa implementazione dei suoi membri o da una diversa firma, cioè i metodi della classe ereditata differiscono dai metodi della classe base nel numero oppurenel tipo di parametri o in entrambi
overloading o sovraccarico
di metodi, cioè i metodi con lo stesso nome hanno argomenti diversi con comportamenti diversi; differiscono per la firma
Overriding
o sovrapposizione dei metodi cioè sovrascrivere nella classe derivata un metodo ereditato cambiando le istruzioni che descrivono il comportamneto ma tenedo uguale la firma, al momento dell'esecuzione il programma decide quale metodo utilizzare a seconda dell'oggetto, base o derivato al quale viene applicato il metodo
INCAPSULAMENTO
indica la qualità degli oggetti di poter incorporare al loro interno sia gli attributi sia i metoi, cioè le caratteristiche e i comportamenti dell'oggetto. Si crea come una capsula, una barriera concettuale, che isola l'oggetto dalle cose esterne
Information hiding: fornisce all'utente un meccanismo di interfacciamento che garantisce il mascheramento(ASTRAZIONE) del funzionamento interno dell'oggetto: solo attraverso l'interfaccia si interagisce con la classe e la classe stessa comunica all'esterno solo per "cosa fa" e non per "come lo fa"
Es. Sarebbe come guidare una mchhina senza sapere come funziona il motore e, la trasmissione e la maggiore astrazione permette di guidare l'auto diverse con la stessa facilità
GENERALITÀ
Paradigma sviluppato negli anni 80
Supera la programmazione strutturata perche sposta il punto di vista dal quale si affronta il progetto, aggiungendo una nuova dimensione che sono gli oggetti.
Primo vero linguaggio a oggetti "puro" usato a tutt'oggi fu il linguaggio SmallTalk, introdotto negli anni 70 iniziazialmente sviluppato da Alan Kay, e poi ripreso da Adele Goldberge Daniel Ingalls. Oggi i linguaggi più rappresentativi sono Java, Eiffel, C++.
CARATTERISTICHE
Sono tra le sorgenti d'ispirazione del concetto di componente software
Aiutano a integrare computazione e interazione
Aiutano ad affrontare il problema della sostituzione del software e obsoleto(LEGACY)
legacy
Caso in cui un'applicazione obsoleta continua ad essere usata o perchè non ho i soldi per prenderne una nuova o perche non la voglio cambiare con una nuova.
Utilizxzano e integrano le metodologie di svilippo top-down e bottom-up