Ich verbringe ziemlich viel Zeit damit, Diagramme der Software-Architektur zu zeichnen, die normalerweise aus Variationen der mit Pfeilen verbundenen Kästchen bestehen. Während diese Diagramme die relevanten Informationen vermitteln, lassen sie aus ästhetischer Sicht oft zu wünschen übrig.
Einige Beispiele für Softwarearchitekturdiagramme, die dies veranschaulichen:
- http://applicationarchitecture.files.wordpress.com/2011/06/f0039-component-diagram-complete-component-model.png
- http://applicationarchitecture.files.wordpress.com/2010/03/f0022-sample-network-diagram.png
Ich habe Hunderte von Infografiken durchforstet, um Inspiration zu finden, aber die meisten bestehen aus diskreten visuellen Elementen, die sich nur auf das Gesamtkonzept und die Gestaltprinzipien beziehen. Die wenigen, die Pfeile enthalten, um eine Art Fluss darzustellen, sind in der Regel viel einfacher als meine Bedürfnisse.
Das eine (Nicht-Software-) Beispiel, das ich gefunden habe ( http://visual.ly/house-democrats-health-plan-flow-chart ), leidet (möglicherweise absichtlich, um die Komplexität zu demonstrieren) unter vielen der gleichen Probleme wie oben ...
Gibt es Beispiele für ästhetisch ansprechende Diagramme der Softwarearchitektur oder zumindest Infografiken, die komplexe Prozessabläufe darstellen und eine nützliche Inspiration darstellen?
quelle
Antworten:
Ich kann mir keine besonders guten Software-Architekturdiagramme vorstellen, bei denen die Daten, die sie anzeigen, stark vereinfacht und reduziert wurden, aber wir können einige relevante Dinge finden, indem wir zuerst aufschlüsseln, was ein Software-Architekturdiagramm ist.
Anschließend sehen wir uns einige Beispiele für Entwürfe an, die sich mit ähnlichen Herausforderungen befassen.
Es ist eine Art Flussdiagramm / Prozessdiagramm mit Schwerpunkt auf Kategorien von Elementen / Knoten. Dies ist wiederum eine Art Node-Link-Netzwerkdiagramm mit zusätzlicher Richtwirkung: im Wesentlichen Knoten, die Kategorien haben können, und Verbindungen, die Richtung haben können.
Alles, was auf Knotenverbindungen basiert, kann sich in einen chaotischen "Haarball" verwandeln, wenn die Komplexität dessen, was dargestellt werden soll, zunimmt. Wenn im Folgenden nichts basierend auf Knotenverbindungen vorgeschlagen wird - wenn die fragliche Sache einfach zu komplex ist -, ist hier ein Artikel von einem angesehenen Datenvisualisierungswissenschaftler über einige Alternativen zum "Knotenverbindungs" -Konzept als Grundlage für Netzwerkkarten , die Datenvisualisierungsforscher verwenden haben sich ausgedacht. Wenn Sie herausfinden können, wie Sie einige davon in etwas benutzerfreundliches und direktionales umwandeln können, könnten Sie zu einem Gewinner werden. Aber das ist der wirklich schwierige Weg, versuchen Sie das nur, wenn Sie müssen.
Also komplexe Flussdiagramme und Netzwerkdiagramme mit Schwerpunkt auf Richtung / Fluss und Kategorien von Knoten / Elementen. Erste Grundprinzipien:
Denken Sie an das Signal-Rausch- Verhältnis (im Kontext von Informationsgrafiken manchmal auch als Daten-Tinten-Verhältnis bezeichnet): Die Verbindungen sind visuelle Hilfsmittel, keine Daten. Machen Sie sie daher so subtil wie möglich, ohne sie weniger leicht nachzuvollziehen. Denken Sie auch an Figur-Grund : Die Daten sollten die Sache sein, die im Vordergrund besucht wird, die visuelle Hinweise Fluss und Kategorie zeigen sollte den Hintergrund, dass die Menschen sind sich dessen bewusst , aber nicht abgelenkt durch.
Erstes Beispiel: ein Typografieentscheidungs-Flussdiagrammposter (Ich bin sicher, dass einige Leute mit dem Inhalt nicht einverstanden sind ...). Wenn nur Schwarzweiß verwendet wird, kann ein komplexes Diagramm mit einer klaren Hierarchie zwischen den Elementen verwendet werden:
Es ist sehr klar, was jedes Element ist, mit klarer, aber subtiler Beleuchtung und Variation, die ein minimales Rauschen hinzufügt. Das Ganze ist komplex, aber jeder Teil ist klar.
Mögliche Verbesserungen - es gibt keine allgemeine Richtung, da die Linien von der Mitte nach außen verlaufen - können Richtungsinformationen enthalten, ohne dass Rauschen hinzugefügt wird, indem sehr kleine, fein gepunktete Winkel (wie >>>>>) anstelle von Punkten verwendet werden, sodass Sie überall und jederzeit beginnen können Sehen Sie, wohin Sie als nächstes gehen müssen, ohne dass diese Richtungshinweise Sie ablenken.
Hier ist ein weiteres ähnliches Beispiel, bei dem sich der Fluss durch eine Hierarchie bewegt (am allgemeinsten> am spezifischsten). Viele Kategorien werden in zwei Knotentypen umgewandelt: Produkte und Typen. Die Größe des Knotens gibt Aufschluss über die Spezifität des Typs. (Die Kreisumrisse und Verbindungslinien könnten viel subtiler sein, aber sie scheinen gewichtet worden zu sein, um den Typ zu ergänzen und alles außer dem zentralen Pintglas gleichmäßiger zu machen.) Die Kreisgröße dient auch als Anzeige für Position und Fluss - Sie wechseln von größeren zu kleineren Kreisen, sodass keine weiteren komplexeren visuellen Hinweise wie Pfeilspitzen erforderlich sind.
Die sehr vielen Biersorten
Ein Großteil der von PopChartLab geleisteten Arbeit ist relevant. Sie sind auf große Poster spezialisiert, die viele miteinander verbundene Dinge zeigen, und manchmal schreiben sie ihren Prozess auf. Hier ist ihre Zusammenfassung eines Projekts, in dem sie wirklich mit der Menge an Dingen zu kämpfen hatten, die sie zeigen wollten . Ich persönlich mag das Endresultat nicht sehr (sie haben hart gearbeitet, um den Hairball zu zähmen, aber das Endresultat ist immer noch ein Hairball), aber ich lese, was sie versucht haben und was funktioniert hat und was nicht helfen konnte.
Hier ist ein Beispiel , in dem die Platzierung auf der Seite verwendet wird, um Kategorien und die Reihenfolge im Fluss anzuzeigen. Das grelle Farbschema (das auf das Thema, Apples altes regenbogenfarbenes Logo, verweist) ist nicht erforderlich. Wenn Sie die X- und Y-Achse der Seite so verwenden, können die Verbindungslinien für andere Arten von Informationen gespeichert werden.
Schließlich sind, wie eingangs erwähnt, Software-Architekturdiagramme ein Beispiel für Netzwerkkarten, die eine Art Karte sind. Sie können sich also Ideen aus regulären (kartografischen) Karten holen, bei denen es auch um viele Kategorien dichter, komplexer Informationen geht, die häufig Verbindungen und Richtungen aufweisen.
Mit Axis Maps werden beeindruckende typografische Karten erstellt , die die besten Signal-Rausch-Verhältnisse aller von mir gesehenen Informationsgrafiken aufweisen, indem einfach ihre Beschriftungen als Beschriftungselemente verwendet werden - dann Farbe und ein paar subtile Variationen von Typografie und Abstand Kategorie.
Wenn Ihnen extreme Typografie nichts ausmacht, können Sie damit wahrscheinlich ein Flussdiagramm zähmen, das außer Kontrolle gerät. Sieht nach mühsamer Arbeit aus, aber die Ergebnisse sind fantastisch.
quelle
Willst du schöne Software-Architektur-Diagramme? Informieren Sie sich über bekannte Open Source-Projekte wie Eclipse, Aptana, Magento, Android, Fedora usw.
Hierbei handelt es sich nicht um Marketingmaterialien, sondern um funktionale Dokumente. Diese Projekte werden jedoch häufig von Organisationen durchgeführt oder durchgeführt, die markenbewusst genug sind, um ihre technischen Dokumentationen noch mit größerem Aufwand zu gestalten.
Unternehmen wie Apple (z. B. Entwicklerdokumentation für iOS und OS X), Google (Dokumentation für App Engine und Android), IBM, Oracle und sogar Hardwarehersteller wie Intel und Nvidia sollten über gute Software- oder Systemarchitekturdiagramme verfügen, von denen Sie sich inspirieren lassen können .
Webplattformen, insbesondere PaaS-Anbieter wie Heroku, AWS, EngineYard, OpenShift (Redhat), Cloudbees usw., wären ebenfalls eine gute Quelle für wirklich gut aussehende Architekturdiagramme, da sie tatsächlich teilweise eine Marketingfunktion erfüllen.
quelle
Ein interessanter Artikel zur Verwendung von Diagrammen für die Softwarearchitektur ist Simple Sketches for Diagramming your Software Architecture von Simon Brown.
quelle
Weitere Beispiele für großartige Diagramme von Lucid Chart finden Sie unter https://www.lucidchart.com/pages/examples/network_diagram_software
quelle