Software-Verlässlichkeit

Funktionieren reicht nicht – es braucht Vertrauen

25.07.2019 von Christoph Lixenfeld
Dass Software verlässlich funktioniert, ist heute eine Mindestanforderung. Experten geht es aber vermehrt auch darum, dass ihre Funktionen erklärbar und nachvollziehbar sind – und damit von den Anwendern besser akzeptiert werden.

Neue Herausforderungen in Sachen Verlässlichkeit von Software entstehen entweder durch eine veränderte Nutzung oder eine veränderte Entwicklung und Verbreitung. Um die Frage zu beantworten, was das in der Praxis bedeutet und wie Gestalter und Entscheider in der digitalen Welt diesen Herausforderungen begegnen können, hatte der MÜNCHNER KREIS bereits am 13. März zahlreiche Expertinnen und Experten nach Berlin ins Fraunhofer-Institut FOKUS geladen, zur Konferenz "Software-Verlässlichkeit - entscheidender Erfolgsfaktor für Industrie 4.0 und Künstliche Intelligenz".

Bei der Nutzung von Software dreht sich viel um Verlässlichkeit. Schließlich vertrauen die Unternehmen den Programmen ihren Geschäftsbetrieb an.
Foto: Olga Danylenko - shutterstock.com

Einig waren sie alle darin, dass die Erwartungen der Kundschaft an Software zuletzt deutlich gestiegen sind. So soll die Entwicklung immer schneller gehen, das Produkt zugleich immer besser werden. Diese auf den ersten Blick widersprüchliche Erwartungshaltung sei nicht zwingend paradox, erläuterte in Berlin Volker Kirchgeorg, Head of Integrated Quality & Services bei SAP. Der ganzheitliche Entwicklungsansatz DevOps steigere in vielen Fällen tatsächlich beides, die Geschwindigkeit beim Ausliefern und die Qualität. Zugleich müssten sich die Kunden allerdings an sogenannte Micro Deliveries gewöhnen, also daran, dass Features schrittweise geliefert werden, beispielsweise jedes Quartal.

Moral in Programmiercode abbilden?

Wobei der Begriff 'liefern' in Zeiten des Cloud Computing eine neue Bedeutung bekommt, weil die Kunden nicht mehr Produkte kaufen, sondern den Zugang zu einem Service. Auch und gerade ein solcher Service kann aber nur dann verlässlich sein, wenn die Nutzer ihm auch vertrauen.

Wie man dieses Vertrauen systematisch fördert, damit beschäftigt sich Philipp Otto, Gründer und Direktor von iRights.Lab. Der Think Tank entwickelte gemeinsam mit der Bertelsmann Stiftung sogenannte "Algo.Rules", neun Regeln für Algorithmen, die Otto in Berlin präsentierte, und die zeigen sollten, "dass man Moral in Programmiercode abbilden kann."

Philipp Otto, Gründer von i.Rights.Lab, sagt, dass sich Moral in Programmiercode abbilden lässt.
Foto: i.Rights.Lab

Eine dieser Regeln lautet, dass Ziele und Wirkungen eines Algorithmus vorher dokumentiert werden müssen, eine andere, dass diese Ziele und Wirkungen nachvollziehbar gemacht werden - einschließlich der Frage, ob man grundsätzlich auch ohne den Einsatz von Algorithmen auskommen könnte.

Diese und weitere Algo.Rules - darauf legte iRights.Lab-Gründer Otto in Berlin wert - sagen allerdings nichts über die Qualität eines Algorithmus aus. Sondern sie legen nur fest, wie man ihn gestalten und handhaben sollte, damit er anhand moralischer Maßstäbe bewertbar ist: nachvollziehbar vor allem und kontrollierbar.

Der Fortschritt stellt Haftungsregimes infrage

Neben den Ansprüchen an Software verändern sich auch Haftungsfragen im Zusammenhang mit der Entwicklung und dem Vertrieb von Computerprogrammen rasant. Wie Michael Schmidl, Fachanwalt für IT-Recht und Honorarprofessor an der Universität Augsburg erläuterte, stellt beispielsweise die agile Softwareentwicklung Juristen vor neue Herausforderungen. "Wenn für einen Vorgang bezahlt wird und nicht für ein fertiges Produkt, dann gilt dabei in der Regel das Dienstvertragsrecht. Darin ist aber nur festgelegt, dass man etwas erledigt, und nicht, dass man es zwingend auch gut erledigt."

Der technische Fortschritt, so konstatiert Schmidl, stelle insgesamt bestehende Haftungsregimes infrage. So sei zum Beispiel auch keineswegs klar, wer für Schäden durch autonome Systeme hafte.

Blockchain: Viele Ideen, wenig Umsetzung

