EVE un tool per la modellazione di sistemi

Con EVE è possibile descrivere un sistema e generare automaticamente il codice sorgente relativo all’applicazione. Ecco come usare questo utilissimo strumento.

Un C.A.S.E. (Computer-Aided Software Engineering, ossia sviluppo del software assistito dal computer) è senza dubbio un mezzo importante per dominare i problemi più o meno complessi nel progetto di un sistema embedded. È attraverso uno strumento di questo tipo che diventa possibile la definizione e lo sviluppo di un modulo software, utilizzando le interfacce grafiche e le librerie di funzionalità messe a disposizione.

Questi sistemi semplificano notevolmente la scrittura di linee di codice con relativi benefici anche alla conformità agli standard del software stesso. Esistono differenti C.A.S.E. in commercio che permettono di rispondere a queste esigenze. Di solito, si parla di questi sistemi, quando si è costretti a progettare le applicazioni seguendo un ciclo di vita del software anche se, spesso, un ciclo del genere non viene seguito per esigenze di sviluppo e per il costo che coinvolge gli aspetti di manutenibilità e  di  documentazione. Un tool C.A.S.E. risponde alle esigenze di qualità imposte da una normativa di riferimento o da uno standard applicabile. Se decidessimo di seguire un ciclo di vita del software, adattandolo magari a particolari esigenze della nostra attività di lavoro, occorrerebbe realizzare anche una documentazione mirata ed esaustiva. La documentazione tecnica emessa a questo scopo dovrà descrivere in maniera chiara le scelte architetturali e di progetto per mettere in evidenza le diverse scelte effettuate. In linea di principio uno strumento C.A.S.E. permette di affrontare e mettere a punto una metodologia di progetto. Risulta interessante e sicuramente accettabile avere la disponibilità di diverse soluzioni così da poter migrare tra diversi approcci progettuali possibili in base alle singole esigenze. Un C.A.S.E. permette di affrontare l’analisi e il disegno in maniera mirata ed efficiente, permet tendo di colmare il gap che intercorre tra la fase di definizione dei requisiti (e quindi dell’analisi del progetto) e la sua stesura finale mediante la codifica. Diversi C.A.S.E., permettono anche di simulare il modello creato secondo la metodologia utilizzata. La generazione del codice è poi un aspetto da non trascurare, anche se occorrerebbe soffermarci sulla bontà del codice stesso prodotto in maniera automatica: un buon C.A.S.E. deve disporre di quest’arma, cioè deve essere in grado di generare codice sorgente, magari in C o in C++, che implementa il modello scelto. Ogni progetto, che sia semplice o meno, deve essere corredato dalla necessaria documentazione: per questa ragione un C.A.S.E. deve essere anche in grado di generare, sempre in maniera automatica, la documentazione a corredo del progetto. Per ultimo, un C.A.S.E. deve permettere di ridurre il time-to-market, cioè deve essere in grado di creare dei prototipi che permettono di velocizzare  il ciclo di sviluppo. Queste sono le caratteristiche che deve avere un buon C.A.S.E. Chi si occupa di sviluppo, software o firmware, utilizza nel suo lavoro diversi linguaggi: dall’assembler al C, dal basic (magari residente on board) al C++. Per la descrizione dei suoi modelli funzionali vengono usate diverse metodologie come le tecniche strutturate o, come le attuali, orientate agli oggetti. Piccole società, semplici consulenti o, ancora, gli appassionati non possono certamente acquistare soluzioni di questo tipo: i tool C.A.S.E. hanno un costo non trascurabile, di solito sono riservati ad una fascia di utenza di medie/grosse dimensioni in progetti di medie/grosse complessità. La complessità, spesso, è valutata anche dalla consistenza dal numero delle linee di codice del software sviluppato. Un semplice consulente, o una piccola società, magari non sviluppa software di queste dimensioni, ma, in ogni modo, l’uso di un C.A.S.E. può facilitare il proprio lavoro e può garantire la manutenibilità nel tempo una volta ultimato il progetto. Per ragioni economiche, alcune caratteristiche proprie di un tool C.A.S.E. possono anche non essere presenti, perché ciò che diventa importante è la possibilità di definire il proprio progetto secondo una metodologia che garantisca una buona documentazione e manitenibilità.

Eve

EVE è senza dubbio un buon punto di partenza. Questo tool si basa su Goofee, un C.A.S.E. di Barry Kauler. Goofee permetteva di generare in maniera automatica codice C e di sviluppare un modello comportamentale del progetto secondo la metodologia OOP. In seguito, con l’evoluzione di Goofee,  il tool cambiò nome in Goosee per poi giungere a EVE. L’occupazione in memoria di EVE è di circa 73 Kb ed è utilizzabile su, praticamente, qualsiasi piattaforma Windows, anche se la sua interfaccia è abbastanza spartana. L’uso di EVE è libero e assolutamente gratuito e può essere utilizzato per scopi commerciali senza nessun vincolo. Molte delle caratteristiche che erano disponibili in Goofee lo sono anche su EVE. Per esempio, è possibile importare un disegno, sviluppato su EVE, in Microsoft Word mediante l’uso del clipboard. In questo modo, agendo dall’interfaccia grafica di EVE e con l’immagine presente nella finestra corrente, è possibile attraverso il menu “Control/Copy window to clipboard as bitmap”, copiare  il disegno e nell’applicazione Word basta selezionare l’opzione “Paste”. Non solo, è possibile, con questa tecnica, importare ogni immagine in un qualsiasi programma grafico.

