1
Fork 0
mirror of https://github.com/Steffo99/sophon.git synced 2025-01-07 06:19:46 +00:00

🎓 Complete chapter 4 draft

This commit is contained in:
Steffo 2021-11-19 01:57:44 +01:00
parent 7cdf7c0270
commit 45d8f4457a
Signed by: steffo
GPG key ID: 6965406171929D01
2 changed files with 67 additions and 80 deletions
thesis/source/docs
2_introduzione
4_requisiti

View file

@ -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

View file

@ -2,98 +2,93 @@
Requisiti
*********
.. todo::
Sophon è stato realizzato per fornire un'alternativa al `progetto JupyterHub <Hosting on-premises>` 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à <Estendibilità>`
* `security <Sicurezza>` by default
* interfaccia grafica `facile ed intuibile <Intuibilità>`
* maggiore `possibilità di collaborazione <Possibilità di collaborazione>`
* codice `open source <Open source>`
* `possibilità di personalizzazione <Personalizzabilità>`
* completa `accessibilità <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 <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.