Softwareentwicklung
Unter dem Sammelbegriff Software verbirgt sich eine enorme Anzahl von Programmier- und Markup-Sprachen sowie eine unzählige Menge an darauf basierenden Frameworks. [1][2] Daher gilt es beim Begriff Software-Entwicklung zunächst immer den konkreten Anwendungsbereich sowie die zu verwendenden Technologien abzuwägen und zu definieren.
Wir sind dabei auf die beiden nachfolgenden Bereiche spezialisiert.
Webentwicklung
Wir entwickeln Webanwendungen, Webservices, komplexe Websites und Webportale – zugeschnitten auf Ihre konkreten Bedürfnisse.
Mehr erfahrenHardwarenahe Software
Oft auch als Firmware, Embedded Software bezeichnet. Wir entwickeln die Software für Ihren Mikrocontroller - auch mit Echtzeitanforderungen.
Mehr erfahrenMobilbetriebssysteme
PoC-Apps
Android / iOS
Plattformunabhängiges Scripting
zur Prozess-Automatisierung
Datenbank-Design
sowie -Migration, -Trigger
Build Systeme /
Continuous Integration
Webbasierte Software-Entwicklung
Webanwendungen & Webportale
Ein Schwerpunkt unserer Entwicklung bildet die webbasierte Entwicklung oder Webentwicklung. Der Einsatz der hierbei verwendeten modernen und zukunftssicheren Technologien bietet vielerlei Möglichkeiten.
Von der Wiedergabe multimedialer Inhalte, über die mobiloptimierte (responsive) Darstellung auf Smartphones und Tablets bis zur Anbindung externer Systeme über Webservices - dieser Technologie gehört die Zukunft.
Wir setzen u.a. das PHP Framework Laravel ein, um durch bewährte Strukturen und Konzepte leicht nachvollziehbaren und modular erweiterbaren Quellcode zu erstellen. Durch den dynamischen Einsatz von Middleware können beispielsweise zugriffsspezifische Berechtigungs- und Authentifizierungsmechanismen eingebunden werden.
Durch die Verwendung von CSS Frameworks wie Bootstrap kann eine einheitliche, responsive, browserübergreifende Darstellung weitgehend gewährleistet werden. Durch den Einsatz von nativem JavaScript (und JS Bibliotheken wie jQuery) lassen sich aufgrund der Ausführung von browserseitigem Code sehr dynamische Projekte und Portale erstellen
Der Begriff Webentwicklung dient zur Klassifizierung von Software, die webbasierte Technologien einsetzt und generell in einem regulären Webbrowser ausgeführt werden kann. Neben dem Vorteil der Plattformunabhängigkeit kann die größte Infrastruktur der Welt, das Internet, dazu verwendet werden, Informationen bereitzustellen und bearbeiten zu können. Genauso können webbasierte Technologien auch in lokalen Netzen eingesetzt werden, um Zugriffe von außen zu beschränken und eine Anbindung an netzinterne Dienste, wie z.B. eine Domänen-Authentifizierung, einzusetzen.
Durch die in der Webentwicklung eingesetzte Client-Server-Architektur ist des Weiteren eine gemeinsame und parallele Bearbeitung von Inhalten möglich. Die Daten werden meist in einer zentralen Datenbank abgelegt, die über einen Webserver ausgelesen, aufbereitet und an den Client, z.B. einen Webbrowser, ausgeliefert werden. Neben der Auslieferung von HTML-Inhalten können über den Webserver auch Webservices (WSDL/SOAP/REST) bereitgestellt und angebunden werden, sodass Daten zwischen mehreren Systemen ausgetauscht werden können.
Hardwarenahe Software-Entwicklung
Die hardwarenahe oder embedded Entwicklung kommt zum Einsatz, sobald eigenständige Systeme mit beschränkten Ressourcen eingesetzt oder echtzeitkritische Anwendungen realisiert werden müssen.
Echtzeitsysteme
Multithreading und Schutz von Datenstrukturen
Abhängig von der Komplexität und Aufgabe des Systems ist oft die Verwendung von schlanken Echtzeit-Betriebssystemen (RTOS) sinnvoll, um die "parallele" Abarbeitung von Prozessen sicherstellen zu können (Multithreading).
Diese Anforderung setzt den Einsatz von Verfahren zum wechselseitigen Schutz von Speicherstrukturen und Ressourcen voraus (Mutexe, Semaphore), die durch eine Thread-Synchronisation zur Sicherstellung der Datenintegrität dienen.
Anbindung an System-Busse und Schnittstellen
Die Ansteuerung lokaler System-Busse wie I2C und SPI gehört genauso zur hardwarenahen Entwicklung wie die Anbindung externer Schnittstellen wie CAN und Ethernet oder Funkschnittstellen wie WiFi-, Bluetooth- und GSM/GPRS.
Bei der Inverkehrbringung von Funkmodulen ist allerdings die Konformität zur RED-Richtlinie (Radio Equipment Directive) sicherzustellen.
Alles aus einer Hand? Gerne entwickeln wir auch Ihre Elektronik/Hardware!
Weitere Infos dazu unter:
Elektronik-/ Hardwareentwicklung
Aktualisierbarkeit im laufenden System
Over-the-Air Firmware-Updates und Updates über Bootloader
Durch den Einsatz systemspezifischer Bootloader und Update-Funktionen kann die Übertragung von Firmware-Updates "im laufenden System" z.B. über den CAN-Bus oder WiFi ermöglicht werden.
Prozessorspezifische Optimierungen
SIMD Performance durch Intrinsics
Für rechenintensive Operationen in der Signalverarbeitung, wie z.B. FFT-Berechnungen mit Millisekunden-Fensterung, bietet sich die Verwendung von plattformspezifischen SIMD Optimierungen wie z.B. NEON oder VFPv3 an.
Durch den Einsatz von Intrinsics kann prozessorspezifischer Assembler Code dafür eingesetzt werden, um beispielsweise Vektoroperationen wie Matrixmultiplikationen in speziellen, hochperformanten Registern zu berechnen.
IT-Infrastruktur
Netzwerk & Server
Bei der Anbindung unserer Soft- und Hardware-Lösungen an bestehende Infrastrukturen finden wir aufgrund der langjährigen Erfahrung und des breit gefächerten IT-Wissens unseres Teams stets eine passende Lösung.
IT-System-Administration
ActiveDirectory, DNS, Mail/Exchange, NAS/SAN, Virtualisierung, Datei- und Datenbanksysteme, USV, Windows-, Linux-, Reverse-Proxy- und Webserver
Netzwerk-Administration
OSI Layer >= 2, VPN, Firewall, Content-Filter, Routing, QoS
Software-Anbindung
API-Anbindungen, REST, JSON, WSDL, OAUth2, XML, CSV
Verwendete Technologien
Wir möchten Ihnen einen kleinen Überblick über Plattformen, Sprachen, Controller und Bussysteme geben, welche wir regelmäßig einsetzen.
Sprachen/Formate | Frameworks/IDEs | Plattformen | Protokolle/Technologien | |
---|---|---|---|---|
Webbasierte Technologien | PHP | HTML | Javascript | CSS | Python | Laravel | Bootstrap | jQuery | Apache | nginx | Docker | Electron | HTTPS | Sockets | REST | SOAP | OAUTH2 |
Hardwarenah | C | C++ | C# | Mbed OS | FreeRTOS | Eclipse | Mbed Studio | Arduino IDE | STMicroelectronics STM32 | Espressif ESP32 | Atmel AVR/ATtiny | I2C | SPI | CAN | WiFi | Bluetooth | Ethernet | Touch | Vibration (ERM/LRA) |
Mobil | Dart | Java | Android SDK | XCode | Flutter | iOS | Android | Bluetooth | WLAN | GPRS | UMTS | LTE | Kamera | Laser Barcode-Scanner | AirPrint |
Datenbanken | SQL | PL/SQL | Trigger | MySQL | MariaDB | PostgreSQL | sqLite | MSSQL | ||
Export/Import | XML | JSON | CSV | XLSX | DOCX | PDF | FPDF | PHPOffice | EPPlus | Apache FOP XSL/T |
Webbasierte Technologien
Sprachen/Formate | PHP | HTML | Javascript | CSS | Pytdon |
Frameworks/IDEs | Laravel | Bootstrap | jQuery |
Plattformen | Apache | nginx | Docker | Electron |
Protokolle/Technologien | HTTPS | Sockets | REST | SOAP | OAUTH2 |
Hardwarenah
Sprachen/Formate | C | C++ | C# |
Frameworks/IDEs | Mbe4 OS | FreeRTOS | Eclipse | Mbe4 Studio | Arduino IDE |
Plattformen | STMicroelectronics STM32 | Espressif ESP32 | Atmel AVR/ATtiny |
Protokolle/Technologien | I2C | SPI | CAN | WiFi | Bluetooth | Ethernet | Touch | Vibration (ERM/LRA) |
Mobil
Sprachen/Formate | Dart | Java |
Frameworks/IDEs | Android SDK | XCode | Flutter |
Plattformen | iOS | Android |
Protokolle/Technologien | Bluetooth | WLAN | GPRS | UMTS | LTE | Kamera | Laser Barcode-Scanner | AirPrint |
Datenbanken
Sprachen/Formate | SQL | PL/SQL | Trigger |
Frameworks/IDEs | MySQL | MariaDB | PostgreSQL | sqLite | MSSQL |
Export/Import
Sprachen/Formate | XML | JSON | CSV | XLSX | DOCX | PDF |
Frameworks/IDEs | FPDF | PHPOffice | EPPlus | Apache FOP XSL/T |
Weiteres
Betriebssysteme | Windows | Linux | macOS/iOS | Android |
Paket- und Versionsverwaltung | GIT | Subversion | Perforce | NPM | Maven |
CI und Buildsysteme | Jenkins | qmake | nmake | cmake |