La documentazione inclusa nella distribuzione permette ricavare tutte le informazioni necessarie per ottenere un’alta qualità del file grafico generato. Inoltre, si può anche utilizzare la selezione “File/Export selected elements as EMF...” come enhanced WMF per esportare in Microsoft una immagine in formato vettoriale. Esiste la possibilità di ottenere un file SVG; in questo caso agendo sulla selezione “File/Export selected elements as SVG...” si crea un file di questo tipo. SVG è un nuovo formato utilizzato per la grafica vettoriale. Un file SVG può essere inserito in un documento di Microsoft Word mediante l’opzione “Insert/Object…” da menu. Dal menu di EVE notiamo che esiste la possibilità di esportare un file di tipo EMF, questo è preferito al formato WMF. WMF è l’acronimo di Windows Media File ed è un vecchio formato utilizzato diversi anni fa per la grafica vettoriale. Il formato WMF non supporta le curve di Bezier, le linee curve, e quando si cercava di salvare il file, con le vecchie versioni di EVE, queste linee erano convertite in una serie di linee segmentate. Il formato WMF è sostituito in maniera egregia dal formato EMF (Enhanced Meta File). E’ chiaro che il formato SVG è superiore ai due formati WMF o EMF; inoltre, permette anche di mettere a punto vere e proprie interfacce di tipo multimediale con la possibilità di interazioni da parte dell’utenza o di gestire animazioni, video o suoni. Per questa ragione con EVE è possibile realizzare, insieme al formato SVG, delle vere e proprie applicazioni grafiche. Al primo avvio di EVE è necessario configurare il tool intervenendo su “Eve Preference” e “Toolbox” attraverso  il menu Control presente sulla finestra principale: in questo modo è possibile configurare il sistema impostando le opportune scelte, tra cui l’editor da utilizzare per aprire i vari file associati ai singoli elementi. Le figure 1 e 2 illustrano le varie scelte disponibili dalla finestra “Preferences” e “Toolbox”.

Figura 1: la finestra delle preferenze di EVE.

Figura 1: la finestra delle preferenze di EVE.

 

La figura 3 mostra le figure geometriche utilizzate per rappresentare elementi che erano già presenti in Goosee, tool di software engineering utilizzato per il design con metodologia OOP: in questo modo, mediante EVE, è possibile riportare le stesse definizioni che erano già presenti in Goofee o Goosee.

Figura 3: la rappresentazione degli elementi in EVE.

Figura 3: la rappresentazione degli elementi in EVE.

Con EVE possiamo modellare la nostra applicazione e documentare il nostro lavoro, anche se non disponiamo delle diverse prerogative che un tool C.A.S.E. commerciale fornisce. E’ possibile, come per Goofee, definire flussi di comunicazione basati su eventi con connessioni sincrone o asincrone, definire messaggi senza o con reply e, ancora, basati su timeout. E’ inoltre consentito l’uso di database privati, comuni e gestiti con una politica di mutua esclusione. Inoltre, sono presenti nodi o sottonodi, di livello differente, per rappresentare strutture o prototipi. La figura 4 mostra, un altro punto di vista con un approccio basato su data flow.

Figura 4: un approccio basato su data flow.

Figura 4: un approccio basato su data flow.

Infine, la figura 5 pone in evidenza una porzione della nostra applicazione con l’esploso della parte del codice direttamente rela zionabile con i vari flussi precedenti.

Figura 5: una porzione di un diagramma relativo ad una applicazione.

Figura 5: una porzione di un diagramma relativo ad una applicazione.

Le possibilità offerte da EVE sono innumerevoli. È possibile utilizzarlo per creare elementi grafici da inserire nella nostra documentazione di riferimento o definire una serie di strumenti utilizzabili per mettere a punto una suite di elementi utili a modellare il nostro sistema. Tra le opzioni che EVE offre c’è la possibilità di esportare la propria applicazione in un file in formato eseguibile. In questo modo è possibile mettere a punto una presentazione interattiva, sempre posta in esecuzione all’interno di EVE: una presentazione in grado di mettere in evidenza l’applicazione con le differenti soluzioni adottate. Per creare un’applicazione di questo tipo è necessario selezionare l’opzione “Exporting as embedded” presente nel menu File. Una volta scelta si creare, nella cartella specificata, un file “nomefile.eve.exe”. In questo caso basterà lanciare questo file e in maniera automatica, e perfettamente trasparante, sarà posta in esecuzione EVE con il progetto associato. Le possibili applicazioni di una scelta del genere sono diverse, per esempio in questo modo è possibile inviare via mail presentazioni del nostro progetto senza preoccuparci di inviare una copia di Eve. EVE non è solo un ottimo strumento di documentazione, ma rappresenta anche un valido ausilio nella fase di presentazione o di definizione del prodotto. Non solo, con EVE è anche possibile applicare una tecnica di compressione, LZP, al file generato.  Il formato LZP è stato definito e realizzato da Bloom. Con il formato LZP si raggiungono  livelli di compressione veramente efficienti. La figura 6 mostra, infine, i vari passi per poter generare, attraverso Eve, schemi logici.

Figura 6: i vari passi per poter generare schemi logici, attraverso Eve.

Figura 6: i vari passi per poter generare schemi logici, attraverso Eve.

 

 

 

Una risposta

  1. Stefano Lovati Stefano Lovati 9 marzo 2019

Scrivi un commento

EOS-Academy