Progettare applicazioni mobili con le tecniche classiche di analisi

È percezione comune che il mondo del software sia caratterizzato da una continua innovazione, e che il ciclo di vita delle tecnologie e dei metodi sia rapidissimo, con l’emergere costante di nuovi elementi che vanno a sostituire quelli che dominavano prima, destinati a un’obsolescenza precoce. Ma non è sempre così. Ecco qualche indicazione su come sviluppare app mobile e compiere analisi funzionale del software

Pubblicato il 14 Feb 2014

Lo sviluppo di applicazioni mobili è ormai un tema attuale per tutte le organizzazioni. Nonostante esistano diverse piattaforme in concorrenza tra loro, come Android, iOS e Windows Phone, l’assenza di un unico standard non costituisce un freno rispetto alle opportunità di fornire agli utenti l’accesso mobile ai servizi aziendali.

Per molti versi, lo sviluppo di applicazioni mobili presenta caratteristiche distinte rispetto a quello di applicazioni per il web. Ritorna a essere centrale il tema dell’ottimizzazione: i dispositivi mobili hanno risorse elaborative e di memoria tipicamente più limitate rispetto ai client a cui siamo abituati, ma è indispensabile che i tempi di risposta siano molto rapidi, perché gli utenti non tollerano prestazioni inadeguate. L’ottimizzazione è complicata dal fatto che le applicazioni mobili possono essere eseguite su dispositivi di potenza diversa, e con versioni differenti del sistema operativo.

Sul fronte delle tecnologie di implementazione, lo sviluppo di applicazioni per le piattaforme più diffuse richiede l’uso di linguaggi e ambienti di sviluppo diversi: Eclipse/Java per Android, Xcode per iOS, Visual Studio per Windows Phone. Ciò costituisce un problema per chi vuole realizzare applicazioni disponibili alla maggioranza degli utenti potenziali, e ha portato alla nascita di ambienti di sviluppo multi-piattaforma.

Ma come si progettano e sviluppano le applicazioni mobili? Quali sono le tecniche per renderle efficaci? Come compiere poi analisi funzionale del software? Su questo fronte, le differenze rispetto allo sviluppo di applicazioni per altre piattaforme sono molto meno rilevanti, anzi tendono a scomparire.

Prendiamo per esempio il mondo Android. Nei tutorial online creati per la formazione degli sviluppatori vengono fornite indicazioni su come progettare una applicazione efficace, con una buona interazione tra il sistema e chi lo usa.

Le tecniche raccomandate sono queste qui di seguito, esplicitate poi più sotto:

  1. rappresentare le informazioni da gestire con un modello Entità-Relazioni;
  2. individuare i casi d’uso del sistema;
  3. definire lo schema di navigazione tra le videate (screen) che si dovranno realizzare.
Le piattaforme sono nuove, ma per la progettazione applicativa vengono consigliate tecniche classiche di analisi, le medesime che venivano usate più di trent’anni fa per lo sviluppo nel mondo mainframe, e che sono state usate in seguito per realizzare applicazioni distribuite negli ambiti client-server e web.

Il software è fatto di astrazioni. Ogni elemento (modulo, classe) di un’applicazione software è un’astrazione che svolge una o più funzioni, tratta delle variabili, ha un ruolo e delle responsabilità. Quali astrazioni scegliere? Come definirle in modo adeguato per il sistema che si vuole realizzare?

Bisogna partire dalla definizione dei concetti rilevanti per il nostro sistema: se siamo nell’ambito della telefonia, saranno per esempio concetti come “chiamata”, “apparecchio chiamante”, “apparecchio ricevente”, “piano tariffario”; in banca, concetti come “conto corrente”, “movimento”, “bonifico”.

Individuati i concetti, vanno esaminati per definirne le proprietà caratteristiche, le relazioni che li collegano, il ruolo che dovranno svolgere nelle funzionalità del sistema. Servono due cose: la prima è la padronanza della materia trattata, del dominio (dal latino “dominium”, che significa appunto padronanza, il dominio è la sfera delle conoscenze che riguardano una materia specifica, necessaria per chi vuole operare in tale ambito).

La conoscenza del dominio è propria di chi ha studiato e ha esperienza specifica in quell’ambito. Chi progetta la può acquisire attraverso il dialogo con gli stakeholder (committente, utenti, altre parti in causa), che porta a chiarire i requisiti informativi del sistema mediante l’uso della tecnica Entità-Relazioni (ER), ideata nel 1976 da Peter Chen per la progettazione degli schemi dati.

Un modello di dominio efficace migliora la qualità della collaborazione tra esperti della materia, analisti applicativi e sviluppatori, attraverso la condivisione di conoscenza sui concetti e sul loro significato, con riferimento a un vocabolario e a delle regole di integrità condivise.

  • Individuare i casi d’uso

La tecnica dei casi d’uso è più recente, essendo stata formulata da Ivar Jacobson nel 1992, anche se contiene elementi precedenti che derivano dall’approccio strutturato all’analisi funzionale. I casi d’uso sono descrizioni di come può essere usato il sistema, così come le si può leggere in un manuale utente.

Si tratta di una tecnica per scoprire, chiarificare e concordare i requisiti. Ragionare in termini di casi d’uso significa innanzitutto individuare chi (persone, o altri sistemi “esterni”) dovrà usare il sistema, quindi chiedersi quali sono gli obiettivi che gli utilizzatori intendono conseguire con l’utilizzo, infine approfondire ciascuna modalità d’uso in termini di descrizione di scenari operativi concreti, chiarendo il modo in cui inizia, le risposte che l’utilizzatore si attende dal sistema, la sequenza di passi con cui l’interazione si svolge, eventuali altri elementi esterni coinvolti.

Ragionare con i committenti e con gli altri stakeholder del sistema in termini di casi d’uso, cioè di “storie” concrete di utilizzo, agevola notevolmente la scoperta dei requisiti e il loro progressivo chiarimento: un ottimo punto di partenza per le successive attività di progetto.

  • Progettare lo schema di navigazione delle videate

Il disegno delle videate e dei passaggi tra le videate è una tecnica di progettazione usata fin da quando si sono diffusi i primi videoterminali.

Con il passaggio dai sistemi mainframe alle architetture distribuite, l’usabilità è diventata un fattore sempre più importante per la qualità dei prodotti software, e la definizione di prototipi delle interfacce utente si è affermata come tecnica utile per chiarire i requisiti delle applicazioni interattive.

Lo schema di navigazione delle videate è connesso strettamente sia con il modello delle informazioni (Entità-Relazioni), sia con l’individuazione delle funzionalità utente (casi d’uso). Le videate e la sequenza dei passaggi tra videate devono infatti essere coerenti con le funzionalità che si devono offrire all’utente per accedere e operare sui dati del dominio trattato.

Le applicazioni mobili presentano caratteristiche per molti versi innovative rispetto allo sviluppo in ambiti più tradizionali. Usare tecniche consolidate per la loro progettazione riduce notevolmente i rischi progettuali.

*Esperto in metodologie di sviluppo software, www.analisi-disegno.com

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3