Based on how the configuration software (rules engine) is developed, a distinction can be made between declarative or procedural software.
Depending on the type used, certain features may or may not be available.
Procedures arrive at the result sequentially, performing a series of procedures or operations in precise order. Many CPQ systems are based on procedural methodology.
Solutions are implicit in the structure.
The software acts as a “selector” moving on the branches of the product structure following a series of steps to arrive at the solution.
This type of approach, however, creates redundancies with the common parts (eg the “wheel” element can belong to both “auto” and “suspension”).
The logic is mixed with the code: input → logic → process execution
The declaratives configurator is named after the declarative language (much like that used in Excel) to perform operation on the data that is entered: the order, the sequence of entering the variables or the operations does not matter.
For those who work on orders with complex machinery systems, with many calculation iterations with multiple “dependencies” (i.e. some quantities that depend on others and recalculate the model), the declarative configurators greatly reduce the software customization time and offer processing capabilities unmatched when compared to procedural configurators.
The solutions are declared from the data provided.
The configurator chooses the solution based on the defined requirements (e.g. you want a car that travels at 250 km / h, 5 air-conditioned doors, in color white, etc.).