Zum Inhalt springen

Blogeintrag

Die Toollandschaft für Industrie 4.0

Tool-Expertise  Tools 

Industrie 4.0, IoT – eine Liste von Buzzwords, die derzeit für Gesprächsstoff sorgt. Wir wollen den Fragen nachgehen: Was darf man sich darunter vorstellen? Können wir die Komplexität beherrschen? Und welche Werkzeuge lassen sich dabei schon jetzt in Projekten einsetzen?

Was ist Industrie 4.0?

"Industrie 4.0 ist ein Marketingbegriff, der auch in der Wissenschaftskommunikation verwendet wird, und steht für ein 'Zukunftsprojekt' der deutschen Bundesregierung. Die sog. vierte industrielle Revolution zeichnet sich durch Individualisierung bzw. Hybridisierung der Produkte und die Integration von Kunden und Geschäftspartnern in die Geschäftsprozesse aus."

(Quelle: Springer Gabler Verlag (Herausgeber), Gabler Wirtschaftslexikon, Stichwort: Industrie 4.0, online im Internet: http://wirtschaftslexikon.gabler.de/Archiv/-2080945382/industrie-4-0-v1.html)

Industrie 4.0 steht für Individualisierung (selbst in der Serienfertigung) und Hybridisierung (die Koppelung von Produktion und Dienstleistung) von Produkten und Integration von Kunden und Geschäftspartnern in Geschäftsprozesse. Unabhängig von diesem schwammigen und kommerziell geprägten Begriff sehen wir eine Entwicklung auf uns zurollen, die durch neue Herausforderungen in vielen Bereichen wie Automotive, Smart Homes, aber auch der Medizintechnik geprägt ist. Wo stecken hier die Herausforderungen in der Produktentwicklung? Alles beginnt mit der fortschreitenden Vernetzung dieser Produkte.

Internet Of Things ist Vernetzung

"IoT bezeichnet die Vernetzung von Gegenständen mit dem Internet, damit diese Gegenstände selbstständig über das Internet kommunizieren und so verschiedene Aufgaben für den Besitzer erledigen können."

(Springer Gabler Verlag (Herausgeber), Gabler Wirtschaftslexikon, Stichwort: Internet der Dinge, online im Internet: http://wirtschaftslexikon.gabler.de/Archiv/1057741/internet-der-dinge-v4.html)

Einige Beispiele vernetzter Systeme: Selbstfahrende Autos, Smart Homes, Smart Watches, smarte Robotik, autonome Drohnen, Big Data-Applikationen, Wearables, Deep Learning- und Machine Learning-Applikationen.

Vernetzung macht vieles einfacher?

Vernetzung bedeutet in der Regel einen Anstieg an Komplexität, dynamische nicht-lineare Eigenschaften und Emergenzen aus systemischer Sicht, die nicht nur zu neuer Erkenntnis und neuen Anwendungen führen werden, sondern auch neue Probleme hinsichtlich der Entwicklung von Test und Betrieb solcher Systeme bergen. Während die Vorteile oft auf der Hand liegen, sind die Nachteile nicht unbedingt sofort ersichtlich. Eine einzelne kleine Webcam ist für sich gesehen harmlos, aber vernetzt birgt sie die Gefahr für andere Zwecke missbraucht zu werden. Beispiele dafür gab es erst vor kurzem in einem bisher noch nicht dagewesenen DDOS-Angriff auf die Internetinfrastruktur, angeblich über nur 50.000 Webcams, die eine Sicherheitslücke hatten. (Herbert Saurugg über Vernetzung und Komplexität: www.saurugg.net/wp/wp-content/uploads/2015/02/vernetzung-und-komplexitaet.pdf)

 

"While none of the DDoS attack capabilities of Mirai observed to date are new or unique, it is a flexible DDoS attack-generation system and can launch high-volume, nontrivial DDoS attacks when wielded by a capable attacker. Mirai features segmented command-and-control, which allows the botnet to launch simultaneous DDoS attacks against multiple, unrelated targets."(Quelle: http://searchsecurity.techtarget.com/news/450401962/Details-emerging-on-Dyn-DNS-DDoS-attack-Mirai-IoT-botnet9)

"In komplexen vernetzten Systemen sehen wir Eigenschaften wie Rückkopplung, Schwellen- und kritische Werte oder selbstregulatorische Effekte, sodass es unmöglich wird das Systemverhalten aus den Einzelkomponenten abzuleiten." (Frederic Vester, "Die Kunst vernetzt zu denken")

Es wird also in Zukunft noch wichtiger in hoher technischer Qualität zu produzieren und bis es regulatorische Maßnahmen gibt, als Hersteller selbst die Initiative zu ergreifen und die Systeme mit entsprechender Qualität und Sicherheit auszustatten. Für einige der bekannteren Standards (z. B. ISO 15288 oder 26262) gibt es auch schon Templates in manchen Werkzeugen, um die Compliance zu unterstützen.

Nicht zu vergessen: Ein Grundbedürfnis, die Sicherheit

Und dann sind da noch jene Herausforderungen, wie Security und Safety. Wir alle wollen Geräte, die sich nicht als Angriffsvektor für DDOS-Attacken eignen, wir wollen Fahrzeuge, die uns Sicherheit bieten, physikalische Sicherheit zu allererst und in Folge auch finanzielle, wenn wir mit dem Button im Smart Home das Waschmittel oder die Butter auf Knopfdruck bestellen, wollen wir nicht von Nebeneffekten überrascht werden. In letzter Zeit sind wir immer wieder mit Berichten konfrontiert, die uns zeigen, wie verwundbar die IoT-Systeme sind: 

"[This is] a new type of threat in which adjacent IoT devices will infect each other with a worm that will spread explosively over large areas in a kind of nuclear chain reaction, provided that the density of compatible IoT devices exceeds a certain critical mass... The attack can start by plugging in a single infected bulb anywhere in the city, and then catastrophically spread everywhere within minutes, enabling the attacker to turn all the city lights on or off, permanently brick them, or exploit them in a massive DDOS attack."

(https://www.engadget.com/2016/11/03/hackers-hijack-a-philips-hue-lights-with-a-drone/ und http://mashable.com/2016/11/03/drone-hack-philips-hue

Die Komplexität von Software

Gerade im Softwaretest zeigt sich eine Komplexität, die in folgendem Zitat von Jerry Weinberg gut auf den Punkt gebracht wird:

"So, even if we absolutely knew all the requirements (which we can't, of course), kept all the human factors under control (also impossible), and knew exactly all the physical properties of the real world (once more, impossible), we would still never be able to perform the infinite number of tests to cover all possible situations. In other words, the software could still surprise us at any time. That's what I call complexity."

 

Was es also in Zukunft braucht sind Werkzeuge, die diese Komplexität für Menschen leichter handhabbar machen, die Reduktion der Komplexität wird immer wichtiger. Es werden Tools sein die uns helfen beim Erarbeiten der Requirements, die nicht nur starre Dokumentenmanagementsysteme sind, sondern dort aktiv Aufgaben übernehmen, die uns besser kollaborieren lassen und die uns aktiv im gesamten Life Cycle unterstützen. Dabei wird es gerade für die IoT-Produkte notwendig Software und Hardware zu verbinden und nicht getrennt zu betrachten (in einem Produkt Management Lifecycle).
Gleichzeitig wollen wir die Kunden einbinden, überall sind Märkte und Märkte sind Konversationen, wie wir seit dem Cluetrainmanifest wissen.

Wie können wir schon heute diesen Aspekten begegnen, welche Werkzeuge gibt es?

Wie man sieht gibt es eine Menge Aspekte und auch wenn man Produkte dafür sucht, landet man unweigerlich bei einer sehr heterogenen Toollandschaft, deren Integration durchaus eine eigene Herausforderung ist.
Es existieren natürlich Werkzeuge, die es ermöglichen den gesamten Lebenszyklus eines Produkts abzubilden. Vom Erfassen der Requirements über das Testmanagement bis zum Releasemanagement und Betrieb ist in diesen ALM-Werkzeugen alles vorhanden. Beispiele dafür sind:

  • HP ALM
  • IBM Rational Doors NG, Rational Quality Manager
  • Siemens Polarion ALM
  • Atlassian Jira + Confluence
  • MS TFS
  • Racorcat Tessy

Damit wird aber nur ein Teil der Entwicklung abgedeckt. Entwicklerlastige Werkzeuge, wie CI-Server, Configurationmanagement, Unit-Test-Frameworks und IDEs, sind der Kern der Softwareentwicklung. Hier will man kurze Testzyklen auf einer produktionsnahen Umgebung umsetzen, und dabei so viel wie möglich automatisieren. Es gibt verschiedene Möglichkeiten analytische Qualitätsicherung zu integrieren, z. B. mittels statischer Codeanalysetools und Werkzeugen für das einfachere Durchführen von Code-Reviews. Ziel ist eine laufende Kontrolle der Integration aller Komponenten und das Sicherstellen eines "Potentially Shipable Products" bei agiler Vorgehensweise. Außerdem lassen sich damit die Reaktionszeiten bei Fehlern minimieren.

  • CI-Server wie Jenkins, Atlassian Bamboo, CruiseControl, Teamcity
  • Codeanalyse: SonarQube, Clang, IBM Rational AppScan, LDRA Testbed, Tessy, Klockwork Insight, Coverity
  • Codereview: Jetbrains UpScource, Atlassian Crucible

Dazu kommen Testautomatisierungswerkzeuge, sowohl für das UI als auch für webbasierte Services (SOAP und REST). Und weil Hardware und Software sich immer enger binden, benötigt man auch neue Werkzeugkategorien, die es ermöglichen Hardware effizient zu testen. Unser HIL-Teststand ist ein Beispiel dafür, wie man die existierende Palette an Werkzeugen durch intelligent integrierte Lösungen auf Hardware-in-the-loop erweitern kann.
Dazu gesellen sich Werkzeuge, die uns helfen, die Performance zu testen, oder auch End-to-end im Betrieb zu monitoren um Flaschenhälse oder Langläufer zeitnah zu erkennen und Probleme zu fixen. Mit einer größeren Akzeptanz agiler Methoden geht aber auch ein "Shift-Left" im Test einher, dessen Ziel eine frühere Erkennung von Problemen und Fehlern ist. Das führt auch dazu, dass vieles zum DevOps wandert, was zuvor weiter hinten im Prozess angesiedelt war. Microservices sind beispielsweise so ein aktueller Ansatz.

  • Testautomation: Ranorex, HP UFT, HP LeanFT, IBM Rational Functional Tester, Selenium, SmartBear Testcomplete
  • Last- und Performancetest: JMeter, Neotys Neoload, HP LoadRunner
  • APM-Tools: Dynatrace, AppDynamics
  • Loganalyse: Splunk, Xpolog

Generell kann man mit Werkzeugen viele Abläufe effizienter abwickeln und besser kooperieren. Ein Dashboard hilft dabei, den Projektstatus abzufragen, und dabei auch verschiedene Detaillevels zu berücksichtigen. Um die Informationen einer solch heterogenen Toollandschaft zu aggregieren und die wesentlichen Informationen für verschiedene Stakeholder entsprechend aufzubereiten, entstehen immer mehr Werkzeuge, die dabei helfen, eine aktuelle Sicht auf die Daten der Entwicklung, auch mehrerer Projekte zu verknüpfen und übersichtlich in einem Dashboard darzustellen. Damit lassen sich Metriken und Reports projektübergreifend berechnen und automatisch erstellte Reports bauen.

  • QACube
  • Dashboards in ALM-Werkzeugen

Das war nur eine exemplarische Auswahl an Werkzeugen, die Sie bei uns erwarten.
Die Toollandschaft verändert sich kontinuierlich und die Toolexperten von Software Quality Lab sind Ihr verlässlicher Partner für den Einsatz dieser Werkzeuge in Ihren Projekten.

Fachlicher Kontakt

Johannes Bergsmann

johannes.bergsmann@software-quality-lab.com

 +43 5 0657-420
 +43 676 840072 420