Quanto è comune la prototipazione come prima fase di sviluppo?

10

Ho seguito alcuni corsi di progettazione software negli ultimi semestri, e mentre vedo il vantaggio in gran parte del formalismo, sento che non mi dice nulla del programma stesso:

  • Non puoi dire come il programma funzionerà dalla specifica Use Case, anche se discute di cosa può fare il programma.
  • Non puoi dire nulla sull'esperienza utente dal documento dei requisiti, anche se può includere requisiti di qualità.
  • I diagrammi di sequenza sono una buona descrizione di come il software funziona come stack di chiamate, ma sono molto limitati e offrono una visione molto parziale del sistema complessivo.
  • I diagrammi delle classi sono ottimi per descrivere come è costruito il sistema, ma sono del tutto inutili nell'aiutarti a capire che cosa deve essere il software.

Dove in tutto questo formalismo è la linea di fondo: come appare il programma, funziona e che esperienza dà? Non ha più senso progettare al di fuori di questo? Non è meglio capire come il programma dovrebbe funzionare tramite un prototipo e sforzarsi di implementarlo per davvero?

So che probabilmente sto soffrendo di insegnamenti di ingegneria da parte di teorici, ma ho bisogno di chiedere, fanno questo nel settore? Come fanno le persone a capire che cosa sia effettivamente il programma, non a cosa dovrebbe conformarsi? Le persone prototipano molto, o usano principalmente strumenti formali come UML e io non ho ancora imparato a usarli?

    
posta EpsilonVector 13.12.2010 - 23:28
fonte

7 risposte

6

Se stiamo costruendo un'applicazione GUI, creiamo SEMPRE SEMPRE un prototipo o POC (proof-of-concept). Stabiliremo quale sarà il vocabolario visivo dell'app. Di solito il nostro cliente viene coinvolto in parte attraverso il POC e si assicura che capiscano qual è lo scopo e su cosa dovrebbero concentrarsi. Non sono mai stato dispiaciuto di aver prodotto un prototipo. Assicurati di non provare a trasformare il codice prototipo nel codice di produzione, avviare il codice di produzione da zero in base a ciò che hai appreso dal prototipo.

Detto questo, non abbiamo quasi mai prototipo di applicazioni lato server (servizi, middleware, ecc.). Non vedo davvero il ritorno sull'investimento per questo (a meno che non stiate facendo qualche nuova tecnologia e abbia bisogno di dimostrare concetti diversi).

    
risposta data 14.12.2010 - 00:24
fonte
6

Nel mondo degli affari, è importante un sacco

Anch'io uso a pensarlo, finché non colpisci il mondo degli affari. Quindi non è più abbastanza semplice per prendere solo i requisiti e andare avanti e costruire.

È nel suo settore che i diagrammi "flusso" dell'utente e i prototipi lo-fi hanno davvero un senso.

Come funziona il "programma" è probabilmente la parte facile. Nelle app LOB (Line Of Business), la maggior parte è solo CRUD. La sfida si trova nella logica e regole aziendali . È qui che i diagrammi di flusso degli utenti e i flussi dei processi aziendali diventano estremamente importanti per comprendere e pianificare in modo efficace.

    
risposta data 13.12.2010 - 23:41
fonte
1

Che cosa intendi per come il programma "opera"? Sembra che tu stia cercando i dettagli esatti dell'implementazione in qualcosa di diverso dall'implementazione finale specifica, il che non ha senso. Gli elementi di livello superiore dovrebbero guidare l'implementazione, non determinarla.

Dalla mia esperienza, la prototipazione è piuttosto rara. L'ho sicuramente insegnato insieme a specifiche, requisiti, architettura, ecc. E può essere molto utile.

Per quanto riguarda "cosa deve essere il software", QUESTI sono i requisiti. Sembra che manchi l'intero punto.

Le interfacce sono spesso abbozzate in anticipo e i casi d'uso possono essere utilizzati per l'interfaccia "flusso". L'esperienza dell'utente non manca affatto. Se senti che manca qualche elemento, allora fai qualcos'altro che i tuoi professori non hanno menzionato. Il design non consiste in un chiaro insieme di regole tramandate dal cielo.

    
risposta data 13.12.2010 - 23:38
fonte
0

La mia osservazione personale è che la prototipazione viene fornita con molta attenzione, ma troppo spesso il prototipo, una volta che mostra segni di vita, viene semplicemente rimarchiato come "Beta" o, peggio ancora, v1.0.

    
risposta data 14.12.2010 - 01:40
fonte
0

ci sono due tipi di prototipazione: tre, in realtà:

  1. costruiamo prototipi per perfezionare la progettazione e ridurre i rischi prima di iniziare la codifica "reale" (Engineering)

  2. costruiamo il progetto come una serie di prototipi raffinati (Agile)

  3. costruiamo un prototipo e lo spediamo non appena funziona (Cowboy)

risposta data 14.12.2010 - 03:47
fonte
0

Quello che stai cercando si chiama specifica - puoi leggere una descrizione di questo qui in uno degli articoli di Joel

link

    
risposta data 14.12.2010 - 03:53
fonte
0

Un prototipo può anche essere considerato "iterazione 0" di ciò che devi fare. Compie diverse cose:

  • Dimostra che il concetto può essere fatto. Questo potrebbe essere per il tuo capo o per un cliente pagante.
  • Ti consente di identificare le cose che potrebbero essere difficili da raggiungere con la forza di produzione e di darti un'idea generale della quantità di lavoro necessaria.
  • In realtà hai un codice che qualcosa . Questo è immensamente importante!

Tutto sommato il prototipo dovrebbe con alta probabilità essere utile per costruire il prodotto finale, a meno che tu non abbia trovato che è necessario un approccio completamente diverso.

    
risposta data 19.03.2012 - 02:01
fonte

Leggi altre domande sui tag