6. Agenten-Orientiertes Software Engineering. Wann Multiagentensysteme geeignet? Fallstricke Methoden zur Entwicklung von Multiagentensystemen



Ähnliche Dokumente
Charakteristika von sinnvollen Anwendungdomänen. 6. Agenten-Orientiertes Software Engineering. Dezentrale Eigenschaft und von Agenten.

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

SEP 114. Design by Contract

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Some Software Engineering Principles

Use Cases. Use Cases

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Primzahlen und RSA-Verschlüsselung

Requirements Engineering für IT Systeme

Vortrag von: Ilias Agorakis & Robert Roginer

Übungsklausur vom 7. Dez. 2007

Erfolgreiche Realisierung von grossen Softwareprojekten

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Die Post hat eine Umfrage gemacht

Was meinen die Leute eigentlich mit: Grexit?

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

1 Mathematische Grundlagen

Java Enterprise Architekturen Willkommen in der Realität

Leichte-Sprache-Bilder

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Cad-OasEs Int. GmbH. 20 Jahre UG/NX Erfahrung prägen Methodik und Leistungen. Nutzen Sie dieses Wissen!

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Gruppenrichtlinien und Softwareverteilung

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

EIDAMO Webshop-Lösung - White Paper

Geld Verdienen im Internet leicht gemacht

Grundlagen Software Engineering

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Der Begriff Cloud. Eine Spurensuche. Patric Hafner geops

Zusammenfassung Agent-Oriented Software Engineering for Internet Applications

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Worum geht es in diesem Projekt?

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Einführung in Generatives Programmieren. Bastian Molkenthin

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Pflegende Angehörige Online Ihre Plattform im Internet

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit


Support-Tipp Mai Release Management in Altium Designer

Wir machen neue Politik für Baden-Württemberg

Installation der SAS Foundation Software auf Windows

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

BIF/SWE - Übungsbeispiel

Content Management System mit INTREXX 2002.

Gambio GX2 FAQ. Inhaltsverzeichnis

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

Professionelle Seminare im Bereich MS-Office

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einfach wie noch nie. Der mypackage-ansatz. Ihre Lösung zur automatisierten Client-Bereitstellung. mypackage im Überblick

Künstliches binäres Neuron

Lineare Gleichungssysteme

Microsoft SharePoint 2013 Designer

Informationsblatt Induktionsbeweis

RESTful Web. Representational State Transfer

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Taxonomy of Evolution and Dependability. Integration Engineering SS 2009 Andreas Landerer

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

WAS finde ich WO im Beipackzettel

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Einführung und Motivation

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

5. Abstrakte Klassen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

How to do? Projekte - Zeiterfassung

Arbeiten mit UMLed und Delphi

ARCO Software - Anleitung zur Umstellung der MWSt

SMART Newsletter Education Solutions April 2015

Workshop: Eigenes Image ohne VMware-Programme erstellen

Marketing-Leitfaden zum. Evoko Room Manager. Touch. Schedule. Meet.

Fragebogen ISONORM 9241/110-S

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

360 - Der Weg zum gläsernen Unternehmen mit QlikView am Beispiel Einkauf

Vorlesung Donnerstags, bis Uhr, HS12 Übung Dienstags, bis Uhr 4-5 ÜbungsbläMer (Programmieraufgaben)

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Task: Nmap Skripte ausführen

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Was ist Software-Architektur?

Objektorientierte Programmierung OOP

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Generatives Programmieren

Das Leitbild vom Verein WIR

Transkript:

6. Agenten-Orientiertes Software Engineering Wann Multiagentensysteme geeignet? Fallstricke Methoden zur Entwicklung von Multiagentensystemen

Charakteristika von sinnvollen Anwendungdomänen Agenten sind sinnvoll bei Anwendungen, die modular, dezentral, häufig Änderungen unterworfen sind, schlecht-strukturieriert oder komplex sind.

Modularität Agenten sind proaktiv Agenten sind Objekte Agenten besitzen eigene Menge von Zustandsvariablen und klare Schnittstellen zur Umgebung Agenten unterstützen weniger funktionale, sondern mehr physikalische Modularisierung. Funktionale M.: Meist größere Kopplung zwischen versch. Modulen über gemeinsame Zustandsvariablen. Physikalische M.: Stark abgegrenzte Einheit mit eigenen Zustandsvariablen und wenige Interaktionen.

