Ercole Colonese

Consulenza di direzione e servizi IT

Home |  Sviluppo software | Gestione servizi IT | Gestione progetti | Test e collaudi | Competenze relazionali | Servizi | Pubblicazioni | Chi sono | Info

Best Practice proposte:

Home > Utilizzo delle Best Practice nel software

Indagine in corso

Questionario

Risultati dell'indagine

Best Practice proposte:

1. Analisi accurata dei requisiti

> 2. Qualità della progettazione

3. Stima accurata del progetto

4. Pianificazione realistica

5. Gestione attenta dei rischi

6. Adeguatezza delle risorse

7. Revisione tecnica (ispezione)

8. Adeguatezza dei test

9. Gestione delle modifiche

10. Gestione della qualità

Collaborazione cliente-fornitore

 

 

 

2. Qualità della progettazione

La progettazione (design) del software è fatta congiuntamente alla fase di analisi. Infatti, le attività di analisi e di progettazione sono fortemente correlate e svolte in maniera ciclica e iterativa. Man mano che l'analisi si va consolidando anche la progettazione prende sempre maggiore forma e consistenza e si consoliderà solo quando l'analisi sarà completata.

Obiettivo della fase di analisi è quello di tradurre i requisiti ("cosa" fare) in una specifica funzionale che descriva "come" sviluppare le richieste. La traduzione di requisiti in specifiche funzionali di un sistema è un'attività importante, complessa e difficile. L'utilizzo di un formalismo descrittivo (test) oppure di una modellazione (modello dei casi d'uso) rappresenta un elemento importante e di grande aiuto.

La progettazione, al contrario, consiste nel tradurre le specifiche funzionali in un'architettura applicativa e tecnologica che ne permetta la realizzazione pratica. La progettazione tiene conto non solo dei requisiti funzionali ma anche e soprattutto dei requisiti non funzionali o qualitativi. Si tratta infatti di prevedere quali caratteristiche debba avere il sistema da sviluppare, quali vincoli prendere in considerazione e quali standard adottare.

Obiettivo della progettazione è dunque quello di tradurre i risultati dell'analisi (specifiche funzionali o casi d'uso) in un modello tecnico-applicativo che permetta la realizzazione del sistema secondo le specifiche funzionali e con le caratteristiche tecniche definite dai requisiti non funzionali (prestazioni, robustezza, usabilità, sicurezza, scalabilità, ecc.) nell'ambiente di destinazione.

Nella progettazione è racchiusa la "qualità" del sistema finale.

Occorre perciò come prima cosa che i requisiti siano stati analizzati con cura per interpretarli correttamente e tradurli in casi d'uso dove si è condiviso con gli utenti il loro modo di operare con le funzionalità richieste.

Occorre poi definire la strategia di sviluppo che si vorrà adottare per realizzare il progetto.

Occorre infine definire un'architettura robusta su cui costruire la soluzione applicativa che risulti facile da sviluppare all'inizio e da modificare in seguito. Il software finale dovrà inoltre presentare le caratteristiche richieste: prestazioni, affidabilità, facilità di utilizzo, sicurezza, scalabilità e altri requisiti non funzionali.

Modello di design

Il modello di design è l'output principale della fase di analisi e progettazione. Esso è costituito da un insieme di elementi che descrivono il comportamento del sistema e deriva, a sua volta, dal modello dei casi d'uso e dalle caratteristiche del sistema come descritto dai requisiti non funzionali.

Il modello di design è descritto tramite le classi e la collaborazione tra le classi, raggruppate eventualmente in sottosistemi e in package. Una tale rappresentazione descrive l'architettura complessiva del sistema, la sua struttura in sottosistemi e definisce i "mattoni" di base del modello stesso.

Una "classe" descrive un insieme di oggetti che abbiano le stesse caratteristiche (responsabilità, relazioni, operazioni, attributi e semantica).

Un "package" invece è un raggruppamento logico di classi eseguito con lo scopo, per esempio, di ridurre la complessità del sistema o di migliorare la qualità della definizione del sistema stesso.

Un "sottosistema" infine è un tipo di package costituito da un insieme di classi che operano congiuntamente per fornire comportamenti specifici (funzionalità, servizi, ecc.). 

 

 

News/Articoli/Libri

News

Collaudo e qualità del software

Professione IT oggi in Italia ...

 

Collaborazioni/Associazioni

Tesit Consulting

AICQ-CI Centro insulare, Comitato software e servizi IT

APCO - Associazione Italiana dei Consulenti di Direzione e Organizzazione

itSFM Italia - IT Service Management Forum

 

Utilizzo delle Best Practice nel software

Indagine in corso

Questionario

Best Practice proposte

Ercole Colonese © 2005-2012 | Home | Mappa del sito | Pubblicazioni | Chi sono | Info |