diff --git a/thesis/source/docs/2_introduzione/index.rst b/thesis/source/docs/2_introduzione/index.rst index 4066aa1..a516b53 100644 --- a/thesis/source/docs/2_introduzione/index.rst +++ b/thesis/source/docs/2_introduzione/index.rst @@ -26,14 +26,6 @@ Obiettivo della tesi L'obiettivo di questa tesi è quello di descrivere lo sviluppo dell'applicativo "*Sophon*", realizzato con il fine di semplificare l'utilizzo di `Jupyter` in ambiente universitario. -In particolare, l'obiettivo di Sophon è quello di: - -* essere **intuitivo** da utilizzare; -* permettere a più utenti remoti di lavorare **simultaneamente** sullo stesso notebook; -* permettere l'**utilizzo dei server dell'Università**; -* essere un software **open source** sia nel senso di "**gratuito**" sia nel senso di "**libero**"; -* essere **facilmente estendibile** in futuro, qualora fossero necessarie funzionalità aggiuntive o integrazioni con software esterni. - .. index:: single: struttura della tesi diff --git a/thesis/source/docs/4_requisiti/index.rst b/thesis/source/docs/4_requisiti/index.rst index 844d3ee..733e034 100644 --- a/thesis/source/docs/4_requisiti/index.rst +++ b/thesis/source/docs/4_requisiti/index.rst @@ -2,98 +2,93 @@ Requisiti ********* -.. todo:: +Sophon è stato realizzato per fornire un'alternativa al `progetto JupyterHub ` con i seguenti requisiti: - Perchè è stato realizzato Sophon? - - -Sicurezza -========= - -.. todo:: - - Gli utenti non autorizzati non devono poter accedere ai dati degli utenti autorizzati. - -.. todo:: - - I tentativi di attacco da parte di un attore malizioso devono essere facili da sventare. - -.. todo:: - - I notebook degli utenti non devono poter interferire uno con l'altro. - - -Intuibilità -=========== - -.. todo:: - - L'interfaccia utente deve essere comprensibile all'utente medio senza aver bisogno di leggere una guida. - -.. todo:: - - L'interfaccia utente deve usare design patterns comuni e familiari all'utente medio. - - -Trasparenza -=========== - -.. todo:: - - I dettagli tecnici dell'implementazione del software devono essere nascosti all'utente, che è interessato solo a usare Jupyter. - - -Possibilità di collaborazione -============================= - -.. todo:: - - Il software deve permettere agli utenti autorizzati di collaborare in tempo reale sullo stesso notebook. - -.. todo:: - - Il software deve facilitare le interazioni all'interno del gruppo, complicarle. - - -Personalizzabilità -================== - -.. todo:: - - La piattaforma di gestione deve essere personalizzabile da ogni utilizzatore, in modo che ci possa inserire il suo brand. - -.. todo:: - - L'ambiente di lavoro deve essere interamente personalizzabile, come se l'utente del notebook stesse eseguendo il notebook sul suo stesso PC. +* più facile `estendibilità ` +* `security ` by default +* interfaccia grafica `facile ed intuibile ` +* maggiore `possibilità di collaborazione ` +* codice `open source ` +* `possibilità di personalizzazione ` +* completa `accessibilità ` Estendibilità ============= -.. todo:: +Aggiungere nuove funzionalità al software deve essere facile, e non richiedere ristrutturazioni profonde del codice. + +Inoltre, il software deve essere modulare, in modo da semplificare l'aggiornamento, la sostituzione e la eventuale rimozione di componenti. + +Infine, il software deve esporre un'interfaccia alla quale altri software esterni possono connettersi per interagirvi come se fossero un utente. + + +Sicurezza +========= + +I dati immagazzinati all'interno del software non devono essere accessibili agli utenti non autorizzati. + +Inoltre, tentativi di ingannare gli utenti del software devono essere resi più difficili possibile, riducendo il fattore umano delle falle di sicurezza. + +Non si reputa importante impedire agli utenti di comunicare con Internet all'interno delle loro ricerche, in quanto si ritiene che essi siano utenti fidati; qualora ne sorga la necessità, ciò deve essere possibile senza ristrutturazione del codice. + + +Intuibilità +=========== + +Il modo in cui utilizzare l'interfaccia utente del software deve essere intuibile all'utente medio, senza che abbia bisogno di leggere alcuna guida o manuale. + +A tale scopo, l'interfaccia grafica deve utilizzare design patterns comuni e familiari all'utente medio. + +In aggiunta, i dettagli implementativi devono essere nascosti all'utente, in modo che possa concentrarsi sull'utilizzare il notebook. + + +Personalizzabilità +================== + +Il software deve permettere all'utente di personalizzare il suo workflow senza alcuna limitazione, che venga fatto tramite plugin, configurazioni speciali o modifica di file dell'ambiente di lavoro, assicurando che i workflow personalizzati di un utente non possano interferire con quelli degli altri. + +Inoltre, il software deve inoltre permettere all'amministratore di personalizzare nome e aspetto mostrati agli utenti nell'interfaccia grafica, in modo che essa possa essere adattata al brand dell'istituzione che utilizza il progetto. + + +Possibilità di collaborazione +============================= + +Il software deve permettere agli utenti di collaborare sui notebook in tempo reale, come all'interno dei `web-based editor `. - Nuove funzionalità devono essere facili da implementare all'interno del software, qualsiasi sia la loro forma. .. todo:: - Il software deve essere modulare, in modo tale da semplificare significativamente la rimozione o scrittura di una delle sue parti. + Il software deve facilitare le interazioni all'interno del gruppo, e non complicarle. (Preludio al meccanismo di locking) Open source =========== -.. todo:: +Il software deve essere open source nella sua interezza. - Il codice sorgente deve essere liberamente consultabile da chiunque, per i curiosi e chi è in grado di migliorarlo. +In pieno spirito collaborativo, il codice sorgente deve essere liberamente consultabile, modificabile, utilizzabile e condivisibile da chiunque, sia per soddisfare la curiosità degli utenti, sia per permetterne lo studio e il miglioramento. -.. todo:: - - In pieno spirito collaborativo, il progetto deve essere liberamente modificabile e utilizzabile da chiunque. +Tutte le modifiche al codice sorgente devono essere disponibili agli utenti del software modificato, in modo che possano verificare l'affidabilità del software che utilizzano. Responsività ============ -.. todo:: +Il software deve essere utilizzabile almeno in parte da schermi di dimensione ridotta, come quelli di un cellulare. - Il software deve essere utilizzabile da cellulare, ove possibile. +Pertanto, gli elementi dell'interfaccia devono essere disposti in modo che non escano dallo schermo qualora non ci fosse spazio sufficiente per mostrarli. + +.. todo:: eh? + + +Accessibilità +============= + +Il software deve essere utilizzabile da qualsiasi tipologia di utente, inclusi utenti con disabilità visive e motorie. + +Deve essere allora possibile utilizzare il software interamente da tastiera, senza dover ricorrere a un mouse. + +Inoltre, i colori scelti per l'interfaccia grafica non devono essere confondibili da persone affette da daltonismo. + +Infine, l'intero software deve essere navigabile tramite screen reader, permettendo a non-vedenti di usare il progetto.