Your partner when introducing and using modern software development tools. Klaus Wachsmuth Dr. Peter Dencker



Similar documents
Dispatching Domains for Multiprocessor Platforms and their Representation in Ada

Real Time Programming: Concepts

AADL et la conception des logiciels

Release/Installation Notes

ARINC-653 Inter-partition Communications and the Ravenscar Profile

Applying 4+1 View Architecture with UML 2. White Paper

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

A SoC design flow based on UML 2.0 and SystemC

Real-time Device Monitoring Using AWS

A HW/SW Codesign Methodology based on UML

Component visualization methods for large legacy software in C/C++

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Building Business Capabilities

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Multi-GPU Load Balancing for Simulation and Rendering

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Software System Development for Spacecraft Data Handling & Control Data Handling System Concepts and Structure

KPI, OEE AND DOWNTIME ANALYTICS. An ICONICS Whitepaper

Towards a Common Metamodel for the Development of Web Applications

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

Implementing Ada.Real_Time.Clock and Absolute Delays in Real-Time Kernels

Industrial IT Process Data Management. Advanced IT Tools for Building Information Systems in the Process Industry

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

25.1 Translational Frameworks (MDA with transformations)

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

RT Language Classes. Real-Time Programming Languages (ADA and Esterel as Examples) Implementation. Synchroneous Systems Synchronous Languages

Modeling Systems - External and Internal Behavior Models

SysML Modelling Language explained

Operating Systems 4 th Class

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Antonio Kung, Trialog. HIJA technical coordinator. Scott Hansen, The Open Group. HIJA coordinator

Visualizing the Business Impact of Technical Cyber Risks

Generating Aspect Code from UML Models

Linux A multi-purpose executive support for civil avionics applications?

Designing Real-Time and Embedded Systems with the COMET/UML method

Open Source Implementation of Hierarchical Scheduling for Integrated Modular Avionics

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

An Oracle White Paper November Upgrade Best Practices - Using the Oracle Upgrade Factory for Siebel Customer Relationship Management

Integrating Legacy Code / Models with Model Based Development Using Rhapsody

What is a life cycle model?

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

CENTRALIZED CONTROL CENTERS FOR THE OIL & GAS INDUSTRY A detailed analysis on Business challenges and Technical adoption.

Domain Driven Design and Model Driven Software Development

All you need are models Anneke Kleppe, Klasse Objecten

ANIMATION a system for animation scene and contents creation, retrieval and display

The Service Revolution software engineering without programming languages

Operating Systems Concepts: Chapter 7: Scheduling Strategies

From Control Loops to Software

Embedded OS. Product Information

Project Portfolio Management Cloud Service

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

How To Design Software

Design by Contract beyond class modelling

Developing in the MDA Object Management Group Page 1

Application Note: AN00141 xcore-xa - Application Development

Business Modeling with UML

Requirements engineering

BPMN and Simulation. L. J. Enstone & M. F. Clark The Lanner Group April 2006

Singletons. The Singleton Design Pattern using Rhapsody in,c

New Web Application Development Tool and Its MDA-Based Support Methodology

Analysis and Design with UML

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

BPM, EDA and SOA: How the Combination of these Technologies Facilitates Change. Dr. Neil Thomson, Head of Group Development, Microgen plc

How To Write A Train Control System

Umbrello UML Modeller Handbook

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

Java (12 Weeks) Introduction to Java Programming Language

Presentation of the AADL: Architecture Analysis and Design Language

UML PROFILING AND DSL

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

USTC Course for students entering Clemson F2013 Equivalent Clemson Course Counts for Clemson MS Core Area. CPSC 822 Case Study in Operating Systems

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

ABAP SQL Monitor Implementation Guide and Best Practices

XFlash A Web Application Design Framework with Model-Driven Methodology

AN4156 Application note

UML -> Rhapsody in Ada An Example

Approach to Service Management

Cordys Business Operations Platform

R&D and Topcased (led by Silvia Mazzini)

Rational Software White Paper

Modeling the User Interface of Web Applications with UML

Data Logging and Realtime Visualization

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

Software Project Management and UML

Transcription:

