At line 1 added 45 lines |
%%(display:none) |
{{{ |
WikiUp |
}}} |
/% |
[{TableOfContents }]\\ |
!!! Generalità\\ |
I modelli dinamici di SmeUp costituiscono un potente e semplice strumento di conoscenza e di indagine sui dati. L'idea prende spunto da alcune intuizioni sviluppate negli studi di intelligenza artificiale e delle reti semantiche.\\ |
In sostanza il modello consiste in una sovrastruttura di relazioni significative tra oggetti, stabilite da chi indaga, che si innesta sull'applicativo e che viene archiviata in uno specifico file.\\ |
Nei paragrafi successivi vengono definiti con maggiore precisione alcuni concetti astratti come relazione, proposizione, operatore e spiegato in dettaglio come costruire il modello. Vengono inoltre date indicazioni su come creare il programma costruttore e dove collocarlo nell'architettura software, e come utilizzare lo strumento di navigazione nel modello.\\ |
\\ |
!!! Esempi\\ |
Il concetto apparirà più chiaro se facciamo un paio di esempi.\\ |
\\ |
!! Esempio 1\\ |
Supponiamo di avere la necessità di indagare sugli utenti dell'applicazione SmeUp e che di loro ci interessino le seguenti relazioni:\\ |
* l'utente x ha modificato il programma y\\ |
* l'utente x è autorizzato alla funzione y\\ |
* l'utente x è capogruppo dell'utente y\\ |
* l'utente x ha modificato il file Y\\ |
...\\ |
Dunque...\\ |
gli oggetti in esame sono:\\ |
* gli utenti,\\ |
* i programmi,\\ |
* i files,\\ |
* le autorizzazioni su funzione.\\ |
le relazioni significative sono:\\ |
* l'utente ha modificato il file/programma,\\ |
* l'utente è autorizzato a... ,\\ |
* l'utente è capogruppo di... .\\ |
\\ |
Supponiamo di lanciare un programma in grado di tracciare su un file per ogni singolo utente lo stato delle relazioni al momento del lancio.\\ |
Una volta eseguito tale programma, interrogando l'archivio, per ogni utente in tempo reale potremmo sapere quali files e programmi l'utente ha modificato, a quali funzioni è stato abilitato o quali sono gli utenti del suo gruppo... viceversa potremmo per ogni programma sapere quali sono gli utenti che hanno introdotto modifiche, idem per i files o data una funzione conoscere l'insieme degli utenti che ne sono autorizzati all'esecuzione... conoscere i capigruppo... e così via...\\ |
Cioè potremmo conoscere tutte le informazioni ricavabili dall'archivio delle relazioni attraverso i comandi sql.\\ |
\\ |
!! Esempio 2\\ |
Se volessimo indagare sui programmi e ci chiedessimo quali programmi vengono richiamati da un altro programma o quali file vengono da esso letti o aggiornati... o quali sono gli aggiornamenti dei programmi e quando e chi li ha effettuati. Basterebbe fissare le seguenti relazioni "il programma x richiama il programma y" e "il programma x legge/modifica il file y" e "il programma x è stato modificato da" e creare un costruttore che, scandendo tutti i programmi, alimenta il files con queste relazioni.\\ |
In lettura potremmo tracciare il grafo che descrive le chiamate tra programmi e tra files... e navigare in esso con gli strumenti visuali dell'interfaccia grafica.\\ |
\\ |
Esempi più strutturati ed esistenti in SmeUp sono riportati in una sezione a parte... in questa sede ci interessa far capire le potenzialità di un modello dinamico ancora embrionale come quello proposto che si limita per ora a tracciare in un archivio semplici proposizioni tra oggetti.\\ |
\\ |
!!! Vantaggi\\ |
* Immediata fruibilità delle relazioni significative;\\ |
* Staticità strutturale: la creazione di un nuovo modello richiede in sostanza lo studio delle relazioni significative e la scrittura del solo programma costruttore... la parte di visualizzazione resta identica per ogni modello.\\ |