Elenet.net
+2 voti
Relazione di Informatica e Tecnologia Marco Scarpaci
INFORMATICA

1 . OOP (Object Oriented Programming)

La OOP è un paradigma di programmazione, orientata agli oggetti che permette di definire oggetti software in grado di interagire gli uni con gli atri, attraverso lo scambio di messaggi che richiedono l’esecuzione di specifici metodi.

Un oggetto nel paradigma OOP è una rappresentazione della realtà,  rappresentata tramite un ADT. L’ADT è un tipo di dato completamente specificato, ma indipendentemente dalla sua implementazione, viene specificata la realtà dell’oggetto attraverso attributi e metodi.

Le principali caratteristiche della OOP sono :

1.        Information Hiding : Separa l’interfaccia pubblica con la sua implementazione interna. Occulta l’implementazione di un ADT stesso all’esterno. Ciò serve a proteggere il codice da eventuali modifiche che potrebbero danneggiarlo.

2.        Ereditarietà : Permette di creare nuove classi sulla base di una classe già esistente, mantenendo o modificando le sue caratteristiche. (Ne parlerò più approfonditamente).

3.        Polimorfismo : è legato al concetto di ereditarietà, solo che possiamo ottenere risultati diversi, invocando gli stessi metodi.

2 . Caratteristiche di un codice Java

Per poter scrivere in Java occorre creare una o più Classi dove al suo interno ci saranno attributi e metodi con il quale si può sviluppare il codice da implementare.

Una Classe in java è l’implementazione di un ADT, è un modello astratto con il quale si crea un oggetto. L’oggetto in java è l’implementazione di una classe, ovvero un’entità dotata di determinate caratteristiche(attributi e metodi). Un codice in java è costituito da attributi ovvero le variabili del codice, e dai metodi ovvero le funzioni.

Ogni classe è inclusa in una cartella chiamata Package, che organizza le classi in gruppi ordinati. La convenzione per scrivere un package sono : Deve essere univocamente interpretato; Se possiede un dominio deve essere scritto prima di tutti.

Nella/e classe/i, non deve mancare il  metodo Main, che serve per far partire il programma. Il main è dichiarato static perché senza di esso il programma non parte.

2.1 Implementazione

Java ha due componenti fondamentali, che senza le quali non potrebbe partire il programma : la JRE(Java Run-Time Environment) ambiente di run-time che comprende la JVM, e la JDK (Java Development Kit) comprende vari componenti di java come le librerie ecc.

Quando si manda in esecuzione un programma, java crea un codice intermedio chiamato Bytecode, che viene eseguito dall’interprete java ovvero la JVM. La JVM è l’interprete del Bytecode. Ogni piattaforma hardware/software possiede la propria JVM, quindi è indipendente da qualsiasi piattaforma di sviluppo e di esecuzione. Nella JVM troviamo : 1. Set di istruzioni per il Bytecode;  2. Registri;  3. Stack (Parte di memoria che salva lo stato dei metodi al momento della loro invocazione); 4. Heap (Parte di memoria che salva le caratteristiche della classe al momento della sua istanza. Nell’Heap agisce il Garbage Collector prende le parti di memoria non utilizzate e le rende di nuovo disponibili); 4. Area per la memorizzazione dei codici.

3.  Programmazione Java

3.1 Eccezioni

Le eccezioni sono degli eventi che si presentano nella fase di esecuzione (o run-time) di un programma e sono collegate al verificarsi di situazioni anomale nel programma.

I vari tipi di eccezioni sono :

1.        I/O Exception : Errori di input/output da parte dell’utente

2.        NullPointer Exception : Errore nel puntamento ad un riferimento non inizializzati

3.        ArrayIndexOutOfBounds Exception : Indice di un array fuori dal limite

4.        Arithmetic Exception : errori di tipo aritmetico

5.        FileNotFound Exception : Il file non è stato trovato

Per gestire le eccezioni si usano i blocchi di codice Try e Catch. Try serve ad analizzare la parte di codice dove può generare un’eccezione, mentre Catch serve a risolvere l’eccezione. Se l’eccezione generata non è di nessun tipo descritto in precedenza, allora con il comando Trow gestiamo l’eccezione con una classe che estende le eccezioni, eseguendo (in caso di eccezione) il codice all’intero della classe.

