Knowledge-Based Systems (KBS) have been developed to deal with problems which are ill-structured and do not present themselves readily for ordinary procedural programming. Conventional KBS development shells provide environments which allow knowledge representation in a single form, such as rules. But in practice, design activities do not always involve similar processes and each lend itself to a different knowledge representation technique. This brings in the idea of a KBS development environment where different classes of tasks are performed by different generic components. A generic component is a program which can reason and arrive at solutions based on knowledge presented to it in appropriate form. This paper presents DEKBASE, a KBS development environment made using generic components and a number of knowledge representation and data abstraction schemes.