Produzione del software mediante l’utilizzo di un Framework

Produzione del software mediante l’utilizzo di un Framework

Produzione del software mediante l'utilizzo di un Framework

Nell’ambito generale della produzione del software, un framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base di un framework c’è sempre una serie di librerie di codice utilizzabili con uno o più linguaggi di programmazione e spesso corredate da una serie di strumenti di supporto allo sviluppo del software, come ad esempio un IDE (ambiente di programmazione integrato in un’applicazione), un debugger (strumento per la localizzazione e rimozione di eventuali errori), o altri strumenti ideati per aumentare la velocità di sviluppo del prodotto finito.

Lo scopo di un framework, pertanto, è quello di far risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili o specifici, circostanza che si presenta sempre più spesso man mano che le interfacce utente sono diventate sempre  più complesse, o più in generale man mano che è aumentata la quantità di software con funzionalità secondarie simili.

Un esempio a riguardo potrebbe essere il tipo di interazione con l’utente offerta da un menu a tendina; quest’ultima sarà sempre la stessa indipendentemente dall’applicazione cui il menu appartiene (o almeno questo è ciò che l’utente si aspetta).

In casi come questo un framework che permetta di aggiungere la funzionalità di una finestra con un menu a tendina soltanto con poche righe di codice sorgente a carico del programmatore, o magari permettendogli di disegnare comodamente il tutto in un ambiente di sviluppo, permetterà al programmatore di concentrarsi sulle vere funzionalità dell’applicazione, senza doversi fare carico di scrivere codice “di contorno”.

Esigenze e vantaggi di un framework

Il termine inglese framework quindi può essere tradotto come “intelaiatura” o “struttura”, ed è appunto la sua funzione (come a sottolineare che al programmatore rimane solo da creare il  contenuto vero e proprio dell’applicazione.

Un framework solitamente è definito da un insieme di librerie o di classi (secondo che si faccia riferimento alla programmazione degli anni ’80 o al nuovo paradigma di programmazione ad oggetti) e dalle relazioni tra esse, mentre una libreria software è un insieme di funzioni di uso comune, predisposte per essere collegate ad un programma applicativo. Il collegamento può essere statico o dinamico, nel qual caso si parla di Dynamic-link library.

Lo scopo delle librerie software è quello di fornire una vasta collezione di funzioni di base pronte per l’uso, evitando al programmatore di dover scrivere ogni volta le stesse funzioni di uso generale. Ad esempio molti linguaggi di programmazione hanno una libreria di funzioni matematiche, che offrono numerose funzioni come l’elevamento a potenza, il calcolo dei logaritmi e così via.

Ogni linguaggio di programmazione possiede la sua collezione di librerie, le quali vengono distinte in librerie standardizzate e librerie non standardizzate. La differenza tra librerie standard e non standard influisce in maniera determinante sulla portabilità di un programma software fra sistemi operativi diversi e piattaforme hardware diverse. I programmi che fanno uso solo di funzioni di librerie standard hanno generalmente un grado di portabilità maggiore. Il termine italiano viene da un’errata traduzione dell’inglese library, che vuol dire biblioteca, ma oramai libreria è entrata a tal punto nel vocabolario dei professionisti del settore che sarebbe troppo difficile e lungo far accettare il termine corretto.

Scrivere un framework perciò significa fornire un’implementazione di librerie o di classi astratte in modo da avere un punto di partenza altamente indipendete da ciò che effettivamente il programmatore andrà a svilupparci sopra. L’insieme delle funzioni o delle classi concrete, definite ereditando il framework, eredita le relazioni già esistente tra le stesse; ottenendo in questo modo un insieme di funzioni e/o classi concrete con un insieme di relazioni tra classi.

Lo scopo dei prossimi articoli sarà quello di fornire gli strumenti necessari per la scrittura di un framework per i tre diversi ambiti:

  • supporto alle attività di digital forensic: cioè che metta a disposizione degli sviluppatori un insieme di librerie di base che eseguano quelle che sono le operazioni viste in precedenza;
  • pubblico: cioè le librerie sono scritte nel rispetto della filosofia Open Source la quale ha come obiettivo quello di diffondere il codice sorgente al fine di apportare ulteriori aggiornamenti e miglioramenti oltre al vantaggio legato all’assenza di costi di acquisto;
  • certificato: cioè un prodotto di qualità che, per il suo sviluppo, abbia rispettato e seguito le linee guida degli standard riguardanti il Sistema di Gestione della Sicurezza delle Informazioni riportate nelle normative BS7799 e ISO27001 e le linee guida riportata dal progetto OWASP (Open Web Application Security Project) con la metodoligia CLASP (Comprehensive, Lightweight Application Security Process).

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *