|
Per disegnare diagrammi di rete, anche se esistono software ben più evoluti, tipicamente utilizzo Microsoft Visio o Powerpoint. Trovo semplice ed efficace l'idea dei connettori, ovvero di quei componenti che si agganciano ad una forma (shape) e ne seguono i movimenti, senza costringere così chi compone il diagramma a risistemare tutto per ogni minimo cambiamento della posizione degli oggetti.
Mentre stavo affrontando la problematica di scrivere un simulatore per reti basate sul protocollo TCP/IP (che spero di mettere sul sito in tempi decenti...) mi è venuta per così dire la "voglia" di non utilizzare la solita interfaccia testuale in cui l'input è un file di testo più o meno del seguente tipo :
object=Emitter_0; type=Emitter; x1=116; y1=119; lnk1=; x2=196; y2=199; lnk2=; end object. etc...
Piuttosto mi sembrava intrigante avere un'interfaccia grafica, con gli oggetti che potessero essere spostati con drag & drop, con i relativi collegamenti che li seguissero, come nei programmi sopra citati e che desse (ma solo come risultato finale) un file di testo strutturato come il precedente.
Il risultato finale di questa idea è il programmino in C# che qui presento (sorgente + eseguibile) e di cui questo è lo screenshot più significato:

Il software implementa in pratica un semplice front end ovvero costruisce un diagramma in cui agli oggetti sono associate delle immagini ed in cui i medesimi oggetti sono collegati da legami di dipendenza diretta, espressi tramite links, memorizza i dati in un vettore in memoria, lo salva o lo carica da hard disk. Tutto qui. A livello di calcolo/simulazione non fa niente dunque, ma ha una struttura che lo rende immediatamente "contestualizzabile" ovvero agganciabile in modo semplice al patricolare algoritmo di calcolo che utilizzeremo, come emerge dal documento di analisi.
Faccio notare infine che il programma è basato su considerazioni molto generali : come esempio utilizza una rete TCP/IP ma è ovvio che basta cambiare icone, nome e numero degli oggetti perchè possa costituire l'interfaccia grafica di un software per la gestione o simulazione di reti di qualunque altro tipo (es. logistiche).
Il programma in questione è stato reso disponibile anche su codeproject al seguente indirizzo:
http://www.codeproject.com/KB/GDI-plus/Graphic.aspx
con documentazione in inglese. Vedremo se ne potrà venir fuori qualcosa di interessante.
|