The tasks undertaken in mechanical design vary widely. It is, therefore, unrealistic to expect any one kind of CAD software to satisfy the needs of all types of design activities. The purpose of this paper is to identify certain significant design tasks and to develop functional requirements for CAD tools needed to support these tasks. There is also a variety of design software available, or under development, such as geometric modelers, feature based systems, parametric modelers, variational geometry sketchpads, and expert systems. This paper reviews the design environment of these generic systems in light of the functional requirements for various classes of mechanical design.