CD++Builder: An Eclipse-Based IDE For DEVS Modeling



From this document you will learn the answers to the following questions:

What is designed by extending the Eclipse framework extension points to meet the requirements of CD + + Builder?

What is one way to do what?

What key is used to highlight the required features of the project Edit model?

Similar documents
creating a text-based editor for eclipse

Running a Program on an AVD

POOSL IDE Installation Manual

Layered Approach to Development of OO War Game Models Using DEVS Framework

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v Steps to Developing a QNX Program Quickstart Guide

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

Eclipse installation, configuration and operation

Software Development Kit

Software Development Environment. Installation Guide

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

Composite.Community.Newsletter - User Guide

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

A QUICK OVERVIEW OF THE OMNeT++ IDE

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3 SP02

Release/Installation Notes

Using the TASKING Software Platform for AURIX

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

An Easier Way for Cross-Platform Data Acquisition Application Development

For Introduction to Java Programming, 5E By Y. Daniel Liang

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Department of Veterans Affairs. Open Source Electronic Health Record Services

SilkTest Workbench. Getting Started with.net Scripts

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

TestManager Administration Guide

Sabre Red Apps. Developer Toolkit Overview. October 2014

Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3 SP02

Leveraging Rational Team Concert's build capabilities for Continuous Integration

WA1826 Designing Cloud Computing Solutions. Classroom Setup Guide. Web Age Solutions Inc. Copyright Web Age Solutions Inc. 1

JAVS Scheduled Publishing. Installation/Configuration... 4 Manual Operation... 6 Automating Scheduled Publishing... 7 Windows XP... 7 Windows 7...

POOSL IDE User Manual

DEPLOYING A VISUAL BASIC.NET APPLICATION

Before you can use the Duke Ambient environment to start working on your projects or

Getting Started with Android Development

IBM Rational Web Developer for WebSphere Software Version 6.0

Lab 0 (Setting up your Development Environment) Week 1

How to Install Eclipse. Windows

Title: SharePoint Advanced Training

Practical Eclipse Rich Client Platform Projects

IBM BPM V8.5 Standard Consistent Document Managment

EMC Documentum Composer

Operational Decision Manager Worklight Integration

Creating a Web Service using IBM Rational HATS. For IBM System i (5250) Creating a Web Service using HATS 1

Meister Going Beyond Maven

Android Programming: Installation, Setup, and Getting Started

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3

Change Management for Rational DOORS User s Guide

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Setting up Sudoku example on Android Studio

Intel Integrated Native Developer Experience (INDE): IDE Integration for Android*

Desktop, Web and Mobile Testing Tutorials

E4 development: examples, methods and tools. Eclipse Con France 2014

Network/Floating License Installation Instructions

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

Tutorial: BlackBerry Application Development. Sybase Unwired Platform 2.0

CoProc2. 1 Overview. Contents. Eclipse/DataPower CoProcessor

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Informatics for Integrating Biology & the Bedside. i2b2 Workbench Developer s Guide. Document Version: 1.0 i2b2 Software Release: 1.3.

Enterprise Service Bus

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

ADT Plugin for Eclipse

Migration Eclipse 3 to Eclipse 4

Code::Blocks Student Manual

IBM Business Monitor V8.0 Global monitoring context lab

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Business Insight Report Authoring Getting Started Guide

Smooks Dev Tools Reference Guide. Version: GA

Hypercosm. Studio.

Eclipse 4 RCP application Development COURSE OUTLINE

PTC Integrity Eclipse and IBM Rational Development Platform Guide

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

Waspmote IDE. User Guide

ProficyTM. HMI/SCADA - ifix I MPLEMENTING S ECURITY

RUNNING TRACKER ON A TERMINAL SERVER

pure::variants Connector for Source Code Management Manual

DAQ in MATLAB HANS-PETTER HALVORSEN,

Source Code Translation

Toad for Oracle 8.6 SQL Tuning

Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai

Tutorial on Basic Android Setup

NetBeans IDE Field Guide

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2

Application Note. Example of user log on Magelis HMI with XB5S5B2L2 biometric switch. Advanced Technical Support - Brazil. Version: 1.

InfoView User s Guide. BusinessObjects Enterprise XI Release 2