Über Möglichkeiten und Grenzen der Blockchain-Technologie berichtete Florian Matthes, Professor Software Engineering betrieblicher Informationssysteme (sebis) an der TU München. Blockchain sei viel mehr als das kryptographische Verfahren hinter dem Bitcoin-Zahlungssystem, stellt der Wissenschaftler klar. Autohersteller beispielsweise wollen die Technologie nutzen, um gemeinsam mit dem ÖPNV und weiteren Mobilitätsanbietern eine vernetzte Mobilitätsplattform zu schaffen. Mit den verketteten Blöcken stünde dabei eine neutrale Instanz bereit, die dafür sorgt, dass Transaktionen maximal transparent ablaufen.

Klingt genial, dennoch räumt Matthes ein, dass es in diesem Bereich zwar viele Ideen, aber noch recht wenig praktische Umsetzung gibt. Dafür nennt er einen einfachen Grund: "Die Governance solcher Projekte ist schwierig, weil ich dabei meist gemeinsam mit meinem Feind handeln muss."

Für Dirk Slama von Bosch Software Innovations geht es darum, die richtigen Experimentierumfelder für Co-Innovation zu schaffen.
Foto: Bosch

Gegenseitiges Vertrauen benötigen auch die Mitglieder des Industrial Internet Consortium (IIC), zu denen Dirk Slama, Vice President bei Bosch Software Innovations gehört. Wichtiges Element der Arbeit des IIC sind sogenannte Testbeds. Dabei handelt es sich um "Experimentierumfelder für Co-Innovation", erläuterte Slama in Berlin. Zwei Fragen seien dabei entscheidend. Erstens: "Wie kann ich experimentell agieren, ohne dabei Sicherheitsprobleme zu produzieren?" Zweitens: "Wie baue ich Digital Trust in eine IoT-Lösung ein - die ja ohnehin schon hochkomplex ist?"

Entscheidend ist die Zertifizierung

Auch der Open Source-Gedanke lebt davon, dass viele Leute gemeinsam handeln, dabei geben und nehmen und dadurch Teil einer Community werden. Mit diesem Thema beschäftigt sich Alexander Bluhm, Mathematiker in der Entwicklungsabteilung des Sicherheitsherstellers genua GmbH, die zu 75 Prozent im Besitz der Bundesdruckerei ist. "Durch die Verwendung von OS Software können wir vor allem die Verlässlichkeit unserer Produkte nachvollziehen", so Bluhm.

Bei diesen Produkten handelt es sich zum Beispiel um Firewalls, VPN-Gateways oder Sicherheits-Laptops. Türöffner für viele Märkte ist dabei eine unabhängige Prüfung des Quellcodes der verwendeten Software - und eine anschließende Zertifizierung durch das Bundesamt für Sicherheit in der Informationstechnik (BSI).

Wachsende Komplexität erschwert Vertrauen

Software nimmt bereits heute enormen Einfluss auf unser Leben. Und dieser Einfluss wird weiter wachsen, wie Ina Schieferdecker in Berlin klarmachte. "Technische Systeme sind heute ohne Software nicht mehr vorstellbar", so die Leiterin des Fraunhofer-Instituts für Offene Kommunikationssysteme (FOKUS) und TU-Professorin. Deshalb stelle sich mehr denn je die Frage, "wie wir es schaffen, dass Software genau das tut, was sie soll." Das gelte erst recht, weil Computerprogramme immer häufiger nicht nur Prozesse steuern, sondern auch Entscheidungen vorbereiten und unterstützen.

Ina Schieferdecker, Leiterin des Fraunhofer-Instituts für offene Kommunikationssysteme, stellt sich die Frage, wie man Software dazu bekommt, genau das zu tun, was sie soll.
Foto: Fraunhofer

Auch deshalb ist Verlässlichkeit von Software - gerade im KI- und IoT-Umfeld - weniger ein Funktions- als vielmehr ein Vertrauensthema. Diese Erkenntnis zog sich wie ein roter Faden durch die Berliner Fachkonferenz. Dieses Vertrauen ist oft brüchig, weil die Komplexität von Systemen immer weiter steigt, und weil der Verbleib und die Nutzung von Daten oft schwer nachvollziehbar ist.

Was wird der Computer tun?

Deshalb sollte zumindest die Nachvollziehbarkeit von Zielen, Funktionen und Verantwortlichkeiten Teil jeder Softwareentwicklung sein. Nachvollziehbar seien diese Punkte alledings nur, wenn sie erklärbar und vermittelbar sind. Das verdeutlichte Diana Serbanescu vom Weizenbaum-Institut für die vernetzte Gesellschaft im abschließenden Impulsvortrag der Fachkonferenz.

Warum das so wichtig ist, erklärte sie mithilfe eines Zitats ebenjenes Informatikers Joseph Weizenbaum, dem das Institut seinen Namen verdankt: "Ein Computer wird das tun, was du ihm sagst, aber das kann etwas ganz anderes sein, als du ursprünglich im Sinn hattest."