-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
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.
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 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.
Chat's documentation and wiki was made with ♥ by Davide, Lorenzo and Francesco.