Serengeti
Anmeldungsdatum: 24. Februar 2008
Beiträge: 1961
|
Ich möchte gerne den Informationsfluss einer kleinen Firma visualisieren. d.h. ich möchte gerne für jede Abteilung definieren, ob sie eine Information benötigt (Input) oder erstellt/bearbeitet (Output)
Und dann so visualisieren wie Informationen im Unternehmen zirkulieren. Gibt es Tools mit denen ich sowas machen kann? Vorzugsweise möchte ich alles Abteilungsweise erfassen und dann daraus (automatisch) eine Gesamtübersicht erstellen, die ich dann nach zu betrachtender Information filtern kann. Bearbeitet von Thomas_Do: Tippfehler im Titel korrigiert.
|
shiro
Anmeldungsdatum: 20. Juli 2020
Beiträge: 1214
|
Gibt es Tools mit denen ich sowas machen kann?
Ja. Aber hilft dir das weiter? Du solltest dir erst mal klar werden, wie du architektonisch arbeiten willst. Bei mir waren für derartige Analysen "Wasserfall"-Lösungen bevorzugt. Das muss für dich aber nicht zutreffen. Ich habe da sehr gern mit DFDs gearbeitet (Gane & Sarson oder UML), die dann von DFD-0 in DFD-1 usw weiter detailliert werden konnten. Aber die architektonische Konzeption solltest du für dich schon selbst festlegen. An Tools gibt es auch für Linux etliche. Ich hatte dies damals aber überwiegend mit MS-Tools durchgeführt. Der wesentliche Punkt ist allerdings die Abbildung der Informationsflüsse in einer Datenbasis (Datenbank, Tabellenkalkulation usw), die für dich transparent zugreifbar ist. Standartauswertungen wie Orphans usw sollten schon dabei oder von dir schnell realisierbar sein. Ein Beispiel für kostenlose Ansätze wäre "inkscape" und die Auswertung der XML Daten. Da hättest du zwar wenig Arbeit bei der grafischen Erfassung aber etwas mehr Aufwand bei der Erstellung der Auswertungen. Ein anderes Beispiel wäre "cherrytree", da man hier sehr leicht auf die XML oder SQLite Datenbank zugreifen kann. Diese Lösung ist weniger grafisch und mehr Text zentriert aber bei intelligenter Nutzung extrem mächtig. Es gibt auch Online Spielwiesen. Kannst ja mal da ein wenig rum probieren. Wenn es allerdings dann ans Eingemachte geht, wollen die Hersteller verständlicherweise einen Obolus sehen. Es gibt auch noch etliche kaufbare SW, die einige Funktionen bereits implementiert haben. In der Regel allerdings nicht die Funktionen, die du dann wirklich brauchst.
|
Serengeti
(Themenstarter)
Anmeldungsdatum: 24. Februar 2008
Beiträge: 1961
|
Mir geht es im Moment wirklich nur darum Informationsflüsse zu ermitteln. Ich gehe also in Abteilungen und Frage welche Informationen braucht ihr, welche Informationen gebt ihr weiter. Ich möchte nicht festhalten was die Abteilungen glauben wer ihre Informationen braucht, (sie sollen nur Anhaltspunkt sein wen ich fragen muss was der braucht) und möchte so den aktuellen Stand Stück für Stück erarbeiten. Ich erarbeite daten. Die grafik und die Verbindung soll mir das Tool aufzeigen.
Ich habe Umlet, Gaphor, DrawIO und auch online.visual-paradigm.com (Was wie DrawIo aussieht) ausprobiert. Die Tools sind alle vor allem grafische Elemente die davon ausgehen ich wüsste schon was ich zeichnen will.
Umbrello erschlägt mich mit Funktionen. Ich habe selbst nach einigen Videos nicht herausgefunden ob ich meinen Fall damit lösen könnte. Vermutlich auch weil ich noch nie mit solchen Werkezuegn gearbeitet habe und auch nicht weiss was ein z.B. Klassendiagramm ist.
|
shiro
Anmeldungsdatum: 20. Juli 2020
Beiträge: 1214
|
... und auch nicht weiss was ein z.B. Klassendiagramm ist.
Das ist ein Element der UML Architektur. Deine Bemerkung lässt mich sehr stark vermuten, dass es sich für dich lohnt das rudimentäre Wissen der üblicherweise eingesetzten Architekturen noch mal aufzufrischen. Wenn ich sagte, dass ich für derartige Aufgaben gemäß "Gane & Sarson" bevorzugt genutzt habe, muss das für dich nicht zutreffen. Wenn du ein UML-Fan bist, ist sicher der Klassendiagramm-Ansatz empfehlenswert. Wenn du nur in Datenbaken denkst, wirst du mit ERD wahrscheinlich auch ein wenig weiter kommen. Das Grafik-Tool ist dabei relativ unerheblich obwohl das erwähnte "Draw.IO" sicher eine gute Ausgangsbasis ist, da es alle möglichen Strukturen unterstützt. Die Frage, die sich nach der Grafik allerdings ergibt ist, wie es in den Auswertungen weiter geht. Microsoft war da mit "Visio" sicher eine intelligentere Lösung als vieles, was es im Moment auf dem Linux Markt gibt (Speziallösungen ausgenommen). Ich hatte damals "Gane & Sarson" deshalb gern genommen, weil es nur wenige Entitäten-Arten gab (Datastore, Prozess, Data-Flow und ExternalEntity) mit denen die Informationen aber vollumfänglich beschreibbar waren. Wichtig ist aus meiner Sicht nur, das die gewählten Entitäten eine eindeutige ID bekommen. Wenn du Informationsflüsse hast, werden sie bei den einzelnen Abteilungen manchmal unterschiedlich benannt und noch schlimmer welche mit gleichem Namen aber unterschiedlicher Bedeutung verwendet.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11237
Wohnort: München
|
Ich würde da mal mermaid.js für die Visualisierung in den Raum werfen - da kann man den Informationsfluss zwischen je zwei Knoten einfach herunterschreiben -
das Problem kann man darauf herunterbrechen, dass ein Knoten ein Emitter bzw. Empfänger für bestimmte Informationstypen ist - z.B. mal als grobes Beispiel mit Python3 (kann man natürlich noch netter machen, indem man die Daten z.B. aus JSON- oder YAML-Dateien einliest, Farben nutzt, nur bestimmte Informationstypen verwertet, die Ausgabe mit einer Template-Engine wie jinja2 umsetzt usw.):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 | import enum
import itertools
from collections import defaultdict
from dataclasses import dataclass
class InfoEnum(enum.StrEnum):
WORK_HOURS = enum.auto()
ORDER = enum.auto()
INVOICE = enum.auto()
PRODUCT_SPECS = enum.auto()
PRODUCT_COSTS = enum.auto()
PRODUCT_REQUESTS = enum.auto()
@dataclass
class Node:
name: str
emitter_for: set[InfoEnum]
receiver_for: set[InfoEnum]
def __hash__(self):
return hash((self.name, tuple(self.emitter_for), tuple(self.receiver_for)))
nodes = [
Node(
name="Marketing",
receiver_for={InfoEnum.PRODUCT_SPECS, InfoEnum.PRODUCT_COSTS},
emitter_for={InfoEnum.ORDER, InfoEnum.WORK_HOURS, InfoEnum.PRODUCT_REQUESTS},
),
Node(
name="Bookkeeping",
receiver_for={InfoEnum.WORK_HOURS, InfoEnum.ORDER, InfoEnum.INVOICE},
emitter_for={InfoEnum.WORK_HOURS},
),
Node(
name="RND",
receiver_for={
InfoEnum.PRODUCT_REQUESTS,
},
emitter_for={InfoEnum.WORK_HOURS, InfoEnum.PRODUCT_SPECS},
),
Node(
name="Production",
receiver_for={InfoEnum.ORDER, InfoEnum.PRODUCT_SPECS},
emitter_for={InfoEnum.WORK_HOURS, InfoEnum.INVOICE},
),
]
emitters_by_type: defaultdict[InfoEnum, set[Node]] = defaultdict(set)
receivers_by_type: defaultdict[InfoEnum, set[Node]] = defaultdict(set)
for node in nodes:
for r in node.receiver_for:
receivers_by_type[r].add(node)
for e in node.emitter_for:
emitters_by_type[e].add(node)
# output for mermaid
print("-" * 3)
print("title: Example")
print("-" * 3)
print("flowchart TD")
for info in InfoEnum:
for e, r in itertools.product(emitters_by_type[info], receivers_by_type[info]):
print(f" {e.name} -- {str(info)} --> {r.name}")
|
Die Ausgabe von obigem Skript würde dann so aussehen:
---
title: Example
---
flowchart TD
RND -- work_hours --> Bookkeeping
Bookkeeping -- work_hours --> Bookkeeping
Production -- work_hours --> Bookkeeping
Marketing -- work_hours --> Bookkeeping
Marketing -- order --> Bookkeeping
Marketing -- order --> Production
Production -- invoice --> Bookkeeping
RND -- product_specs --> Production
RND -- product_specs --> Marketing
Marketing -- product_requests --> RND
PS D:\Users\Alexander\Dokumente\Python\VS Die Ausgabe kann man dann z.B. in https://mermaid.live/ werfen, um die sich anzusehen
|
shiro
Anmeldungsdatum: 20. Juli 2020
Beiträge: 1214
|
Hallo seahawk1986, dein Vorschlag kann man allerdings auch einfach mit "LibreOffice Calc" lösen. Ich habe deine Daten mal in der Tabelle "DD" (Data-Definition) eingegeben und zur Erstellung des "mermaid" Infos das Blatt "Mermaid" eingerichtet. In den Spalten B:C trägt man dann die Zeilennummer aus "DD" (eindeutig) ein, um die Verbindung vonObject über FlowObject(mit) nachObject zu beschreiben. Durch die Formel in Spalte A erhält man den Input für https://mermaid.live Ich habe nach Start von "localc Anal.xlsx" über "Fenster" → "Neues Fenster" ausgewählt und in einem die "DD" Tabelle, im anderen die "Mermaid" Tabelle anzeigen lassen, um dort die Spalten B:C auszufüllen. Die Tabelle "Mermaid" speichert man z.B. als Anal.csv mit dem "Tabulator" als Trennzeichen. Den im "</> Code" Fenster der Webseite einzutragenden Text erhält man durch cut -d$'\t' -f1 Anal.csv
- Anal.xlsx (8.9 KiB)
- Download Anal.xlsx
|
Serengeti
(Themenstarter)
Anmeldungsdatum: 24. Februar 2008
Beiträge: 1961
|
Hallo seahawk1986
Dein Script ist perfekt geeignet. Ich kann ganz leicht in die verschiedenen Abteilungen gehen und in einem Texteditor
name="Marketing",
receiver_for={
InfoEnum.PRODUCT_SPECS,
InfoEnum.PRODUCT_COSTS
},
emitter_for={
InfoEnum.ORDER,
InfoEnum.WORK_HOURS,
InfoEnum.PRODUCT_REQUESTS
},
dabei haben und diese Textschnipsel recht effizient um weitere elemente ergänzen. Ich kann auch Wild neue Attribute erfassen, weil Python es mir einfach macht zu erkennen welche Variablen ich jetzt noch definieren muss um das script zu vervollständigen. Auch sehr angenehm, dabei kann ich leicht erkennen, wenn ich variablen fällschlicherweise doppelt erfasst habe.
Ich kann sagen, dass das script sehr leicht in meinen Workflow integrierbar ist.
Ich bin von dieser Lösung sehr begeistert! Am Arbeitsplatz kopiere ich dann das ergebnis ins script. Es Um das ganze noch einfacher zu machen habe ich zudem InfoEnum durch V ersetzt. @Shiro, dein Calc verstehe ich nicht so ganz. Es macht es mir leider überhaupt nicht einfacher. Es ersetzt den Umgang mit variablen einfach nur
durch zahlen.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, das klingt so, als wolltest du eine Prozesslandkarte für die ISO 9001 erstellen. Wie schon gesagt wurde: DAS Tool gibt es dafür nicht, weil das u.a. von den persönlichen Präferenzen und der Komplexität und Anzahl der Prozesse abhängt. Wenn du es im Unternehmenskontext brauchst: es gibt dafür auch kommerzielle Tools in diversen Preisklassen. Bei uns im Unternehmen hat der QMB das mit Excel realisiert. Nicht, weil Excel dafür das allerbeste Tool ist, sondern weil unser QMB sich damit extrem gut auskennt. Am Ende hilft also wahrscheinlich nur verschiedene Sachen auszuprobieren und dann mit dem Tool weiter zu machen, dass einem selber am meisten liegt. Gruß, noisefloor
|
Serengeti
(Themenstarter)
Anmeldungsdatum: 24. Februar 2008
Beiträge: 1961
|
Nein Hat nichts mit ISO 9001 zu tun. Eher mit einer Optimierung der Internen Kommunikation. Ich habe festgestellt, dass Daten völlig unnötig kompliziert und ineffizient (meine persönliche Ansicht) ausgetauscht werden. z.b. werden vom einen System CSV Exports gemacht, in Excel geöffnet, manuell Fehler korrigiert und wieder nach csv exportiert (über ein Excel makro in vbscript) und in ein anderes System importiert. Dabei hätten beide Systeme Schnittstellen um das automatisch zu machen. Keiner weiss warum man es so macht, ist halt seit 15 Jahren so. Bevor ich mir also eine Wertung erlaube und Optimierungen anrege, möchte ich wissen wie das grosse ganze aussieht und welche Informationen wie fliessen. z.b. warum im Excel und nicht im vorherigen System korrigiert wird.
Und dafür ist die Lösung von seahawk1986 zumindest bis jetzt eine gute Unterstützung und sehr gut zu gebrauchen.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, klingt trotzdem nach Prozesslandkarte, auch ohne ISO9001. Die Prozesslandkarte ist genau dafür da, Prozesse zu Beschreiben, inkl. Ein- und Ausgaben (sowohl) intern als auch extern, als auch Schnittstellen zu anderen Prozessen. Wie gesagt: die Prozesslandkarte ist "nur" das Konzept, dass "wie" der Umsetzung liegt bei einem selber. Gruß, noisefloor
|