The Role of Intelligent Systems in the National Information Infrastructure, страница 14

AI techniques can contribute to each of these challenges. Specification complexity can be alleviated by encoding designs in terms of the high-level concepts defined in a repository of world knowledge (Subsection 3.7). Because specification descriptions will still be huge, specification languages will use knowledge representation techniques (Subsection 3.7) to support modularity, hierarchical structure, and multiple inheritance.

Testing and validation of the specification can be done in several ways. Theorem proving and logical inference algorithms (Subsection 3.1) can detect ambiguities, incompleteness, and inconsistency in the specification. Decision-theoretic techniques (Subsection 3.4) could select economic tradeoffs among possible alternatives given encodings of the available components. Another approach to validation uses knowledge-based automatic programming techniques (Subsection 3.3) and modules already available in software libraries (Subsection to mechanically construct a program meeting the specifications; by executing this prototype, a user could see whether the specification behaves as expected and whether the expected behavior is desirable. Although it is easy to generate random test cases, robust validation requires using knowledge of user aims and the environment (Subsection 3.7) to generate qualitatively different tests that exercise every dimension of the system under construction. The same knowledge can be used to generate help systems.

Finally, system support environments can support evolutionary design by acting as an intelligent project coach (Subsection 3.5) that records (Subsection 3.1) and explains (Subsection 3.8) choices behind design decisions . When the system design is a collaborative effort, the project coach could track the responsibilities of team members (Subsection 3.6). Software and Knowledge Library Support Services

Reuse of well-designed tools can provide one of the greatest economies available in any activity but especially in the labor-intensive practice of software engineering. Accordingly, the specification and refinement support environments described in Subsection require access to libraries of software modules, module specifications, and formalized knowledge about these modules, users, applications, and the world.

Libraries house materials, but they also offer an internal structure that facilitates finding and using entries. In the case of software libraries, software modules in the collection must be indexed by their specification and accompanied by a recording of their design rationale (Subsection 3.7). Additional encodings can facilitate modification of existing components for new purposes, automatic translation and optimization of modules, and safe replacement of parts of existing systems with independently developed improvements of the parts (Subsection 3.3). Providing intelligent access to these library functions will require all of the information infrastructure services, such as indexing and translation, described in Subsection 2.2.

2.3.2 Intelligent Project Management Aids

Constructing, maintaining, and extending the National Challenge applications and other complex systems poses many hard problems apart from the issues of prototyping, specification, and reuse just discussed. Even with these technologies at hand, there must be some way of managing all the people, systems, and agencies involved. Although many project management systems are currently available, the enormous scope of the NII project means moving beyond the current state of the art (for example, PERT charts or MacProject). Managing large-scale projects requires facilities for coordinating independent activities with groupware and managing the project plans themselves. Collaboration and Group Software

To provide supportive environments for collaboration and group-cooperative work, software systems must provide participants in the collaboration with facilities for information sharing, virtual collocation, and task coordination. For example, coordination mechanisms could facilitate group discussions (possibly distributed in time, space, and participant background). Because organizations (and virtual communities) will likely be composed of a large and diverse collection of individuals, tools could inform users of recommended policies, procedures, and processes as well as facilitate the evolution of these guidelines and agreements.