FLAME is a formal framework based on the Z specification language for the definition of analysis operations on software product lines using different variability modeling languages (VMLs).
FLAME is designed in two layers. The first one is the abstract foundation layer (AFL), which includes the definitions of abstract concepts (that can or must be redefined in the second layer), and 18 notation-independent, reusable analysis operations. The second layer is the characteristic model layer (CML), where the semantics of specific VMLs are specified.
The first VML specified in FLAME is the FODA-like basic feature model (BFM) notation, including the corresponding specification in the Z language and a reference implementation in Prolog. The reference implementation has been exhaustively tested using the BeTTy framework.