Abstract:KB/PL (requirement - engineering knowledge base/PL) is a persistence extension of the C+ + programming language, while adhering to the style of C+ +. In order to support persistence in RKB/PL, constraint declaration is introduced into the C+ + class declaration to facilitate user's monitoring of object state; the notion of cluster is introduced to capture the "set-of-objects" conception of class 3 set iterator, cluster iterator, cluster closure iterator are also introduced to support object query. RKB/PL run -time system facilitating these new language mechanisms is composed of a set of building class hierarchies, type information base interface functions, system service functions and also a set of system state tables. RKB/PL has been used to implement the RKB(requirement-engineering knowledge base) of the "software requirements assistant FRA"system.