Your partner when introducing and using modern software development tools Klaus Wachsmuth Dr. Peter Dencker

Aonix - Worldwide Presence In business since 1980 HQ in San Diego In Software TOP 500 300+ employees Offices in Germany, France, Sweden, UK and US Represented in 28 countries A Gores Technology Group (GTG) company Copyright Aonix 2002 Model Driven Architecture www.aonix.de.2

Aonix GmbH - Close to You with Consulting, Sales, Support and Training about our Products Region D A CH including Eastern Europe Offices in Karlsruhe, München and Düsseldorf 25 Employees Copyright Aonix 2002 Model Driven Architecture www.aonix.de.3

Aonix Product Families Software through Pictures (StP) Family of modeling tools /UML for object oriented analysis and design /ACD template driven codegeneration /SE for structured analysis and design ObjectAda Software development environment for Ada 95 Raven Certifiable runtime kernel for safety critical real-time applications TeleUSE Generator for graphical user interfaces based on Motif Copyright Aonix 2002 Model Driven Architecture www.aonix.de.4

Ada-Development ObjectAda Ada 95 development environment for PCs and Unix ObjectAda Windows and ObjectAda Real-Time Real-Time/Raven: implements Ravenscar Profile (RP) Checks the RP properties during compilation Certification documents for highest criticality (DO-178B) with warranty available supporting partitioning Copyright Aonix 2002 Model Driven Architecture www.aonix.de.5

Raven Certification December 2001: Pratt & Whitney certification was achieved at software Level-A of RTCA's DO-178B for the PW6000 commercial jet engine June 2002: Pratt &Whitney has selected Aonix ObjectAda /Raven for its next generation military jet engine for JSF Copyright Aonix 2002 Model Driven Architecture www.aonix.de.6

From UML Design Pattern to Safety Critical Software Introduction Elements of Design Pattern Model elements from the Ravenscar Profile Automatic code generation Example Conclusion Copyright Aonix 2002 Model Driven Architecture www.aonix.de.7

UML Introduction UML language with powerful graphical expressiveness concentration on class diagrams state diagrams Semantical interpretation freedom Commercial Software Real-time Software Concentration on Real-time Systems Copyright Aonix 2002 Model Driven Architecture www.aonix.de.8

Real-time System - Characteristics Natural paralellism in design structures Historical solutions: sequentialized fixed time frames Typical example cyclic readout of a sensor value put into a buffer then processed by controllers and visualized on displays Copyright Aonix 2002 Model Driven Architecture www.aonix.de.9

Real-time System - Items Active items - active classes (state automata) => own control flow => Thread, Ada Task Passive items (Ex: buffer) => no independant control flow => Module, Ada Package How are they modelled with UML? Copyright Aonix 2002 Model Driven Architecture www.aonix.de.10

UML Stereotype Defines meta-property Used to classify UML items Constraints, Tagged Values for the refinement of the meta-properties Copyright Aonix 2002 Model Driven Architecture www.aonix.de.11

Cyclic Class Characteristics Stereotype = CyclicTask has its own control flow runs endless Priority Periodicity Copyright Aonix 2002 Model Driven Architecture www.aonix.de.12

Buffer Characteristics Stereotype = resource control no independant control flow implicit put method implicit get method synchronisation of methods Tagged Value: Element type Tagged Value: Number_of_Elements Copyright Aonix 2002 Model Driven Architecture www.aonix.de.13

Simple Design Pattern communication between parallel activities Copyright Aonix 2002 Model Driven Architecture www.aonix.de.14

Details: Tagged Values Class Pressure priority = 1 period = milliseconds(100) Class PressureControl priority = 2 period = milliseconds(200) Class PressureBuffer ItemType = Pressure_Type No_Of_Elements = 100 Copyright Aonix 2002 Model Driven Architecture www.aonix.de.15

Ravenscar Profile Industrial standard for safety critical real-time systems with Ada Idea: structuring an application with a set of tasks cyclic sporadic cooperating communicating through events and buffers Copyright Aonix 2002 Model Driven Architecture www.aonix.de.16