Dezentrale Eigenschaft und von Agenten Agenten sind proaktiv und autonom, d.h. sie laufen unabhängig von anderen Prozessen Dezentral oft besser, da robuster und weniger Verwaltungsaufwand Warum sind Agenten sinnvoll bei sich häufig ändernden Anwendungen? Wegen physikalischen Modularisierung und der dezentralen Eigenschaft können Agenten sehr leicht gegen andere ausgetauscht werden, da die einzelnen Agenten untereinander wenig Abhängigkeiten besitzen.

Warum sinnvoll bei schlecht strukturierten Anwendungen? Agenten in unpredictable environments eingesetzt werden. Komplexere Agenten sich an die Struktur der Umgebung selbstständig anpassen (im Gegensatz zur Strukturvorgabe durch den Designer). Warum sinnvoll bei komplexen Anwendungen? Da in einem Agentensystem nicht alle möglichen Interaktionen ausprogrammiert werden müssen, sondern diese sich dynamisch ergeben, können auch sehr komplexe Probleme gelöst werden. Unter komplex wird dabei eine hohe mögliche Anzahl unterschiedlichem Verhalten einer Software verstanden

Fallstricke Kategorien: politisch Management Auf der Konzeptebene Im Analysis und Design Mikro (Agenten) Ebene Makro (Gesellschafts) Ebene Implementierung M. J. Wooldridge and N. R. Jennings, (1999) "Software Engineering with Agents: Pitfalls and Pratfalls" IEEE Internet Computing 3 (3) 20-27. http://www.ecs.soton.ac.uk/~nrj/download-files/internet-comp.pdf

Don t oversell Agents Agenten sind keine Magie! Wenn es nicht mit normaler Software gelöst werden kann, kann es sehr wahrscheinlich nicht mit Agenten gelöst werden. Agenten können bestimmte Klassen von Problemen leichter lösen, aber sie können nicht das unmögliche möglich machen. Agenten sind nicht KI durch die Hintertür Agenten und KI nicht gleichsetzen

Fanatismus Agenten wurden in vielen Anwendungsdomänen genutzt, aber sie stellen keine universelle Lösung dar! Für viele Anwendungen sind konventionelle Software Paradigmen (z.b. OO ) passender. Wenn für ein Problem eine Agenten und eine Nicht-Agenten- Lösung gleich gut scheinen, bevorzuge die Nicht-Agenten- Lösung Zusammenfassung: Gefahr zu glauben, dass Agenten die richtige Lösung für jedes Problem darstellen Andere Form des Dogmatismus: Glauben an der eigenen Agenten-Definition.

Verwendung von Agenten ohne klare Begründung Agenten als neue Technologie Hype mit vielen Versprechungen Manager schlagen Agentenprojekte vor ohne klare Vorstellung, warum Agenten einen Vorteil dabei haben sollten. Kein business plan für das Projekt: Reine Wissenschaft? Technologie soll verkauft werden? Lösung soll verkauft werden? Projekte scheinen gut zu laufen ( Wir haben Agenten ), aber keine Vision wohin man mit ihnen kommen kann. Nicht: Technologie-Entwicklung und danach erst nach Anwendungen suchen Gründe verstehen, warum ein Agenten-Ansatz versucht werden soll und welche Vorteile man daraus ziehen kann! Nicht versuchen, Agententechnologie für willkürliche Probleme anzuwenden.

Generische Lösungen für spezielle Probleme Yet another agent testbed Krankheit Keine Architektur/Testbed planen, das eine Reihe von Möglichkeiten erschliessen soll, wenn man ein bestimmtes Problem lösen soll. Re-Use ist schwierig, ausser Anwendung für konkrete Domäne, bei Problemen mit ähnlicher Charakteristik Generische Lösungen sind schwieriger und aufwändiger und müssen noch für verschiedene Anwendungen angepasst werden.

Verwechseln von Prototypen mit Systemen Prototypen sind leicht (insbesondere mit GUI builder ) Systeme für den praktischen Einsatz sind hart Übergang von Single-Machine Multi-Threaded Java Application to Multi-User System ist viel härter als er scheint

