Komplexität beherrschen mit Contract Based Design Thomas Schütz / PROTOS GmbH P4You-Thementag 5.5.2017 - Bamberg
The Problem + = How can we avoid this in complex software and systems?
How do we describe what we want? Requirement or Specification: REQ-1: The two traffic lights must not be green at the same time
How do we proof it?? + Unit- / Integration- / Acceptance- / HIL- / MIL- / SIL- / Testing?
Testing helps, but Source: http://www.agitar.com/images/defect_chart.gif
What if? Specification Structure Model Behavior Model Source Code Some Mechanism
Contract Based Design Contracts are formal promises and assumptions between a component and its environment Interface/Port Contracts
Contract Based Design Contract Hierarchies and Groups
Example: Statemachine as Interface Contract API language C: Statemachine as Interface Contract: Number of possible execution pathes: Massive reduction of execution pathes (orders of magnitude!) This enables much simpler systems and better testability (path coverage)
What can we do with the Contract? E=mc 2 Formal Verification Generate Testcases Generate Robust Interfaces or Monitoring Generate Documentation
What can we do with the Contract? Systems can be composed of robust building blocks with well contained structure and behavior
Contract Based Design Advantages reduction of possible component and system states accidental complexity overall complexity hidden links and emerging behavior formal verification simpler and more scalable contracts can be checked indepentent on every level of granularity
Example: Eclipse etrice Toolchain Structure Model Behavior Model generate debug Runtime Library+ Source Code compile deploy
Contract Demo
ZIM Projekt: Contract Based Design Entwicklung einer Plattform für formale Verifikation von Systemen und Software Bau einer Tool- und Methodenunabhängigen Plattform zur Beschreibung von Struktur, Verhalten und Contracts mit dem Ziel der formalen Verifikation Untertstützung einer Vielzahl von Modellierungsmethoden (UML, ROOM, AUTOSAR, ) Kern Partner: Tool Firmen und Forschungspartner Assoziierte Partner aus Avionik, Automotive & Industrie Plattform wird Open Source
Projektpartner - Forschung Fortiss Tools/Technologien: Autofocus Fokus: Formale Verifikation Ansprechpartner: Vincent Aravantinos Universität Augsburg Tools/Technologien: Datenflussanalyse Fokus: Formale Verifikation Ansprechpartner: Prof. Bernhard Bauer
Projektpartner - Industrie ASES Tools/Technologien: Contract Based Design Methodik Fokus: Methodik und Anwendung des Contract Based Design in der Avionik Ansprechpartner: Henning Butz Itemis Tools/Technologien: Franca, mbeddr Fokus: domänenspezifische Tools und Methoden Ansprechpartner: Klaus Birken, Markus Völter SQMi Tools/Technologien: Durchgängige Modellierung von Requirements und Tests mit UML Fokus: Prozessdefinition und Integration heterogener Systeme Ansprechpartner: Dieter Fürbacher PROTOS Tools/Technologien: Eclipse etrice Fokus: domänenspezifische Tools und Methoden Ansprechpartner: Thomas Schütz
Projektpartner - Anwendung Firmen aus den Bereichen Avionik Automotive (Steuergeräte und Infotainment) Medizintechnik Automatisierungstechnik Schienenverkehr Methodentraining und Beratung liefern Use Cases aus der Praxis, die zur Entwicklung und Evaluierung der Methodik verwendet werden. Bereits jetzt viel Interesse bei Firmen mit sehr komplexen Problemen
Contract Based Design Aktueller Stand und Nächste Schritte Technischer Fokus definiert: Einheitliche Modelle: Komponentenmodell, Contractmodell, Verhaltensmodell, Ergebnismodell Formale Verifkation, Test-, Dokumentations-, und Monitoringgenerierung für die Contracts Toolanbindungen an Autofocus, Franca, mbeddr, etrice Umsetzung von Pilotprojekten im Bereich Avionik, Automotive und Industrie Antrag für ZIM KOOP ist eingereicht Entscheidung im Mai 2017 Gewünschter Projektstart: Juni 2017
Kontakt für das Projekt: Projektansprechpartner Technische Projektkoordination Thomas Schütz thomas.schuetz@protos.de