Active model elements RepetetiveTask recurrent activity without fixed period tagged values: priority, stacksize CyclicTask like RepetetiveTask, but with fixed period tagged values: priority, stacksize, period Copyright Aonix 2002 Model Driven Architecture www.aonix.de.17

Cyclic Task Stereotype with attributes UML Class <<Cyclic>> CycTask <<Tags>> StackSize = 2000 Priority = 28 Period = 50 ms Source code Generated Code (part) task CycTask is pragma Priority (28); pragma Storage_Size (2000); end CycTask; task body CycTask is Next_Time : Time; Period : Time_Span := Milliseconds(50); begin Next_Time := Clock; loop delay until Next_Time; -- body Next_Time := Next_Time + Period; end loop; end CycTask; Copyright Aonix 2002 Model Driven Architecture www.aonix.de.18

More active model elements Transporter like cyclic, but including a Get-Association and a Put-Association priority, stacksize, period Item_Type Copyright Aonix 2002 Model Driven Architecture www.aonix.de.19

Example: Transporter Copyright Aonix 2002 Model Driven Architecture www.aonix.de.20

More active model elements SporadicTask waits for an event or interrupt has an association to a class which represents the event Copyright Aonix 2002 Model Driven Architecture www.aonix.de.21

Example: Alarm Copyright Aonix 2002 Model Driven Architecture www.aonix.de.22

Code Generation Template based Code generator simple mapping of patterns to code, selection via stereotypes implementation of complicated pattern semantic checking easy modifiability => new patterns Copyright Aonix 2002 Model Driven Architecture www.aonix.de.23

Code generation Static semantic => class diagrams dynamic semantic => State automata Patterns are language independant Ada provides convient language concepts Mapping to C, C++, Java and other languages possible Copyright Aonix 2002 Model Driven Architecture www.aonix.de.24

Template: Cyclic Task template CyclicTaskBody(MClass) [OutputWiths([MClass])] with Ada.Real_Time; use Ada.Real_Time; -- To get visibility to the "+" operator. package body [MClass.name]_Pkg is [genstatemachine([mclass])] 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_get([mclass])] [genstatemachinecall([mclass])] [mergeout("ucod:: "getuniqueid([mclass,"user Def Code", "")] Next_Time := Next_Time + Period; end loop; end [MClass.name]; end [MClass.name]_Pkg; end template Copyright Aonix 2002 Model Driven Architecture www.aonix.de.25

Generated Code: Cyclic Task 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.Get; -- Raven Class Package PressureBuffer_Pkg.Put (Item); -- Raven Class Package --#ACD# M(UCOD:: 102:BOTTOM) User Defined Code -- Section for User Defined Code --#end ACD# Next_Time := Next_Time + Period; end loop; end Pressure; end Pressure_Pkg; Copyright Aonix 2002 Model Driven Architecture www.aonix.de.26

Passive Element: RC template ResourceControlSpec(MClass) with System; -- for Priority value. [if (HasInterruptId([MClass]))] with Ada.Interrupts; use Ada.Interrupts; [end if] package [MClass.name]_Pkg is protected [MClass.name] is function Get return [SharedDataType([MClass])]; procedure Put(Item : [SharedDataType([MClass])]); [if (HasInterruptId([MClass]))] [HandlerSpec([MClass])] [end if] [ProtectedPriority([MClass])] private Shared_Data : [SharedDataType([MClass])]; end [MClass.name]; end [MClass.name]_Pkg; end template Copyright Aonix 2002 Model Driven Architecture www.aonix.de.27

Generated Code: RC package body PressureBuffer_Pkg is protected body PressureBuffer is function Get return Pressure_Type is begin return Shared_Data; end Get; procedure Put(Item : Pressure_Type) is begin Shared_Data := Item; end Put; end PressureBuffer; end PressureBuffer_Pkg; Copyright Aonix 2002 Model Driven Architecture www.aonix.de.28

Example: Pressure Control Copyright Aonix 2002 Model Driven Architecture www.aonix.de.29

Conclusion Ravenscar profile patterns language independant easy mapping to Ada Easy composition of patterns High level of abstraction Mapping to target language realized thru template driven code generation => OMG Model Driven Architecture Copyright Aonix 2002 Model Driven Architecture www.aonix.de.30