requisiti

ISO 25010

Ho pubblicato una breve presentazione dello standard ISO 25010 “Systems and software engineering - System and software quality models”, uscito nel 2011.

ISO 25010 fornisce una classificazione di requisiti non funzionali (o “attributi di qualità”) che sostituisce quella del precedente standard ISO 9126. La nuova classificazione distingue tra requisiti sulla qualità intrinseca del prodotto (“product quality”) e requisiti sulle caratteristiche inerenti all'uso del prodotto (“quality in use”).

Categorie: 

Casi d'uso 2.0

Ivar Jacobson, ideatore dei casi d'uso, ha pubblicato una presentazione di "Use Cases 2.0" (è richiesta una registrazione per scaricarla).

L'elemento più interessante è il concetto di "use case slice" (fetta di caso d'uso).

La "use case slice" corrisponde ad un insieme di scenari e di relativi casi di test da implementare in modo incrementale. Solo alcuni tra i possibili percorsi all'interno del caso d'uso, non tutti.

A volte può anche essere opportuno rilasciare la "slice" prima che l'intero caso d'uso sia completato, in quanto rappresenta già da sola un elemento di valore per gli utenti del sistema. In questo modo lo sviluppo di "slice" successive si coniuga efficacemente con gli approcci iterativi e incrementali.

Categorie: 

Quantificare gli obiettivi di business

Quando un progetto parte da obiettivi di business generici è difficile che ottenga i risultati sperati.

Precisare gli obiettivi mediante la loro quantificazione aiuta il committente e gli stakeholder a chiarirsi le idee e a fornire le indicazioni necessarie per chi deve realizzare il sistema.

Tom Gilb: Quantifying Management Bull: Forcing IT stakeholders to reveal the value they really want from your IT project, in RQNG (Requirements Networkin Group)

Categorie: 

Requisiti: specificità di materia

Per definire e gestire i requisiti è più importante la padronanza delle tecniche di analisi (ad esempio definire il contesto del sistema, identificare gli interessi degli stakeholder, eliminare ambiguità, negoziare conflitti) o la conoscenza della materia specifica (ad esempio il settore bancario, o quello di telecomunicazioni, o il campo medico?).

Certo, sono importanti entrambe le cose, ma in quale misura?

Sul tema, un intervento di Ian Alexander su Requirements Quarterly 56.

Categorie: 

Casi d'uso 2011

Ivar Jacobson, l'ideatore dei casi d'uso, ha pubblicato sul suo blog due interventi sullo stato dell'arte della tecnica:

Nel primo intervento, Jacobson spiega perché la tecnica continua ad essere usata con successo, e fa il punto su alcuni fraintendimenti. Nel secondo intervento, Jacobson propone due evoluzioni della tecnica, legate alla gestione incrementale dello sviluppo e al trattamento degli aspetti derivanti dai requisiti non funzionali.

Categorie: 

Dagli obiettivi di business alle architetture software (passando per i requisiti)

Un recente Technical Report del Software Engineering Institute tratta il tema della frequente mancanza delle informazioni necessarie per definire le architetture software.

"C'è un disallineamento profondo e sostanziale tra le informazioni contenute nelle specifiche dei requisiti e quelle di cui gli architetti hanno bisogno. Il disallineamento si evidenzia in due aspetti:

1. La maggioranza dei contenuti di una specifica dei requisiti non determina né contribuisce a definire l'architettura. Le architetture sono soprattutto determinate dai requisiti non funzionali; eppure la parte più consistente delle normali specifiche dei requisiti si focalizza sulle funzionalità del sistema, che hanno un impatto limitato sulla scelta delle architetture. Peggio ancora, molte specifiche specificano poco e male i requisiti non funzionali; molte li ignorano completamente.

2. Parecchie informazioni che sarebbero utili ad un architetto software non si trovano neppure nelle migliori specifiche dei requisiti. Sono informazioni che derivano dagli obiettivi di business dell'organizzazione in cui origina l'esigenza di sviluppo, come ad esempio impiegare le risorse in modo produttivo, ammortizzare gli investimenti fatti in strumenti e tecnologie, rispettare le indicazioni provenienti dalla gestione delle risorse umane, migliorare il posizionamento di mercato dell'organizzazione rispetto alla concorrenza, ed altri aspetti analoghi."