Agenten sind keine silver bullet silver bullet : Verbesserung in der Software Entwicklung um Größenordnungen Technologien, die vorher als silver bullets beworben wurden: COBOL :-) expert systems graphical programming formal methods (!) Es gibt gute Gründe zu glauben, dass Agenten ein nützliches Paradigma für einige Probleme bereitstellen, sie sind keine silver bullet Argumente für Agenten sind weitgehend in der Praxis nicht belegt. Nützliche Entwicklung im Software Engineering: Abstraktionen; Agenten als weitere Abstraction

Verwechseln von Buzzwords und Konzepten Die Idee Agent ist intuitiv verstehbar D.h. jeder glaubt, das Konzept zu verstehen, auch wenn es tatsächlich nicht so ist. Beispiel: Das belief-desire-intention (BDI) Modell Theorie des human practical reasoning (Bratman et al.) Agentenarchitecturen (PRS, dmars,... ) Anwendungen (NASA,... ) Logik des practical reasoning (Rao & Georgeff) Label BDI wird jetzt auch auf WWW Seiten/perl scripts angewendet

Vergessen, dass man Software entwickelt Entwicklung eines Agentensystems besteht hauptsächlich aus Experimentieren. Es gibt keine ausgetestete, verlässliche Technik man vergisst, dass Software entwickelt wird!! Projekt Plan fokussiert auf den Agenten-Kleinigkeiten Banales Software Engineering (requirements analysis, specification, design, verification, testing) wird vergessen. Projekt scheitert nicht wegen Agentenproblemen, sondern wegen dem ignorierten Software Engineering. Häufige Begründung: Es gibt kein SW-Engineering für Agentensysteme. Aber: jede Form der systematischen Entwicklung ist besser als keine.

Vergessen, dass man ein verteiltes System entwickelt Verteilte Systeme = eine der komplexesten Klassen von Computersystemen, die man entwickeln kann. Multiagentensysteme sind meist verteilt Probleme der Verteiltheit verschwinden nicht, nur weil System agenten-basiert ist, sondern Multiagentensysteme sind noch komplexer! Benutzen von Experise in Verteilten Systemen

Nicht-Nutzen verwandter Technologie In jedem praktischen System ist der agenten-spezifische Anteil vergleichsweise gering. Das raisin bread model (Winston) wenn wir lauffähige Systeme machen wollen, können wir uns nicht nur auf die Rosinen (= KI, Agenten), sondern auch auf den konventionellen Kontext konzentrieren. Konventionelle (=bekannte) Technologien/Techniken anwenden, wenn immer möglich Ausnutzen von bekannter Technologie: Beschleunigt Entwicklung Vermeidet das neu erfinden des Rades (yet another communcation framework..) Aufwand kann auf Agenten-Komponente fokussiert werden. Beispiel: CORBA

Nicht-Nutzen von Gleichzeitigkeit Verschiedene Möglichkeiten zur Aufteilung eines Problems: Dekomposition entlang funktionaler, organisatorischer, physikalischer, oder Ressource-bezogener Dimensionen. Eines der deutlichsten Zeichen für ein schlechtes Multi-Agenten Design ist eine geringe Menge des parallelen Problemlösens, bzw. die nicht-existenz von Gleichzeitigkeit Wenn man Gleichzeitigkeit nicht ausnutzt, warum benutzt man eine Agenten-Lösung?

Wunsch nach eigener Architektur Agent Architekturen: Designs für die Agentenkonstruktion Es gibt viele Vorschläge dafür Versuchung, eine eigene zu entwickeln: not designed here Idee Problems: Entwicklung einer guten Architektur braucht Jahre Kein klares Payback Annahme, die eigene Architektur wäre generisch eine wirklich generische Architektur ist keine. Empfehlung: Verwenden einer vorhandenen oder keiner Architektur

Benutze zu viel, zu wenig AI Versuchung, auf die Agenten-Aspekte zu konzentrieren. Ergebnis zu überlastet mit experimentellen AI-Techniken, um brauchbar zu sein Fähigkeitsneid ( feature envy ), man liest über Agenten, die lernen, planen, reden, singen, tanzen könenn. Versuchung widerstehen, dass all diese Fähigkeiten wichtig in einer bestimmten Anwendung sind. Andererseits keine Schalter, WWW-Seiten als Agenten bezeichnen Macht Begriff beliebig Erzeugt überhöhte Erwartung Führt zu Zynismus

