Archyno
UMLVerhaltensdiagramme

UML-Zeitverlaufsdiagramme

Zustand, aufgetragen über einer echten Zeitachse. Das Interaktionsdiagramm für den Fall, dass Frist, Dauer oder Überlappung der eigentliche Punkt sind.

6 Min. LesezeitUML 2.5.128 von 35

Die kurze Antwort

  • Die senkrechte Achse eines Sequenzdiagramms ist Reihenfolge, nicht Zeit. Die eines Zeitverlaufsdiagramms ist echt und skaliert - nur eines von beiden kann innerhalb von 200 Millisekunden sagen.
  • Greifen Sie dazu, wenn Frist, Dauer oder Überlappung zwischen Beteiligten der eigentliche Gegenstand sind: eingebettete Systeme, Protokolle, alles mit einem Timeout.
  • Eine Dauerbedingung begrenzt ein Intervall, eine Zeitbedingung einen einzelnen Zeitpunkt. Beide stehen in geschweiften Klammern im Diagramm.
  • Die Wertelinie liest sich bei zwei oder drei Zuständen besser; die kompakte Zustandslinie skaliert weiter.
Ein UML-Zeitverlaufsdiagramm. Die Payment-Lebenslinie ist bis 200 Millisekunden Ausstehend, bis 500 Autorisiert und danach Gebucht. Die Card-gateway-Lebenslinie ist bis 200 Untätig, bis 450 Verarbeitend und danach wieder Untätig. Marken auf der Achse zeigen die Autorisierungsanfrage bei 200 Millisekunden und die Buchung bei 500.
Eine Zahlung und das Karten-Gateway, von dem sie abhängt, über 800 Millisekunden. Die waagerechte Achse ist echte Zeit und maßstäblich - und genau das ist der ganze Unterschied zu jedem anderen Interaktionsdiagramm.

01Was es zeigt#

Ein Zeitverlaufsdiagramm trägt den Zustand eines oder mehrerer Teilnehmer gegen die Zeit auf. Die Zeit läuft von links nach rechts und ist, anders als in jedem anderen UML-Diagramm, maßstäblich. Doppelte Strecke heißt doppelte Dauer.

Diese eine Eigenschaft ist der Grund, warum es das Diagramm gibt. Ein Sequenzdiagramm sagt Ihnen, dass eine Nachricht nach einer anderen geschieht, und sagt nichts darüber, wie lange irgendetwas dauert. Lautet Ihre Frage „passt das in das 300-ms-Budget?“ oder „ist das Gateway noch beschäftigt, wenn der Retry feuert?“, wird keine Menge Sequenzdiagramm sie beantworten.

Jede Lebenslinie bekommt ein Band. Ihre möglichen Zustände stehen links davon aufgelistet, und eine Linie schreitet zwischen ihnen, springt bei jeder Änderung senkrecht und hält dazwischen waagerecht. Das zu lesen ist dieselbe Fertigkeit wie das Lesen einer Logikanalysator-Aufzeichnung oder eines Serverzustandsdiagramms.

02Die Notation#

ElementNotationWas es bedeutet
Lebenslinieein waagerechtes BandEin Teilnehmer. Sein Name steht links; seine Zustände sind die Zeilen im Band.
Zustandsverlaufeine TreppenlinieDer über die Zeit gehaltene Wert. Senkrechte Sprünge sind Übergänge; waagerechte Strecken sind der gehaltene Zustand.
ZeitachseLineal am unteren RandEchte, proportionale Zeit mit Einheiten. Das macht es erst zu einem Zeitverlaufsdiagramm.
Dauerbedingung{0..300ms} zwischen zwei MarkenWie lange eine Spanne dauern darf. Die Anforderung, gezeichnet.
Zeitbedingung{t..t+50ms} an einem PunktWann ein Ereignis eintreten muss, relativ zu einem anderen.
NachrichtPfeil zwischen BändernEine Kommunikation von einer Lebenslinie zur anderen, im Augenblick ihres Geschehens gezeichnet.

03Die Bedingungen sind die Fracht#

Ein Zeitverlaufsdiagramm ohne Bedingungen ist ein Bild davon, was einmal geschah. Eines mit ihnen ist eine Spezifikation, und das ist die Fassung, die zu zeichnen sich lohnt.

Eine Dauerbedingung spannt sich über zwei Punkte und sagt, wie groß der Abstand sein darf: {0..300ms} von Anfrage bis Antwort. Eine Zeitbedingung heftet ein Ereignis relativ zu einem anderen an einen Moment: {t..t+50ms}. Zusammen drücken sie fast jede Echtzeitanforderung aus, die Sie wahrscheinlich haben, und zwar in einer Form, gegen die sich direkt ein Test schreiben lässt.

