Logotipo di EvoSist

AUCTORES: sistema di programmazione ad operatori.

Autore: Sergio Iovacchini



Progetto

Home
Forum
Forum relativo
a questo argomento
Indice Argomenti
Pianificazione
Descrizione del Progetto
in PDF
in HTML
Bibliografia


Autore

Curriculum dell’autore
Contattare l'autore

<<<

Motivazione del progetto.

AUCTORES ha lo scopo di semplificare la programmazione per coloro che non intendono assoggettarsi a conoscenze specialistiche di informatica per poter produrre proprie applicazioni.

La conoscenza specialistica necessaria è contenuta nei componenti di AUCTORES e ad essa si può accedere per mezzo di interfacce specializzate, siano esse grafiche, orientate ad utenti menomati quali ipovedenti, paraplegici od altro; oppure anche per mezzo di interfacce basate su linguaggi formali o naturali etc...

Le motivazioni che stanno alla base delle scelte rivolte alla realizzazione del progetto AUCTORES derivano da considerazioni sugli strumenti che l’informatica oggi offre agli utenti di elaboratori.

Attualmente, nonostante la disponibilità di prodotti di supporto alla programmazione, il tempo necessario per produrre una propria applicazione è comunque notevole, ed inoltre richiede un livello di conoscenza legato ai principi ed allo strumento di programmazione che non è immediatamente raggiungibile da parte di utenti non specialisti di informatica.

L’introduzione della programmazione ad oggetti, oggi quasi universalmente alla base del software prodotto, esaspera ancora di più questo aspetto, poiché, mentre esso si dimostra funzionale per gli sviluppatori professionisti, richiede da parte di altri conoscenze ancora più specifiche ed anche un approccio logico specifico.

Altra caratteristica degli attuali sistemi e strumenti di programmazione è il fatto che un’applicazione sia strettamente collegata all’ambiente di fruizione grafica in cui essa è “annegata” e questo nonostante si siano fatti sforzi per offrire un “ambiente grafico di interazione” che si interponga tra il programma ed il sistema ospite. Ciò comporta sia il fatto di dover strutturare l’applicazione stessa in funzione dell’interazione con l’utente, sia, a causa di ciò, il dover spendere risorse nella programmazione dell’interfaccia.

Queste considerazioni valgono non soltanto per quanto riguarda gli strumenti di programmazione a “basso livello”, ma purtroppo anche per i linguaggi di scripting.

Quindi, poiché non vengono attualmente offerti all’utente generico strumenti adeguati di programmazione di base, non avendo questi, nelle condizioni citate precedentemente, la possibilità di procedere autonomamente alla costruzione di propri strumenti di elaborazione, deve considerare l’utilizzo dei packages per poter compiere le elaborazioni desiderate.

L’utilizzo di packeges però implica che l’utente non può scegliere le funzionalità di cui ha bisogno, ma deve scegliere, se possibile, quale applicazione meglio si adatta alle sue esigenze, altrimenti deve utilizzare più packages (se non anche più elaboratori); inoltre il costo della gestione delle stesse informazioni, in modalità ed in ambiti diversi, è molto elevato in termini di tempo e denaro nonostante l’uso di database centralizzati e di formati di scambio informazioni sempre più universali.

Inoltre le diverse applicazioni disponibili non sono progettate per essere componibili tra loro; i loro progettisti, per considerare di quali funzionalità esse debbano venire dotate, ipotizzano degli “utenti tipo” e di fatto l’applicazione costruita segue così le modilità di svolgimento del lavoro di questo “utente tipo” con le attività previste per lo specifico profilo.

Di fatto però spesso non esistono, soprattutto per l’utilizzo di elaborazioni non ripetitive, ruoli così ben definiti come i progettisti delle applicazioni software hanno ipotizzato.

Ciò comporta la “non componibilità” del software (sempre considerando, con le dovute eccezioni, diversi gradi di compobilità): l’utente  non può, in genere, facilmente comporre le funzionalità in modo diverso da ciò che è stato previsto, ma può soltanto scegliere tra operazioni già previste.

Anche l’adattamento delle applicazioni per le quali si dispone del codice sorgente non è assolutamente agevole per chi non sia un professionista: l’uso di strutture di informazione globali e la stretta dipendenza funzionale tra le varie parti dell’applicazione costituiscono un forte ostacolo per chi non sia esperto del software stesso.

Il progetto AUCTORES si propone di ricoprire il “buco” esistente tra i sistemi di elaborazione attuali; esso vuole essere una giusta via di mezzo tra il doversi realizzare una applicazione per mezzo di linguaggi di programmazione (inclusi i linguaggi di scripting) ed il doversi servire di packages.

AUCTORES, per superare queste difficoltà, si rivolge all’esperienza maturata nel campo della programmazione funzionale e logica come base; considerando però anche quanto maturato nei sistemi software convenzionali, cioè gestione relazionale e gerarchica delle basi di dati, esperienze ergonomiche nell’interazione programma-utente, efficienza del codice oggetto. Esso quindi vuole essere uno strumento in grado di consentire di costruire propri strumenti di elaborazione secondo le seguenti modalità:

  • raggiungimento della funzionalità desiderata, senza doversi preoccupare di sviluppare funzioni accessorie quali ad es. quelle di interazione;

  • uso della composizione di software già realizzato per ottenere lo strumento per realizzare le funzionalità desiderate in modo svincolato da particolari applicazioni;

  • utilizzo di prototipi by example per la costruzione dello strumento di elaborazione;

  • possibilità di interazione per mezzo di interfacce non predeterminate, (colloquio basato su suoni, controllo di dispositivi tattili, etc...) che possano, per esempio, permettere anche a disabili di utilizzare sia lo strumento finale che la costruzione di strumenti;

  • possibilità di fornire al costruttore di strumenti informazioni accessorie che permettano la costruzione di nuovi strumenti “senza dover ricominciare tutto da capo”, cioè fornire un sistema in grado di apprendere ed estendere le proprie funzionalità.



>>>