Agenten sind überall -Sicht, zu wenige/zu viele Agenten Reine Agenten System = alles ist ein Agent! Agenten für Addition, Subtraction, unpassend! Mehr als 10 Agenten = großes System. Zu viele Agenten chaotisches Verhalten, unerwünschte emergente Phänomene Lösung: Beschränkung der Interaktion Zu wenige Agenten nutzen Agentenvorteile schlecht, Ein mächtiger Agent ist wie OO-Programme mit einer Klasse

Anarchisches System Man kann nicht einfach eine Gruppe von Agenten zusammenstecken Engineering auf Systemebene notwendig Organisationsstruktur (auch in Form von formalen Kommunikationskanälen) ist existentiell

Implementieren von Infrastruktur Es gibt noch keine wirklich weit genutzte Software-Plattform für die Entwicklung von Agentensystemen Solche Plattformen würden die Basis-Infrastruktur bereitstellen Jeder entwickelt seine eigene Plattform Kostet Projektressourcen und kein Aufwand für die eigentlich relevanten Agentenaspekte geleistet.

Tabula Rasa Irrige Annahme: Wenn Systeme mit innovativer Technologie entwickelt werden, ist es notwendig einen leeren Zustand anzunehmen Die wichtigsten Komponenten werden aber meist legacy software sein: Software-Komponenten mit existentieller Funktionalität, aber technologisch obsolet, sind meist zentral und schwer zu ersetzen. Können in Agentensystem eingebaut werden durch einen agent wrapper

Ignorieren von De-Facto Standards Es gibt keine etablierten Agenten-Standards. dennoch Annahme, dass man immer from scratch anfangen muss, ist irrig. Es gibt de facto Standards CORBA HTML KQML FIPA

Methoden des Agenten-Orientierten Software Engineerings Erweiterung zu objektorientierten Techniken (OO), Vorteile: Ähnlichkeit von OO und AO, Popularität von OO Allgemein benutzt und populäre OO-Methoden Nachteile: Agentenkommunikation ist mehr als Method-Invokation Meist keine Repräsentation Mentaler Konzeptr Konzepte Beispiele AgentUML, GAIA, MaSE, OPM/MAS, Tropos, MESSAGE, Ansätze aus dem Knowledge-Engineering (KE), Vorteile: Fokussieren auf Techniken zur Modellierung des Agentenwissens Nachteile: Vernachlässigen Software Engineering Aspekte Beispiele MAS-CommonKADS, DESIRE,.

Software Engineering Software Komplexität ist hoch, wachsend Um Anforderungen (funktional, nicht-funktional, Kosten-) gerecht zu werden Software Erstellung mit einem disziplinierten Engineering Approach: Kontrollierbarer, gut dokumentierter und reproduzierbarer Prozess zur Software-Produktion Resultierende Software auf ausreichender Qualitätsstufe Ermöglicht Reuse und Wartung Notwendig: Abstraktionen, Methodologien, Werkzeuge

