Extending Training Capability Through The Use of Embedded Domain-Specific Languages in Training Devices John Aughey.

Slides:



Advertisements
Similar presentations
Inference without the Engine!. What is EZ-Xpert 3.0? EZ-Xpert is a Rapid Application Development (RAD) environment for creating fast and accurate rule-based.
Advertisements

Private and Confidential ThinkControl & ProLiant Essentials Rapid Deployment Pack.
Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Automating with Open Source Testing Tools Corey McGarrahan rSmart 01-July-08.
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
CompSci Applets & Video Games. CompSci Applets & Video Games The Plan  Applets  Demo on making and running a simple applet from scratch.
Chapter 2 Database System Concepts and Architecture
MotoHawk Training Model-Based Design of Embedded Systems.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Software Requirements
Quality Assurance CS 615. Mission Statement The Quality Assurance team will provide assurance to stakeholders in CS-615/616 projects that their projects.
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
SCRIPTING LANGUAGE. The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these,
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
1 Case Study: Starting the Student Registration System Chapter 3.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
The chapter will address the following questions:
USE Case Model.
Introduction to VBA. What is VBA? VBA stands for Visual Basic for Applications. It is a programming language used exclusively by the Microsoft Office.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
Team Crutch. Vision Statement Team crutch aims to develop portable, inexpensive, user-friendly software for the Android platform that mitigates communication.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Applications of OO System Engineering Methodology and Tools for Complex Systems9/11/2015 Application of Object Oriented Systems Engineering Methodology.
Execution Control with If/Else and Boolean Functions
Networked Games - consistency and real-time Objectives – –Understand the problems associated with networked games. –Realize the importance of satisfying.
Applets & Video Games 1 Last Edited 1/10/04CPS4: Java for Video Games Applets &
1 SWE 513: Software Engineering Usability II. 2 Usability and Cost Good usability may be expensive in hardware or special software development User interface.
Interaction Modeling. Introduction (1) Third leg of the modeling tripod. It describes interaction within a system. The class model describes the objects.
 CS 5380 Software Engineering Chapter 8 Testing.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Statistics Monitor of SPMSII Warrior Team Pu Su Heng Tan Kening Zhang.
Visual Analysis of Vehicle Simulations, INS/GPS Solutions and Real-World Data Bob Addiss Senior Software Engineer CAST Navigation, LLC
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Enterprise Systems Architectures EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.
Digital Electronics and Computer Interfacing Tim Mewes 4. LabVIEW - Advanced.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
Requirements of an ITS/Simulation Interoperability Standard (I/SIS) Presented by:Dick Stottler Stottler Henke Associates, Inc.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Definitions of GIS Works with geographic information Performs data input, management, manipulation/analysis, and output functions Composed of hardware,
Evaluating Requirements
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CS320n –Visual Programming Execution Control with If / Else and Boolean Functions (Slides 6-2-1) Thanks to Wanda Dann, Steve Cooper, and Susan Rodger for.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Testing Training Online. Software testing is ruling the software business in current scenario. It provides an objective, independent view of.
Space FSW Conference 2016 Matthew Conte Software Engineer
Collision Theory and Logic
CST 1101 Problem Solving Using Computers
Classifications of Software Requirements
Prototyping Lecture # 08.
Collision Theory and Logic
The Object-Oriented Development Life Cycle
Software testing
IBM Tivoli Provisioning Manager 7.1 Initial Discovery and Inventory
Week 10: Object Modeling (1)Use Case Model
CS 641 – Requirements Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Testing and Test-Driven Development CSC 4700 Software Engineering
Software Design Lecture : 15.
UML Design for an Automated Registration System
Information system analysis and design
Presentation transcript:

Extending Training Capability Through The Use of Embedded Domain-Specific Languages in Training Devices John Aughey

Point of this discussion Incorporate a scripting language into all software Incorporate a scripting language into all software Leverage that embedded scripting language during development Leverage that embedded scripting language during development Expose that language to the end user Expose that language to the end user Allow end users to use this language to extend and enhance usability Allow end users to use this language to extend and enhance usability

Typical Flight Training Simulator Instructor/Operator Station Brief/Debrief System Threat Stations Crew Station Tactical Environment Visual System Interface Internal Interfaces Real-Time Host

System of Systems Collaboration of many systems

Examples of embedded domain- specific languages 3-D Modeling Spreadsheets Interactive Content Internet Browsers

Available Scripting Languages Ruby Ruby Perl Perl Python Python ECMAScript ECMAScript LUA LUA Smalltalk Smalltalk Tcl Tcl Ch Ch RBScript RBScript Guile Guile Don’t reinvent the wheel!

Exposed Interface 1.aircraft.digital_inputs[FLAPS] = 2; 2.threat_environment->addThreat(new ThreatAircraft(MIG_29, aircraft.altitude, position_offset(aircraft.latitude,aircraft. longitude,aircraft.bearing,3*MILES_TO_FEET) )); 1. aircraft.extend_flaps 2. create_threat “MIG29”, :distance => 3.miles In contrast to… Readable, approachable language

