{"id":802,"date":"2018-07-11T08:00:40","date_gmt":"2018-07-11T06:00:40","guid":{"rendered":"http:\/\/formalmind.com\/?p=802\/"},"modified":"2022-04-21T19:20:52","modified_gmt":"2022-04-21T17:20:52","slug":"iot-for-re","status":"publish","type":"post","link":"https:\/\/www.formalmind.com\/de\/blog\/iot-for-re\/","title":{"rendered":"Was bedeutet das Internet der Dinge (IoT) f\u00fcr das Requirements Engineering?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Das Internet der Dinge (IoT) ist derzeit ein hei\u00dfes Schlagwort. Es besagt einfach, dass wir physische Ger\u00e4te nehmen und sie mit dem Internet verbinden. Wie bei vielen Schlagw\u00f6rtern ist dies nichts wirklich Neues: Dies geschieht seit Jahrzehnten. Aber fr\u00fcher ging es dabei typischerweise um industrielle Nischenanwendungen. Jetzt bewegt sich IoT in den Verbraucherbereich. Vor einigen Jahren gab es einiges Gel\u00e4chter, als die Leute \u00fcber die \u201cNotwendigkeit\u201d diskutierten, Toaster und Kaffeemaschinen mit dem Internet zu verbinden. Aber jetzt ist das Auto das hei\u00dfeste \u201cDing\u201d, das mit dem Internet verbunden werden kann. Aufgrund des hohen Werts und all der M\u00f6glichkeiten hat dies dem IoT einen enormen Schub gegeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber was bedeutet das f\u00fcr das Requirements Engineering? Wir haben bereits besprochen <a href=\"https:\/\/www.formalmind.com\/de\/blog\/there-must-be-a-better-way-invitation-to-a-virtual-panel-discussion-on-disrupting-requirements\/\">einige disruptive Trends<\/a>&nbsp;k\u00fcrzlich. Au\u00dferdem gibt es viele Trends, die nicht mit dem IoT zusammenh\u00e4ngen (z. B. agile Arbeit, in kurzen Iterationen usw.). Aber hier sprechen wir spezifisch \u00fcber den Einfluss des IoT.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Hardware und Software entwickeln sich gemeinsam weiter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fr\u00fcher wurden Hardware und Software nicht gleichberechtigt entwickelt: Entweder wurde zuerst die Hardware entwickelt und dann die Software, um sie anzusteuern. Denken Sie zum Beispiel an eine computergesteuerte Schneidemaschine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es gab auch Szenarien, in denen die Software im Vordergrund stand und die Hardware \u201cnachtr\u00e4glich\u201d daran angebracht wurde. Denken Sie zum Beispiel an einen M\u00fcnzkaffeeautomaten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber heute sollten Hardware und Software gemeinsam weiterentwickelt werden, damit sie f\u00fcr die jeweilige Aufgabe optimiert sind. Dies wird zu neuen und innovativen Designs f\u00fchren.<\/p>\n\n\n\n<div style=\"border: 1px solid green; padding: 3px;\"><strong>Was das f\u00fcr Anforderungen bedeutet:<\/strong> Sowohl Hardware- als auch Softwareanforderungen m\u00fcssen eine R\u00fcckverfolgbarkeit zu den \u00fcbergeordneten Anwendungsf\u00e4llen und Anforderungen aufweisen. Weiter \u201cunten\u201d m\u00fcssen sie als separate Komponenten behandelt werden, damit die verschiedenen Teams sie auf die f\u00fcr sie am besten geeignete Weise weiterentwickeln k\u00f6nnen (typischerweise agil f\u00fcr Software, etwas formeller f\u00fcr Hardware). Schnittstellen entwickeln sich zusammen mit den Komponenten.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Over-the-Air-Softwareupdates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Heute klicken wir gedankenlos auf \u201cAktualisieren\u201d bei Apps, aber die Idee gibt es noch gar nicht so lange. Das Spiel \u00e4ndert sich grundlegend, sobald diese Updates sicherheitskritisch sind, wie es bei Autos oder medizinischen Ger\u00e4ten der Fall ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.consumerreports.org\/automotive-technology\/automakers-embrace-over-the-air-updates-can-we-trust-digital-car-repair\/\" target=\"_blank\" rel=\"noopener\">Over-The-Air-Updates bieten riesige Chancen, bergen aber auch Gefahren<\/a>. Daher sind Sicherheit und Schutz Kernanforderungen und keinesfalls etwas, das man nachtr\u00e4glich bedenkt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer Aspekt ist, dass Hardware nicht so einfach wie Software aktualisiert werden kann. Daher wird Hardware so einfach und generisch wie m\u00f6glich gebaut. Das geschieht bereits: Netzwerkausr\u00fcstung wird oft \u201cbereit\u201d f\u00fcr nicht existierende neue Technologien ausgeliefert, an denen bereits gearbeitet wird, die aber noch nicht als Standard finalisiert sind (z. B. 5G-Netzwerke). Oder denken Sie an Tesla, das kostenpflichtige Funktionen drahtlos aktivieren kann, indem es die Funktion als Softwarepaket hochl\u00e4dt.<\/p>\n\n\n\n<div style=\"border: 1px solid green; padding: 3px;\"><strong>Was das f\u00fcr Anforderungen bedeutet:<\/strong> Die Hardware wird mit Blick auf zuk\u00fcnftige Erweiterungen und vereinfachter auf Kosten der Software entworfen. Dies wird sich in einfachen Hardwarespezifikationen, aber komplexen APIs und Softwareanforderungen niederschlagen. Auch Produktvarianten werden zunehmend softwarebasiert sein.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Anforderungen werden zur Laufzeit ausgewertet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Requirements-Ingenieure wissen, dass der Kontext eines Systems klar definiert sein muss, da Anforderungen nur in einer g\u00fcltigen Umgebung erf\u00fcllt werden k\u00f6nnen. Es ist einfach, den Kontext eines Heizk\u00f6rpers zu definieren (Gr\u00f6\u00dfe des Raumes, Au\u00dfentemperatur, Isolierung). Aber der Kontext eines IoT-Ger\u00e4ts liegt v\u00f6llig au\u00dferhalb der Kontrolle. Betrachten Sie ein autonomes Auto, bei dem die Stra\u00dfe mit all ihren Teilnehmern den Kontext darstellt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traditionell werden Anforderungen und Kontext im Voraus definiert und als Grundlage f\u00fcr ein Design verwendet. Aber es gibt eine Alternative, die noch nicht weit verbreitet ist: Anstatt die Anforderungen zur Entwurfszeit zu bewerten, bewerten Sie sie zur Laufzeit. Die Theorie dahinter wurde von <a href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.37.3205&amp;rep=rep1&amp;type=pdf\" target=\"_blank\" rel=\"noopener\">Gunter, Gunter, Jackson und Zave<\/a>. Das Ergebnis ist, dass das System zur Laufzeit aus einer Liste g\u00fcltiger \u201cDesigns\u201d ausw\u00e4hlen und jenes aktivieren kann, das der gegebenen Situation (dem Kontext) am besten entspricht.<\/p>\n\n\n\n<div style=\"border: 1px solid green; padding: 3px;\"><strong>Was das f\u00fcr Anforderungen bedeutet:<\/strong> Zus\u00e4tzlich zu menschenlesbaren Anforderungen formulieren Requirement Engineers f\u00fcr die Laufzeitauswertung maschinenlesbare Anforderungen und Kontextbeschreibungen.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Anforderungen sind Verhaltensbeschreibungen von Black Boxes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Systeme haben typischerweise eine \u201cBlack-Box\u201d-Beschreibung, eine Beschreibung, die das Verhalten erkl\u00e4rt, ohne zu erkl\u00e4ren, wie es erreicht wird. Betrachten Sie einen Computermonitor: Uns interessieren nur Eingabe (HDMI-Stecker) und Ausgabe (ein Bild auf dem Bildschirm). Wie dies erreicht wird, ist irrelevant, sei es mit einem LCD-Bildschirm, LEDs oder einer altmodischen Bildr\u00f6hre. Diese Informationen sind Teil der \u201cWhite-Box\u201d-Beschreibung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir werden immer mehr sehen <a href=\"https:\/\/en.wikipedia.org\/wiki\/Behavior-driven_development\" target=\"_blank\" rel=\"noopener\">verhaltensorientierte Beschreibungen<\/a>, aus mehreren Gr\u00fcnden:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Es erleichtert die Verwendung von Standardkomponenten.<\/li><li>Technologie ver\u00e4ndert sich so schnell, dass es viel einfacher wird, das Innenleben einer Komponente auszutauschen.<\/li><li>Die Implementierung k\u00f6nnte eine k\u00fcnstliche Intelligenz (KI) sein. Ein richtig beschriebenes Verhalten erm\u00f6glicht auch die \u00dcberwachung auf plausibles Verhalten w\u00e4hrend der Laufzeit.<\/li><li>Es vereinfacht das Testen auf zwei Arten: das Verhalten der Komponente kann gr\u00fcndlich getestet werden (und der Test wiederverwendet werden) und die Komponente kann durch eine Mock-Komponente ersetzt werden, falls die Komponente selbst noch nicht verf\u00fcgbar ist.<\/li><\/ol>\n\n\n\n<div style=\"border: 1px solid green; padding: 3px;\"><strong>Was das f\u00fcr Anforderungen bedeutet:<\/strong> Verhaltensgetriebene Anforderungen nehmen zu. W\u00e4hrend diese traditionell zur Spezifikation von Interaktionen mit Menschen verwendet werden, werden wir diese auch zunehmend in anderen Szenarien sehen.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Schlussfolgerung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Machen Sie keinen Fehler: Mit dem Aufkommen des IoT wird sich die Arbeit des Requirement Engineers grundlegend ver\u00e4ndern. Es handelt sich nicht nur um \u201cmehr vom \u00dcblichen\u201d, sondern um einen echten Paradigmenwechsel. Diese Entwicklungen werden durch die Notwendigkeit von Ver\u00e4nderungen vorangetrieben: Nicht nur w\u00e4hrend der Entwicklung, sondern auch w\u00e4hrend des Betriebs. Sie werden auch durch ein exponentielles Wachstum der Komplexit\u00e4t angetrieben, das nur durch \u201cTeile und Herrsche\u201d bew\u00e4ltigt werden kann und zu deutlich mehr Black-Box-Denken f\u00fchrt.<\/p>\n\n\n\n<div class=\"_3bJ2H CHExY\">\n<div class=\"_1l8RX _1ByhS\" style=\"text-align: right;\">Foto von <a href=\"https:\/\/unsplash.com\/photos\/0E_vhMVqL9g?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Andy Kelly<\/a> auf <a href=\"https:\/\/unsplash.com\/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Das Internet der Dinge (Internet of Things, IoT) ist derzeit ein hei\u00dfes Schlagwort. Es besagt einfach, dass wir physische Ger\u00e4te nehmen und sie mit dem Internet verbinden. Wie bei vielen Schlagw\u00f6rtern ist das nicht wirklich neu: Das wird schon seit Jahrzehnten gemacht. Aber in der Vergangenheit ging es dabei meist um industrielle Nischenanwendungen. Jetzt ist IoT...<\/p>","protected":false},"author":1,"featured_media":1517,"comment_status":"open","ping_status":"open","sticky":false,"template":"wp-custom-template-single-post-feature-image","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[13],"tags":[72,73,74,75,76,71],"class_list":["post-802","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-behavior-driven","tag-context","tag-iot","tag-over-the-air","tag-run-time","tag-trends"],"_links":{"self":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts\/802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/comments?post=802"}],"version-history":[{"count":0,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts\/802\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/media\/1517"}],"wp:attachment":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/media?parent=802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/categories?post=802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/tags?post=802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}