Das Raven MDA Profil für die Modellierung sicherheitskritischer Systeme. Klaus Wachsmuth

Ähnliche Dokumente
MDA-Praktikum, Einführung

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß

Echtzeitprogrammierung mit Ada. Frank Feinbube Seminar: Prozesssteuerung und Robotik

Automatisierte Architekturanalyse mittels UML2.0 Diagrammen

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

MDA basierte Entwicklung von Java Applikationen. Michael Benkel

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Model Driven Architecture

Grundlagen von MOF. Alexander Gepting 1

Modellbasierte Softwareentwicklung mit Sicherheitseigenschaften und UMLsec

Super. Sub1. Sub2 State2. Sub3. Sub4. Super. State2. Sub4

HW/SW CODESIGN. Echtzeitverhalten. Mehmet Ozgan November 2015

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

OOCOSIM - Eine objekt-orientierte Co-Designmethode für eingebettete Hardware/Softwaresysteme

Model Driven Development im Überblick

Notationen zur Prozessmodellierung

Evaluierung der QoS-Unterstützung in TAO/ACE. Großer Beleg - Zwischenstand. Ansgar Konermann 16. Juli 2002

Eclipse Modeling Framework

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Einplanbarkeitsanalyse mit dem UML Echtzeitprofil am Beispiel RT CORBA

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

Interdisziplinäre fachdidaktische Übung: Formale Sprache Definitionen, Funktionen

Modellbasierte Software- Entwicklung eingebetteter Systeme

Analyse und Entwicklung einer μ-controller-basierten Echtzeit-Steuerung für Sensorsysteme mit Ada-Raven

Systemmodellierung mit SysML - Stereotypen und Profile

VL4: Softwareprojekt - Modellierung/Design Teil 2. Inhalt. 1. Einleitung

MDA auf der Grundlage der OMG Konzepte

Modellgetriebene Entwicklung verteilter embedded Systeme

Software-Engineering im Sommersemester 2014

Das UML Benutzerhandbuch

Musterklausur 2 für PMfE

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modell-basierte Entwicklung mit der Timing Definition Language (TDL)

Grundlagen der UML-Modellierung. Modellierung. Elena Paslaru Seminar Praktische Modellierung SS

Ada 95. Tasking. Gottlieb Bossert

OSEK Deadline-Analyse

Comes Spezifikation. Stefan Wehr Prof. Dr. Peter Thiemann. 14. Dezember 2005

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

SEA. Modellgetriebene Softwareentwicklung in der BA

Kapitel 2 - Die Definitionsphase

ETL-Industrialisierung mit dem OWB Mapping Generator. Irina Gotlibovych Senior System Beraterin

Model Driven Architecture

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Embedded OS für ARM Cortex Microcontroller

Poseidon for UML. Einführung. Andreas Blunk

Modellbasiertes Testen mit UTP

Vortrag von: Ilias Agorakis & Robert Roginer

Echtzeitanwendungen mit Java Real Time Specification for Java

Techniken der Projektentwicklungen

Synchronisation und Kommunikation über Nachrichten

Von UML 1.x nach UML 2.0

Projekt. Transformation Engine. von Thomas Steinberg am

Architektur von REST basierten Webservices

Universität Karlsruhe (TH)

An Overview of the Signal Clock Calculus

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Übungen Softwaretechnik I

Aufgabensammlung zu Java Data Objects JDO

Testfallerzeugung aus Use-Case-Beschreibungen

Requirements Engineering Übung 8 Systemmodellierung im RE

Software Factories WS 2017/18. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

22. Januar Gruppe 2: TOPCASED

Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld

Tutorium Softwaretechnik I

Bessere Service-Modellierung durch Kombination von BPMN und SoaML. Nürnberg, 24. Februar 2011

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 2: Einstieg in die OOP

DWH Automation - Steigerung von Qualität, Effektivität und Transparenz in der DWH Implementierung und dem Betrieb. Referent: Raphael Henneke

Automatische Codegenerierung aus der UML für die IEC

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

XÖV-Schulung. XÖV-Rahmenwerk und XÖV-Entwicklungsansatz. Lutz Rabe Koordinierungsstelle für IT-Standards Mirco Kuhlmann LAVA-Unternehmensberatung

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Con guration as Code Über Ansible Ansible Grundlagen Live Demo Weitere Informationen

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Einführung in das Eclipse Modeling Framework (EMF)

Model-Driven Software Engineering (HS 2011)

