Extending Training Capability Through The Use of Embedded Domain-Specific Languages in Training Devi...
Download
1 / 24

Extending Training Capability Through The Use of Embedded Domain-Specific Languages in Training Devices - PowerPoint PPT Presentation


  • 124 Views
  • Uploaded on

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 Leverage that embedded scripting language during development Expose that language to the end user

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Extending Training Capability Through The Use of Embedded Domain-Specific Languages in Training Devices' - flower


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

John Aughey


Point of this discussion
Point of this discussion Domain-Specific Languages in Training Devices

  • Incorporate a scripting language into all software

  • Leverage that embedded scripting language during development

  • Expose that language to the end user

  • Allow end users to use this language to extend and enhance usability


Typical flight training simulator

Interface Domain-Specific Languages in Training Devices

Interface

Interface

Interface

Internal Interfaces

Interface

Interface

Typical Flight Training Simulator

Instructor/Operator Station

Crew Station

Real-Time Host

Tactical Environment

Threat Stations

Brief/Debrief System

Visual System


System of systems
System of Systems Domain-Specific Languages in Training Devices

Collaboration of many systems


Examples of embedded domain specific languages
Examples of embedded domain-specific languages Domain-Specific Languages in Training Devices

Internet Browsers

3-D Modeling

Interactive Content

Spreadsheets


Available scripting languages

Ruby Domain-Specific Languages in Training Devices

Perl

Python

ECMAScript

LUA

Smalltalk

Tcl

Ch

RBScript

Guile

Available Scripting Languages

Don’t reinvent the wheel!


Exposed interface
Exposed Interface Domain-Specific Languages in Training Devices

Readable, approachable language

  • aircraft.digital_inputs[FLAPS] = 2;

  • threat_environment->addThreat(new ThreatAircraft(MIG_29, aircraft.altitude, position_offset(aircraft.latitude,aircraft.longitude,aircraft.bearing,3*MILES_TO_FEET)));

  • aircraft.extend_flaps

  • create_threat “MIG29”, :distance => 3.miles

In contrast to…


How to embed

Frame-based Domain-Specific Languages in Training Devices

Top-of-loop

SCRIPT(begin)

Computation

SCRIPT(end)

Loop

Event Based

Mouse Clicks

Button Presses

Weapons Launch

Entity Damage

Entity Interaction

How to Embed

Application includes “hooks” where the scripting language can control the application.


Life cycle of embedded dsl
Life cycle of Embedded DSL Domain-Specific Languages in Training Devices

  • Improved Requirements Definition

  • Automated Testing

  • Rapid Integration

  • Simplified User Interfaces

  • Extendable Software


Requirements definition
Requirements Definition Domain-Specific Languages in Training Devices

  • The gear shall not extend above 10,000 feet

    DSL specification

    context “The aircraft above 10,000 feet” {

    setup { ………………… }

    specify “should not allow gear to extend” {

    …………………

    }

    }


context Domain-Specific Languages in Training Devices“The aircraft above 10,000 feet" {

setup {

initial_conditions :altitude => 10000.feet

}

specify “should not allow gear to extend" {

aircraft.lower_gear

aircraft.gear_should_be “up”

}

specify “should not allow flaps to extend" {

aircraft.extend_flaps

aircraft.flaps_should_be “retracted”

}

}


Conceptual vs functional requirements
Conceptual Domain-Specific Languages in Training Devicesvs Functional Requirements

  • Functional Requirements have a measurable behavior

  • Conceptual Requirements are difficult to define concretely

    • User Interface Interaction

    • Incomplete Understanding of use case

    • Results in over defined or ill-defined requirements


Example
Example Domain-Specific Languages in Training Devices

  • The operator software must provide a way to induce the following failure conditions:

    • Engine fire

    • Loss of rudder control

    • COMM failure

    • HUD failure

  • Defined by curriculum


Implementation
Implementation Domain-Specific Languages in Training Devices

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


Next software update
Next software update Domain-Specific Languages in Training Devices

  • 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.

    • All of these different possible conditions are added to the requirement in lengthy detail.


Discovered problem
Discovered problem Domain-Specific Languages in Training Devices

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 update1
Next software update Domain-Specific Languages in Training Devices

  • 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.


Dsl solution
DSL Solution Domain-Specific Languages in Training Devices

  • Expose the following failure triggers to the scripting language

    • Engine fire

    • Loss of rudder control

    • COMM failure

    • HUD failure


Operator program
Operator Program Domain-Specific Languages in Training Devices

description “Fail the rudder 10 seconds after wheels-up”

trigger :action => { Failures.trigger :rudder },

:when => { wheels_up_time > 10 }


Engine fire program
Engine Fire Program Domain-Specific Languages in Training Devices

description “Trigger an engine fire once the aircraft reaches 20000 feet”

trigger :action => { Failures.trigger :engine_fire_left },

:when => { altitude > 20000.feet and rate_of_climb < 10.feet.per.second }


Simplified extendable user interfaces
Simplified/Extendable User Interfaces Domain-Specific Languages in Training Devices

Push “decision making” out to the scripting language

  • Native code

    • Processor intensive computation

    • Graphics/Rendering

    • Device interaction

  • Scripting code

    • What, where, when, why


Spot meter lab software
Spot Meter Lab Software Domain-Specific Languages in Training Devices

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
Customer Extendable Software Domain-Specific Languages in Training Devices


ad