About the Alpha User Interface Management System

Alpha Overview

Key Alpha Features

Basic Alpha Concepts

Conceptual Implications

Code and Documentation


Alpha Overview

The Alpha UIMS is a multi-platform development and execution environment specifically designed to help experienced software developers create and maintain application systems.

Unlike GUI "builders" and toolkit abstractions, Alpha fundamentally changes the way that applications are designed and built.

Alpha completely separates the application domain from the physical characteristics of the user interface technology eliminating the need for any kind of "callbacks" to induce interface behaviors.

The complete separation of domains, coupled with Alpha's dependency-based, object-oriented programming approach, reduces the number of lines of code that you need to write or generate by 40 to 90%, It also significantly decreases the time and resources you would ordinarily devote to development and maintenance, and enhances the quality and usability of your final product.

Because the application-domain code is separated from (and not dependent upon) the user interface and technology aspects of the system, entire application systems are easily portable to other hardware and software platforms.

Back to Alpha Contents LoneWolf Home Page


Key Alpha Features

Back to Alpha Contents LoneWolf Home Page

Basic Alpha Concepts

Any application system developed using Alpha executes as a set of independent processes or "agents." The application agent(s) deal with the application protion of the system; the technology agent(s) handle the screen, mouse, keyboard, microphone, speaker, and other technology-based parts of the system; and the dialogue ties all of the agents together.

The dialogue language allows you to express the relationships between the different agents as a set of programmed dependencies. In this way, you can write an application that is independent of the interface it uses. The interface can also be independent of the technology which displays it.

A simple example of this independence can be found in different types of wristwatches. There are both digital and analog watches, but the "application agent" in all of them maintains the time of day. The agent does this independently of how the user reads it. The "technology agent" handles displaying the time to the user -- either with digital numbers or analog clock hands.

Different technologies can also be used to express the same representation -- digital clock numbers can be shown with either an LED or an LCD display, just as a word processor can look nearly the same on X11, Windows, or a Macintosh.

Back to Alpha Contents LoneWolf Home Page


Conceptual Implications

All of the "wristwatch systems" written with Alpha are built using the same design -- the dialogue uses an application agent to maintain the time of day and a technology agent to create the watch face.

For an analog watch, the dialogue connects the value of the minutes field in the application agent to the minute-hand of an analog technology agent. For a digital watch, the dialogue connects the application agent's minutes field to the label for "minutes" in a digital technology agent.

The application agent does not have to use (or even know) a specific interface. And because the technology agents are scalable, it doesn't matter to the dialogue whether the technology agent "displays" to a wristwatch, to Big Ben, or to every clock in the city.

Separating the application and the display from the user interface offers significant benefits to developers. Entire application systems are easily portable to alomost any hardware or software platform. Upgrades can be made to one component (on one or more platforms) without affecting other components in any way. And a single application can be given more than one user interface -- for example, a "novice" and an "expert" interface. Technology agents can also be defined to enforce a corporate "look and feel." As a bonus, all applications are inherently distributable across a heterogeneous network, working as either client-server, or peer-to-peer. Back to Alpha Contents LoneWolf Home Page