How to Embed Frame-based Top-of-loop Top-of-loop SCRIPT(begin) SCRIPT(begin) Computation Computation SCRIPT(end) SCRIPT(end) Loop Loop Event Based Mouse Clicks Mouse Clicks Button Presses Button Presses Weapons Launch Weapons Launch Entity Damage Entity Damage Entity Interaction Entity Interaction Application includes “hooks” where the scripting language can control the application.

Life cycle of Embedded DSL Improved Requirements Definition Improved Requirements Definition Automated Testing Automated Testing Rapid Integration Rapid Integration Simplified User Interfaces Simplified User Interfaces Extendable Software Extendable Software

Requirements Definition The gear shall not extend above 10,000 feet The gear shall not extend above 10,000 feet DSL specification context “The aircraft above 10,000 feet” { setup { ………………… } setup { ………………… } specify “should not allow gear to extend” { specify “should not allow gear to extend” { ………………… ………………… }}

context “The aircraft above 10,000 feet" { setup { setup { initial_conditions :altitude => feet initial_conditions :altitude => feet } specify “should not allow gear to extend" { aircraft.lower_gear aircraft.lower_gear aircraft.gear_should_be “up” aircraft.gear_should_be “up” } specify “should not allow flaps to extend" { aircraft.extend_flaps aircraft.extend_flaps aircraft.flaps_should_be “retracted” aircraft.flaps_should_be “retracted” }}

Conceptual vs Functional Requirements Functional Requirements have a measurable behavior Functional Requirements have a measurable behavior Conceptual Requirements are difficult to define concretely Conceptual Requirements are difficult to define concretely User Interface InteractionUser Interface Interaction Incomplete Understanding of use caseIncomplete Understanding of use case Results in over defined or ill-defined requirementsResults in over defined or ill-defined requirements

Example The operator software must provide a way to induce the following failure conditions: The operator software must provide a way to induce the following failure conditions: Engine fireEngine fire Loss of rudder controlLoss of rudder control COMM failureCOMM failure HUD failureHUD failure Defined by curriculum Defined by curriculum

Implementation Provide the operator a menu with a list of these failures, and a button to induce the selected failure Provide the operator a menu with a list of these failures, and a button to induce the selected failure

Next software update New requirement New requirement Define a conditional value into the failure menu to avoid needing to monitor the altitude indicator manually. Other failures might need different conditionals for altitude, airspeed, orientation, flight time, and so on.Define a conditional value into the failure menu to avoid needing to monitor the altitude indicator manually. Other failures might need different conditionals for altitude, airspeed, orientation, flight time, and so on. All of these different possible conditions are added to the requirement in lengthy detail.All of these different possible conditions are added to the requirement in lengthy detail.

Discovered problem In practice, however, the operator soon discovers the failure event triggers too fast, because the instant the altitude hits 20,000 feet, the engine fire failure triggers. The training need is really engine failure at level flight, so the failure really needs to happen as a result of two conditions being met, a given altitude and a given rate of climb. In practice, however, the operator soon discovers the failure event triggers too fast, because the instant the altitude hits 20,000 feet, the engine fire failure triggers. The training need is really engine failure at level flight, so the failure really needs to happen as a result of two conditions being met, a given altitude and a given rate of climb.

Next software update New Requirement New Requirement All failure conditions must have an operator defined conditional statement. Once the entire conditional statement is satisfied, the failure will occur. At least 10 different conditional statements must be definable by the operator for each failure condition with the option to chain the statements together with AND or OR logic operators. At least 16 failure conditions can be ready to be triggered at any point in the training scenario.All failure conditions must have an operator defined conditional statement. Once the entire conditional statement is satisfied, the failure will occur. At least 10 different conditional statements must be definable by the operator for each failure condition with the option to chain the statements together with AND or OR logic operators. At least 16 failure conditions can be ready to be triggered at any point in the training scenario.

DSL Solution Expose the following failure triggers to the scripting language Expose the following failure triggers to the scripting language Engine fireEngine fire Loss of rudder controlLoss of rudder control COMM failureCOMM failure HUD failureHUD failure

Operator Program description “Fail the rudder 10 seconds after wheels-up” trigger :action => { Failures.trigger :rudder }, trigger :action => { Failures.trigger :rudder }, :when => { wheels_up_time > 10 } :when => { wheels_up_time > 10 }

Engine Fire Program description “Trigger an engine fire once the aircraft reaches feet” trigger :action => { Failures.trigger :engine_fire_left }, trigger :action => { Failures.trigger :engine_fire_left }, :when => { altitude > feet and rate_of_climb { altitude > feet and rate_of_climb < 10.feet.per.second }

Simplified/Extendable User Interfaces Push “decision making” out to the scripting language Native codeNative code Processor intensive computation Processor intensive computation Graphics/Rendering Graphics/Rendering Device interaction Device interaction Scripting codeScripting code What, where, when, why What, where, when, why

Spot Meter Lab Software when_created do open_log_file "gammameasurements" set_intensity 0 set_time_of_day “midnight” set_test_pattern "rectangle" set_testpattern_size 4.0 drop_readings 20 end for_each_reading do write_log intensity,measured_intensity increment_intensity_by 4 drop_readings 4 end

Customer Extendable Software