Skip to content
Francesco edited this page Dec 17, 2022 · 13 revisions

Benvenuto nella pagina principale della documentazione GitHub del progetto Chat. Questa documentazione non contiene nessun riferimento al codice, ma spiega il funzionamento del server e del client nelle linee generali.

Guida alla lettura di questa Wiki

Al lettore viene consigliato di leggere il documento seguendo questo indice.

  • Generalità sul progetto - Questa pagina contiene alcune definizioni e informazioni propedeutiche all'analisi del codice.
  • Casi d'uso - Questa pagina contiene le informazioni relative ai casi d'uso delle entità del progetto.
  • Diagrammi delle classi - Questa pagina contiene i diagrammi delle classi.
  • Scelte progettuali - Questa pagina specifica e spiega alcune scelte progettuali, come la struttura dei messaggi, il motivo di alcune classi.

Cosa è una chat?

La chat è uno strumento oggidì utilizzato quotidianamente da tutti che permette la comunicazione istantanea tra più utenti attraverso lo scambio di messaggi testo, audio, e video.

Il tipo di chat preso in esame in questo progetto è quello centralizzato, cioè quella composta da due parti: una parte client, usata dall’utente, che invia i messaggi al server; ed il server, appunto, che si occupa di smistare i messaggi degli utenti. Il server non è deputato all’utilizzo dell’utente dato che i messaggi sono privati e devono essere visti solo dai destinatari.

Per fornire un parallelismo con la realtà, consideriamo un ufficio postale. L’utente consegna all’ufficio postale la lettera, indicandone il destinatario: l’ufficio postale invia quindi la lettera, assicurandosi che sia stata recapitata.

Resta chiaro il fatto che server e client, sebbene interdipendenti, siano due entità distinte. Stabiliti degli standard di comunicazione, client e server devono essere capaci di comunicare anche se il loro sviluppo è realizzato da persone diverse. Ad esempio: l’invio del messaggio al corretto destinatario deve essere un compito affidato al server solamente: il client si deve occupare solo di indicarne il nome.

La chat nel nostro progetto

La chat realizzata in questo progetto è stata pensata per scopi didattici, pertanto non include molte delle funzionalità che siamo abituati a vedere in applicazioni di messaggistica istantanea moderna. Ad esempio: non disporrà di metodi per inviare messaggi vocali, immagini o video, né di alcuna tutela sulla sicurezza dei dati, né di creare chat di gruppo. I dettagli sui casi d’uso, e quindi sui requisiti, sono elencati nella sezione Casi d’uso.

Clone this wiki locally