Component, Model and Library Concepts. Components - the Basic Building Blocks. Modified by on 2-Jul-2014

Tutorial: Android Object API Application Development. Sybase Unwired Platform 2.2 SP02

Load testing with. WAPT Cloud. Quick Start Guide

Create, Link, or Edit a GPO with Active Directory Users and Computers

Download and Installation Instructions. Android SDK and Android Development Tools (ADT)

IBM Rational University. Essentials of IBM Rational Functional Tester, Java Scripting. RT545 February 2009 Student Manual Part No.

Installing the Gerber P2C Plotter USB Driver

AdminStudio Release Notes. 16 July Introduction New Features... 6

Transcription:

CD++Builder: An Eclipse-Based IDE For DEVS Modeling Chiril Chidisiuc Gabriel A. Wainer Carleton University Dept. of Systems and Computer Engineering 1125 Colonel By. Ottawa, ON. K1S 5B6. Canada. 1-613-520-2600 cchidisi@connect.carleton.ca gwainer@sce.carleton.ca Abstract Modeling and simulation tools have been used for helping in the early stages of hardware/software systems design. The DEVS formalism is a technique that enables hierarchical description of discrete event models that can be used for this task. CD++Builder is an Eclipse plugin that permits defining these applications. We present the main features of the toolkit and its relation to Eclipse libraries and extension points. 1. INTRODUCTION In recent years, Real-Time embedded applications have grown tremendously, both in the number of existing systems and in the complexity of the tasks they execute. Current advances in computing technology have made it possible to automate tasks at a level of complexity unknown previously. The continuing trend in growth and increased complexity complicates the development of Real-Time software, where concerns for functionality, predictability and reliability must be addressed. Current methods for Real-Time software construction are either hard to scale up for large systems, or require a difficult testing effort with no guarantee for a bug free software product. Modeling and Simulation (M&S) techniques and tools for analyzing testing scenarios have proven to be able to provide product s that are of better quality and have a reduced lifecycle cost, due to improved testability and maintainability. Despite the net gains, most project managers are reluctant to use the techniques because they require extra initial resources in the construction of simulation models that will not be part of the delivered application. Similarly, in the early stage of the design of embedded systems, software and hardware are designed independently. The software development team is waiting for the hardware prototypes to be available; however, the hardware development team is waiting for the software environment for hardware prototype verification and testing. A M&S-based design approach allows the user to test the functionality of the hardware in a very early stage. This is economically efficient, and shortens the product development cycle and time-to-market period. We have built an Eclipse-based platform called CD++Builder to enable the development of real-time applications using a model-based approach. The toolkit is based on a mathematical theory called DEVS (Discrete Event System Specifications), an increasingly accepted framework for understanding and supporting the activities of M&S [1]. DEVS theory provides an abstract, yet quite intuitive way of modeling, which is independent of any underlying runtime system, hardware, and middleware. CD++ [2] is an engine that enables users to define and execute DEVS models. CD++Builder provides a runtime system associated with Eclipse plug-ins to support our model-centered methodology. In this paper we show how the toolkit was defined, and its relationship to Eclipse libraries and extension points. 2. BACKGROUND The DEVS formalism for modeling and simulation [1] provides a framework for the construction of hierarchical models in a modular fashion, allowing model reuse, reducing development and testing time. The hierarchical and discrete event nature of DEVS makes it a good choice to achieve an efficient product development test. DEVS are timed models, which also enables us to define timing properties for the models under development. Each DEVS model can be built as a behavioral (atomic) or a structural (coupled) model. A DEVS atomic model is described as: M = <X, S, Y, d int, d ext, l, D > In the absence of external events, the model will remain in state s S during ta(s). Transitions that occur due to the expiration of ta(s) are called internal transitions. When an internal transition takes place, the system outputs the value λ(s) Y, and changes to the state defined by δ int (s). Upon reception of an external event, δ ext (s, e, x) is activated using the input value x X, the current state s and

