Forum: PC-Programmierung Softwareanwendung, Bedienablauf in UML modelieren


von Alexander H. (ill_son)


Lesenswert?

Hallo,

ich bin dabei, eine Softwareanwendung zu entwickeln. Diese soll den 
Benutzer als Wizard, bei dem nacheinander verschiedene Bedienschritte zu 
erledigen sind, durch den Prozess leiten und am Ende ein Ergebnis 
liefern. Da das ganze etwas komlexer ist, möchte ich es vorher als 
UML-Diagramm modelieren um zu sehen, wie ich den Bedienablauf optimieren 
kann. Nun bin ich recht neu, was UML betrifft. Deshalb meine Frage: 
Welches UML-Diagramm bietet sich dafür an?

Grüße, Alex

: Bearbeitet durch User
von DPA (Gast)


Lesenswert?

UML? Ich würde hier eher dot/Graphviz verwenden: 
https://renenyffenegger.ch/notes/tools/Graphviz/examples/index

von Alexander H. (ill_son)


Lesenswert?

Hallo DPA,

danke für deine schnelle Antwort. Das sieht mir wie ein 
Anblaufplan/Flussdiagramm aus.

Ich denke, ich benötige vielleicht sogar mehrere Diagramme. Ich hätte 
mal noch ein paar Randinformationen mitliefern sollen.

Zum einen möchte ich den Programmablauf modellieren. Auf der anderen 
Seite möchte ich noch darstellen, wann dem Benutzer welche Informationen 
bereitgestellt werden. Es gibt zum Beispiel ein Bluetoothgerät, das 
ausgelesen werden soll. Ich muss also die Information bereitstellen, ob 
es verbunden ist oder nicht und wenn ja, muss ich einige Informationen 
auslesen (möglicht parallel zum Benutzerablauf im Hintergrund). Wenn 
nicht so soll der Benutzer scannen können oder wenn das Gerät mit dem PC 
schon bekannt (gepaired) ist, ein Connect wersuchen können. Dann gibt es 
noch ein paar andere Daten von außen.

Ich möchte also auch darstellen, welche Informationen wo in der 
Anwendung auftauchen.

von imonbln (Gast)


Lesenswert?

Alexander H. schrieb:
> Nun bin ich recht neu, was UML betrifft. Deshalb meine Frage:
> Welches UML-Diagramm bietet sich dafür an?

Wenn es unbedingt UML Sein muss würde ich ein Sequenzdiagramm in 
Betracht ziehen. Aber mir Kommt UML ziemlich sperrig Vor und es passt 
auch gar nicht so richtig zum Agilen Arbeiten.
Moderne  Software Entwicklung versucht bei jeder Iteration einen Wert zu 
erzeugen dieses Symbolbild ist dafür bekannt

https://blog.crisp.se/wp-content/uploads/2016/01/Making-sense-of-MVP-.jpg

Während das Auto Oben zum Beispiel mit UML Modeliert, erst am ende ein 
Wert generiert. Hat die Iteration unten nach jeden Schritt etwas mehr 
wert für den Kunden. Und wenn du dir Grafik genau ansiehst stellst du 
fest das unten ein Cabrio gebaut würde, das ist der Agile Vorteil denn 
der Kunde hat beim Motorad Fahren gemerkt wird um die Nase mag ich.
Beim Oberen Zyklus, brauchte das am ende dann einen Change request.

Ich würde daher deine Aufgabe so lösen das ich mir ein Whiteboard 
schnappe ein paar Posits und mindesten 1 Kollegen und dort versuchen 
würde ein paar User Storys zu erarbeiten.

Wie Inge die Sekretärin will mit meiner Super Software einen Serien Fax 
Verschicken, dazu muss sie die Adressen aus der Adresse Datenbank 
kopieren und in die Software eingeben.

Erster wert für Inge sie, kann ein Fax Verschicken. Wenn das Modeliert 
ist bekommt sie eine BEta
Zwieter Wert Für Inge die Software ist an die Adressdatenbank angebunden 
sie muss die nummer nicht mehr Kopieren.
dritter Wert für Inge, Die Software kann mit Templates umgehen so das 
die Fax persönlicher Wirken.

