Modalità di sviluppo di soluzioni informatiche

Come sviluppare soluzioni informatiche complete basandosi sul processo SDLC.

A fronte della segnalazione di una necessità o della presenza di un problema, l’obiettivo è trovare e implementare una soluzione informatica adeguata. In maniera più o meno formale si attivano processi atti all’individuazione delle specifiche di progetto, della conversione delle stesse in termini informatici e dell’implementazione del software. Durante gli sviluppi, frequentemente, tali specifiche sono soggette a variazioni, a causa di fattori esterni o errori di formalizzazione dovuti alle difficoltà di comunicazione tra attori dai profili diversi (chi conosce il problema non è tecnico, e il tecnico non conosce il problema). La conoscenza di questa ipotesi porta chi gestisce lo sviluppo del software a procedere in maniera iterativa, validando il lavoro man mano che viene svolto, con l’intento di minimizzare l’impatto degli errori sul risultato finale. Una volta completato il lavoro e portato in produzione l’applicativo, parte la fase di manutenzione dello stesso, dove saranno necessarie modifiche correttive ai malfunzionamenti e modifiche evolutive per venire in contro alle nuove esigenze.

Il ciclo di vita di un sistema informatico è composto da un numero di fasi di lavoro chiaramente definite e distinte che vengono utilizzate dai sistemisti e sviluppatori per pianificare, progettare, costruire, testare e fornire sistemi informativi. Come tutto ciò che avviene all’interno di un’azienda, è necessario produrre soluzioni che soddisfino o superino le aspettative del committente, basate sui requisiti specifici, entro scadenze pianificate e preventivi di spesa. Anche nel caso in cui il progetto venga svolto internamente all’azienda il reparto dei sistemi informativi sostiene costi di cui deve rendere conto, e deve soddisfare il cliente, che in questo caso generalmente è un altro reparto dell’azienda. Spesso le soluzioni da implementare vivono in un contesto complesso e quasi sicuramente si integrano a piattaforme software preesistenti all’interno dell’azienda, con l’obiettivo di centralizzare l’informazione e instaurano un dialogo tra sistemi informativi diversi, spesso prodotti commerciali, altre volte soluzioni home-made, altre volte soluzioni custom implementate da fornitori esterni. In questo contesto è essenziale essere a conoscenza della particolare architettura infrastrutturale al fine di adottare una soluzione valida e funzionale.

Tuttavia presupporre che il processo di sviluppo software consista nel risolvere un problema per via informatica è estremamente semplificativo e non descrive l’intera complessità del problema.

In letteratura tale processo è stato denominato System Developement Life Cycle (SDLC). Il termine “System” piuttosto che “Software” sta ad indicare che l’oggetto degli sviluppi non comprende solo il software in sé, ma anche gli apparati e le infrastrutture nel complesso.

Il processo SDLC consiste principalmente nel:

  1. determinare la necessità (Analisys)
  2. progettare una soluzione che possa risolvere il problema (Design)
  3. realizzare materialmente la soluzione (Implementation)
  4. Manutenere l’applicazione (Maintenance)
  5. Pianificare interventi evolutivi (Planning)

 

processo SDLC

processo SDLC

 

Già da questa descrizione sommaria si evince come l’approccio allo sviluppo software sia concepito come ciclico e necessiti il coinvolgimento del committente al fine di garantire il raggiungimento degli obiettivi preposti. Inutile dire, che come per qualunque altra tipologia di progetto, sia necessario trovare una modalità di validazione del risultato ottenuto (Controllo) al fine di certificare la qualità dello steso.

Le caratteristiche ideali del processo di sviluppo del software sono state formalizzate in letteratura e al problema di come organizzare i processi di sviluppo del software sono state trovate diverse soluzioni, dette metodologie di sviluppo, che possono essere convenientemente adottate a seconda della complessità del progetto e delle dimensioni del gruppo di lavoro. Per alcuni aspetti la gestione del progetto e la gestione del ciclo di vita per lo sviluppo software si sovrappongono, tuttavia risultano essere due attività distinte; ogni ambiguità viene risolta adottando la visione di Taylor (2004), che demarca i confini tra le due attività: “the project life cycle encompasses all the activities of the project, while the systems development life cycle focuses on realizing the produc requirements (James Taylor (2004). Managing Information Technology Projects).

All’interno del processo di sviluppo di un software ci sono alcune tematiche importanti:

danielefontani

Actually CTO in Sintra Consulting s.r.l, I'm senior developer and architect specialized on portals, intranets, and others business applications. Particularly interested in Agile developing and open source projects, I worked on some of this as project manager and developer. My experience include: Frameworks \Technlogies: .NET Framework (C# & VB), ASP.NET, Java, php, Spring Client languages: XML, HTML, CSS, JavaScript, Angular.js,Angular. jQuery Platforms: Sharepoint,Liferay, Drupal Databases: MSSQL, ORACLE, MYSQL, Postgres

Lascia un commento