GAIA Methode Generic Architecture for Information Availability Das agentenbasierte System wird als Gesellschaft, in der die Agenten versch. Rollen einnehmen können, behandelt und konstruiert. Die Methode umfasst Analyse und Design. Zur Implementation müssen Standardverfahren aus dem OOSE verwendet werden. Einsatz gut bei Strukturierten Gesellschaften mit wenigen, komplexen Agenten Top-Down-Ansatz für geschlossene Multiagentensysteme M. Wooldridge, N. R. Jennings, and D. Kinny. The Gaia Methodology for Agent- Oriented Analysis and Design. In Journal of Autonomous Agents and Multi-Agent Systems. 3(3):285-312. 2000. (http://www.csc.liv.ac.uk/~mjw/pubs/jaamas2000b.pdf)

Modelle der GAIA Methode Beschreibung der Anforderungen Rollenmodell Interaktionsmodell Analyse Agentenmodell Servicemodell Bekanntschaftsmodell Design Preliminary Role und Interktionsmodell als erster Zwischenschritt von den Requirements zur Analyse. Weitere mögliche Zwischenschritte: System Division nach Suborganisationen, Umweltmodell

(Preliminary) Rollenmodell in GAIA Protocols-Attribut beinhaltet die Liste der Interaktionen dieser Rolle mit anderen Rollen. Auch interne Aktivitäten der Rolle Permissions Attribut: welche Ressourcen dürfen durch Rolle benutzt werden, Rechte der Rolle, Ressourcen Constraints der Rolle, dh. welche Ressourcen dürfen nicht benutzt werden. Responsibilities Attribut: Bestimmt Funktionalität der Rolle in Form von Safety- und Liveness-Eigenschaften

Beispiel Role Schema: CoffeeFilter Description: This role involves ensuring that the coffee pot is kept filled, informing the workers when new coffee has been brewed. Protocols and Activities Fill, InformWorkers, CheckStock, AwaitEmpty Permissions reads supplied coffeemaker //name of coffee maker coffeestatus //full or empty changes coffeestock //stock level of coffee Responsibilities Liveness COFFEEFILTER = (Fill.InformWorkers.CheckStock.AwaitEmtpy) * Safety ncoffeestock>0

Interaktionsmodell Besteht aus Menge von Protokoll-Definitionen, eine für jeden Typ von Inter-Rollen-Interaktion Protokoll als abstraktes institutionalisiertes Muster von Interaktionen Attribute Purpose: kurzer Text zur Zweck der Interaktion Initiator: Rolle, die Interaktion startet Responder: Rolle, mit der Initiator interagiert Inputs: Information, die Initiator während des Protokolls benutzt Outputs: Information, die für/vom Responder bereitgestellt wird Processing: kurzer Text über Berechnungen, die im Lauf des Protokolls durchgeführt werden

Schema und Beispiel

Modelle der Design Phase Rollen und Interaktionsmodell werden fertig gestellt Organisationsstrukturen = Beziehungen zwischen Rollen Beispiele: control, peer, depends_on, etc. Agentenmodell bildet Rollen auf die zu implementierenden Agenten ab Servicemodell beschreibt Services, die mit jeder Agentenrolle assoziiert sind: Service besteht aus inputs, outputs, preconditions und postconditions

MAS-CommonKADS Methode Basiert auf der normalen CommonKADS-Methode, die verschiedene Modelle definiert und erweitert : Agent Model: Beschreibt Eigenschaften der Agenten, wie reasoning capabilities, skills (sensors/effectors), services, goals,. Task Model: Beschreibt Aufgaben (Ziele) und der Zerlegung in kleinere Aufgaben. Knowledge Model: Beschreibt das notwendige Wissen der Agenten. Coordination Model: Gibt Interaktionen, Protokolle und benötigten Fähigkeiten an.

Organisation Model: Beschreibt O. in die MAS integriert werden muss und die Agentengesellschaft selbst. Communication Model: Beschreibt die Mensch-Computer Schnittstelle. Design Model: Sammelt die obigen Modell und ist unterteilt in: Application Design: Welche Agentenarchitektur wird benutzt? Architecture Design: Wie sieht das Netzwerk der Agenten aus? Platform Design: Welche Agenten Entwicklungsumgebung soll für die jeweilige Agentenarchitektur benutzt werden Die Beschreibung ist dabei sowohl textuell über Templates, also auch grafisch über von UML und SDL entliehenen Diagrammen möglich. Carlos Iglesias, Mercedes Garijo, Jos e C. Gonz alez, and Juan R. Velasco. Analysis and design of multiagent systems using MAS-CommonKADS. In M. P. Singh, A. Rao, and M. J. Wooldridge, editors, Intelligent Agents IV (LNAI Volume 1365), pages 313 326. Springer-Verlag: Berlin, Germany, 1998.

Zum Einsatz formaler Methoden Es existieren eine Reihe von formalen Spezifikationssprachen, z.t. eingebettet in einen Prozess mit Werkzeugen zur Code- Generierung, Interpretation Beispiele ConcurrentMetatem (temporale Logik, M. Fisher) DESIRE (Übertragung aus dem Knowledge Engineering) SeSAmUML (Simulation) Z-Spezifikationen (Luck, d Inverno) Unterstützen Verifikation Model Checking als aktuell spannendes Forschungsgebiet