So hat jeder schritt einen Wert und einer der Vorteile ist, man kann 
Inge fragen, willst du lieber die Adressen automatisch aus der Datenbank 
haben oder erst Template fürs persönliche anschreiben und kann somit die 
Teile der Software Priorisieren.

von Alexander H. (ill_son)


Lesenswert?

Habe ich dich vielleicht falsch verstanden?
Aber mir geht es bei meiner Frage nicht um den Kunden. Ich möchte für 
mich modelieren, wie der Programmablauf aussehen muss und wann welche 
Daten woher zur Verfügung gestellt werden, damit ich mich dann beim 
Erstellen der Anwendung daran orientieren kann.

von DPA (Gast)


Lesenswert?

Ok, dass kann dan schon recht komplex werden.

An dot/Graphviz dachte ich vor allem, weil man dort einfach schreiben 
kann dialog1 -> dialog2 -> dialog3 usw., um einen groben Überblick zu 
bekommen.

Um eine Idee zu bekommen, wo man was angezeigt werden soll sind manchmal 
gui mockups ganz nützlich.

Ich kann dir hier nicht wirklich weiterhelfen, wie man hier am besten 
vorgeht. Ich würde aber empfehlen, die Programmlogik und die GUI logik 
möglichst zu entkoppeln.

Schaue dir auf jeden fall das MVVM und das Observer pattern an, falls du 
diese noch nicht kennst. Also im grunde, du hast irgendwo 
Klassen/Strukturen, die die Infos wie "gefundene Gerate", 
"gefunden/gepairt/verbunden", etc. kennen, und die Guikomponenten, die 
wissen müssen, wenn sich der Zustand ändert, registrieren sich dort. 
Dann kannst du in den Guikomponenten einfach reinschreiben, wenn X, 
zeige Y, usw., ohne manuell nachprüfen zu müssen ob sich was ändert. Ein 
Beispiel, um die Grundidee dahinter zu zeigen: 
https://jsfiddle.net/tegy9v5n/2/

von Alexander H. (ill_son)


Lesenswert?

Ich verwende in der Tat WPF und somit MVVM. Ich werde erstmal den 
Programmablauf entwerrfen und dann weitersehen.

Grüße, Alex

von Eric B. (beric)


Lesenswert?

imonbln schrieb:
> Aber mir Kommt UML ziemlich sperrig Vor und es passt
> auch gar nicht so richtig zum Agilen Arbeiten.

Totaler Humbug! Du vergleichst hier Apfelsinen mit Fahrräder.

Auch bei agilen Ansätze muss das was entwicklet wird auch dokumentiert, 
oder zuvor spezifiziert werden. Und das geht in UML genau so gut wie mit 
Graphviz oder mit Bleistift auf Kantineservietten.

Das Bild macht es noch schlimmer: Der Kunde wird erstmal zugemüllt mit 
allen möglichen Schrott, das er nicht braucht und nicht benutzen kann 
(mitm Roller auf die Autobahn? Motorrad fahren ohne Motorführerschein?) 
und kriegt am Ende auch noch ein Auto ohne Dach (gegen Aufpreis, das 
versteht sich).

Deutsch ist übrigens noch sperriger als UML, will ich als "non-native 
Speaker" mal so behaupten. Trotzdem verwenden viele Unternehmen es in 
deren Entwicklungsprozessen, auch agile...

von Torben (Gast)


Lesenswert?

Hallo, willst Du den HMI Ablauf beschreiben?

Du willst C# mit WPF benutzen, wenn du es als Statemaschine mit 
Stateless programmierst dann kannst Du das Diagramm darin automatisch 
generieren

von leo (Gast)


Lesenswert?

Alexander H. schrieb:
> ... Wizard, bei dem nacheinander verschiedene Bedienschritte zu
> erledigen sind,

Ich kann hier yEd empefehen, Ablaufplaene usw. auch UML zeichnen.
https://www.yworks.com/products/yed

leo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.