Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:present:ardplus_present [2009/05/12 19:48] jsi08 |
pl:miw:2009:present:ardplus_present [2019/06/27 15:50] (aktualna) |
* defining dependencies between the property and other existing properties at the //most detailed// diagram level, or | * defining dependencies between the property and other existing properties at the //most detailed// diagram level, or |
* adjusting appropriate past split transformations gradually (at previous diagram levels) to take this new property into consideration. | * adjusting appropriate past split transformations gradually (at previous diagram levels) to take this new property into consideration. |
* In the first case the dependencies are defined for the most detailed diagram level only; since there is a hierarchical design process (see Sec. [[ardplus#Hierarchical_Model|Hierarchical Model]]), these changes are taken into consideration at previous levels automatically. | * In the first case the dependencies are defined for the most detailed diagram level only; since there is a hierarchical design process (see Sec. [[#Hierarchical_Model|Hierarchical Model]]), these changes are taken into consideration at previous levels automatically. |
* The second case implies that the designer updates appropriate past splits in a gradual refinement process; stopping this process at more general level than the most detailed one, generates appropriate splits in all more detailed levels automatically. | * The second case implies that the designer updates appropriate past splits in a gradual refinement process; stopping this process at more general level than the most detailed one, generates appropriate splits in all more detailed levels automatically. |
| |
| |
<code> | <code> |
rule: condition atts | decision atts | rule: condition atts | decision atts |
</code> | </code> |
| |
{{ hekate:ard-case0.png?100x112 }} \\ | {{ hekate:ard-case0.png?100x112 }} \\ |
{{ hekate:ard-case1.png?100x112 }} | {{ hekate:ard-case1.png?100x112 }} |
| |
| ===== Rule Prototyping Algorithm ===== |
| |
Now, considering the ARD+ semantics (functional dependencies among properties), the corresponding rule prototypes are as follows: | Now, considering the ARD+ semantics (functional dependencies among properties), the corresponding rule prototypes are as follows: |
| |
rule: a, b, c | d | rule: a, b, c | d |
| |
| ===== Rule Prototyping Algorithm ===== |
| |
In a general case a subgraph in Figure: | In a general case a subgraph in Figure: |
is considered. | is considered. |
| |
Such a subgraph corresponds to the following rule prototype: | * such a subgraph corresponds to the following rule prototype: |
<code> | <code> |
rule: alpha, beta, gamma, aa | bb | rule: alpha, beta, gamma, aa | bb |
rule: aa | xx, yy, zz | rule: aa | xx, yy, zz |
</code> | </code> |
| |
| ===== Rule Prototyping Algorithm ===== |
| |
Analyzing these cases a general prototyping algorithm has been formulated. | Analyzing these cases a general prototyping algorithm has been formulated. |
* find all properties ''F'', that ''T'' depends on: \\ let ''F<sub>T</sub> = [F<sub>Ti</sub>: D(F<sub>Ti</sub>,T), F<sub>Ti</sub> ≠ F]'', | * find all properties ''F'', that ''T'' depends on: \\ let ''F<sub>T</sub> = [F<sub>Ti</sub>: D(F<sub>Ti</sub>,T), F<sub>Ti</sub> ≠ F]'', |
* find all properties which depend on ''F'' and ''F'' alone:\\ let ''T<sub>F</sub>=[T<sub>Fi</sub>: D(F,T<sub>Fi</sub>), T<sub>Fi</sub> ≠ T, ¬∃ T<sub>Fi</sub>: (D(X,T<sub>Fi</sub>), X ≠ F )]'' | * find all properties which depend on ''F'' and ''F'' alone:\\ let ''T<sub>F</sub>=[T<sub>Fi</sub>: D(F,T<sub>Fi</sub>), T<sub>Fi</sub> ≠ T, ¬∃ T<sub>Fi</sub>: (D(X,T<sub>Fi</sub>), X ≠ F )]'' |
| |
| ===== Rule Prototyping Algorithm ===== |
| |
* if ''F<sub>T</sub> ≠ ∅, T<sub>F</sub> ≠ ∅'' then generate rule prototypes: | * if ''F<sub>T</sub> ≠ ∅, T<sub>F</sub> ≠ ∅'' then generate rule prototypes: |
<code> | <code> |
* if there are any dependencies left goto step 1. | * if there are any dependencies left goto step 1. |
| |
Rule prototypes generated by the above algorithm can be further optimized. | ===== Rule Prototyping Algorithm ===== |
If there are rules with the same condition attributes they can be merged. | |
Similarly, if there are rules with the same decision attributes they can be merged as well. | |
For instance, rules like: | |
<code> | |
rule: a, b | x ; rule: a, b | y | |
</code> | |
can be merged into a single rule: ''rule: a, b | x, y'' | |
| |
The practical support form the ARD+ design method, including logical modelling, visualization, and the prototyping algorithm has been implemented in the VARDA. | * rule prototypes generated by the above algorithm can be further optimized |
| * if there are rules with the same condition attributes they can be merged; if there are rules with the same decision attributes they can be merged |
| * for instance, rules like: ''rule: a, b | x ; rule: a, b | y'' can be merged into a single rule: ''rule: a, b | x, y'' |
| * the practical support form the ARD+ design method, including logical modelling, visualization, and the prototyping algorithm has been implemented in the VARDA |
| |
===== Design Tool Prototype ===== | ===== Design Tool Prototype ===== |
| |
===== SPOOL ===== | ===== SPOOL ===== |