Software Engineering
Wir entwickeln für Sie anspruchsvolle Software für
Embedded Systems, Mobile Applications, Cloud Server Backends
SOFTWARE ENGINEERING
Wir entwickeln für sie massgeschneiderte Softwarelösungen unabhängig davon, ob sie standardisierte oder spezifisch entwickelte Hardware einsetzen. Dabei ist das Spektrum das wir abdecken einzigartig und reicht von batteriebetriebenen low power Anwendungen über die Implementierung von Kommunikationsprotokollen (BLE, NFC, LoRa) bis hin zu IOT Backend Serverprogrammierung um nur einige Beispiele zu nennen. 

Die Softwareentwicklung ist seit der Gründung von Hitron 1998 unsere Kerntätigkeit. Durch kontinuierliche Verbesserung der Methodik, agile Entwicklungsprozesse, Anwendung von state of the art Werkzeugen für Analyse, Design, Implementation und Testing, bewegen wir uns auf einem qualitativ hohen Niveau hinsichtlich Funktionalität, Erweiterbarkeit  und Wartbarkeit von Softwaresystemen.

HOW WE WORK
Software Development Process Model
Wir sind davon überzeugt, dass der Erfolg eines Softwareprojektes neben excellenten Experten stark vom gewählten Vorgehensmodell, aber auch von gut funktionierenden Kollaborationsplattformen abhängt. 
Eine wegweisende Softwareentwicklung erfordert ein iteratives Vorgehensmodell. Aufgrund der wachsenden Komplexität der Systeme, der heterogenen Technologien gerade bei IOT Projekten, ist eine hohe Transparenz aller am Projekt beteiligten, die Möglichkeit zur Überprüfung und Rückverfolgung jeder Änderung (Merge Requests) im Vieraugen-Prinzip und die kontinuierliche Verbesserung von Codeteilen essentiell für den Projekterfolg.
Requirements Engineering Domain Model
An den Anfang des Projektes setzen wir eine Analyse der Use Cases, die wir gemeinsam mit Ihnen verfeinern und vervollständigen. Anhand der Use Cases erstellen wir eine Requirements Liste  die wir als Grundlegendes Projektdokument für die Koordination mit Kunden verwenden. In einem weiteren Schritt arbeiten wir ein grobes Domain Model aus das weitgehend frei von technischen Detailaspekten ist und aufgrund seiner guten Verständlichkeit wertvolle Dienste in der Projektkoordination leistet.

Software Architekture Design
Ausgehend vom erstellten Domain Model erstellen wir die erforderlichen UML Dokumente in der ausreichenden Detaillierungstiefe. Insbesondere für Kommunikationssoftware mit komplexen Interaktionen sind die erstellten Designs in Form von Klassen-, Objekt- und Sequenz-Diagrammen hilfreich bei der Implementierung. Gleichzeitig liegt damit für Ihr Projekt eine Dokumentation vor, die beispielsweise für die Einarbeitung weiterer  Entwickler verwendet werden kann.
Languages, Operating Systems and Frameworks
Die Implementation der Software Systeme führen wir auf dem sprachlich höchstmöglichen Abstraktions Level aus. Für Embedded Systeme sind die Sprachen C und C++ nach wie vor eine sehr gute Wahl aufgrund der hohen Performance und des optimalen Speicherplatzbedarfs.

Vor dem Hintergrund der wachsenden Konnektivität von Embedded Systemen ist aufgrund der ereignisgesteuerten Programmierung der Einsatz eines RTOS unverzichtbar. Hier erzielen wir seit Jahren sehr gute Projektresultate mit FreeRtos (das kürzlich von Amazon übernommen wurde). Selbstverständlich setzen wir, dort wo es sich anbietet, auch die Hersteller spezifischen Betriebssystemlösungen wie z.B. TI-RTOS (SimpleLink) ein.

Für mobile Anwendungen setzen wir je nach Plattform auf die nativen Sprachen wie Java, ObjectiveC, Swift etc. Für die Reduktion der Entwicklungskosten ist die Verwendung einer plattformübergreifenden Technologie angebracht. GUI und Business Logik können unabhängig vom verwendeten Betriebssystem Android oder IOS implementiert werden. 

Für die IOT Server Implementation nutzen wir Frameworks wie beispielsweise Code Ignitor, Laravel mit PHP. Diese bieten neben umfassenden Bibliotheken auch die Möglichkeit von strukturierten Versions-Wechseln mit den erforderlichen Datenbank Migrations Skripts entsprechenden Datenbank Seeders etc, die für produktive Umgebungen essentiell sind.
Test driven module implementation
Um über den ganzen Zyklus sicherzustellen, dass Modifikation in bereits getesteten Modulen keine neuen Fehler verursachen, entwickeln wir jeweils für jedes Modul eine Modul Testsoftware. Dies erlaubt uns einen automatisierten regressiven Test bei jeder Bereitstellung neuer Versionen durchzuführen. Dies führt zu einer erheblichen Erhöhung der Qualität komplexer Softwaresysteme bereits auf Modul Ebene.
Continuous Integration, Continuous Deployment
Die automatisierte Installation von IOT Backend Serversystemen, aber auch ein automatisiertes Deployment von neuen Releases auf Staging und Produktiv Servern erlauben das unkomplizierte Testen bzw. Ausrollen von neuen Software Versionen. Der Einsatz dafür vorbereiteten Server Frameworks, wie z.B. Laravel  oder IT Automatisierungssysteme wie Ansible unterstützen diesen Workflow.
Damit bleibt Ihr IOT-System auf dem auf dem neusten Stand und die Innovationsfähigkeit wird sicher gestellt.
OUR EXPERTISE
FOCUS AREAS
Embedded Connectivity
Mit den Kommunikations- Technologien BLE, NFC, LoRa oder IP hat das Insel-Dasein von Geräten ein Ende. Jeder Kommunikationsstandard spielt ihre Stärken auf einem anderen Terrain aus.
 Nutzen Sie unsere umfassendes Kompetenz und Erfahrung in diesem Bereich.

Cloud Integration
Die Virtualisierung ihres Produktes erschliesst neue Wertschöpfungs-Stufen und ebnet den Weg für innovative Business Modelle z.B. für Service und Wartung. Wir verfügen über das erforderliche interdisziplinäre Wissen und haben die nötige Projekterfahrung für zukunftsgerichtete Lösungen.

Mobile Connectivity
Die Bedienung von Geräten über mobile Geräte mit Bluetooth oder NFC ist ein Plus in jeder Beziehung. Der Wegfall teurer Bedienelemente reduziert die Herstellkosten und ihre Kunden schätzen die intuitiv vertrauten Bedienkonzepte. Wir entwickeln für Sie ein tragfähiges Konzept und realisieren Embedded System und Mobile App.