Informatica e dintorni |
by Stefano Riccio |
("VOGLIO PARAMETRIZZARE IL MONDO !") Il progetto MONDO ha lo scopo di produrre una libreria software open source in grado di creare una applicazione gestionale completa semplicemente descrivendo la realta' che si intende gestire. Piu' semplicemente il progetto vuole permettere ad una persona di descrivere, mediante una apposita sintassi, un problema gestionale. Successivamente il software mette a disposizione una serie di funzioni che implementano tutta la applicazione. Questo progetto fornisce una libreria software, quindi e' sempre possibile ampliare a piacimento le funzionalita' della applicazione semplicemente utilizzando un linguaggio di programmazione. Questo progetto prende spunto: dal mio lavoro di tesi, dai corsi di ingegneria del software e soprattutto dalla voglia di abbattere i limiti di qualita' che affliggono il software in generale. Le basi teoriche Voglio sintetizzare lo stato dell'arte per quanto concerne le metodologie di analisi del software. Quando si analizza una nuova applicazione si ha sempre l'obiettivo di modellare un aspetto della realta'. Tutti i software di tipo gestionale evidenziano chiaramente questo aspetto. Un po' meno per i software scientifici o di calcolo, i quali tendono a modellare un esperimento o una legge della natura. In alcune applicazioni il software e' in grado di intervenire sulla realta' fisica, come nel caso di software di automazione industriale, ma anche in questo contesto e' necessario modellare la realta' nella quale si sta intervenendo. Cerchiamo di definire alcuni concetti basilari che ci aiutano a modellare la realta':
Il modello relazionale, oggi molto diffuso, di fatto si puo' inquadrare in questa teoria: le entita sono i record delle tabelle, l'identita' e' la chiave della tabella mentre lo stato e' rappresentato dall'insieme dei campi del record. Di conseguenza le proprieta' sono i campi. Ma andiamo avanti definendo altre caratteristiche della realta':
Mentre le prime definizioni che abbiamo dato sono implementate egregiamente nel modello relazionale e ancora meglio nel modello ad oggetti, questi ultimi due concetti non sono ancora stati gestiti efficacemente. Di fatto le situazione sono legami tra i record delle tabelle e il modello relazionale ne modella alcuni, ma non si spinge oltre per non creare troppa confusione. Per quanto concerne gli eventi, essi sono lasciati al programmatore e non fanno parte del modello della realta'. La programmazione ad eventi, la quale ha avuto tanto successo, aiuta molto a modellare questo aspetto della realta', ma non soddisfa di fatto le esigenze degli utenti. La programmazione ad oggetti e ancor di piu' i DBMS ad oggetti tentano di modellare tutti questi aspetti, ma la strada e' ancora lunga. L'aspetto dinamico Finora ci siamo concentrati sull'aspetto statico della realta', ossia la descrizione delle informazioni oggetto della applicazione. Esiste tuttavia un aspetto dinamico estremamente importante. Ogni entita' e' soggetta a degli eventi durante la vita della applicazione, vediamo un primo raggruppamento di questi eventi:
Questi eventi seguono esattamente le tipiche operazioni che si compiono sui database : inserimento di nuovi record, aggiornamento e cancellazione. L'architettura del software L'obiettivo di mondo e' implementare in modo semplice tutti gli aspetti definiti nella parte teorica. Per fare questo e' richiesto al programmatore di DESCRIVERE la realta' attraverso i concetti definiti, utilizzando una particolare sintassi. Dato in input questa descrizione, mondo fornisce in output i seguenti risultati:
L'architettura software necessaria a svolgere questo compito e' la seguente: La libreria mondo e' sviluppata su 3 livelli:
Ogni programmatore che utilizza mondo puo' scegliere quale livello utilizzare: se intende costruire una applicazione gestionale standard puo' richiamare le funzioni di livello applicativo; se invece intende costruirsi una applicazione personalizzata puo' richiamare le funzioni di livello evento opportunamente inserite nel codice di gestione della applicazione (software utente). Infine, per gli utenti piu' esperti, e' possibile entrare nella architettura di mondo e utilizzare l'interfaccia su metamondo. Descrivo brevemente i dati dei moduli di mondo:
L'implementazione Per ora il progetto mondo e' stato implementato nelle seguenti condizioni:
Concludendo, il progetto mondo puo' essere molto utile per tutti coloro che devono costruire una applicazione gestionale sul web multipiattaforma in tempi brevi.La piattaforma proposta e' il server web medusa con il linguaggio python per lo sviluppo del software. Stefano Riccio 6-1-2001 |