Tobi: Darstellung von Software-Workflows??

Hallo Welt! (ha, wie originell, was?)

ich bin auf der Suche nach einem guten Tool zur Erstellung von Software-Prozess-Flows (ich weiss nicht, ob ich damit das richtige Wort getroffen habe): Also zur Darstellung eines Ablaufs von Software-Programmen.

Weiss jemand von Euch was?
Oder noch etwas allgemeiner: Hat jemand von Euch ein --gutes-- Beispiel, über die Standards der Darstellung? Ich benutze zwar immer irgendwelche Rauten und Ecken, aber vermute, dass ich damit meilenweit von Standards entfernt bin...

Freue mich über Eure Meinungen!

Schöne Grüße,
Tobi

PS: Bitte nicht fragen, warum ich nicht gegoogelt habe, Grund: Ich wollte es gerne von wirklichen Nutzern wissen und nicht von irgendwelchen Anbietern, die zufällig gut positioniert sind in Google... :-) Also nichts für Ungut!

  1. Servus,

    UML (Universal Modelling Language) ist ein Standard in Sachen Modellierung. Damit kann man quasi fast alles abbilden, von Anwendungsfällen (auch hin und wieder Use Cases genannt) bis zu Abläufen. Es gliedert sich in Verhaltensdiagramme und ... mir fällt grad das Wort nicht ein ... halt statische Objekt-bezogene Diagramme. Ah, "Strukturdiagramme" war es.

    Es gibt mind. 13 verschiedene Diagramme, z.b. Zustandsautomat, Sequenzdiagramm, Anwendungsfalldiagramm, Klassendiagramm.

    UML hilft dir vor allem (meine Meinung), Dinge zu visualisieren die sich sonst rein verbal nicht unbedingt sehr gut diskutieren lassen.

    Implementierungen von UML gibt es mittlerweile viele, zb. in Microsoft Visio und ein Tool, was ich selbst benutze und sehr zufrieden mit bin: Sparx Enterprise Architect (ist vorallem preislich attraktiv gegenüber Rational Produkten ;)).

    Damit mein Post nicht ganz linkfrei ist, ein Verweis auf den Wikipedia-Artikel:  http://de.wikipedia.org/wiki/UML

    Im Zusammenhang mit UML fällt auch oft das Stichwort "Model Driven Architecture", also durch Transformationen der Modelle eine Softwarearchitektur und sogar auch richtigen Code zu generieren. Allerdings habe ich dieses Konzept bisher noch nie wirklich sauber von Anfang bis Ende in einem Tool gesehen.

    Eine Alternative zu UML ist SDL

    Aber gut ist (aus meiner Sicht), auch wenn es nicht irgendeinem tollen Standart entspricht, dass du dir überhaupt Modelle bastelst.

    Cheers,
    Frank

    1. Tach Frank,

      danke dafür!

      Aber gut ist (aus meiner Sicht), auch wenn es nicht irgendeinem tollen Standart entspricht, dass du dir überhaupt Modelle bastelst.

      Naja - ist nicht ganz freiwillig gewesen. Wir haben eine Workflow-Lösung für Dienstleistungsunternehmen programmiert, rein nach Workflow, nicht aber nach Software-Ablauf. Leider aber auch damals noch nicht objektorientiert... und das baden wir jetzt halt aus.
      Learning bei doing eben.
      und jetzt stellen wir auf OOP um und solche diagramme helfen einfach ungemein, wenn man effizient fertig werden will und vor allen später man selber oder jemand anderes nochmal an den code ran muss...

      also, grüße
      Tobi

      1. Hi,

        daran liegt ja eigentlich der Sinn, Software zu schreiben, die den Geschäftsablauf unterstützen bzw. ausführen und nicht einen eigenen Ablauf aufgrund der Technik vorzugeben. Insofern versteh ich deinen zweiten Satz "Wir haben ... nicht aber nach Sotware-Ablauf" nicht ganz.

        Leider aber auch damals noch nicht objektorientiert...

        Was heisst leider? Nicht jedes Problem muss seine Lösung in der Objektorientierung finden und für die Entwicklung das Heil allein in OOP zu suchen, ist auch kein Erfolgsgarant.

        Diagramme und Modelle sollen dir helfen komplexe Zusammenhänge aufzubereiten (sich darüber klar zu werden). Sie sollen nicht nur zur technischen Befriedigung (von UML Fetischisten) gemacht werden ;)

        Yo, gute Nacht denn erstmal
        Frank

        1. Hi Frank,

          daran liegt ja eigentlich der Sinn, Software zu schreiben, die den Geschäftsablauf unterstützen bzw. ausführen und nicht einen eigenen Ablauf aufgrund der Technik vorzugeben. Insofern versteh ich deinen zweiten Satz "Wir haben ... nicht aber nach Sotware-Ablauf" nicht ganz.

          Naja - weil die Abläufe in unserem Unternehmen nicht so perfekt waren haben wir zunächst den Prozess nach Arbeitsablauf neu definiert und dann auch so programmiert.

          Das aber wurde extrem komplex (viele Funktionen etc. im Code, die von irgendwo aufgeruden werden), weswegen mir jetzt eine Darstellung fehlt, die alle involvierten Dateien/Funktionen/Klassen etc zeigt. Denn dieser Software-Flow ist noch mal ein anderer als der eigentliche Prozessablauf im Unternehmen. Daher auch meine Anfrage, womit und wie man sowas am besten visualisiert.

          Was heisst leider? Nicht jedes Problem muss seine Lösung in der Objektorientierung finden und für die Entwicklung das Heil allein in OOP zu suchen, ist auch kein Erfolgsgarant.

          Das stimmt - aber ich halte die OOP für eine Möglichkeit, den Code besser zu strukturieren und Redundanzen zu vermeiden.
          Aber das übrige Konzept sollte auch stimmen.

          Diagramme und Modelle sollen dir helfen komplexe Zusammenhänge aufzubereiten (sich darüber klar zu werden)

          Ich stimme dir voll zu!

          Sie sollen nicht nur zur technischen Befriedigung (von UML Fetischisten) gemacht werden ;)

          Stimmt, das sicher nicht - aber ein bisschen Dokumentation (und diese über Kommentare im Quelltext hinausgehend) hat auch noch nie geschadet...

          Also,
          schöne Grüße & schönes Wochenende,
          Tobi

          1. Hi!

            Aus meiner Sicht ist ein Workflow ein sehr detailliert dargestellter Geschäftsprozess. Dieser ist so deteilliert dargestellt, dass er mit einer Arbeitsanweisung an einen Benutzer vergleichbar ist, da er von einem Softwaresystem ausgeführt werden soll.

            Als Modllierungmethoden eignet sich sicherlich eine Vielzahl. Die Abbildung kann beispielsweise mit höheren Petri-Netzen erfolgen, die genau dafür ausgelegt sind oder aber beispielsweise auch mit eEPK's.

            Wenn es aber darum geht, ein Softwareprojekt zu dokumentieren oder Vorbereitungen für die Programmierung zu treffen, eignet sich sicherlich die UML besonders gut, wenn die programmierung objektorientiert erfolgt.

            mfg
            Chris