the time elapsed since the last transition e. Coupled models are defined as: CM = < X, Y, D, {M i }, {I i }, {Z ij }, select > They consist of a set of basic models (Mi, atomic or coupled) connected through their interfaces. Component identifications are stored into an index (D). A translation function (Zij) is defined by using an index of influences created for each model (Ii). The function defines which outputs of model Mi are connected to inputs in model Mj. CD++ [2][2] implements DEVS theory. The toolkit has been built as a set of independent software pieces, each of them independent of the operating environment chosen. The defined models are built as a class hierarchy, and each of them is related with a simulation entity that is activated whenever the model needs to be executed. New models can be incorporated into this class hierarchy by writing DEVS models in C++, overloading the basic methods representing DEVS specifications: external transitions, internal transitions and output functions. CD++ employs a virtual time simulation approach, which allows skipping periods of inactivity. A real-time engine enables simulation advancing based on the wall-clock. 3. CD++BUILDER CD++Builder packages all the potential tools that can be used in a CD++ project from the existing CD++ toolbox, the Eclipse workbench, and its own tool set. A default perspective for CD++Builder is given to support the CD++ environment. CD++ Builder was designed and developed as a plug-in for the Eclipse platform. The latest version of the plug-in is compatible with Eclipse 3.1.x release. The final product is required to provide the following functionalities: Create and configure a project Edit model files, including reserved word and key word highlighting Display models and execution results Display buttons and perform operation with buttons

In accordance with the Eclipse 3.1 platform specifications, the components of CD++ Builder plug-in are defined in the manifest file, which contains declarations of dependencies on other plug-ins, visibility of plug-in public classes to other plug-ins, declaration of its functionalities, and implementation of other plug-ins extension points [5]. The plug-in was designed by extending the Eclipse framework extension points to meet the above requirements. The extension points are used as entry points that allow plug-ins to offer new services or contribute to the behaviour of the existing components and services. The requirements of CD++ Builder plug-in were implemented by extending the interfaces provided through the following extension points: org.eclipse.ui.ide.resourcefilters, org.eclipse.ui.editors, org. eclipse.ui.editors.documentproviders, org.eclipse.ui.views, org.eclipse.ui.newwizards, org.eclipse.ui.actionsets, org.eclipse.ui.popupmenus, org.eclipse.ui.perspectives and org.eclipse.ui.preferencepages. The following figure shows the main components of CD++Builder main Window. As we can see, there are some basic components: Navigator Panel: allows user to view the current projects and their contents. Editor panel: allows user to view the contents of a selected file. It is programmed to open the default editor for that particular file. Task list/console panel: a section to write down planned tasks for particular project. The task view also shows the errors encountered when compiling the project. The console will display any errors encountered while running a CD++ function and output from CD++ tools. Outline panel: outlines the functions and objects in a selected class file. This portion is only implemented for C++ files. Figure 1. CD++Builder main window. components to execute DEVS models and to analyze simulation results. 4. DESIGN OVERVIEW The CD++ Builder plug-in is organized as a perspective, defined at the "org.eclipse.ui.perspectives extension point. It also provides a project wizard (org. eclipse.ui.newwizards), a customized text editor, designed to work with model files (org.eclipse.ui.editors and org. eclipse.ui.editors.documentproviders), and a Console View Window to display the results of a running model as well as current system status (org.eclipse.ui.views). The perspective implements the inherited methods from the IPerspectiveFactory interface to define the initial page layout and visible components (i.e. tabs, panels, and action sets), using the inherited method createinitiallayout. CD++Builder has a variety of Figure 2. CD++ Builder button actions The main components are integrated as buttons located in the top toolbar: - Build: This button automatically creates a makefile for a specific project and runs the make command to compile the source code for the models. The result is an executable to run a model. - Execute: This button activates the CD++ engine. This executable represents a project-specific program that will execute a DEVS model. - Drawlog: This button generates a file for easier visualization of the execution of a model. - CD++Modeler: This button loads the CD++ Modeler program, a graphical tool for designing and executing

