Apps haben in den letzten Jahren an Bedeutung gewonnen. Sie sind wichtige Kanäle für die Kommunikation mit Organisationen, die sie anbieten, und können außerdem persönliche und gesundheitliche Daten enthalten. Nicht selten sind sie an der Steuerung, Datenübertragung und -auswertung im Kontext medizintechnischer Systeme beteiligt. Sicherheit, Benutzerfreundlichkeit und Anpassungsfähigkeit sind somit wichtige Merkmale einer erfolgreichen App.

Einfache, robuste und modulare Lösungen gegen die wachsende Problemkomplexität

„SAHA“ („Seleons Accelerated Health Applications“) als Grundlage des seleon App-Entwicklungskonzeptes bildet ein erprobtes, konsistentes und gut wartbares Programmiermodell, darauf ausgerichtet, Skalierbarkeit und Anpassungsfähigkeit maximal zu unterstützen. Wenn sich also Anforderungen ändern und Erweiterungen vorgenommen werden, können die neuen Bedürfnisse der aktuellen und zukünftigen Nutzer vergleichsweise schnell und sicher erfüllt werden. Die klassische „1.0“-Version einer App ist somit keine Sackgasse, sondern die Basis einer langfristigen und nachhaltigen Lösung. Ein von einzelnen Zielplattformen weitestgehend unabhängiger Framework-Ansatz beinhaltet die Nutzung vorausgewählter Komponenten und führt Praktiken ein, die die Entwicklung erleichtern und unseren Kunden helfen, die gesetzten Ziele für funktionale und nicht-funktionale Anforderungen effizient zu erreichen. Diesem Prinzip folgt die dazugehörige, IEC 62304-konforme, Dokumentation. Die Möglichkeit der Wiederverwendung von Code, Tools und Dokumentationsartefakten, sowie die inhärente Weiterentwicklung des Frameworks mit jeder Anwendung, sind nur einige der zahlreichen Vorteile. Die Grundlage für moderne App-Entwicklung ist also einfach, modular, getestet und ermöglicht den Aufbau sauberer und langlebiger Software.

Schnelleres Lernen und sofortige Produktivität

Der Beginn eines neuen Projektes kann aufwändig sein. Umso wichtiger ist es, nicht auf der sprichwörtlichen „grünen Wiese“ starten zu müssen. Da SAHA dafür ausgelegt ist, einen bekannten Satz gut gewarteter und dokumentierter Komponenten (inklusive SOUPs) vorzuhalten und mit Code-Generierungswerkzeugen zu kombinieren, ist es vergleichsweise schnell einzusetzen und einfach zu verstehen. Dieses App-Fundament funktioniert immer gleich und erlaubt es Entwicklern, den Fokus auf Applikation und Features selbst, also auf die einzigartigen Anforderungen, Besonderheiten und Kundenwünsche innerhalb eines Projektes zu setzen.

Sauberer Code und bewährte Verfahren

Die Entwicklung von Software ist Handwerk, Engineering und manchmal sogar etwas Kunst. Die kontinuierliche und gründliche Überprüfung der Entwicklungsergebnisse ist entsprechend wichtig und herausfordernd. Hohe Qualität wird nur durch den Einsatz ausgewählter Best Practices und Standards der Branche gewährleistet. Zum Beispiel wird nach jeder Übergabe an die Versionskontrolle die Codebasis gescannt, der Code mit statischen Analysewerkzeugen überprüft und jede Softwareeinheit mit einer Testsuite verifiziert. Dadurch sollen Sicherheitslücken in den verwendeten Komponenten, Abweichungen von den vereinbarten Codierungsstandards und Regressionen zeitnah erkannt werden. Außerdem verbessern Tools die Quellcodeformatierung, sodass dieser konsistent und leicht lesbar bleibt. Die genannten Praktiken werden im Bereich kontinuierliche Integration und kontinuierliche Bereitstellung zusammengefasst und funktionieren vollständig automatisch.

Modularisierung durch Trennung von Benutzeroberflächenkomposition und Anwendungsstatus

Die Verwaltung des Zustands einer großen App kann bekanntermaßen schwierig und fehleranfällig sein. Daher sollte der Anwendungsstatus getrennt von der Benutzeroberfläche verwaltet und isoliert als unabhängiges Modul getestet werden. Die Kommunikation zwischen der Zustandsverwaltung, den Benutzeroberflächen und den integrierten Cloud-Diensten kann asynchron erfolgen und Streams verwenden. Wenn sich ein Zustand innerhalb dieser gekapselten Komponenten als Reaktion auf Zustandsänderungsereignisse ändert, detektieren Listener diese Änderung und führen entsprechende Funktionen unter Verwendung des Zustands als Parameter aus. Dies ermöglicht somit reaktive, funktionale Programmierung und prädiktive Zustandsverwaltung.

Beseitigung von Fehlerquellen

Probleme bei der Speicherverwaltung äußern sich häufig in Null-Zeiger- und Out-of-Memory-Ausnahmen, aber auch durch das Entstehen ausnutzbarer Sicherheitslücken. Konzepte wie automatische Speicherverwaltung, Garbage Collection und Null-sichere Programmiersprachen helfen, diese Fehlerquellen weitestgehend zu beseitigen. Die National Security Agency (NSA) stellt fest: „…inherent protections offered by memory safe software languages can prevent or mitigate most memory management issues. NSA recommends using a memory safe language when possible.“ (NSA, „Cybersecurity Information Sheet“, „Software Memory Safety“, 11/2022) Das Befolgen dieser Empfehlung ist im App-Bereich also professioneller Standard und die Voraussetzung dafür, die genannten Risiken drastisch zu reduzieren.

Revolution für die einen ist Evolution für die anderen

SAHA unterstützt eine einzige Codebasis für iOS, Android, Desktop und Web. Seleon hat bereits früh in ein Multi-Plattform-Ökosystem, moderne Tools und Praktiken investiert. Mehr als ein Viertel der neuen iOS-Apps weltweit werden bereits auf ähnliche Weise entwickelt. Seleon beschreitet damit einen vielversprechenden Weg. Unser Ziel ist es, mit unseren Kunden zu teilen, was wir gelernt haben und wie wir die Zukunft von Medical Software sehen, um einen Mehrwert für die Industrie und alle Beteiligten, wie Patienten und Nutzer, zu schaffen.

Bitte beachten Sie, dass alle Angaben und Auflistungen nicht den Anspruch der Vollständigkeit haben, ohne Gewähr sind und der reinen Information dienen.