First To Market through Translation of Executable UML

Similar documents
Executable UML for Model Driven Architecture

Executable UML for Model Driven Architecture

System Level Design with IBM PowerPC Models

Open Code Translation from Executable UML Models

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

xuml, AADL and Beyond

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

Building a New Rational Web Site with Rational Suite

MDA and Integration of Legacy Systems: An Industrial Case Study

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Raising the Level of Development: Models, Architectures, Programs

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

ESL design with the Agility Compiler for SystemC

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

20 Years of Commercial Functional Programming

MDA Driven xuml Plug-in for JAVA

Reconfigurable Computing. Design and implementation. Chapter 4.1

Choosing an Intellectual Property Core

Does FPGA-based prototyping really have to be this difficult?

Design and Verification of FPGA Applications

Early Models in Silicon with SystemC synthesis

Model-Based Development of Embedded Systems with MDA and xtuml

Key technologies for many core architectures

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Introduction to Embedded Systems

Practical Model-Driven Development with the IBM Software Development Platform

SCOS-2000 Technical Note

Agenda. Introduction FPGA DSP platforms Design challenges New programming models for FPGAs

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Park Sung Chul. AE MentorGraphics Korea

QEMU for Xilinx ZynqMP. V Aug-20

Codesign Framework. Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.

Reconfigurable Computing. Design and Implementation. Chapter 4.1

Lecture 7: Software Processes. Refresher: Software Always Evolves

Review Software Engineering October, 7, Adrian Iftene

Hardware Software Codesign of Embedded Systems

Evolving / Formalising / Automating an Embedded Real-Time Software Architecture

Understanding Software Engineering

Hardware Description Languages & System Description Languages Properties

CMPE 415 Programmable Logic Devices Introduction

Workload Optimized Systems: The Wheel of Reincarnation. Michael Sporer, Netezza Appliance Hardware Architect 21 April 2013

CS 536. Class Meets. Introduction to Programming Languages and Compilers. Instructor. Key Dates. Teaching Assistant. Charles N. Fischer.

Chapter 1: Programming Principles

FPGA ADVANTAGE FOR HDL DESIGN

History of Compilers The term

EEL 5722C Field-Programmable Gate Array Design

Hardware/Software Co-design

Leveraging Formal Methods for Verifying Models and Embedded Code Prashant Mathapati Application Engineering Group

Design Better. Reduce Risks. Ease Upgrades. Protect Your Software Investment

Lecture 7: Introduction to Co-synthesis Algorithms

Cross-platform software development in practice. Object-Oriented approach.

Mentor Graphics Solutions Enable Fast, Efficient Designs for Altera s FPGAs. Fall 2004

ASIC world. Start Specification Design Verification Layout Validation Finish

18-642: Software Development Processes

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Ten Reasons to Optimize a Processor

Design and Verification of FPGA and ASIC Applications Graham Reith MathWorks

Intro to High Level Design with SystemC

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

Model Driven Development with xtuml and BridgePoint

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Introducing the FPGA-Based Prototyping Methodology Manual (FPMM) Best Practices in Design-for-Prototyping

developer.* The Independent Magazine for Software Professionals

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

Component-based Engineering for Embedded Systems USA EU workshop

Topic : Object Oriented Design Principles

Accelerating Stateflow With LLVM

Recalling the definition of design as set of models let's consider the modeling of some real software.

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Multi-level Design Methodology using SystemC and VHDL for JPEG Encoder

Designing Component-Based Architectures with Rational Rose RealTime

Flight Computer: Managing the Complexity

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company.

Reducing the cost of FPGA/ASIC Verification with MATLAB and Simulink

CS/EE Computer Design Lab Fall 2010 CS/EE T Th 3:40pm-5:00pm Lectures in WEB 110, Labs in MEB 3133 (DSL) Instructor: Erik Brunvand

Abstraction Layers for Hardware Design

HSA foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room A. Alario! 23 November, 2015!

