1. A method for adapting a software application having a plurality of inter-dependent elements, said method comprising: representing precedence of adaptation of said elements as a directed acyclic graph where vertices are taken by elements and directed edges define precedence; defining a relationship table wherein each entry in said table includes: a respective pair of elements having a binary relationship or an element having a unary relationship, and at least one action; and adapting said application in response to one or more said elements being adapted by reference to a respective entry in said relationship table, according to a respective precedence and such that said at least one action is enforced.