A GUI Based Aid for Generation of CodeFrameworks
A GUI Based Aid for Generation of Code-Frameworks of TMOs K. H. (Kane) Kim and S. J. Kang DREAM Lab. UC, Irvine {khkim, seokjook}@uci. edu October 14 th, 2001 UCI DREAM Lab
Contents • Motivation • Challenges in Design of Distributed Real-time Embeddedcomputing (DRE) Systems • TMO (Time-triggered Message-triggered Object) Programming Scheme – Overview – TMO Network Design Methodology (TMONDe. M) – Visual Studio for TMO (Vi. STMO) • Summary 04 June 2021 2 UCI DREAM Lab
Motivation • Most of DRE systems are complex and require high reliability. – The system reliability and the design efficiency are of vital importance. • The state of the art for design of DRE systems is inadequate for dealing with large-scale, complex, and highly reliable DRE applications. – Requirements specifications are not rigorous. • Specifying temporal behavior requirements is problematic. – Based on the Low level programming style (using C or Assembly) • Designers should concern about low level attributes (e. g. threads and priority) • Can not meet the design efficiency and reliable system design requirements. 04 June 2021 3 UCI DREAM Lab
Challenges in Design of DRE systems • How to establish “General-form design” of DRE systems based on the high-level programming scheme? – General-form design : realizing DRE in a general manner not alienating the main-stream computing industry. • How to guarantee timely service capabilities of subsystems? – Two important requirements : • Modular design including modular specification of timing properties of components • Design-time analysis of timing behavior of implemented component • How to integrate design tools and techniques seamlessly through multiple engineering phases? – Key issue : The uniformity and the range of controlled accuracy in representation of various levels of system design evolving through multiple design phases. 04 June 2021 4 UCI DREAM Lab
TMO Programming Scheme • Established in early 1990's with a concrete syntactic structure and execution semantics for economical reliable design and implementation of RT systems. • A natural easy- to- use extension of the C++/ Java technology into an RT distributed software component programming technology – supports design of distributable Real Time (RT) objects and distributable non- RT objects within one general structure. – A natural & syntactically small but semantically powerful extension of the conventional object structure 04 June 2021 5 UCI DREAM Lab
TMO Basic Structure • Time-triggered (TT-) or spontaneous methods (Sp. M’s): – Clearly separated from the conventional service methods (Sv. M’s) triggered by messages from clients • Time-window imposed on each output action and method completion • Connections to the network environment as possible data members: • – Programmable data-fieldchannels – TMO access capabilities (possibly remote TMO's) Basic concurrency constraint (BCC): – Sp. M executions not disturbed by Sv. M executions. – Eases design-time guarantee of timely services of TMO’s 04 June 2021 6 UCI DREAM Lab
Specification of Time-triggered action • Triggering times for Sp. M’s – Must be fully specified as constants at design-time – Appear in the first clause of the Sp. M specification called the autonomous activation condition (AAC) [ Example of AAC ] ab "AAC-begin" { [AAC name: ] “for t = from 10 am to 10: 50 am every 30 min start-during (t, t+5 min) finish-by t+10 min” }* ae "AAC-end " ==: : { "start-during (10 am, 10: 05 am) finish-by 10: 10 am", "start-during (10: 30 am, 10: 35 am) finish-by 10: 40 am"} 04 June 2021 7 UCI DREAM Lab
TMO Network Structured Application Execution Facilities Real-Time Distributed Computing Applications No concerns with - Processes & Threads - Object locations (except in avoiding overloaded nodes) - Low-level comm. protocols Middleware FT support NT service TMOSM Kernel ( e. g. NT kernel ) H/W FT support NT service TMOSM No specification of timing requirements in indirect terms (e. g. , priorities) - Only start-windows Kernel ( e. g. NT kernel ) and completion deadlines for object methods and H/W - time-windows for output actions 04 June 2021 8 UCI DREAM Lab
TMOSM (TMO Support Middleware) • A middleware architecture supporting TMO execution • Supports distributed, real-time programming on COTS platforms – Allows programmers to express action timings flexibly and well- structured forms (at the level of 10 milliseconds with an implementation based on Windows NT) • User-friendly C++ API, TMOSL (TMO support library) • High portability and expandability – Can be ported to most modern OS with small effort 04 June 2021 9 UCI DREAM Lab
TMO Network Design Methodology : TMONDe. M • High-level program component (TMO) based design. – TMO structuring is the most desirable building block structure for the DRE systems. • Capable of dealing with non-RT and RT computing requirements in uniform manners. : General-form Design – It is possible to realize non-RT computer systems by simply filling the time constraint specification part with unconstrained default values. • Provides design-time guarantee for timely service capabilities. – The designer can impose a guaranteed service time (GST) on every service method in a program component during design time. • Using uniform structuring of all the way from the requirement specification to the final implementation 04 June 2021 10 UCI DREAM Lab
Visual Studio for TMO (Vi. STMO) • A visual modeling tool supporting the TMONDe. M. – It provides a graphics-based design editor for TMO network application designs based on the TMO top-down and step-wise design method (TMONDe. M) • Automatic generation of C++ source code (class definitions only) – It generates C++ source code (class definitions for TMO, ODSS, Sp. M, Sv. M) Þ Increase programming efficiency and system reliability. • Allowing smooth transition from design to coding. – It can be integrated with C++ compiler (MS Visual studio) and will create a workspace and projects for the application. Þ Minimize the gab between design and coding. • Efficient management of design documents and source code. – It will help TMO network application designers and programmers to manage design documents and source code => Increase productivity. 04 June 2021 11 UCI DREAM Lab
Vi. STMO : Major Components and Functionality • Components and Functionality – Graphics-based design editor • Visual creation of TMO • Defining TMO properties : ODSS, Sp. M, and Sv. M class • TMO network Diagram – Relations among the TMO’s : message types – How the TMO’s evolve at each step. – Code-framework Generator • Creating C++ code for TMO definition : creates *. h and *. cpp files – ODSS, Sp. M and Sv. M class • Integration with Visual Studio – Creates work space, projects and TMO config. ini files • Supporting deployment of TMOs under distributed environment – Creates separate main file and config. ini file for each node. 04 June 2021 12 UCI DREAM Lab
Vi. STMO : Major Components and Functionality (Cont. ) - Property of each TMO Requirement analysis and Design Graphics-based design editor Vi. STMO - TMO network diagram - Property of each TMO Code generation Code-framework Generator - Method Implementation Compiler / Debugger (MS Visual Studio) Coding and debugging 04 June 2021 13 - C++ code for TMO class definitions - TMO config. ini files, Visual Studio work space, and projects files Other tools Timing Analyzer Timing analysis UCI DREAM Lab
Vi. STMO : An Illustration • Creating an Sp. M – Add an Sp. M to a TMO – Set ODSS access mode – Specifying the timing constrain : AAC • Remote Sv. M call 04 June 2021 14 UCI DREAM Lab
Add an Sp. M to a TMO 04 June 2021 15 UCI DREAM Lab
Set ODSS access mode 04 June 2021 16 UCI DREAM Lab
Specifying the timing constrain : AAC 04 June 2021 17 UCI DREAM Lab
Remote Sv. M call 04 June 2021 18 UCI DREAM Lab
Summary • The state of the art for design of DRE systems is inadequate for dealing with large-scale, complex, and highly reliable DRE applications. • TMONDe. M (TMO Network Design Methodology) is a “Generalform timeliness-guaranteed design” that is the idealistic approach for the development of the complex and highly reliable DRE applications. • In order to improve TMONDe. M, we are working on a GUI tool for programming efficiency and system reliability. 04 June 2021 19 UCI DREAM Lab
THE END. Thank you. UCI DREAM Lab
- Slides: 20