| OCR Text |
Show 4 Taking the assumption that some scheme for model maintenance is necessary in a modeling system, the next two sections will describe two forms of automatic model maintenance. 1.4 Dependency Based Model Maintenance. A dependency is a functional relation between a set of objects in the model. For example: x :• f( a, b, c); explicitly states that object xis derived from, and depends on, the objects {abc). The dependency Is a record that when any of {abc) change, the value of xis no longer consistent with the model and needs to be recomputed. Recomputing the dependencies is called propagating dependencies. Changing a, b or c corresponds to the case above where a root of the model Is changed and the model requires updating. When a part of the model is rederived, the model and its set of dependencies must be updated. If the following statement is executed: x := q( d, e, f); then the new value of x replaces the old value of x and the new dependency relation replaces the previous dependency relation. The following model is a line derived from two points. Figure 1 is a graph of the model's dependencies. H there are no cycles in the derivation (i.e. the value of an object is never used to calculate its own value) then there are no cycles in the graph. In that case the graph is a Directed Acyclic Graph or DAG . zl :• . 2; yl :== .2; z2 .- . 6; y2 :• . 6; pl :• pt( zl, yl ); p2 :• pt( z2, y2 ); line : = lineThru2Pts ( pl, p2 ) ; H x1 is changed from .2 to .3, then p1 and line require recomputation. It is clear from the graph that nothing else in the model depends on x1 and therefore nothing else in the model |