CS/EE Prerequsites. Hardware Infrastructure. Class Goal CS/EE Computer Design Lab. Computer Design Lab Fall 2010

ipprocess: A Development Process for Soft IP-core with Prototyping in FPGA

Requirements and Design Overview

Software Development Using Full System Simulation with Freescale QorIQ Communications Processors

Hardware Implementation and Verification by Model-Based Design Workflow - Communication Models to FPGA-based Radio

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Overview. Consolidating SCM Infrastructures - Migrating between Tools -

VO Software Engineering

Agenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design

SoC Design Environment with Automated Configurable Bus Generation for Rapid Prototyping

Incremental development A.Y. 2018/2019

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

FishTail: The Formal Generation, Verification and Management of Golden Timing Constraints

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

High Speed Fault Injection Tool (FITO) Implemented With VHDL on FPGA For Testing Fault Tolerant Designs

ECE/CS Computer Design Lab

Electronic: Analogical and numerical electronic. High frequency electronic.

Model Driven Architecture and Rhapsody

The software lifecycle and its documents

Alongside this is AVB, an IEEE standards based technology that could stand on its own or underpin many of the existing networked audio protocols.

Transcription:

1(40) A swedish friend asked: What is this uml uml that I see everywhere on the web? Humla : Swedish for bumble-bee.

2(40) The old story about the Depending on its weight in relation to the size of its wings,, it shouldn t be able to fly!!! The bumble-bee doesn t know that...

3(40) What s wrong with the flying ability of the Confusing travel plan? Too big, heavy and clumsy? Inefficiently or low-powered wings? Primitive or unreliable flight control system?

4(40) Sometimes special purpose mutations are invented, like: BUML RT UMLE-BEE RT B EMBEDDED BUML UMLE-BEE B E-BEE But they are still based on the same old bumble-bee, (but in a new fancy costume) that can not fly safely and will eventually crash, if they ever manage to take off.

5(40) Then comes the more expressive: carrying a lot of new equipment! The main question must be: Does it really fly higher and/or safer with even more extra weight to carry? and without any fundamental improvements of its flying capabilities?

6(40) WHAT IS REQUIRED TO MAKE THE UML FLY REALLY HIGH? Guidance by an easy to learn methodology! A reliable Specification Technology! An efficient Code Generation Technology! Fully automated tool support for all the above!

7(40) EXECUTABLE BUML MDA UMLE-BEE B E-BEE PSM XUML Exe UML executable UML PIM...MAY BE THE ANSWER!!! UML 2.0 xuml x t UML Executable MDA UML2

8(40)...MAY BE THE ANSWER!!! WHAT IS THE QUESTION???

HOW CAN SYSTEMS 9(40) BE GENERATED FROM EXECUTABLE MODELS? BOTH SOFTWARE... AND HARDWARE

10(40) Content of this Presentation System Design Problem Descriptions Results from Pilot Projects The Model Compilers

11(40) The System Design Problems The cultural differences between the SW and HW disciplines. SW and HW engineers have different backgrounds, training and experience (tools). SW and HW engineers often have difficulties to communicate analysis and design decisions between each other, simply because... They speak different languages! This frequently results in lead time consuming inconsistency problems in the design.

12(40) The Partitioning Problems Partitioning into software and hardware is often (typically) made very early in a project. Decisions are most often based on local interests, old habits, current knowledge and experience. Other factors are e.g. reuse of existing legacy code and the human resources available to the project. The consequences in e.g. lead-time or product performance of a partitioning are rarely analysed. The early decision is often the final solution.

13(40) How can this be solved? An environment that allows us to prototype and develop executable and verifiable specifications on a system level (implementation independent). These specifications must be possible to variably partition and automatically translate into different alternative designs late in the project. But first, we need a common and implementation independent system specification language! Why not base this language on the UML?

