Clicky
acquisto applicativo o progettazione software

Sviluppo Software

Quali sono le fasi di sviluppo di un software? Conviene acquistare programmi già sul mercato o svilupppare applicazioni ex-novo? Il cliclo di vita del software.


Vi siete mai chiesti perchè ci sono milioni di software (app, siti web dinamici, giochi) gratuite su internet, ma se richiedo un software ad un programmatore i costi sono piuttosto elevati?

Questo accade perchè dietro c'è un gran lavoro che spesso la gente ignora.

In questo articolo abbiamo cercato di rispondere a queste domande delineando un modello di sviluppo delle applicazioni all’interno di una software house (come ad esempio la SeoBox snc).

Questa serie di passi per la produzione di software consentirà di:

  • pianificare le attività e le risorse necessarie per lo sviluppo di applicativi (software, app, siti web);
  • prevedere e controllare i costi del processo e la qualità dei prodotti informatici;

Senza una linea guida, lo sviluppo avviene in maniera caotica e ciò causa problemi di controllo dei tempi, dei costi e della qualità del software; fattori che sfociano nell’insoddisfazione del cliente.

Nascita del software

Il software può essere commissionato direttamente da un cliente ovvero nascere in autonomia (nel nostro caso è evidente che sono molte di più le occasioni in cui sia il cliente a commissionarci il progetto).

In entrambi i casi, al fine di determinare un’analisi costi/benefici, occorre attenersi allo schema seguente:

  • Studio di fattibilità del software
    • Identificazione preliminare del problema, delle alternative, delle soluzioni di massima possibili
  • Analisi Funzionale del software
    • Analisi e  specifiche dei requisiti (descrizione del problema)
  • Analisi Tecnica
    • Progettazione (definizione della struttura  della soluzione)
  • Deployment & debugging
    • sviluppo e debugging
  • Piano di test ed integrazione dell'applicativo
    • test del sistema
    • addestramento del personale
  • Manutenzione del software
    • Manutenzione per tutta la vita del software attraverso contratti di assistenza

Studio di fattibilità

Prima di affrontare lo studio di fattibilità del problema occorre preventivare un costo per lo svolgimento dello studio stesso che il cliente deve accettare prima ancora di proseguire l’analisi.

Lo studio di fattibilità deve determinare anche l’analisi costi/benefici per valutare se il progetto deve essere avviato, le eventuali alternative, le risorse di massima necessarie (buy or make).

Lo studio di fattibilità deve essere capito dal cliente e dall'analista informatico. Non deve avere un livello tecnico alto. Questo anche perché non sempre il cliente che “paga” è il cliente che “usa” il software.

ll compito di questo documento deve essere quello di ricercare soluzioni in tempi e costi accettabili e non arrivare a miglioramenti della soluzione stessa.

Le 5 “W” del giornalismo

  • Who
    • Chi userà il sistema?
  • Why
    • Perchè svilupparlo?
    • Perchè gli utenti dovrebbero volerlo usare?
  • What
    • Che cosa fornirà?
    • In questo caso, sarebbe opportuno rispondere anche ad how
  • Where
    • Dove verrà usato?
    • Per quale architettura?
  • When
    • Quando sarà pronto all'uso?
    • Quando (e per quanto) sarà usato?

Analisi funzionale (specifica dei requisiti) di un software

Se non si sono trovate soluzioni di terze parti sul mercato o metodi alternativi che possono mettere d’accordo il cliente con le proprie esigenze, si procederà, previa approvazione dello stesso (contrattualizzazione), alla stesura dell’Analisi funzionale.

Questo documento comprende la definizione e le specifiche dei requisiti. Deve presentare che cosa deve fare il sistema. L’analisi funzionale sarà basata sullo studio di fattibilità dove sono raccolte le informazioni rese dal cliente e quelle “prese” da SeoBox di Massimo Sgambato

Le variabili da prendere in considerazione saranno:

  • Il Comportamento del sistema informatico
  • Le limitazioni di implementazione del software
  • I tempi ed i costi per lo sviluppo dell' "App"
    • Analisi tecnica
    • Sviluppo programma
    • Documentazione
    • Debugging
    • Installazione
    • Manutenzione
  • Le condizioni contrattuali

Analisi tecnica di un software

L’analisi tecnica è un documento interno che non verrà mai mostrato al cliente.

E’ il progetto del software schematizzato. E' redatta da un'analista informatico ed è una sorta di linea guida per il programmatore!

L’analisi tecnica si focalizza su quattro elementi:

  1. Struttura dei dati
  2. Architettura del software
  3. Interfacce (grafiche o non)
  4. Algoritmi di dettaglio

L’architettura del software prevede, tra gli altri compiti, la suddivisione del problema in tanti piccoli sotto-problemi e l’assegnazione degli stessi ai vari programmatori che fanno parte del team di sviluppo software.

Anche se vi fosse un solo programmatore è necessario suddividere il problema in tanti piccoli sotto-problemi (moduli) in modo che sia più facile affrontare lo sviluppo del software.

Deployment (sviluppo & debugging del software)

Il software viene codificato mediante linguaggi di programmazione (a seconda di quelle che sono le esigenze funzionali). Ogni modulo viene implementato usando il linguaggio di programmazione scelto (si ponga ad esempio il caso di un software con interfaccia web che viene sviluppato in Asp.net e in Javascript).

Durante la fase di sviluppo sul software possono essere eseguite varie verifiche e correzioni.

Piano di test dello sviluppo software

Fa parte della fase di debugging. A differenza del debugging in "corso d'opera", il piano di test solitamente viene sviluppato con il committente e tenderà a dimostrare che, seguendo un iter preciso, non solo le procedure rispettano quello stabilito nell’analisi funzionali ma sono anche libere da errore.

Manutenzione del software

Una volta messo in uso il software all'interno della struttura del cliente, questi sottoscriverà un contratto di manutenzione che gli permetterà di avere un'assistenza continua sul programma adottato. I tecnici informatici intervengono in qualità di help desk per fornire al cliente le informazioni necessarie all'uso del programma o redimere piccoli problemi che possono insorgere nel managment quotidiano del software.

Il software non è soggetto ad “usura”!

L’adeguamento a modifiche intervenute nei requisiti o nell’ambiente operativo deve esser computata a parte, anche in presenza di un contratto di assistenza. Il contratto di manutenzione deve essere sottoscritto non al momento della consegna del software, ma al momento della contrattualizzazione (analisi funzionale).

Licenze d'uso

In assenza di accordi o condizioni particolari, spesso il ciente ignora che il software che lui ha commissionato e pagato non è il suo!

Infatti la proprietà del software è quasi sempre del produttore (apparte il software open source) mentre è riconosciuto al cliente il diritto di poterlo utilizzare.

Nella stragrande maggioranza dei casi il cliente può utilizzare il programma ma non "rivenderlo", gli sfruttamenti economici del software sono sempre della software house (a meno che non vi siano accordi contrattuali diversi).

In linea generale, i sorgenti dell'applicazione (ovvero il codice necessario che si è dovuto implementare per la redazione del software) e gli schemi di progettazione software (analisi tecnica) rimangono sempre nelle mani della software house.


Commenti

Lascia un commento

Sistema Antibot Sistema Anti-Bot
Inserire il risultato dell'operazione per proseguire:

 

News informatica correlate in Consulenza informatica in Valdarno   Articoli Correlati di Consulenza informatica in Valdarno


Seguici sui social network!