The tendency for Non-Functional Requirements (NFRs) to have a wide-ranging impact on a software system, and the strong interdependencies and tradeoffs that exist between NFRs and the software project, leave typical existing software modeling methods incapable of integrating them into the software engineering. In this paper, we propose a metamodel which explicitly models FRs, NFRs, their refinements and their interdependencies. The metamodel, which is independent from any programming paradigm, is further transformed into a relational model which facilitates NFRs traceability using tracing queries implemented through “Datalog” expressions. The approach is illustrated on a case study.