Author: Grzegorz J. Nalepa and Igor Wojnicki
Version: Draft 2008Q3
ARD+ stands for Attribute Relationship Diagrams. It is aimed to be as the final ARD version for the official HeKatE project (grant).
The main concepts behind ARD+ are:
A(o) = d
, where A
is an attribute, o
is an object and d
is the current value of A
for o
Let there be given the following, pairwise disjoint sets of symbols:
O
– a set of object name symbols,
A
– a set of attribute names,
D
– a set of attribute values (the domains).
An attribute Ai
is a function (or partial function) of the form:
Ai:o → Di.
where o ∈ O
.
A generalized attribute is a function (or partial function) of the form
Ai:o → 2Di
, where 2Di
is the family of all the subsets of Di, to let the attribute take more than a single value at a time.
A relaxed attribute definition, regarding a single object can be stated as:
Ai: Ai → Di
.
A conceptual attribute A is an attribute describing some general, abstract aspect of the system
to be specified and refined.
Conceptual attribute names are capitalized, e.g.: WaterLevel
.
Conceptual attributes are being finalized during the design process, into, possibly multiple, physical attributes, see Def. finalization.
A physical attribute a is an attribute describing an aspect of the system with its domain defined.
Names of physical attributes are not capitalized, e.g. theWaterLevelInTank1
.
By finalization, a physical attribute origins from one or more (indirectly) conceptual attributes, see Def. finalization.
Physical attributes cannot be finalized, they are present in the final rules capturing knowledge about the system.
P
is a non-empty set of attributes representing knowledge about certain part of the system being designed.
Such attributes describe the property.
PS
is a property which consists of (is described by) a single attribute.
PC
is a property which consists of (is described by) multiple attributes.
A dependency D
is an ordered pair of properties
D1,2=[P1, P2]
,
where P1
is the independent property, and P2
depends functionally on P1
.
V
is an ordered pair of properties, such as:
V=[P1, P2]
,
where P2
is derived from P1
upon transformation.
A Design Process Diagram is a triple
R=[P,D,V]
where P
is a set of properties, D
is a set of dependencies and V
is a set of derivatives.
An Attribute Relationship Diagram
G
is a pair
G=[P, D]
,
where P
is a set of properties, and D
is a set of dependencies if there is a DPD G=[P,D,V]
.
The diagram constitutes a directed graph with possible cycles.
A Transformation Process History TPH
is a pair:
TPH=[P,V]
if there is a DPD G=[P,D,V]
.
The TPH
can be expressed as a directed graph with properties being nodes and derivatives being edges.
T
such as T: G1 → G2
, where G1
and G2
are both diagrams, the diagram G2
carries more system related knowledge, is more specific and less abstract than the G1
G2
constitutes a more detailed diagram levelTF
is a function which transforms a DPD R
into RTF
by transforming a simple property PS
consisting of a single conceptual attribute into a Pnew
, where the attribute belonging to PS
is substituted by one or more conceptual or physical attributes belonging to P
P
are more detailed and specific than attributes belonging to PS
R
into RTS
by transforming a complex property PC
into some number of properties (a set) Pnew
; appropriate dependencies and derivatives must be introducedP1 … Pr
have to be disjointPC
consists of have to belong to properties P1, … Pr
P1 … Pr
PC
consists of have to belong to [P1, … Pr]
DPC
have to be covered by dependencies in Dnew
PC
depends on some property Px
(or some property depends on it), such a dependence must be stated (in Dnew
) regarding at least one of the elements from Pnew
and Px
Ar
results in removing it from all already defined complex properties; if there is a simple property which regards such an attribute, it should be removed thenTemperature
depends on a property described by Time
Time
, can be more adequately described by a set of more detailed attributes: Date
, Hour
, season
, operation
, which more precisely define the meaning Time
in the designAn example of simple finalization is given in Figure:
thermostat_settings
Temperature
, is to be represented by an attribute thermostat_settings
Date
, Hour
, season
, operation
, is split into two properties described by Date
, Hour
, and season
, operation
appropriatelyseason
and operation
depend on Date
and Hour
The ARD+ design process based on transformations leads to a diagram representing properties described only by physical attributes
.
An example of such a diagram is given in Figure:
atts
stands for attributes):rule: condition atts | decision atts
Now, considering the ARD+ semantics (functional dependencies among properties), the corresponding rule prototypes are as follows:
rule: e | f, g, h
rule: a, b, c | d
Analyzing these cases a general prototyping algorithm has been formulated.
Assuming that a dependency between two properties is formulated as:
D(IndependentProperty,DependentProperty)
,
the algorithm is as follows:
D: D(F,T), F ≠ T
, from all dependencies present in the design,F
, that T
depends on: FT = [FTi: D(FTi,T), FTi ≠ F]
, F
and F
alone:TF=[TFi: D(F,TFi), TFi ≠ T, ¬∃ TFi: (D(X,TFi), X ≠ F )]
FT ≠ ∅, TF ≠ ∅
then generate rule prototypes:rule: F, FT1, FT2,... | T rule: F | TF1, TF2,...
FT = ∅, TF ≠ ∅
then generate rule prototypes:rule: F | T, TF1, TF2,...
FT ≠ ∅, TF = ∅
then generate rule prototypes:rule: F, FT1, FT2,... | T
FT = ∅, TF = ∅
then generate rule prototypes:rule: F | T
rule: a, b | x ; rule: a, b | y
can be merged into a single rule: rule: a, b | x, y