Esempio : https://www.dropbox.com/s/pkz3c17jiip3tpa/Mensola_eccezione.txt

3.2 Strutture Dati

Le strutture dati gestiscono, dati correlati fra di loro, attraverso l’uso dei puntatori.

Un esempio di Struttura Dati è la lista.

La lista è un insieme di elementi collegati in modo sequenziale tra di loro tramite dei riferimenti. È una struttura dati dinamica ovvero a seconda delle necessità si può aggiungere o eliminare singoli elementi variando il puntamento o in alcuni casi l’informazione. La lista è formata dai Nodi, ognuno di questi possiede un’area dove vi è l’informazione, mentre l’altra dove vi è il puntamento verso un altro nodo. Il nodo iniziale e quello finale differiscono da tutti gli altri perché, nel nodo iniziale vi è l’Head ovvero inizio della lista e il riferimento al secondo nodo, mentre in quello finale vi è l’informazione, ma non ha nessun tipo di puntamento (Null).

Esempio :https://www.dropbox.com/s/2z610jawa68ymdy/Nodo_nodo.txt

Esempio :https://www.dropbox.com/s/adlcarlm0izw44a/Invitato_nodo.txt

3.3 Ereditarietà.

L’ereditarietà è un meccanismo che permette di creare nuove classi (Classi Derivate) sulla base di una classe già esistente (Super Classe), ereditandone attributi e metodi. Con la parola chiave Extends è possibile dichiarare una classe che erediterà attributi e metodi dalla Super Classe. La Classe Derivata può aggiungere o mantenere  le caratteristiche (Attributi e metodi), o ridefinire i metodi della Super Classe. Con la parola chiave Super si può ereditare il costruttore della Super Classe nel costruttore della Classe Derivata.

Ci sono due tecniche per poter definire o ridefinire i metodi di una classe e sono : 1. Overloading : permette di definire più metodi nella stessa classe avendo lo stesso nome a patto che i tipi di parametri da utilizzare siano diversi; 2. Overriding : permette di ridefinire in una Classe Derivata metodi già definiti nella Super Classe.

3.4 Classe Astratta

Una Classe Astratta è un modello utilizzato per descrivere le classi derivate, esse ereditano le caratteristiche dalla Classa Astratta ridefinendoli (facendo un Overriding). Le Classi astratte non possono essere istanziate, possono avere uno o più metodi astratti che non sono implementati. Le Classi astratte vengono dichiarate con la parola chiave Abstract .

3.5 Interfacce  

La classe Interface si limita a dichiarare i metodi senza implementare la firma infatti si fa un Overriding  dei metodi sulla Classe Derivata. L’interfaccia si dichiara con la parola chiave Implements.

Esempio : https://www.dropbox.com/s/kgbf37sfoaxwjwp/Solido_Ereditariet%C3%A0%2Cinterf%2Castratt.txt
quesito posto 4 Giugno 2014 in Classe quarta da Marco Scarpaci Corsista (94 punti)
rivisti 22 Novembre 2016 da Gianni Messina
  
3.6 Libreria  AWT

La libreria AWT è un package che gestisce la GUI (Graphical User Interface ) e mette a disposizione elementi grafici con la quale l’utente può interagire. Quando l’utente interagisce con gli elementi dell’interfaccia  viene creato un oggetto Event. AWT si fonda su due elementi: 1. Componenti : elemento con il quale l’utente interagisce ; 2. Contenitori : oggetti che possono contenere altri elementi.

I componenti sono :

1.        Etichette (Label) : sono istanze della classe Label esse contengono solamente una riga di testo.

2.        Caselle di Testo (Text Field) Attraverso l’istanza della classe TextField permette di creare una casella di testo.

3.        Pulsanti (Button) : Con l’istanza della classe Button permette di creare un elemento grafico che permette di invocare un azione

I contenitori sono :

1.        Window (Frame)  : Con l’istanza della classe frame, si crea un contenitore principale

2.        Panello (Panel) : Con l’istanza della classe Panel, si crea un contenitore con il quale si raggruppano i componenti grafici.

