![]() |
||||||||
OverviewThe current generation of tools with their open application interfaces, object models, and client-server capabilities enable a new approach to building engineering environments. Modern engineering environments address many diverse objectives, for example:
These objectives lead to large numbers of requirements for specific tool capabilities and interfaces among tools. To satisfy all the requirements, an environment must include many kinds of tools each providing one or more capabilities to support one or more tasks in the engineering process:
Because the engineering process is iterative, similar tasks (such as document production or requirements management) occur many times at different process levels. Tools designed for an engineering discipline (e.g., software or chip design) provide some support for these repeated, common tasks. There are also, however, task-specific specialty tools such as desk top publishing systems available to support a specific task no matter where it occurs in the process. Repeated, common tasks challenge environment builders to select the right enabling tool for each task occurrence. Most environments use both of the possible approaches:
In either approach, additional tool interfaces are needed to move information between the engineering tools used at different levels in the process. Interfaces based on file transfers between tools are at best satisfactory; it is difficult to make them mechanically seamless. But at a more fundamental level they require a mapping between not quite similar types of objects and, often, massive duplication of information. Information quality, ownership, and integrity present challenging problems. The new generation of tools offers much better interface solutions. Most recently released tools are true multi-user, client-server tools. They share an object-oriented view of their user visible information. Intended to be members of a tool community, they provide open application programming interfaces (APIs), letting users build their own client applications and enabling interoperability. Interoperability occurs when tools cooperate seamlessly in real time. Each tool maintains its own information; information is not duplicated, but pointers may be kept to data in other tools. When tools must share information, the tool that needs information may act as a client, invoking the services of the other tool to provide information and possibly to present it to the user. Many task-specific tools function very well as clients to engineering tools. When users need integrated information from several tools, a user-developed application may act as a client to several tools and allow the user to manipulate information in a tool-independent manner. This paper explores three types of interoperability:
The Information Presentation ClientThe PC software marketplace is flooded with tools that allow users to format, manipulate, and present information. Such tools include desktop publishing tools, spreadsheets, presentation development tools, and programs that produce graphics ranging from simple bar charts to 3-D plots. All of these tools are useful for communicating the results of engineering work. Many are also useful for doing certain kinds of editing of engineering information. While many engineering tools provide some of the information presentation capabilities of some of these tools, no engineering tool will ever match the capabilities the user can assemble by choosing the "best of breed" for each type of presentation tool. It is far more sensible to use existing information presentation tools to view engineering information. Three recent technology advances have made this feasible:
These capabilities make it possible to build applications in which an information presentation tool is extended to act as a client to an engineering tool. Using a presentation client a user can:
Types of Information Presentation ClientsIt is possible to develop two types of information presentation clients:
Task specific information presentation clients are designed to support a specified task. They are most useful when they support tasks such as requirements reviews that are performed many times by many persons who seldom interact directly with the engineering tools. The detailed requirements for a task specific client are driven by the engineering process and the allocation of tasks to tools. (See Malcolm 1995 for additional information on process driven integration.) Task specific clients are easy to build, and often require little or no user training. However, they may not be reusable in other process steps or by other programs. General-purpose information presentation clients can be used to perform a variety of tasks in many places in the engineering process. They allow the user to:
Their flexibility makes them usable in many process steps in many programs, but they are relatively expensive to build and use. Developing an intuitive way to allow users to select and map information will require many iterations, and users generally require some training in the selection and mapping mechanisms. On the other hand, an experienced user can use the selection and mapping mechanism to build a task specific version of the client for a less experienced user. Information Presentation Client ExampleThe RDD-Word Interface (RWI) client for Holagent's RDD.COM is an example of a general purpose information presentation client:
Users can employ Word capabilities to:
The Interoperability ClientThe engineering community is served by a wide variety of tools addressing many different kinds of engineering work done at many different places in the engineering process. Most engineering environments employ one or more general tools as well as more specialized tools for individual engineering disciplines. Engineers using general tools must share information with those using specialized tools. In first generation tools, the information was printed from one tool and keyed into the next. In later tool generations the information was transferred by files and stored in both tools. File transfers were seldom seamless or convenient, and duplicated information was seldom consistent. Like the current generation of information presentation tools, the current generation of engineering tools support open APIs, object semantics, and client-server interactions. These capabilities make it possible to build clients that inter-operate with two or more engineering tool servers. Effective use of such interoperability clients requires some consistency of the object semantics among the tools in the engineering environment. To ensure this consistency, environment builders must:
Once the logical connections have been built, applications can easily navigate among objects managed by several tools. Types of Interoperability ClientsThe kinds of information that are currently shared via files suggest that two types of interoperability clients are needed:
Interoperability Client ExampleWhile Holagent has not yet released an interoperability client, one has been developed and is being tested in cooperation with one of our customers. After it is released to that customer, Holagent will evaluate turning it into a product. It links RDD-100 with Rational Rose, and has been designed to be ported to RDD.COM in a later release. The current implementation uses RDD-100 as a server via the RDD-100 API that supports the RDD-100 RWI (Word) product. It provides both context viewing so that the Rose user can see system level requirements from RDD-100, and traceability editing so that artifacts of the software engineering process can be linked to RDD-100 elements. It supports the following logical connections in the first release:
Additional connections are planned for subsequent releases. The Background ClientA number of engineering tools provide computation services to engineers working at various levels of the engineering process. Tools are available to solve many kinds of mathematical equations, as well as to roll up budgets and compute costs. Just as many engineering tools duplicate some of the capabilities of information presentation tools, many include some of the capabilities of these computation tools. But, again, the "best of breed" for any specialized computation is usually a specialist tool. Like the current generation of information presentation and engineering tools, computation tools support open APIs, object semantics, and client-server interactions, allowing computation tools to function effectively as clients. Unlike presentation tools and engineering tools, computation tools usually have little to say to the user. A computation tool often acts as a background client that:
Background Client ExampleWhile Holagent has not yet implemented a background client, this approach is our current candidate for our port of Integrated Design to Cost (IDTC) to RDD.COM. IDTC is a collaboration between RDD-100 and PRICE, a parametric estimating tool from PRICESystems. In the current IDTC implementation:
SummaryThe current generation of tools with their open APIs, object models, and client-server capabilities enable a new approach to building engineering environments. "Best of breed" tools for information presentation and special computations can be effectively integrated as clients to engineering tools. Engineering tools that operate effectively at different levels of the engineering process can cooperate to provide users with context information from other engineering levels and make it easy to establish inter-tool traceability. Data integrity can be improved since there is no need to duplicate information and tools can cooperate in ways that are seamless to the user. |
||||||||
|
Questions or comments? webmaster@holagent.com Copyright © 2000 Holagent Corporation, Gilroy, California 95020 USA All rights reserved. Terms of Use |