Patent ID: 7584079

Claim:
A method of configuring a product assisted by a computer comprising a number of components, the method comprising: providing, for each component, information relating to a group of alternatives for the component, defining rules relating to compatibilities between alternatives from different components, representing the rules in a Directed Acyclic Graph (DAG), the DAG including at least one node having at least two pointers pointing to the node, and iteratively configuring the product assisted by the computer by repeatedly: choosing a current component, when at least one of alternatives for the current component is selectable by a user, selecting selectable one of alternatives for the current component, checking the DAG whether the selected alternative is compatible with other selected alternatives of other chosen components, thereby the product being configured using all of the selected alternatives for all of the components, wherein the iterative configuring is ended when an alternative is chosen for each component and when the chosen alternatives of the components are compatible, and wherein the step of iteratively configuring the product further comprises: for each pair of component and alternative providing a classification of the state of the pair, adopting the classification to one of a list of outcomes comprising blocked, selectable, user selected, system selected, or forceable, providing a classification of blocked when the alternative cannot be chosen for the component even without considering choices of alternatives for other components, providing a classification of selectable when the alternative for the component is compatible with the chosen alternatives from the other components, providing a classification of user selected when the alternative has already been chosen for the component, providing a classification of system selected when the alternative is the only choice for the component that is compatible with the chosen alternatives from the other components and the alternative has not been chosen by the user, providing a classification of forceable when the alternative can be chosen for the component but is incompatible with some of the other choices of alternatives of the other components, and providing information on the classification to the user.