Oggi molte aziende sono in grado di
sviluppare bene sulla
piattaforma .NET, con paradigmi di programmazione (object oriented, procedurali, funzionali, user oriented, ecc.), con modelli di programmazione asincroni e simultanei, in interoperabilità e consentendo l’esecuzione su più piattaforme. Quello che noi proponiamo è
un servizio che non si ferma alla semplice realizzazione del codice, ma porta una
visione più ampia e più precisa dell’intero progetto, mettendo il focus in particolar modo sulle criticità, al fine di produrre prodotti solidi e ben equilibrati. Analisi, rigorosità, controllo dei processi e un’ottima fase di test prima del rilascio, permette di consegnare al cliente dei prodotti di ottima qualità. Quando si parla di
ciclo di vita del software si fa riferimento alla modalità con la quale la realizzazione di prodotti software viene scomposta in una metodologia di sviluppo.
1. L’analisi
Nella maggior parte dei modelli di ciclo di vita del software si comincia con l’analisi, che non è altro che l’indagine preliminare del contesto all’interno del quale deve essere inserito il prodotto software.
Anche l’analisi può essere, a sua volta, scomposta in altre sottoattività: analisi dei requisiti, analisi di fattibilità, analisi del dominio applicativo, ..ecc. Lo scopo è quello di identificare il problema che deve essere risolto, per arrivare all’elaborazione di un documento, il cosiddetto documento di specifiche funzionali, in cui siano illustrate le caratteristiche del sistema.
2. La progettazione
L’analisi è seguita dalla progettazione, per la quale vengono definite le linee principali della struttura del software secondo i requisiti che sono stati ricavati dall’analisi. Il progetto architetturale costituisce una delle due più importanti sottoattività della progettazione e deve condurre a un documento che definisca l’architettura di alto livello. Successivamente vengono definite le caratteristiche dei moduli, nel documento di dettaglio, che delinea i singoli componenti.
3. La scrittura del codice
Dopodiché è il momento di scrivere il codice, cioè “banalmente” si dice di sviluppare il software: ciò corrisponde semplicemente alla programmazione e alla realizzazione del prodotto.
4. Il debugging
Per velocizzare alcune tipologie di errore derivate dalla scrittura del codice, si ricorre a dei programmi gestori di segnalazione anomalie per gestire le anomalie di funzionamento: si tratta di sistemi di bug tracking che semplificano l’organizzazione dei problemi registrati.
5. Il collaudo
Poi, è la volta delicata e molto importante del collaudo, che viene effettuato da vari tester e che prevede di verificare se e in che modo il software ottenuto è in grado di soddisfare i requisiti specificati al momento dell’analisi. In altri termini, con il collaudo si controlla la correttezza del prodotto, sia tramite il collaudo dei singoli moduli, sia tramite il collaudo del sistema integrato. Nel caso in cui le specifiche non siano state rispettate, il software viene rispedito agli sviluppatori, in modo tale che i problemi identificati possano essere risolti.
6. La pubblicazione
Quando il software ha passato la fase di collaudo e ha dimostrato che le verifiche sono state superate, il ciclo di vita prevede almeno la presentazione di una “versione Beta”, che è una versione del software non definitiva, già testata dagli esperti e che viene messa a disposizione di un numero maggiore di utenti, confidando proprio nelle loro azioni imprevedibili che potrebbero portare alla luce nuovi bug o incompatibilità del software stesso. Successivamente avviene la pubblicazione di una versione definitiva del programma (normalmente identificata con il codice 1.0) , la quale quindi viene messa a disposizione degli acquirenti o di chiunque, a seconda di quel che prevede la licenza d’uso.
7. La manutenzione
Il ciclo di vita del software si conclude con la fase della manutenzione, che include l’insieme di sottoattività di cui c’è bisogno per modificare il software dopo la distribuzione. Si parla di manutenzione correttiva nel caso in cui ci sia la necessità di correggere tramite patch degli errori. Si parla invece di manutenzione evolutiva se invece, lo scopo è solo quello di ampliare le funzionalità non pensate preventivamente o derivate dall’uso del software.