Enhance Legacy Software

Does your organization have engineering and scientific software that is difficult to use because it was written years ago or lacks a consistent user-interface? You may depend on this software, but it is too awkward to train more than a few staff members. Are your applications forced into a restrictive spreadsheet or database structure? If so, consider Elements™.

EleSoft Research product Elements Engineering-Scientific Workspace extends Microsoft Windows™ with an engineering/scientific environment. It provides a commercial quality user interface that makes existing programs more usable and if desired, salable.

Most technical software stores data in tables (or matrices). Often, these tables are separate files. In contrast, Elements embeds all data in a document where each table has a name, allowing a symbolic reference. Built-in functions use this reference. Unlike a spreadsheet, Elements' tables do not consume the display. Its principal document is a history log of repeatable commands, actions, and results.

Elements is organized like a modern client-server operating system. It has one or more environmental subsystems and one kernel. Each subsystem encapsulates an application's unique properties, menus, command syntax, and policies. You can implements many applications. The kernel handles generic services like equation solving, expression evaluation, units conversion, and error recovery.

Elements extends the capabilities of legacy engineering and scientific applications. They automatically become Microsoft Windows programs. All programs access Elements' rich application programming interface (API). Improved capabilities include:

xy plot

Torus

It would be nice if generic Elements could satisfy every engineering application. However, it is likely that you will want specialized menus, command syntax, and dialog boxes. That is achieved by customizing Elements. Typical steps are:

  1. Formulate data input and output in tables (matrices). Usually, this means discarding low-level I/O statements in your code.
  2. Decide how the user will direct the action. Will he issue typed commands or respond to dialog boxes. Actually, both methods are available. The only question is: Do you want to allow more than one method?
  3. If necessary, modify the interface portion of your code to accept matrix array pointers as function arguments and return values.
  4. Decide how to respond to data exceptions. If your program runs unattended for a long time, then it should recover from data errors rather than stop.
  5. Link your code with Elements.
  6. Supplement generic Elements' hyper-text help and printed manual with application specific information.
  7. Prepare a distinctive installation program so that you can distribute and sell the finished product royalty free.

EleSoft Research offers other services.