3. 3. System Development and Support Environments
These will provide the network-based software development tools and
environments needed to build the advanced user interfaces and the information-
intensive National Challenges themselves.
- Rapid System Prototyping: These consist of software tools and methods that
enable evolvable software. These consist of the tools and methods that enable
the incremental integration and cost effective evolution of software systems.
Technologies include tools and languages that facilitate end-user
specification, architecture design and analysis, component re-use and
prototyping; testing and on-line configuration management tools; and, tools
to support the integration and interoperation of heterogeneous software
systems.
- Distributed Simulation and Synthetic Environments: These software
development environments provide the specialized underlying support
mechanisms for the creation of synthetic worlds, which can integrate real as
well as virtual objects, in terms of both their visual as well as computational
descriptions. Methods include distributed simulation algorithms, geometric
models and data structures, tools for scene description, creation, and
animation, and integration of geometric and computational models of
behavior into an integrated system description.
- Problem Solving and System Design Environments: These environments
provide the techniques that support the software and system design process
through the use of automated tools, with particular emphasis on maintaining
flexibility and tailorability in tool configurations to enable organizations to
tailor their support environments to their needs. Examples include efficient
algorithms for searching huge planning spaces, more powerful and
expressive representations of plans, operators, goals, and constraints, and the
incorporation of efficient methods to facilitate scheduling and resource
allocation. The effects of uncertainty must be taken into account as well as
the effects of goal interactions.
- Software Libraries and Composition Support: These software tools and
methods support the development of common architectures and interfaces to
increase the potential for reusability across multiple underlying models of
computation, the diversity of programming languages in use, and the varying
degree of assurance provided by software components. Important elements of
this area include the development of the underlying methodology, data
structures, data distribution concepts, operating system interfaces,
synchronization features, language extensions, and other technology to
enable the construction of scalable library frameworks.
- Collaboration and Group Software: These tools provide support for group
cooperative work environments that span time as well as space. Methods
include shared writing surfaces and "live boards," version and configuration
management, support for process and task management, capture of design
history and rationale, electronic multimedia design notebooks, network-based
video conferencing support, document exchange, and agents serving as
intermediaries to repositories of relevant multimedia information. The
technology should be developed to make it possible to join conferences in
progress and to be automatically brought up to date by assistants (agents) with
memory.
Next Section