L’interazione che avviene tra l’utente e un elemento grafico viene gestito dagli ascoltatori di eventi, quest’ultimi sono una modalità con la quale mette in comunicazione l’utente con il programma in esecuzione. Alcuni eventi possono essere Action Event, MouseEvent, WindowEvent ecc.

3.7    Javadoc
È uno strumento che permette di generare la documentazione di un programma attraverso i tag. La documentazione in Javadoc fornisce pagine HTML . i tag vanno scritti prima di un attributo/metodo/classe, in forma di commento.
I tag più usati sono :
1.    @version : visualizzano la versione dell’autore
2.    @autor : visualizza l’autore del programma;
3.    @param: descrizione di un parametro di un metodo;
4.    @return: descrizione del valore di ritorno di un metodo;
5.    @exception: descrive un eccezione;
6.    @see : inserimento di un riferimento.

Esempio :https://www.dropbox.com/s/2vghvr7scliruwl/Nodo_javadoc.txt

TECNOLOGIA
1.    Ciclo Di Vita
Il ciclo di vita è l’insieme di attività e azioni che servono a iniziare la realizzazione di un programma software. La fasi sono 5 :
1.    Analisi : in questa fase si identificano i requisiti dell’applicazione da realizzare;
2.    Progettazione : in questa fase viene definita l’architettura del software da realizzare;
3.    Implementazione: viene sviluppato e testato il codice dei componenti software, che costituiscono il programma;
4.    Verifica : verifica il corretto funzionamento del codice;
5.    Manutenzione: vengono corretti alcuni errori non visti nella fase di verifica.


2.    Requisiti Di Un Software
rappresenta una funzionalità che il sistema da progettare e realizzare, deve rendere disponibile all’utente, o una caratteristica che deve rappresentare. I tipi d requisiti sono 3 : 1. Funzionali : descrivono le funzionalità che il sistema software deve rendere disponibile all’utente; 2. Non Funzionali : descrivono una caratteristica che il sistema deve avere; 3. Tecnologici: sono requisiti che fanno parte degli aspetti tecnologici, come il linguaggio di programmazione ecc. Oppure vengono classificati in Must, Should o May.

3.    Casi D’Uso
Sono la definizione degli scenari in cui un utente interagisce attraverso il diagramma UML.

4.    Subversion
È un programma che serve per gestire a diversi sviluppatori le versioni di un determinato programma. Avendo un codice sorgente grazie a Subversion è possibile gestire  in contemporanea due o più versioni distinte, per poi poterle unire in un'unica versione.
Per gestire i codici Subversion utilizza una cartella chiamata Repository dove al suo interno vi sono tutte le versioni del codice sorgente, se non si ha la Repository si può usare una directory del file-system. Per interfacciarsi con il file-system Subversion utilizza L’Hook. Quest’ultimo è una chiamata al sistema operativo per utilizzare le API(le API sono un insieme di funzioni che permettono d'accedere ai servizi di un'applicazione) per la comunicazione con il sistema operativo.
Le funzioni principali di Subversion sono l’operazione di check-out : Si estrae il codice sorgente dalla Repository per farne una copia di lavoro (Working-Copy) nella quale è possibile modificare il codice, con l’operazione di Commit vengono salvate solo le modifiche della copia di lavoro sulla Repository.
Altre funzionalità di Subversion sono: Lock (a cui vi può lavorare solo un sviluppatore): blocca il file principale fino al momento del commit, ma a volte il file principale può essere bloccato per ore  e la tecnica del Branch e del Merge è più efficace perché,  il primo fa una copia esatta del codice di produzione, il codice viene diviso a più sviluppatori. Appena gli sviluppatori avranno finito di fare le loro modifiche il Merge raggruppa i file in uno solo e poi verrà fatta l’operazione di Commit.

Fai il log in oppure registrati per rispondere al quesito.

Domande correlate

–2 voti
0 risposte
+1 voto
1 risposta
quesito posto 5 Giugno 2014 in Classe quarta da Giuseppe Frangipane Corsista (110 punti) | 123 visite
+1 voto
1 risposta
778 domande
1,565 risposte
639 commenti
1,445 utenti