1. A method, comprising: processing a domain model of a system, the domain model including classes having attributes including relationship, external, and computed, wherein vertices for the system correspond to a respective one of the classes; generating a semantic model as an instantiation of the domain model; loading topology information based on the instantiation of the domain model and the relationship attributes; processing updates of the attributes; sending messages to a target vertex based on the processing of the updates of the attributes; determining the node in the semantic model that corresponds to the class of the target vertex; for each message for the target vertex; determining a semantic model node that corresponds to the expression described in the message as a first expression; updating the first expression; finding expressions that depend on the first expression; for each dependent expression; determining whether the found dependent expression is in the same class as the first expression; creating a new output message for a dependent vertex when the found dependent expression is not in the same class as the first expression; for the found dependent expression in the same class as the first expression: re-evaluating the found dependent expression; adding to a list of messages to be processed for a vertex corresponding to where the re-evaluated found dependent expression changes value; and generating a new external message if the found dependent expression is marked for export; and processing further attribute updates, wherein at least one of the relationships includes a hint as to whether first and second ones of the classes on either end of an associate relationship should share a vertex representation.