2009-12-15 21 views
7

Quando si disegnano diagrammi di stato, come si fa a sapere quali stati vengono inseriti nelle caselle e quali sono gli stati per le frecce di transizione? Ho notato che anche le transizioni sono stati.Disegno diagrammi di stato UML

Sto guardando la figura 1 su this page:

enter image description here

risposta

5

transizioni non sono stati. Le transizioni sono gli eventi che spostano un oggetto da uno stato all'altro. Gli stati sono definiti dal valore delle variabili nell'oggetto e dal comportamento dell'oggetto. Prendiamo ad esempio un oggetto Studente con valore "nuovo-in attesa di approvazione". A questo studente non è permesso registrarsi o frequentare le lezioni. Ma lo stesso studente può essere autorizzato a registrarsi e frequentare le lezioni se il valore cambia in "approvato". Qual è la differenza? L'oggetto studente ha in realtà due stati.

Che cosa fa spostare l'oggetto Studente da uno stato a quello successivo? L'evento "Approval Arrives" forse. Quindi l'approvazione arriva sulla freccia tra due stati.

2

'Le frecce di transizione' nel diagramma non sono stati, sono "TRANSIZIONE/AZIONE/ACCADERE". Ad es. nella figura menzionata, "Pianificato" è lo stato, l'azione aperta è dopo la quale si passa allo stato "Apri per la registrazione". Questa transizione "aperta" può essere sostituita più verbosa con "è in fase di apertura" Sfortunatamente, le azioni di transizione come programmate/aperte sono molto facilmente confuse anche per uno stato, ma non è questo l'intento.

0

All'inizio è necessario identificare gli oggetti nel sistema. Tra questi oggetti, è necessario selezionare oggetti che hanno probabilità di cambiamento nel tempo. Quindi è necessario disegnare diagrammi di stato per tutti gli oggetti selezionati separatamente. Le barre rappresentano gli stati di quell'oggetto e la freccia rappresenta l'attività che causa la modifica dello stato di oggetto particolare.

0

Sono d'accordo su un punto, nella specifica, su alcuni esempi, le transizioni sembrano di stato. state diagrame

Per me "selectAmount" non è esattamente un nome dello stato ...

Problemi correlati