Come iniziare a progettare un sistema informativo complesso?

-2

Recentemente mi è stato assegnato un nuovo progetto per iniziare a progettare e visualizzare i processi di business. Sfortunatamente non riesco a spiegarmelo, capisco cosa vuole il cliente, ma non capisco come tradurlo in un progetto adeguato, ciò che è tecnicamente corretto ha senso.

La pianificazione che ho elaborato fino ad ora è:

  1. Estrai i casi d'uso del briefing.
  2. Progetta un diagramma dei casi d'uso per questi casi d'uso.
  3. Scrivi tutte le specifiche del caso d'uso.
  4. Mappare il dominio del sistema in un modello di dominio.
  5. Traduci il modello di dominio in un diagramma di relazioni di entità.
  6. Progetta diagrammi di sequenze e / o componenti per tutti i casi d'uso complessi.
  7. Progetta un diagramma di classe.
  8. Progetta un diagramma di distribuzione e / o pacchetto quando necessario.
  9. Progetta i frame Wire.

Naturalmente comincerò con lo sketch di tutti i documenti prima di finalizzare uno specifico. Ma prima di iniziare a progettare questo progetto devo assicurarmi che ci sia qualche tipo di controllo su ciò che dimostra che sono sulla strada giusta. So che ci sono parti interessate e sviluppatori che possono aiutarmi a verificare i progetti quando li ho realizzati o posso fare domande, ma in realtà non c'è nessuno che conosca chi può aiutarmi a iniziare bene.

Lascia che ti spieghi alcuni dei contesti con i quali sono sfidato, per aiutarti a capire e forse a chiarire lo scenario di cui sto parlando:

  • Il progetto è già in fase di sviluppo, anche se non sono favorevole a questa decisione.
  • Il progetto dovrebbe essere separato in più sistemi. Che sono parzialmente accessibili attraverso il modello di gateway. Attualmente c'è uno di quei sistemi in sviluppo. Quello che capisco è che ci sono più applicazioni aziendali (software di fatturazione, CMS, API .. con forse anche più avanti).
  • Il pubblico di destinazione è enorme e quindi il software deve essere in grado di funzionare senza problemi quando 1000 o più utenti lo utilizzano contemporaneamente. Per facilitare lo sviluppo di quella parte, la decisione è già stata presa per ospitare il nostro software con Amazon i loro servizi Web, per esternalizzare i processi che devono essere eseguiti in determinate circostanze.
  • L'applicazione che si sta sviluppando in questo momento doveva già essere costruita a causa di scadenze rigorose e del breve lasso di tempo. Ho parlato con lo sviluppatore principale che mi ha detto che ci sono molti "micro servizi" che hanno determinati lavori o soddisfano i requisiti di una particolare caratteristica. Tuttavia, poiché non esiste una progettazione software e non è nemmeno chiara la visione di ciò che verrà aggiunto o modificato in futuro, lo sviluppatore ha deciso di mantenere una struttura piuttosto piatta e semplice.
  • La documentazione su ciò che è stato scritto adesso preferisco chiamare una lista gigante di caratteristiche / requisiti o un briefing.
  • Inoltre, ritengo sia poco importante notare che il sistema dovrebbe essere in grado di analizzare un'ampia varietà di dati generati dal sistema e, forse, anche sistemi esterni, che alla fine verranno utilizzati per scopi di marketing. Pertanto devo mappare i processi di elaborazione dei dati per migliorare ad es. data warehousing.

Beh, una conclusione sarebbe bella ora :) non credi?

Quasi tutto ciò che so di questo progetto è spiegato sopra eccetto il dominio e il processo aziendale (a causa di una NDA). Ma come faccio a sapere / convalidare o sono sulla buona strada? Ho chiesto informazioni sufficienti o hai qualche consiglio o feedback? Per favore fatemi sapere.

    
posta Fleuv 17.09.2018 - 18:11
fonte

1 risposta

2

Posso darti un piccolo consiglio in base alla situazione generale in cui ti trovi.

The project is actually already in development, although I'm not in favor of that decision

Che tu sia favorevole o no, è un dato di fatto. Scommetto che non puoi fermarlo e anche se tu potessi, non finirà bene (per te.)

Quindi, in sostanza, lo sviluppo è in corso e si sta tentando di fare un progetto di grandi dimensioni. Questo sarà un grande spreco del tuo tempo. Ciò che producete in tale sforzo (se possibile) non avrà alcun impatto sul sistema. Mi sembra di pensare che, a parte forse alcuni tipi di progetti con alti costi di sviluppo, la maggior parte del design di grandi dimensioni sia uno spreco, non importa quale, ma in questo caso il cavallo ha lasciato il granaio. Quindi cosa fai invece ad un livello superiore:

  1. Dai priorità ai requisiti di alto livello. Esistono alcune funzionalità che è necessario supportare: ad esempio, visualizza un diagramma foo per bar .
  2. Parla con esperti del dominio a riguardo. Ottieni quello che puoi da loro. Non essere ossessionato dall'ottenere ogni dettaglio, perché a questo punto non accadrà mai.
  3. Costruisci un prototipo di base per un singolo utente. Mostra i proprietari del dominio. Lascia che ti dica cosa manca o che non va. Risolvi questi problemi.
  4. Ripeti il n. 3 finché non sono soddisfatti. Se sembra non esserci una fine in vista, parla con il comando di ciò che è "abbastanza buono" e chiedi loro di dare indicazioni su dove fermarsi.
  5. Costruisci l'automazione per testare la schifezza vivente. Questo include, ma non limitato ai test unitari. NOTA : a questo punto devi solo farlo, dovresti iniziare molto prima.
  6. Inizia a costruire requisiti non funzionali come le prestazioni e i casi multiutente che eseguono i test e li aggiungono e li migliorano secondo necessità.
  7. Ripeti dal n. 1 fino a quando non hai creato qualcosa che può essere utilizzato.
  8. Rilasciala.

Dovrebbe essere ovvio che devi adattarlo e modificarlo per adattarlo alle esigenze e ai processi del tuo cliente.

    
risposta data 17.09.2018 - 19:02
fonte

Leggi altre domande sui tag