This research focuses on two major issues related to the design, development, and implementation of machine fault diagnosis expert systems: (1) investigation of the actual cognitive process of human diagnostic experts, and (2) analysis of the current practices in the development of machine fault diagnosis expert systems. The investigation of the human diagnostic reasoning process has resulted in the abstraction and capturing of the human ability to learn, understand, and diagnose different machinery belonging to a particular class. The captured abstractions of human diagnostic expertise have been integrated with the expert system development expertise of knowledge engineers to provide a customized expert system shell for developing machine fault diagnosis expert systems. The designed machine fault diagnosis shell reduces the development time, effort and skill making use of generalized modules for knowledge acquisition, knowledge verification, application system generation, learning, explanation, and eliminates the burden of designing and developing each application diagnosis expert system separately. The developed shell has been validated by generating a prototype fault diagnosis expert system for a Cincinnati Milacron 786 robot.