Software Engineering

Signals | Technology | Media

Softwaretechnologien und -tools bestimmen einen weiten Teil des modernen Lebens und sind in der heutigen Zeit nicht mehr wegzudenken. Um anspruchsvolle Softwaresysteme zu entwickeln, ist das syntaktische Beherrschen und Anwenden einer Programmiersprache nicht ausreichend. Software Engineering erfordert eine strukturierte und systematische Herangehensweise. Unser Team bündelt hierfür über 20 Jahre Erfahrungen aus vielen Softwareentwicklungsprojekten.

Z

Simulations- und Evaluationsumgebungen

Z

Software in Car-Infotainment-Systemen

Z

nach ISO-Norm gestaltete grafische Benutzeroberflächen

Z

Tools zum Dialogdesign für Mensch-Maschine-Interfaces

Z

Tools für die Datenerfassung, -aufbereitung, -visualisierung und
-auswertung

Z

nutzerspezifische Applikationen sowie Serverapplikationen

Neben eigenen Pro­dukt­ent­wick­lun­gen bearbeiten wir Entwick­lungs­auf­träge für namhafte Unter­nehmen. Wir können auf eine langjährige Erfahrung in der Entwicklung von Algo­rithmen, Soft­ware­lö­sun­gen, Embedded Systems und Tech­no­logieprodukten zurück­grei­fen. Dabei haben die Ziele und Wünsche unserer Kunden oberste Priorität.

Mach mit uns Technologie!

Unsere Spezialisten sind schnell, flexibel und arbeiten mit hoher Qualität nach gängigen Standards der Inge­nieur- und Soft­ware­tech­no­lo­gie. Das gibt uns die Mög­lich­keit, sowohl die Entwicklung von klassischen Tech­no­lo­gie­pro­duk­ten als auch von Zukunftstechnologien er­folg­reich mitzugestalten. Mach mit uns Technologie!

Programmiersprachen

C , C++, C#,  Java, Python, Shell, Batch, Tcl/Tk, FORTH, SQL (Postgres, Informix)

Entwicklungstools

CLion, PyCharm, Qt Creator, Microsoft Visual Studio, GNU Tool Chain, Parasoft Insure++, Rational Purify, Quantify, Valgrind und viele mehr

 

Betriebssysteme und Plattformen

Linux, Windows, Raspberry Pi OS, MacOS, Android, Web …

Projektphasen

Der Weg zum Ziel

Die Konzeption und Entwicklung professioneller Softwarelösungen erfordert mehrere Jahre Erfahrung in der Softwareentwicklung. Neben exzellenten Programmierkenntnissen ist dabei eine strukturierte Herangehensweise besonders wichtig.

Planung

  • detailliert
  • spezifiziert
  • standardisiert
  • individuell
k

Implementierung

  • Test-Driven Development
  • modern
  • anforderungsgerecht

Validierung und Verifizierung

  • optimiert auf Zielumgebung
  • protokolliert
  • mehrfache Iteration
Z

Release

  • vollständig dokumentiert
  • betriebsbereit und wartbar
  • maßgeschneidert

Hardware

Softwareentwicklung ganz speziell

Hardwarenahe Programmierung ist unsere Spezialität. Oft ist die Zielplattform einer Softwareanwendung, eines Signalverarbeitungsverfahrens oder eines Mustererkennungsalgorithmus ein Mikrocomputer eines Embedded Systems. Typisch sind Mikrocontroller (µC) und Digitale Signalprozessoren (DSP). Im Unterschied zu hochperformanten PC-Plattformen unterliegen Embedded Systems Restriktionen im Bereich Kosten, Platz oder Stromverbrauch. Deshalb sind ihre Prozessorressourcen oft besonders limitiert. Die Konzeption und die Entwicklung von Software erfordern spezielle Kenntnisse, die sich von herkömmlicher Softwareentwicklung auf PC-Plattformen teilweise stark unterscheiden. Dabei spielen Ressourcenbeschränkungen insbesondere auch der direkte Betrieb von Hardwaremodulen sowie Kommunikationsschnittstellen eine besondere Rolle. Diese werden in der Hardware-Abstraktions-Softwareschicht (HAL – Hardware Abstraction Layer) behandelt.

Z

Planung und Umgang mit Embedded Systems

Z

Spezielle Entwicklungstools für Hard- und Software

Z

plattformunabhängige Programmierung

Z

Portierung von PC-Software auf Embedded Systems

Z

Programmierung unter Echtzeitanforderungen

Z

Angepasste Inbetriebnahme und Test auf Embedded Systems

Z

Ressourcenoptimierte Nutzung der Hardware

Z

Codeoptimierung bezüglich Speicher, Latenz und Auslastung

Z

Individuelle Schnittstellen, E/A und Peripherie

Prozessorplattformen, MCU/µC: PIC32, Renesas, STMicroelectronic, NXP, Atmel AVR, PICmicro, FT 5000 Neuron, 8051, Z80, DSP: Analog Devices (Blackfin DSPs, SHARC DSPs, 219x DSPs), Microchip dsPIC, OS: RTOS, embedded Linux, Schnittstellen und Busse, BLE (Bluetooth Low Energy), UWB, USB, I²S, I²C, TWI, PPI, SPORT, RS232, LON, Programmiersprache, C, C++, Neuron C, embedded Qt,Tools Entwicklungsumgebungen (IDEs): KEIL, Microchip MPLAB, ARMulator, Atmel Studio, Freescale CodeWarrior, Analog Devices VisualDSP++, TI Code Composer Studio, Echelon NodeBuilder