Pyro - Python Remote Objects

OSEK / OSEKtime - ein Vergleich

BPMN. Suzana Milovanovic

Der Scheduler von Windows 2000 Konzepte und Strategien

Übungsaufgaben UML Zertifizierung Fundamental-Level

Referenzarchitekturen und MDA 1

Konzeptionelle Modellierung von XML-Dokumenttypen

Zuverlässige Software durch den Einsatz von UML, MDA und der Programmiersprache Ada

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Realtime Studio Professional. ARTiSAN. Eine Visuelle Softwareentwicklungsumgebung zur Erstellung von Echtzeitanwendungen

Interdisziplinäre fachdidaktische Übung: Formale Sprache Definitionen, Funktionen

Comparing Software Factories and Software Product Lines

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012

Prozeß zur Qualifizierung von generiertem Code im NH90 SW - Projekt DGLR

Transkript:

Das Raven MDA Profil für die Modellierung sicherheitskritischer Systeme Klaus Wachsmuth

Modelle nehmen zentrale Stellung im Entwicklungsprozess ein Erstellen von Platform Independant Model s (PIM) Verwendung von UML Notation Fokus liegt auf der Domäne Abbilden auf Platform Specific Model s (PSM) Erweiterung des PIM durch die technische Infrastruktur Durch Transformatoren Maximizing automation of the mapping step is the goal (MDA Paper, OMG) Von Hand Source Code ist ein PSM PIM Transformator PSM

Es muß Code erzeugt werden Ada, Java, C++, C,.. Es muß getestet werden Testfälle, Test Scripte,... Es muß dokumentiert werden HTML, XML, RTF,... => Umsetzung der Modelle in die Implementierung Konsistenz der verschiedenen Entwicklungsstufen

Ideal für MDA ist die Bereitstellung semantisch eindeutiger UML Entwurfselemente mit hohem Abstraktionsgrad durch UML Profilen Profil Definiert einfache Entwurfselemente und komplexe Entwurfsmuster Definiert Abbildungsvorschriften von PIM nach PSM Nutzen der Erweiterungsmechanismen der UML Vordefinierte Stereotypes, Constraints, Tagged Values Profile müssen dokumentiert sein Einfluss von Profilen Auf die Modellierung Auf die Transformation der Modelle Profile sind domainspezifisch

PIM PSM

OMG Standard Profile for Schedulability, Performance, and Time Specification (SPT) Niedrige Abstraktionsebene Es müssen viele technische Details modelliert werden keine vordefinierten Kommunikationsmuster MDA Ziel: möglichst viel transformieren wiederverwendbare Muster bereitstellen Höhere Entwurfselemente bereitstellen und deren Semantik über Stereotypen definieren

Industriestandard für sicherheitskritische Realzeitsysteme mit Ada Idee des Profils: Natürliche Parallelität der Anwendung durch Strukturierung einer Applikation in eine Menge unabhängiger Tasks realisieren zyklische sporadische kooperierende die über Ereignisse und Puffer miteinander kommunizieren Einschränkung auf eine zertifizierbare Sprachuntermenge

Menge von konzeptuellen oder physischen parallelen Tasks Tasks haben Hard- oder Soft-Deadlines Tasks mit Hard-Deadlines sind periodisch Schedulability Aanalyse: Könnnen Tasks so ausgeführt werden, dass alle Deadlines getroffen werden? Statische und dynamische SchedulabilityAlgorithmen, z.b. Rate Monotonic Scheduling (statische Prioritäten) Earliest Deadline First (Dynamische priorities)

$QDO\VLV 3DUDOOHOÃWDVNV 7DVNÃ$ 3HULRGÃÃ'XUDWLRQÃ 7DVNÃ% 7DVNÃ& 3HULRGÃÃ'XUDWLRQÃ 3HULRGÃÃ'XUDWLRQÃ ([HFXWLRQ 6HTXHQWLDOÃSURFHVVLQJ $ % % & $ & % % $ & & $ % % $

Zusammenarbeit von Tasks, Scheduler und Prozessor Rate-Monotonic-Analyse: vereinfachte Voraussetzungen Uni Prozessor System Tasks sind unabhängig Realtime tasks sind alle periodisch Excecution times und Ressourcen alle Tasks sind bekannt

Einflüsse für das Raven Profile: AdaRaven Subset, SPT und dem ARINC 653 Standard. «profile» Raven «stereotype» CyclicTask Priority Period TransportedItem «stereotype» SporadicTask «stereotype» Buffer NrOfElements

