The design of SDCalc from the users point was described initially by Liszt. From the novice and infrequent users perspective, it is vital that SDCalc be seen as a cleanly-integrated application. Experienced users will want to move beyond the default facad which SDCalc presents to the aips++ tools from which it is constructed. In aips++ note 194 Shannon presents a model for the SDCalc user environment that is designed to allow users to migrate from the default SDCalc GUI to a direct interaction with the AIPS++ tools that make up SDCalc. Aips++ note 194 describes two tools designed to help users understand the inner workings of the SDCalc GUI: a Transparency Tool and an Evaluation Tool.
The Transparency Tool will return a nicely formatted version of a Glish function's text. Further decomposition may be achieved by calling the tool on a function which appears in the first decomposition. It must be possible to redirect the function listing to the Glish tty, to a Tk edit buffer widget, or to a named file. Users of SDCalc will be able to see the Glish which coresponds to each GUI event if they so choose. By examining the Glish that the standard SDCalc GUI uses along with the opportunity for further decomposition that the transparency tool will provide, users should be able to learn about the tools used to build SDCalc.
The Evaluation Tool is a text editing buffer, probably a Tk text widget, from which text will be sent to the Glish interpreter. We should be able to send selected text, the whole buffer, or the function in which the cursor is currently located.
The SDCalc GUI will use these tools to provide a view into what goes on which each GUI operation. Users will be able to see the the Glish command that each GUI operation uses to do the actual work. These commands can be viewed in the Transparency tool (which can then be used to further decompose the high level Glish which the GUI uses) or copied to the evaluation tool for editing (which could then be turned into a script or function to encapsulate repetative operations that the user finds useful for that particular data set).