pagine Web in diagrammi di sequenza UML?

4

Nel mio attuale progetto, abbiamo una discussione in corso sull'opportunità o meno di includere un artefatto che rappresenta una pagina web in un diagramma di sequenza UML per un'applicazione web, rendendo esplicito quale pagina avvia un'interazione aziendale.

Penso che sia una cattiva idea includere una pagina web, per me un diagramma di sequenza dovrebbe riguardare la logica aziendale e le interazioni tra oggetti di business, e non includere problemi di presentazione come pagine web. Se dovessi includere una pagina web, sarebbe in un diagramma di navigazione. Inoltre, nella mia esperienza, non avevo mai visto pagine web incluse nei diagrammi di sequenza, fino ad ora.

Qual è la raccomandazione / le migliori pratiche su questo? Dovremmo includere un artefatto che rappresenta una pagina web in ciascuno dei nostri diagrammi di sequenza, o no?

EDIT:

Sarebbe ideale se le risposte citassero le linee guida di progettazione / modellazione, i libri su UML, ecc. discutendo a favore o in opposizione all'inclusione di artefatti di presentazione nei diagrammi di progettazione UML. Finora non ho trovato una fonte autorevole che posso citare sull'argomento, invece delle opinioni personali.

    
posta Óscar López 23.12.2011 - 15:24
fonte

4 risposte

3

Le pagine Web fanno parte della presentazione visiva dell'implementazione finale e non fanno parte di alcun costrutto linguistico UML Sequence Diagram. Le pagine Web non servirebbero a scopi che non siano già affrontati all'interno del linguaggio e della definizione del diagramma sequenziale UML corrente.

Inoltre, includendo una pagina web in qualsiasi documento di progettazione, si presuppone un'implementazione visiva. Se stai progettando rigorosamente la logica della sequenza, non dovresti avere nozioni preconcette su come potrebbe apparire l'implementazione visiva. (Non è un "diagramma di progettazione del sito web", è un diagramma di sequenza di logica.)

Trovo che si possa quasi sempre creare un caso per violare qualsiasi principio guida, approccio alla progettazione, accordo di squadra, paradigma del linguaggio di programmazione e persino ingegneria delle "migliori pratiche". Ma queste sono (e dovrebbero essere) "bandiere rosse" che ti avvisano del fatto che stai andando fuori dal concetto / motivo originale per usare qualsiasi tecnica / strumento / ecc. hai scelto e porterà solo a meno rigore. Il rigore, per il suo bene, non è né buono né necessario. Ma il rigore che limita il comportamento per un obiettivo specifico è solitamente "A Good Thing (tm)", perché ti salva da te stesso o da "misuing" (di sorta) al framework che hai selezionato.

Suggerimenti / quadri / migliori pratiche esistono unicamente per consigliare e limitare il tuo comportamento a favore di un particolare risultato, e si basano sull'esperienza combinata di molte, molte persone di grande talento. Non ti consiglio di violare il costrutto del diagramma di sequenza UML includendo le pagine web nel diagramma, poiché questo viola il rigore dei costrutti del diagramma di sequenza UML e vanifica alcuni dei suoi scopi (rimuovere considerazioni visive e di altro tipo da dovrebbe essere una logica di business piuttosto pura e / o le interazioni del tuo design ).

Ti consiglio di usare il diagramma sequenziale UML un po 'più alla lettera - non è un "diagramma di progettazione del sito web", a meno che QUESTO sia ciò che vuoi farlo. E se è così, potresti chiamare quello che stai facendo un "diagramma di sequenza del sito web", anche se sembra essere un tratto ...

Spetta a te utilizzare i tuoi strumenti in base alle tue esigenze. Ma non farei questo cambiamento leggermente. =)

    
risposta data 23.12.2011 - 17:52
fonte
2

È l'astrazione che si forma per la pagina web che conta -

Ad esempio, quando gli utenti compilano un modulo e inviano richieste: la pagina Web è essenzialmente una fonte di iniziazione o di risposta all'utente per una sequenza di finestre di dialogo (con un back-end). In tal caso, il ruolo della pagina Web non è diverso dall'applicazione client in scenari simili.

A volte, una richiesta chiave può andare a finire server / servizio dopo diverse iterazioni con gli utenti - ad esempio l'utente può inserire password errata o l'utente non è loggato in cui viene reindirizzato - tali cose possono essere omesse dal normale flusso di lavoro assumendo che l'utente è autenticato.

Se ci sono azioni intermedie che vuoi definire tra il modo in cui l'utente interagisce con i pulsanti o altri elementi all'interno della pagina e come la pagina deve reagire ad esso - in tali casi UML potrebbe essere una cattiva idea ;

Devi definire lo scopo esatto e l'ambito dell'interazione da tracciare nel diagramma sequenza appropriato.

    
risposta data 23.12.2011 - 16:04
fonte
2

Probabilmente non troverai alcuna discussione / consiglio pro o contro sull'aggiunta di pagine web ai diagrammi di sequenza UML perché tradizionalmente non ha mai avuto nulla a che fare con l'altro.

Sembra che i tuoi colleghi credano che il diagramma di sequenza UML del tuo progetto manchi di un certo livello di informazioni.

Potresti chiedere loro di spiegare esattamente quale aspetto del design del progetto è "mancante" dal diagramma, in modo tale che sentano il bisogno di rappresentarlo pittoricamente. Se disponi di queste informazioni in un formato elenco puntato, potresti scoprire che ciascun punto elenco può (e deve) essere trasformato in un "componente standard / tradizionale" del diagramma sequenza UML.

Cioè, qualunque informazione ritengano che manchi e che dovrebbe essere rappresentata visivamente, probabilmente appartiene come input / transizioni / stati / interazioni all'interno del tuo diagramma.

Ti suggerisco di aggiustare il diagramma aggiungendo le informazioni che al momento mancano nel tuo diagramma usando i tradizionali costrutti UML Sequence Diagram, non aggiungendo queste informazioni mancanti sotto forma di un pittogramma.

    
risposta data 23.12.2011 - 18:07
fonte
1

La pagina in realtà non avvia l'interazione, vero? Sarà una chiamata Ajax o un HTTP GET o POST a un componente back-end che lo fa. In tal caso, lascerei fuori la pagina e comincerei con il componente back-end, poiché (teoricamente) l'evento di attivazione potrebbe provenire da qualsiasi pagina.

    
risposta data 23.12.2011 - 15:39
fonte

Leggi altre domande sui tag