RepetetiveTask Endlos. Ohne feste Periode Tagged Values: priority, stacksize CyclicTask wie RepetetiveTask, jedoch mit fester Periode Tagged Values: priority, stacksize, period =>Transporter Muster wie cyclic, jedoch es gibt eine Get-Association es gibt eine Put-Association Item_Type SporadicTask wartet auf einen Event oder einen Interrupt hat eine Assoziation zu einer Event -Klasse

Stereotypen für die Darstellung fundamentaler Kommunikation Muster aus dem ARINC 653 Standard: Buffer Blackboard (ResourceControl) Event Interrupt

Buffer: Messages werden mittles eines FIFO Puffers mit vordefinierten Grösse übertragen. «CyclicTask» BufferTask1 «Buffer» «CyclicTask» BufferTask2 <class type, size:integer> «Buffer» - queue: type[1..size] «SAAction» + receive() «SAAction» + send()

Blackboard: Ungepufferte Übertragung von Messages. Eine Message in einem Board steht solange zur Verfügung, bis sie überschrieben wird. «CyclicTask» BBTask1 «ResourceControl» «CyclicTask» BBTask2 <class type> «ResourceControl» message-: type «SAAction» + clear() «SAAction» + read() : type «SAAction» write()

Events: Asynchrone Benachrichtigung über ein Ereignis «Task» EventTask1 send «Event» wait «SporadicTask» EventTask2 «Event» state: bool - «SAAction» «SAAction» «SAAction» + + + reset() set() wait()

Abbildung von highlevel Modellierung in einfachere Assoziationen (Modell Transformation => MDA) «CyclicTask» Sender in «Buffer» out «CyclicTask» Receiver Data «CyclicTask» Sender in SenderReceiverBuffer - queue: Data[] + receive() + send() out «CyclicTask» Receiver

PressureSensor Get() get «CyclicTask» Pressure put {Transported_Item=Pressure_Type, Period=Milliseconds(100)} «ResourceControl» get PressureControl

with PressureSensor_Pkg; with PressureBuffer_Pkg; with Ada.Real_Time; use Ada.Real_Time; package body Pressure_Pkg is task body Pressure is Next_Time : Ada.Real_Time.Time; Period : constant Ada.Real_Time.Time_Span := Milliseconds(100); Item : Pressure_Type; begin Next_Time := Ada.Real_Time.Clock; loop delay until Next_Time; Item := PressureSensor_Pkg.read; -- Raven Class Package --#ACD# M(UCOD:: 102:BOTTOM) User Defined Code -- Section for User Defined Code --#end ACD# PressureBuffer_Pkg.Write (Item); -- Raven Class Package Next_Time := Next_Time + Period; end loop; end Pressure; end Pressure_Pkg;

template CyclicTaskBody(MClass) with Ada.Real_Time; use Ada.Real_Time; -- To get visibility to the "+" operator. package body [MClass.name]_Pkg is task body [MClass.name] is Next_Time : Ada.Real_Time.Time; Period : constant Ada.Real_Time.Time_Span := [Period([MClass])]; [transporter_decl([mclass])] begin Next_Time := Ada.Real_Time.Clock; loop delay until Next_Time; [transporter_read([mclass])] [genstatemachinecall([mclass])] [mergeout("ucod:: "getuniqueid([mclass,"user Def Code", "")] [transporter_write([mclass])] Next_Time := Next_Time + Period; end loop; end [MClass.name]; end [MClass.name]_Pkg; end template

Analyse Design Implementierung Objekt logische Sicht Objekt logische Sicht RMA Sicht (events, actions, resources) Konkurrierende Sicht (task, communication) Code gen. Generiert Generiert Generierter Generierter + Manuell Manuell Ada Ada Raven Raven Code code code Code High level UML Modell Raven UML Profile Raven Templates Regeln Uml->Raven RT Mechanismen Design Patterns Implementierungsmodell

Einige Muster aus dem Ravenscar Profile sprachunabhängig, aber Abbildung nach Ada natürliche Vorteile Einhaltung der Sprachteilmenge, die sicherheitskritischen Aspekten genügt. Hohes Abstraktionsniveau Abbildung in Zielsprache durch Template gesteuerte Codegenerierung Berücksichtigung von Eigenschaften von Safety- Standards Abbildung des Modells auf Code mittels MDA ist durch den Benutzer direkt spezifizierbar und erweiterbar