This monograph describes a methodology for the design of knowledge-based systems. A knowledge-based system contains knowledge as well as information and data. The information and data in such a system can be modelled and imple mented as a database. The knowledge in such a system can be implemented either in a programming language or in an expert systems shell. This methodology has two distinguishing features. First, it is "unified". A unified methodology repre sents the data, information and knowledge in a homogeneous manner, as well as the relationships between them. Second, the methodology builds a maintenance mechanism into the design. In knowledge engineering terms, the representation used by this methodology to model knowledge bases applies equally to databases. In database terms, the representation used by this methodology to model databases applies equally to the database rules. The unified methodology unifies the design of the "knowledge base compo nent" and the "database component". "Unification" is achieved in five senses.