The DejaVu project aims may be characterized
by a number of buzz-words, familiar no doubt to all those
who have had the privilege to write project proposals themselves:
The DejaVu framework is intended to be
open (in the sense of extendible by a variety
of other software),
heterogeneous
(that is allowing for heterogeneous components,
possibly developed within different software paradigms),
distributed
(which means operating on both LAN and WAN computer
configurations),
object-oriented
(which is intended to characterize our approach at
software development, including modeling and programming),
and intelligent
(which may, lacking a better definition, be characterized
as allowing for a declarative approach to the knowledge-level
aspects of the application).
Wide in scope, and certainly ambitious,
but on the other hand (as argued in
The DejaVu project has, in a period of about three years, resulted in a collection of software components that allow for building quite complex systems in a relatively easy way. To substantiate this claim, we may remark that our software has succesfully been used over the last years in CS2 project assignments for Software Engineering, ranging over the realization of routeplanners, product/components control systems, business simulation models and (simple) geographical information systems. It has also been used, at a more advanced level, in OOP assignments, including the development of gambling machines (mimicking existing 'one armed' bandits), musical score editors (with soundsynthesis facilities) and interactive games (such as those you may find in a video game hall). Ease of use, that is a natural and simple class interface, is enforced (to the extent possible) as an explicit design goal for all components that constitute the DejaVu framework, now and in the future.
In this paper we will discuss the organization and modeling principles underlying the hush library and its extensions. The acronym hush stands for hyper utility shell and reflects our intention to provide the means for incorporating 'hypertechnology' in a variety of applications. The acronym hush is also intended to reflect our wish to allow each program developed with hush to act as a shell that interprets scripts written in a general purpose script language that is extended with functionality defined by the application itself.
A central theme in the DejaVu project
has been to support a multi-lingual
software development platform,
allowing in particular for a close coupling
between C++, the distributed logic programming
language DLP
The extensions of hush include support for discrete event simulation (sms), facilities for realtime soundsynthesis and music (hymne), support for digital video (xanim) and facilities to connect to the World Wide Web (web), also allowing to extend the web browsing facilities with client-side computing.
With respect to the area of hypermedia systems, we may remark that our results compete with developments undertaken by the big players in the field (such as the Java project by Sun Systems), yet our approach is fundamentally different to the extent that we are not interested in one particular application but rather in an approach to software development that allows for employing a variety of components, in a multiparadigm fashion.