14(40) Some of all the benefits: 1(2) This approach to design will bring the SW and HW engineers together already in the early phases of a project to analyse system requirements and specify system behaviour as a team. We get the possibility to evaluate different design alternatives late in projects, even after 1st delivery, with the purpose of finding the most efficient partitioning between software and hardware. We can ship a prototype early (perhaps SW only) and re-partition the design in the next release.

15(40) Some of all the benefits: 2(2) When translating Executable into design we are also reducing the hand-coding, design inconsistency and SW/FW/HW interface errors to a minimum, consequently also... reducing the Time To Market to become First To Market with a higher quality product. This is of course compared to hand-coding and compared to the elaborative approach to design (= models not reusable across different platforms).

16(40)

17(40) Many questions are important to us: How can we get truly Executable Models possible to execute and verify before we generate code? How can we generate both software and hardware? How can we get control of the code performance? How can we achieve large-scale reuse across different platforms and for alternative designs? ANSWER: Through

18(40) 2000 s The learning steps from Structured Programming to Translation RUP Translation into SW and HW UML Oriented Project Management UML Based Development C++, Ada95, Java 1990 s 1980 s 1970 s 1960 s Assembly Code Object Oriented Methods High Level Languages Model Based Development are implementation independent, can be run, tested and debugged much like a program before any code is generated. are translated into design by Model Compilers and provides large-scale reuse across different platforms and alternative designs, such as C++, Java, Plex-C, Erlang,, VHDL, Verilog, SystemC...

19(40) Is RUP good enough? (Rational Unified Process) Necessary technologies to cover for Systems Development CM Covered by RUP and e.g. Rose Documentation PM RM SW design Approach to design: Elaboration Hacking With Pictures (often C++) Platform dependent models Prevents reuse across platforms Covered by OOA/RD using e.g. BridgePoint OOA & Design methodology SW/HW partitioning SW/HW interfaces HW design Approach to design: Translation Platform independent models Large-scale reuse across platforms

20(40) Open Code Generation using BridgePoint Class Relationship State Model Subsystem Communication Action Value Event C++ VHDL The code generation technology is Open. Allows 1st class user-defined extensions of the metamodel for Model Driven Architectures. Code Generation and Competence are Intellectual Properties owned by Ericsson (we are the experts).

21(40) Open Translation of Projects During a number of pilot projects we have developed a number of different Model Compilers for translation of models into: Erlang,, C, Plex-C and C++ (VHDL) Both the generated Plex-C and C++ code for the AXE got as efficient as hand-written code at the first attempt. A new Model Compiler for going from UML-to-Silicon is being developed.

22(40) Translation into VHDL and C++ (1st co-design pilot) Generate C++ and behavioural VHDL from the same model. New Model Compilers for C++ and VHDL developed (3 months) IRQ Generated VHDL executed and verified using ModelSim. PowerPC 403 RAM DUAL PORT RAM ModelSim Test & Integration in Seamless. DP RAM Interface Protocol fully managed by Model Compilers.

23(40) Translation into VHDL and C++ (1st co-design pilot) We apply a model-based partitioning between software and hardware. We have proved that partitioning no longer need to be an early decision. It can be made later. We can re-partition the modelled system at any time, even after the 1st delivery, and then simply re-translate the entire modelled system into a different design.

24(40) to C++ for the AXE OS (4th pilot) Reverse engineering of a part of the AXE Operating System into an model. Development of a Model Compiler that translates this model into C++ optimized for the AXE OS. The generated code must comply to the local design rules and guidelines for C++. Code optimized for memory cost and performance.

25(40) to C++ for the AXE Requirements Seamless integration of the generated code. Small-scale introduction of translation technology (just a small part of a large-scale system: the AXE). Legacy system not allowed to be affected (at all). No introduction of new (unpredictable) risks. No more than 20% overhead in memory cost and performance compared to the hand-coded C++.

