===== What are overlays, and how do I use them? =====

__What are overlays__?  Overlays were new with JAS Release 2.0 SR2.00, and further enhanced with Release 2.0 SR2.30DTRA.  More properly called "Method Overlays", they allow the user to define%%--%%in the actual scenario //data//%%--%%Smalltalk code which will be used during a simulation run, in the place of the original code.  Since the Smalltalk code is organized into modules called "methods", these allow users to //overlay// the original method or create new methods.

Overlays can be used to enhance the functional behavior of the simulation, to update instrumentation, to correct a GUI’s function, etc.  While they are __not__ useful for more than minor enhancements, overlays provide the advantages of allowing users to:  

  *  Receive "patches" for critical errors from the JAS office more quickly, without waiting for a new release
  *  Implement behavioral changes particular to a scenario which may not apply to other scenarios
  *  Investigate new behavior as a prototype to improve future code design
  *  Conduct testing on the new behavior (Fix-Test-Fix) before integration
  *  Share their enhancements as easily as sending an email to each other
  *  Provide enhancements to the JAS office for consideration for integration
  *  Implement classified algorithms without affecting classification of baseline code
  *  Create proprietary behavior or algorithms
The primary disadvantages to overlays are:

  *  You’ve got to be familiar with Smalltalk, or you’ll have difficulty creating overlays and may cause unintended consequences
    *  Most users will rely on the JAS office for overlays
      *  Users/sites%%--%%not the JAS office%%--%%are responsible for issues arising from locally developed overlays
    *  Users must maintain awareness of what behaviors have been changed via overlay.
  *  The onus is on the user to maintain, track and update overlays with new releases (if necessary)
__What are "HCI" overlays__?  HCI overlays permit modifying the actual GUIs the modelers use.  

Instead of always applying the HCI overlays when opening a scenario, two measures were put in place to allow users to control when to apply HCI modifications:  First, the GUI overlays are applied (i.e. usable) only// //while the Method Source Overlay tool (the "Dynamic Behavior Method Source Overlays" window) is open.  It is opened by selecting Tools >> Method Source Overlays from within a scenario.  Second, either closing the Method Source Overlay Tool or refreshing the scenario will remove the GUI overlay and reinstate the original GUI.  Exceptions:  Maritime orders GUI overlays and overlay import/export remain applied until the scenario is refreshed.  

Note that there is one issue with the SR2.30DTRA image:  The //presence// of __GUI__ overlays causes the simulation __run__ to break.  Instead of requiring users to remove all GUI overlays prior to running (which would be a terrible inconvenience), an overlay is available to permit leaving GUI overlays in the scenario during runs.  
