29.05.2013 Views

Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab

Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab

Metodologie e strumenti dell'Ingegneria dei Requisiti ... - MobiLab

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

prevedibile, l'attenzione debba essere concentrata sul controllo <strong>dei</strong> costi e schedulazione.<br />

Altresì, laddove la spinta principale è data dalla soddisfazione dell'utente, un approccio del<br />

genere pone alcune limitazioni al successo del prodotto.<br />

È bene notare, infatti, che esistono punti di vista contrastanti rispetto all'adozione <strong>dei</strong> metodi<br />

agili come soluzione a qualsiasi tipo di problema di sviluppo. Infatti, pur presentando indubbi<br />

vantaggi se applicati in contesti specifici, in altri la loro applicazione risulta inefficace e/o difficile,<br />

se non impossibile.<br />

Si ritiene che i Metodi Agili non siano applicabili in contesti quali[34]:<br />

• Ambienti distribuiti 118 ;<br />

• Produzione di componenti riusabili;<br />

• Sviluppo eseguito da gruppi numerosi di persone;<br />

• Software Safety-Critical;<br />

• Sviluppo di sistemi grandi e complessi<br />

Tipicamente, tale approccio viene adoperato nella produzione di software volto alla<br />

risoluzione di una specifica esigenza. Infatti, è bene notare che i contenuti tempi di sviluppo possono<br />

rappresentare un ostacolo per l'implementazione di soluzioni generiche, quindi riusabili.<br />

Del resto, uno <strong>dei</strong> capisaldi dello sviluppo Agile è:<br />

“there is no need to design for change because any change can be effectively handled by refactoring<br />

the code” [35].<br />

Gli approcci agili sono focalizzati sullo sviluppo a breve termine, che rappresenta l'attuale<br />

commessa, piuttosto che sui benefici che si potrebbero ottenere nei progetti futuri, che rappresentano<br />

le commesse di clienti con i quali si dovrà cooperare. Dunque, l'obiettivo della loro applicazione<br />

concerne l'ottimizzazione del progetto corrente, quindi concreto, piuttosto che quella di un eventuale<br />

progetto futuro.<br />

Inoltre, nei sistemi di grandi dimensioni e complessi, gli aspetti legati all'architettura sono di<br />

fondamentale importanza, pertanto, il costo di un eventuale cambiamento può essere anche molto<br />

alto. In questi casi, prevenire alcune modifiche nel progetto potrebbe costituire un notevole<br />

vantaggio in termini economici.<br />

Si pensi, ad esempio, ai sistemi legacy, le cui funzionalità risultano fortemente accoppiate e,<br />

per i quali, un approccio incrementale potrebbe non risultare idoneo. Infatti, a causa delle<br />

dimensioni e della complessità di tali sistemi, il refactoring del codice potrebbe divenire<br />

particolarmente costoso e soggetto ad errori.<br />

118Sono in atto alcuni studi che vanno verso questa direzione.<br />

88

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!