L'individuazione degli obiettivi di business da cui partire deve avvenire con il coinvolgimento degli stakeholder, attraverso interviste o workshop. Il report propone un modo innovativo di definire gli obiettivi di business, basato sull'analisi di alcuni elementi di base:

  • il soggetto che ha interesse al raggiungimento dell'obiettivo (es. uno sponsor)
  • l'oggetto toccato dall'obiettivo (es. il cliente di cui si desidera migliorare la soddisfazione)
  • il contesto in cui l'obiettivo va interpretato (es. di mercato, o tecnologico, o sociale)
  • le unità di misura utili per valutare se l'obiettivo è stato raggiunto
  • il grado di volatilità dell'obiettivo
  • il valore dell'obiettivo

Il passo successivo consiste nella derivazione dagli obiettivi di business dei requisiti non funzionali (o "requisiti sugli attributi di qualità", come vengono chiamati nel report), partendo dal presupposto che ogni requisito non funzionale deve trovare la propria ragion d'essere in un obiettivo significativo a livello di business.

Ciò consente, tra l'altro, di analizzare in modo critico eventuali vincoli e requisiti non funzionali precedentemente espressi, per verificarne il fondamento in termini di obiettivi di alto livello.

Il report, "Relating Business Goals to Architecturally Significant Requirements for Software Systems", a cura di Paul Clements e Len Bass, è scaricabile dal sito del SEI.

ROI degli investimenti in system engineering

Uno studio pubblicato nel 2008 da Barry Boehm, Ricardo Valerdi e Eric Honour esamina il ritorno di investimenti (ROI) nelle pratiche di system engineering (requisiti, riduzione dei rischi architetturali, project management).

Lo studio prende in esame 151 progetti software, analizzati secondo la griglia interpretativa del metodo COCOMO (Constructive Cost Model).

Tra i risultati più rilevanti:

  • le pratiche di system engineering hanno un effetto positivo generalizzato in termini di aumento della produttività e di riduzione dei costi, a prescindere da altri fattori
  • il livello di system engineering opportuno varia in funzione delle dimensioni e della criticità dei progetti (al crescere delle dimensioni e della criticità, è necessaria una quota maggiore di attività di system engineering)

Lo studio riporta una serie di considerazioni specifiche relative al ROI delle attività di system engineering in progetti che comportano relazioni di outsourcing.

Barry Boehm, Ricardo Valerdi, Eric Honour, "The ROI of Systems Engineering: Some Quantitative Results for Software-Intensive Systems," Systems Engineering, Volume 11, Issue 3, April 2008, pp. 221-234, disponibile all'indirizzo http://csse.usc.edu/csse/TECHRPTS/2008/usc-csse-2008-808/usc-csse-2008-8...

Value delivery

Fornire valore agli stakeholder (le parti interessate al rilascio di un prodotto) è ciò che si chiede allo sviluppo software.
Ma le specifiche dei requisiti spesso dettagliano solo i dettagli sulle funzionalità, anziché affrontare in modo diretto gli interessi degli stakeholder e chiarire ciò che per gli stakeholder è davvero importante.

"What's Fundamentally Wrong? Improving our Approach Towards Capturing Value in Requirements Specification", un articolo di Tom Gilb con Lindsey Brodie, su Requirements Network (per leggerlo, serve una registrazione gratuita).
Categorie: 

Contesto, requisiti, architettura

Tra i rischi che impattano sulle architetture software due sono particolarmente rilevanti:
  • la definizione dei confini del sistema (cioè del contesto, delle relazioni del sistema con altri sistemi esterni)
  • la vaghezza o la mancata definizione dei requisiti non funzionali
Learning from Failure, Part 1: Scoping and Requirements Woes , di Frank Buschmann, su IEEE Software nov/dec 2009.

Requisiti legati al luogo fisico

"The application shall display a local street map at all times".

Alcune implicazioni legate ai requisiti nell'uso di sistemi mobili. Neil Maiden, su IEEE Software September/October 2009.
Categorie: 

Pages

Subscribe to RSS - requisiti