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