J. Bowen and Dennis Bahler, A Language for Building Concurrent Engineering Design Advisors: An Extended Abstract, 8th Natl. Conf. on Artificial Intelligence (AAAI-90), Workshop on Concurrent Engineering Design, Boston, 1990.

Concurrent Engineering (also known as Simultaneous Engineering or Life-Cycle Engineering) is an approach to design which takes into account not just the functionality of a product but also its manufacturability, testability, maintainability, and so on. We aim to develop a generic programming technology which can be used to produce on-line design advisors that will encourage human designers to adopt a life-cycle perspective. To that end, we are using constraint networks to represent in an explicit way the mutually constraining influences that are exerted by a product's functionality, the material from which it is made, and the various processes involved in its manufacture, testing and maintenance. A constraint network is a collection of objects and a set of constraints that specify relationships which must be satisfied by the values that are assumed by the objects. A major attraction of these networks is that the constraints can support non-directional inference. This means that when values are acquired by any of the objects involved in a constraint, values can be inferred for other objects attached to the constraint. Thus, for example, a constraint network can capture the effect that a design decision has on manufacturing options. Equally, the same network could limit the designer's options if manufacturing decisions are made early on. Our research is aimed at developing a generic constraint programming language for Concurrent Engineering applications. Our methodology has been to develop a series of prototype languages, based on a study of the nature of life-cycle information in a variety of application domains.
(190kb PDF)