System Design Environment (Home Edition)
Für meine Projekte nutze ich meine eigene Design- und Entwicklungsumgebung 'System Design Environment', mit der man komplexe multithreaded Systeme modular aufbauen und simulieren kann. Die Software steht in der "Home Edition" unter Downloads für den Heimgebrauch jedem frei zur Verfügung.
Das Hauptprogramm verwendet die Qt Klassenbibliothek für plattformübergreifende Programmierung grafischer Benutzeroberflächen unter Einhaltung der LGPL Lizenzbedingungen, die Modulbibliotheken als eigenständige Erweiterungseinheiten nutzen hingegen die freie Programmbibliothek OpenCV mit Algorithmen für die Bildverarbeitung und Mustererkennung. Momentan sind aus der OpenCV Bibliothek lediglich der Kernteil und die Bildverarbeitungsalgorithmen implementiert. Weitere Funktionsbereiche werden noch folgen.
Einen ersten Eindruck erhält man unter Screenshots.
Die wichtigsten Eigenschaften der Software sind nachfolgend dargestellt und werden jeweils durch eine kurze Beschreibung sowie ein entsprechendes Bild erläutert. Weitere Einblicke liefern die Beispiele, die sowohl in der Software als auch auf der Homepage verfügbar sind.
Node-basierter Editor und Simulator für datenflussgetriebene Parallel-Systeme
- Die Software ermöglicht das Erstellen und Verbinden von einzelnen Modulen und Subsystemen, die verschiedene Aufgaben parallel erfüllen. Diese visuelle Programmierweise erleichtert die Modellierung komplexer Systeme durch einfaches Zusammenfügen von Bausteinen.
- Die Verarbeitung erfolgt durch den Fluss von Daten zwischen den Modulen. Jedes Modul empfängt Eingabedaten, verarbeitet sie und gibt die Ergebnisse weiter.
- Neben der Modellierung bietet die Software auch eine Simulationsumgebung, die das Verhalten des Systems in Echtzeit oder schrittweise abbildet. So können Nutzer Fehler erkennen, Abläufe optimieren und das Systemverhalten besser verstehen.
Mit C/C++ und Python programmierbare Module
- Die Software ermöglicht es, eigene Module mit C/C++ oder Python zu programmieren und nahtlos in das bestehende System zu integrieren. So können Nutzer die vorhandenen Module in der Bibliothek gezielt ergänzen und an spezielle Anforderungen anpassen.
- Diese Flexibilität erlaubt es, individuelle Funktionalitäten zu implementieren, die über die standardmäßigen Bausteine hinausgehen, und somit maßgeschneiderte Lösungen für komplexe Anwendungen zu schaffen.
Front-End UI Designer für grafische Benutzeroberflächen
- Die Software beinhaltet einen integrierten Front-End UI Designer, mit dem sich grafische Benutzeroberflächen für Front-End Module einfach und flexibel gestalten lassen. So können neben Algorithmen und Steuerungen auch interaktive Oberflächen entwickelt werden, die es dem Endnutzer ermöglichen, Ergebnisse zu beobachten und Einstellungen vorzunehmen.
- Die visuelle Gestaltung der Oberflächen erleichtert die Anpassung an unterschiedliche Anwendungsfälle und sorgt dafür, dass Endanwender die Systemfunktionen komfortabel und effizient nutzen können.
Die vorgestellten Eigenschaften zeigen nur einen Ausschnitt des tatsächlichen Funktionsumfangs. Viele weitere Werkzeuge, Komfortfunktionen und kleine Details erschließen sich erst, wenn man eigene Systeme entwickelt und die Software aktiv nutzt.