Hewlett-Packard Labs: Picture Programming Group
- On a daily basis, people use data-driven
applications, such as contact managers, web stores, and financial
planners.
- My project focused on developing toolkits for
non-programmers to make custom applications from existing databases.
- Application areas included desktop
applications, telecommunications management and hospital staff
management.
- Resulting ideas and technology formed basis of
Exemplary Software tools and
solutions for supply-chain management.
- The project resulted in numerous lectures and
papers, including <mine
> and
<group>
|
|
The ICBE toolset was designed for
non-programmers, making it simple to make custom
data-driven applications.
The visual language for ICBE was based on existing developments in
Query
By Example (QBE).
|
 |
As in many current visual programming environments, it is easy to
drag-drop widgets from toolbars to paint an interfaces, such as the
contact manager to the left.
|
 |
The heart of data-based interfaces (such as contact managers) is
specifying data flow and control flow.
The image on the left shows how ICBE allows painting flow lines,
connecting a database to the interface.
Queries could be entered directly in screen widgets using
QBE syntax. |
Using ICBE, there is little difference between visualization,
navigation and query of information.
It is this flexibility which supports drag-drop interaction design for
informational interfaces.
|
|
|
 |
The Tablez toolset supported drag-drop definition of more complicated queries. |
 |
The Tablez toolset incorporated the ICBE techniques, making it simple to
transform queries to alternate views. |
 |
The same techniques can be used to paint data-driven web pages. |
|
|
|
The original HP Telecom Management Toolkit provided only trivial graphical
views, and a complicated management language in SmallTalk.
The new toolkit I designed sported multiple graphical views, including property
tables in-line
with the graphical view. Using the ICBE techniques, it is easy to switch
between navigating the information base (shown in image on the left) and
writing queries (shown on the right).
|
|
|