| The development of real-time software for control systems is an expensive process, accounting for a significant portion of total application costs. This expense can be reduced by automating the software development procedure; for instance, by providing a software framework in which coded routines are small, portable, and reusable. However, to make the integration and control of these routines accessible to programmers of various expertise, and thus further reduce the amount of required resources, a user-friendly high-level programming environment designed for the creation of reusable real-time software is required.; In the past, researchers have created visual programming languages to address the problems of textual coding. However, these interfaces have been, in general, either very high-level and narrow in scope, or low-level and cryptic. Furthermore, these interfaces have not been designed with the specific requirements of real-time programming in mind. These requirements include the need to switch from one job to the next with minimal time loss, the need to modify the code of a job while it is executing, and the need to coordinate many jobs running in parallel.; In this dissertation, we present a multilevel/iconically-programmed visual programming environment called Onika. Its multiple interfaces directly connect with the underlying real-time operating system to coordinate the activities of several routines running in parallel. Each task on the real-time operating system is represented by an icon, which is manipulated by a mouse. These tasks are combined in a logical way to create jobs for the system to execute. The interface is able to switch from one job to the next quickly, in real-time, with minimal system delays. The user is also able to monitor and modify each routine running on the real-time operating system. Furthermore, a combination of routines created at one level can be saved as a reusable higher-level routine for others to use. Thus, routines at the higher levels become more specific, making programming accessible for naive users, without diminishing the programming scope for more knowledgeable users working at the lower levels. Both levels of users are presented with an interface appropriate for their programming abilities and application requirements. We show that the grammar and syntax of the language supported by the interface is complete with respect to traditional programming languages, and we demonstrate via standardized user testing that this new method of programming is much faster and less error-prone than traditional methods. (Abstract shortened by UMI.)... |