26(40) to C++ for the AXE OS (4th pilot) Reverse engineered Class Model of the JobBuffer. A primitive Model Compiler translates only into C++ classes. THIS ONE DOES NOT This Model Compiler translates a model into classes, structures, unions & variables and generates C++ code that is optimized for high performance.

27(40) to C++ for the AXE OS (4th pilot) THE MODEL COMPILER: Generates standard C++ with switches for generating code that is memory & performance optimized for the VM in the AXE OS. Verified this far is that generated code require no additional data memory (0%) and no additional program memory (~0%) compared to hand-coded version.

28(40) Translation to Handel-C and C/C++ (ongoing project) Develop a new Model Compiler that generates Handel-C (HW). Integrate the Model Compiler for Handel-C with our latest Model Compiler for C or C++. Model-based partitioning. Generate real silicon from UML. Run the synthesized Handel-C on In-System Reconfigurable Hardware (ISR) from Celoxica.

29(40) Translation to Handel-C and C/C++ (ongoing project) RC1000-PP from Celoxica Single FPGA (XILINX) PCI-bus 2MB on-board Memory

30(40) Translation to Handel-C Translation of to hardware is not more difficult than translating to C++ optimized for performance for the AXE OS. It s different. One of the main differences is that hardware has the quality of being able to execute multiple things in parallel (during the very same clock cycle). So Everyone who knows about Handel-C asks:

31(40) Translation to Handel-C What about the par keyword? Yeah What about it?

32(40) Translation to Handel-C A SIMPLE EXAMPLE TRANSLATION RULE: (applied automatically system wide) Sequential assignment statements that does not share any left- and right-side variables can be enclosed in a par block. A = B C = D + 3 B = C << 2 par { A = B C = D + 3 } B = C << 2

33(40) Model Compilers and the Target Platform COMPILER DEVELOPMENT: We have developed 5 different Model Compilers in 3 years for translation of to Erlang,, C, Plex-C, C++ & Handel-C. The Model Compilers are based on a well documented and proven Mapping Strategy for the transition from analysis to implementation. The Model Compiler Structure is one of the most important parts.

34(40) Model Compilers and the Target Platform MODEL COMPILER STRUCTURE: This is a start-up structure on which all our Model Compilers are based. It has 2 important Archetypes: The LegacyAccess Archetype provides seamless integration of generated code with legacy code. The TechnologySwitch Archetype handels integration of different implementation technologies.

35(40) Model Compilers and the Target Platform MODEL COMPILER STRUCTURE Integrated Model Compilers JAVA C++ C MC Handel-C PLEX-C Erlang VHDL MC PLUG-IN MODEL COMPILERS Tru64 Win32 JVM Unix SHARED MEMORY Erlang APZ FPGA VM HARDWARE PLATFORM SOFTWARE PLATFORM : Legacy Code, Operating System etc.

36(40) Model Compilers for download at Ericsson Erlang C++ PLEX-C C MC MC MC MC JAVA MC VHDL MC Handel-C MC Verilog MC PLANNED

Open Translation of Always and proven first time success. SW and HW engineers develop systems as teams. Analysis:. Analysis Models are 100% reusable across different standard or proprietary SW/HW platforms. Design: Model Compilers (reusable expert systems). We can generate as efficient software code as hand-written code whenever we need to. 37(40) Proven Benefits (this far) 1(2)

Open Translation of Small-scale introduction in a large-scale system. Seamless integration with existing legacy code and platforms (both software and hardware). Generation of Software, Firmware & Hardare with automated handling of all SW/FW/HW interfaces. System performance controlled solely by Ericsson. Competence & control stays within Ericsson, i.e. not available to tool vendors and competitors. 38(40) Proven Benefits (this far) 2(2)

DO YOU REALLY GAIN ALL THIS FROM OPEN TRANSLATION OF EXECUTABLE UML? 39(40) WHO KNOWS... CAN YOU AFFORD TO NOT FIND OUT??? (Your competitors are in the process of finding out...)

40(40)