DEVS models. In this application you can design atomic/ coupled models as well as animate the simulation results. Each button has a corresponding class file, which defines the action for it. The association between a button and its action class was done using the IworkbenchWindow ActionDelegate interface. This interface was provided by extending the org.eclipse.ui extension point. Each action class implemented the inherited methods, one of which is the run method, inherited by Iworkbench- Window ActionDelegate interface from IAction- Delegate interface. The only method implemented for each action class is run, thus making the response of each button unique, which is analogous to actionperformed of Java ActionListener interface. Figure 2 shows the description of the action taken when buttons are pressed: CDBuilder.buttons.SimuAction launches a dialog window to run the models, and the CDBuilder.buttons. BubbleEditorAction starts CD++Modeler. Figure 3. CD++ Builder project wizard class diagram To create a model, CD++ Builder includes a project wizard. Its functionalities were implemented by extending the "org.eclipse.ui.newwizards" interfaces: BasicNew ProjectResourceWizard, WizardPage, and IWorkbenchPreferencePage. The relationship between the interfaces and the classes that extend them is shown in Figure 3. The BasicNewProject ResourceWizard interface is a workbench wizard that creates a new project resource in the workspace. The class CDProjectWizard implements the interface. A page was added to the interface-predefined basic structure of the wizard, where client s name must be entered, by us-

ing the CDProjectCreationPage class, which implemented the WizardPage interface. CDProjectWizard class, which inherited from interface BasicNewProject ResourceWizard icnludes the method addpage, added the page to the wizard. When the client finishes entering data into CD++ project wizard pages and clicks button Finish, the method performfinish of CDProject- Wizard is called, which creates a project resource with user-entered name. After the model is, the next step is to define the components of the model. The components of the model are listed in the model file with extension. The cseeditor editor was set to be the default text editor for CD++Builder plug-in (Figure 1). It inherited the TextEditor interface provided by org.eclipse.ui.text.texteditor. cseeditor uses cse DocumentProvider, which implemented methods of the FileDocumentProvider interface, provided by org.eclipse.ui.text.filedocumentprovider. The cse DocumentProvider allows the plug-in to create and save the files by implementing the methods of File- DocumentProvider interface. To define the behaviour of the syntax editor, a configuration class must be created and associated with the coupling syntax editor (cse). The configuration class for the coupling syntax editor cseeditor was chosen to be the cseconfiguration, which implemented the Source Viewer Configuration interface provided by the org.eclipse.jface.text.source.source ViewerConfiguration extension point. To create database of reserved words for highlighting, a csescanner and cseword- Detector classes implemented interfaces RuleBased- Scanner and IWordDetector respectively from the org.eclipse.jface.text.rules extension point. Figure 4. CD++ Builder text editor class diagram The results of simulation and error reporting can be directly viewed in CD++ Builder perspectives in the console panel (Figure 5). The "org.eclipse.ui.views" extension point was used to create the panel. By implementsion point was used to create the panel. By implementing the ViewPart interface methods, the ConsoleView class handles the display of messages in the console. The text,

displayed in the console window, was managed by the consoledocument class, which implemented the AbstractDocument interface. To store the text, displayed in the console window, the ConsoleOutputTextStore class was used, which extended the ITextStore interface. models in a simulated environment, and to execute them in a hardware surrogate. The hierarchical nature of DEVS permitted to do this without modifying the original models, providing the base for enhanced system development in embedded platforms. The environment permits an enhanced experience in the development of the applications. References Figure 5. CD++ Builder Console View 5. CONCLUSION We presented the design of CD++Builder, an environment for building models based on the DEVS formalism. In the future, this environment will allow us to study [1] Theory of Modeling and Simulation. B. Zeigler, H. Praehofer, T. G. Kim. 2 nd Edition. Academic Press. 2000. [2] "CD++: a toolkit to define discrete-event models". G. Wainer. In Software, Practice and Experience. Wiley. Vol. 32, No.3. November 2002. pp. 1261-1306 [3] "Modeling State-Based DEVS Models in CD++". G. Christen, A. Dobniewski, G. Wainer. In Proceedings of MGA, Advanced Simulation Technologies Conference 2004 (ASTC'04). Arlington, VA. U.S.A. 2004. [4] Glinsky, E. and G. Wainer. 2002a. Definition of Real- Time simulation in the CD++ toolkit. In Proceedings of the 2002 Summer Computer Simulation Conference. San Diego, USA. [5] F. Budinsky, D. Steinberg, E. Merks, R. Ellersick, and T.J. Grose, Eclipse Modeling Framework, 1 ed., Addison-Wesley Professional, Aug. 200