Embedded Elektroniksysteme

Softwareentwicklung ganz klein

Embedded Systems sind Mikrocomputerplattformen, die über eine meist anwendungsspezifische Elektronikbaugruppe in einen technischen Kontext eingebettet sind. Beispiele für Embedded Systems finden sich in Haushaltsgeräten, Komponenten der Automobilelektronik, Mobiltelefonen, Handheldgeräten, Messtechnik, Geräten zur Steuer- und Regelungstechnik, Komponenten der Telekommunikationstechnik u.v.m. Die Wir konzipieren, entwickeln und fertigen gemeinsam mit unseren Partnern Elektronikbaugruppen für Kundenanwendungen.

Bei der Konzeption werden von uns die Anforderungen an die Hardware bestimmt, ein Blockschaltbild angefertigt und die Auswahl der passenden Bauelemente wie Prozessor und Speicher getroffen. Abschluss der Konzeption ist die Erstellung einer Spezifikation. Für das Elektronikdesign wird basierend dieser Spezifikation ein Schaltungsentwurf mit passendem Layout erstellt und bei Bedarf simuliert. Es folgt die Herstellung eines Prototypen bzw. Testmusters. Dafür wird die Platine gefertigt, bestückt und für Tests der Hardware sowie softwaregetriebener Einheiten in Betrieb genommen. Durch mehrstufige Optimierungsverfahren, die neben Fehlersuche und Korrektur auch die Verbesserung der Schaltungen und des Layouts berücksichtigen, bereiten wir das System bestmöglich auf die Serienfertigung vor und übergeben es gut dokumentiert in die Hände des Kunden.

Human Machine Interface

Der Dialog des Technikzeitalters

Bitte benutze mich!

Technische Geräte sind von ihrer Natur her logische und funktionale Einheiten. Ihr eigentlicher Zweck ist oft schlicht, manchmal auch hochkomplex. Sie messen Temperaturen, waschen Geschirr, steuern Industrieanlagen, informieren oder unterhalten… Sie werden über Knopf und Touch, Sprache und Geste bedient. Sie sprechen zu uns über Display, LED, Vibration, Sprache, Töne, Form und Farbe und manchmal auch gar nicht. Technische Lösungen werden meist von Technikern entwickelt, Produktdesigner machen die Technik zu ansprechenden Erscheinungsbildern. Der Nutzer soll neugierig auf die Bedienung sein, das Gerät soll sich ins menschliche Leben unmerklich einfügen, dazugehören und zusätzlich den Menschen mit seinem Dasein nachhaltig bereichern. Um diese Ambitionen zu verwirklichen, stellen wir unser Know-how im HMI Design zur Verfügung und unterstützen unsere Kunden u. a. bei der konzeptionellen und technischen Umsetzung intuitiver Bedienkonzepte.

Sprach-HMI

Bei Sprach-HMIs treten Mensch und Maschine in einen sprachlichen Dialog. Nutzer empfinden eine Bedienung von technischen Geräten über Sprache als natürlich und auch sympathisch. Neben Komfort und Sympathie spielen auch praktische Vorteile zur Verwendung von Sprachinterfaces eine Rolle. Sprach-HMIs wirken unterstützend, wenn die Bedienung per Hand eingeschränkt ist (Bsp. Spracheingabe: Sprachsteuerung bei Automobilelektronik) sowie die Augen vom Gerät abgelenkt sind (Bsp. Sprachausgabe: sprachliche Nutzerführung beim Navigationssystem).

Gesten-HMI

Eine Form der berührungslosen Bedienung ermöglicht die Gestenerkennung. Wir haben bereits mehrere Gesten-HMI für Automotive-Anwendungen umgesetzt. Hervorzuheben sind dabei:

 

  • Trunk-Opener (3D-ToF-Sensor, Erkennung von Fußgesten, Öffnung der Kofferraumklappe)
  • Handgestensteuerung bei Car-Infotainment-System (3D-ToF-Sensor, Erkennung von Hand- und Fingergesten, Steuerung von Infotainmentfunktionen)
  • Türöffnung durch Bewegungsgesten (Beschleunigungssensorik im Autoschlüssel erkennt Bewegungsgesten)

Multimodale HMI

Multimodale HMIs finden Anwendung in vielen Geräten und besitzen mehr als eine Ein- und Ausgabemöglichkeit (Akustik, Sprache, Tastatur, Bild, Touch usw.). Beispiele für multimodale HMIs sind Navigationssysteme, Bedienung eines Kraftfahrzeugs und moderne Infotainmentsysteme.

HMI für Kinder

Die kindliche Psyche, Ergonomie, Konzentrationsfähigkeit und intellektuellen sowie kognitiven Fähigkeiten unterscheiden sich erheblich vom Erwachsenen. Deshalb müssen HMIs für Kinder unter anderen Aspekten entwickelt werden als herkömmliche HMIs, die in den meisten Fällen für Erwachsene ausgelegt sind. Aus aktuellen Forschungsaktivitäten besitzen wir spezielles Know-how und Hintergrundwissen zur Gestaltung und Entwicklung von HMIs für Kinder.