AlphaSquared Graphical User Interface
The AlphaSquared Graphical User Interface is a set of highly efficient C++ classes designed for the interactive display of heavily numerical or very large data sets.
The library is organized in an object oriented way so as to maximize the reuse of graphical components and their layout. The use of inheritance and clear encapsulation allows the interface to progress in complexity in parallel with the underlying computational code. Since applications usually grow in complexity this helps to avoid large redesigns of the user interface.
These C++ interface classes also follow a strict document-view-model paradigm to simplify computational code as much as possible. Since in our experience the computational code often pushes the boundary of humanly manageable complexity, it is essential that the user interface code be clearly separate from the computational code.
In a similar manner the library attempts to maintain a clear and minimal interface with the underlying operating system so as to ease future portability and minimize dependence on vendor specific interfaces. This philosophy has served well, allowing the interface to evolve from 1980's era proprietary DOS graphics cards, through the early 1990's Borland graphics drivers, and now to the Win32 platform of Win95, Win98, WinNT, and Win2000. It also functions in limited capacity on the Linux/X platform. Because OS dependencies are encapsulated (which OS vendors try hard to prevent) and because it is computational efficient, portions of it can be translated to other OS's, such as handheld or embedded devices.
Accessibility of C++ Source Code
The pure C++ implementation of the library and GUI has allowed our applications and development investment to outlive many fads of proprietary software technology - 'standards' like AWL, MFC, ATL, COM, ActiveX and now ".Net". Experience suggests that most of these proprietary technologies are user enhancements mixed with corporate enticements, most helpful for projects with shorter lifetimes and transient developers but poor investments for longer terms. We forgo some user enhancements for the longer view and for complete control over the source code. Additionally, and perhaps more importantly, control over the source code allows it to evolve with the rapid improvements in C++ and software design over the past 10 years. Refactoring, the basic process of software code improvement, is in our experience nearly impossible when the application is tightly bound to fixed closed components.
In order to promote code reuse and evolvability the AlphaSquared GUI eschews most platform dependent controls and widgets. The interface style is oriented towards technical users with demanding calculations or exploratory computing. The GUI is not designed to be a product itself but a tool to minimize the effort required to present graphical and numerical data.
Here are two examples of GUI's built with the AlphaSquared GUI, simplified for low resolution web viewing.
Language shapes the way we
and determines what we can think about.
- B. L. Whorf
Back to AlphaSquared.com