Ambienti di sviluppo

La gestione in ambienti nel processo di sviluppo software (SDLC)

Ambienti di sviluppo

Gli ambienti sono zone controllate dove gli sviluppatori di sistemi possono costruire, distribuire, installare, configurare, testare ed eseguire gli applicativi che si muovono tramite SDLC. Ogni ambiente è allineato con diverse aree del SDLC e destinato ad avere scopi specifici. Il principio di base che è sotteso dal meccanismo è quello di creare e mantenere ambienti autonomi e completamente separati, ciascuno dei quali con determinati compiti, in moto tale da garantire la qualità del software in produzione. Nella Figura 1.3 è riportato lo schema di principio del meccanismo, che nella maggior parte dei casi corrisponde con la reale gestione degli ambienti; nella Figura 1.4 si riporta invece lo schema di funzionamento teorico completo.

 

Figura 1.3: Schema di principio tra ambienti
Figura 1.4: Schema completo
Come si intuisce dagli schemi di funzionamento, il sistema permette il passaggio del software dal PC dove è stato sviluppato fino alla produzione, tramite il passaggio sequenziale attraverso tutti gli ambienti. Il passaggio tra un ambiente e il successivo è detto “Promozione” ed è vincolato al superamento di tutti i test previsti. La promozione fisica del software può essere effettuata manualmente o tramite un software di automazione. La pianificazione, il provisioning e il mantenimento di tali ambienti è abitualmente in gestione al reparto IT.

Ambiente di sviluppo

L’ambiente in cui gli sviluppatori possono lavorare indipendentemente uno dall’altro prima di tentare di integrare il proprio lavoro con quello degli altri.

 

Ambiente di test

Qui si integrano le varie funzionalità prodotte dagli sviluppatori e possono essere effettuati test per determinare se il software è funzionante e se le varie implementazione avvenute indipendentemente l’una dall’altra sulle piattaforme di sviluppo si integrano l’una con l’altra.

Ambiente di collaudo

Qui gli stakeholder aziendali possono testare il funzionamento del software e verificarne la coerenza con i requisiti aziendali originali in quanto il passaggio in produzione è vincolato al superamento di tutti i test funzionali e di accettazione. Rimane sottinteso che l’ambiente di produzione è fisicamente diverso da quelli di test e collaudo, di conseguenza il superamento di un test all’interno degli ambienti di test non è di per se garanzia assoluta di funzionamento. È quindi buona norma, in pratica quasi mandatorio, garantire che gli ambienti di test costituiscano una replica quanto più possibile identica all’ambiente di produzione, per minimizzare le differenze e migliorare l’attendibilità dei test. La parte più difficile da replicare è l’integrazione con sistemi esterni, perché in presenza di prodotti commerciali o particolarmente onerosi da manutenere, può succedere che alcuni sistemi non dispongano di tutti gli ambienti. Inoltre, in molti casi, i pattern di errori derivano non tanto dalla struttura quanto dai dati presenti nei sistemi, di conseguenza è necessario anche avere aggiornate le basi di dati.

 

Ambiente di produzione

Questo ambiente ospita il software destinato agli utenti finali. Tale ambiente è generalmente più performante rispetto agli altri, per garantire che l’applicazione sia efficiente. Questa situazione, unitamente al diverso numero di utilizzatori contemporanei, rende non banali le previsioni in merito alle performance del prodotto finale sulla base di quanto registrato sull’ambiente di produzione. Possono essere effettuate simulazioni di carico con opportuni strumenti, sulla base di ipotesi di utilizzo, ma solo durante l’esercizio reale si potrà verificare il comportamento del sistema. In ogni caso la gestione degli ambienti di test è di per sé onerosa, perché richiede costante manutenzione per garantire la qualità dei test effettuati. Nella Figura 1.5 si riporta uno schema che riassume l’utilizzo di hardware in ciascun ambiente.

 

 

Figura 1.5: Schema che rappresenta l’allocazione HW nei vari ambienti

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