Das andere, was zu zeichnen ist, ist Überlappung. Zwei senkrecht gestapelte Bänder machen sofort deutlich, ob ein Teilnehmer noch beschäftigt ist, wenn ein anderer ihn frei erwartet - die Fehlerklasse, die in einem Sequenzdiagramm nahezu unsichtbar und hier offensichtlich ist.

04Wann man eines zeichnet#

Dazu greifen, wenn

  • Es gibt ein Latenzbudget, einen Timeout oder eine Frist, die der Entwurf einhalten muss
  • Embedded-, Protokoll- oder hardwarenahe Arbeit, wo das Timing die Spezifikation ist
  • Eine Race Condition diagnostizieren: zwei Bänder machen die Überlappung sichtbar
  • Erklären, warum ein Retry, ein Debounce oder ein Backoff sich so verhält, wie er es tut

Zu etwas anderem greifen, wenn

  • Die Reihenfolge zählt, die Dauer nicht - nehmen Sie ein Sequenzdiagramm
  • Sie beschreiben Zustände und die Ereignisse dazwischen, nicht deren Timing - nehmen Sie einen Zustandsautomaten
  • Es gibt kein gemessenes oder spezifiziertes Timing zu zeichnen; ein Diagramm mit erfundenen Zahlen ist schlimmer als keines
  • Mehr als etwa vier Lebenslinien in der aufgetragenen Form

Zeitverlaufsdiagramme sind in gewöhnlicher Geschäftssoftware das seltenste der vierzehn und in den Domänen, die sie brauchen, unentbehrlich. Arbeiten Sie an eingebetteten Systemen, Netzwerkprotokollen oder irgendetwas mit harter Echtzeitanforderung, ist dies das Diagramm, in dem sich Ihre Anforderungen am natürlichsten schreiben. Wenn nicht, können Sie eine ganze Laufbahn ohne eines verbringen, und das ist in Ordnung.

In je einer Zeile

  1. 01Das einzige UML-Diagramm, dessen Achse maßstäblich ist: Strecke bedeutet Dauer.
  2. 02Jede Lebenslinie ist ein Band; ihre Zustände sind Zeilen, und eine Treppenlinie zeigt den gehaltenen Wert.
  3. 03Dauer- und Zeitbedingungen machen aus einer Aufzeichnung eine Spezifikation.
  4. 04Gestapelte Bänder machen Überlappung - und damit Races - sofort sichtbar.
  5. 05Nehmen Sie es, wenn es ein echtes Budget oder eine Frist gibt; sonst ist ein Sequenzdiagramm das richtige Werkzeug.

05Häufige Fragen#

Wofür ist ein UML-Zeitverlaufsdiagramm da?

Um zu zeigen, wie sich der Zustand eines Beteiligten über einer echten Zeitachse ändert. Es ist das Interaktionsdiagramm für den Fall, dass eine Frist, eine Dauer oder eine Überlappung zwischen Beteiligten der eigentliche Gegenstand ist: eingebettete Systeme, Protokolle, und alles mit einem Timeout darin.

Was unterscheidet Zeitverlaufs- und Sequenzdiagramm?

Ein Sequenzdiagramm ordnet Nachrichten, sagt aber nichts darüber, wie lange etwas dauert, denn seine senkrechte Achse ist Reihenfolge und nicht Zeit. Ein Zeitverlaufsdiagramm hat eine echte, skalierte Zeitachse und kann deshalb innerhalb von 200 Millisekunden ausdrücken und die Zustände zweier Beteiligter überlappend zeigen.

Was ist eine Dauerbedingung?

Ein markiertes Intervall im Diagramm mit einer Bedingung an seine Länge, in geschweiften Klammern geschrieben. Eine Zeitbedingung ist derselbe Gedanke, angewandt auf einen einzelnen Zeitpunkt statt auf eine Spanne, etwa dieses Ereignis muss vor Ablauf von fünf Sekunden eintreten.

Welche zwei Formen hat eine Lebenslinie im Zeitverlaufsdiagramm?

Die Wertelinien-Form zeichnet Zustände als Verlaufskurve, die zwischen waagerechten Bändern wechselt. Die kompakte Zustandslinien-Form schreibt Zustandsnamen in ein einziges Band mit Übergängen dazwischen. Die Kurve liest sich bei zwei oder drei Zuständen leichter; die kompakte Form skaliert besser.

In dieser Reihe

Passend dazu

Alle Artikel