![]()
Ambiente di programmazione visuale per utenti specialisti
Unità Operativa: Università di Pavia, Dipartimento di Informatica e Sistemistica
Via Ferrata, 1 - 27100 - PaviaResponsabile: Prof. Virginio Cantoni
tel. 0382/505358
fax 0382/505373
email: cantoni@ipvvis.unipv.itCollaboratori:
- Mauro Mosconi - D.I.S. Pavia
email: mauro@ipvvis.unipv.it
- Altri collaboratori presso
- Laboratorio di Visione Artificiale - Dipartimeto di Informatica e Sistemistica - Univ. di Pavia
- Dipartimento di Scienze dell'Informazione - DIS - Univ. di Roma di Roma (Prof. Levialdi)
- Dipartimento di Sistemi e Informatica - Univ. di Firenze (prof. Del Bimbo)
Descrizione della ricerca
I Linguaggi Visuali per i computer sono nati dal tentativo di rendere più semplice e piacevole l'interazione uomo-macchina sfruttando più efficacemente proprio uno dei sensi dell'uomo, cioè la vista; tale approccio privilegia quindi le immagini come mezzo per il trasporto delle informazioni.
È stato realizzato VIPERS, un ambiente di programmazione general-purpose progettato primariamente per consentire lo sviluppo di applicazioni al calcolatore da parte di utenti anche non esperti di programmazione, con l'obbiettivo di evitare che l'attività di programmazione stessa possa distogliere l'attenzione dell'utente dallo specifico problema affrontato.
VIPERS si configura come un ambiente uniforme in cui utilizzare, combinandole, le varie procedure (programmi) create dalle varie U.O. coinvolte nel progetto ogni volta in cui sia supportato il modello data-flow.
L'interesse pratico di questo strumento deriva dalla sua flessibilità dalla sua semplice estesibilità (che permette di riutilizzare librerie di programmi sviluppati per altri ambienti) e dalle sue possibilità di comunicazione.Strumenti e metodologie
I Linguaggi Visuali di Programmazione prevedono che le applicazioni (i programmi) vengano costruiti dall'utente posizionando in un'area dello schermo e connettendo opportunamente un insieme di simboli grafici, mediante meccanismi di manipolazione diretta.
In conformità al paradigma data-flow, i programmi realizzati nell'ambiente VIPERS sono grafi orientati dove i nodi rappresentano le funzioni e gli archi il flusso di dati tra le funzioni: gli archi che entrano in un nodo rappresentano i dati d'ingresso alla funzione, quelli uscenti il risultato dell'elaborazione. Un nodo del grafo viene attivato dalla disponibilità dei suoi dati d'ingresso.
VIPERS è stato interamente realizzato nel linguaggio Tcl (con il toolkit Tk). Il sistema funziona su macchine UNIX in ambiente X Window; è in corso il porting per piattaforme Windows.Risultati ottenuti
Il sistema realizzato consente di combinare le varie procedure di calcolo in applicazioni complesse attraverso un interfaccia visuale, in maniera più conveniente rispetto ai tradizionali metodi di programmazione "testuale".
Il sistema di programmazione visuale è stato sperimentato nella composizione di applicazioni concernenti l'analisi e la sintesi di tessiture (U.O. IEI ). Come esempio si può osservare come il programma di simulazione descritto dalla stessa U.O. venga implementato nell'ambiente VIPERS, dove appare come un grafo data-flow.Altre informazioni e immagini relative al progetto VIPERS sono raggiungibili all'URL http://iride.unipv.it/~mauro/vipers/
Riferimenti bibliografici
- A.L Davis & R.M. Keller (1982). "Data Flow Program Graphs", IEEE Computer 15, 175-182.
- D.D. Hils (1992). "Visual Languages and Computing Survey: Data Flow Visual Programming Languages". Journal of Visual Languages and Computing 3, 69-101.
- J. Ousterhout (1993) An introduction to Tcl and Tk, Addison-Wesley.
- B.A. Meyers (1990). "Taxonomies of Visual Programming and Program Visualization". Journal of Visual Languages and Computing 1, 97-123.
- Shneiderman (1983). "Direct manipulation: A step beyond programming languages". IEEE Computer 16, 1983, 57-69.
Pubblicazioni U.O.
- M. Bernini, M. Mosconi: "VIPERS: a Data Flow Visual Programming Environment Based on the Tcl Language", Proc. of the Workshop on Advanced Visual Interfaces AVI'94, ACM Press, (1994).
- M. Mosconi: "Visual Programming for Unskilled Programmers", Convegno Internazionale di Ergonomia Cognitiva, Padova 1995: Papers, C.L.E.U.P. Padova (1995).
Ritorno alla Home page
Aspetti originali della ricerca
Il progetto VIPERS è basato su un approccio innovativo, in cui un singolo linguaggio interpretato (il Tcl) è usato sia per definire i blocchi funzionali elementari che per controllare il funzionamento e l'interfaccia dell'intero ambiente di programmazione. Questa scelta comporta benefici significativi:
- La libreria delle funzioni predefinite (i moduli elementari) del sistema può essere estesa in un modo semplice e veloce anche da un utente poco esperto; il meccanismo di creazione dei moduli consente all'utente di integrare facilmente nel sistema i propri programmi.
- L'interfaccia-utente e il sistema stesso possono essere riconfigurati in modo dinamico per adattarsi alle preferenze dell'utente. Non si tratta solamente di modificare colori, fonts, posizione e dimensioni delle finestre (cosa che avviene normalmente per i programmi funzionanti in ambiente X Window): gli utenti di VIPERS possono anche aggiungere nuovi widget (finestri, bottoni, menu, ecc.) e specificarne la funzionalità, oppure modificare la disposizione o il comportamento di quelli gia definiti.
- VIPERS è in grado di collaborare con altre applicazioni in modo da condividere le rispettive funzionalità; le applicazioni ed i potenziali vantaggi di questo potente meccanismo di comunicazione sono ancora parzialmente inesplorati.
- La gestione completa del sistema risulta decisamente semplice grazie al fatto che si basa sulla conoscenza di un solo linguaggio di programmazione general-purpose. Ciò risulta particolarmente apprezzabile in considerazione del fatto che generalmente negli altri sistemi compiti diversi quali la riconfigurazione dell'interfaccia o la crezione di nuove funzioni di libreria richiedono l'uso di appositi linguaggi diversi, mentre ulteriori linguaggi e speciali convenzioni vanno conosciuti per modificare il comportamento del sistema o per farlo comunicare (quando possibile) con altre applicazioni.
Ritorno alla Home page