|
Let me check I'm understanding this right:
A feature contains many parts
E.g. f1 = {p1, p2, p3}
Can the same part be in many features? E.g. f2 = {p1, p7, p8}
Can a given feature actually be realised by several different sets of parts? E.g. f1 is a member of {{p1, p2, p3}, {p1, p2, p3a}, {p1, p5}} - i.e. p3a and p3 are functionally identical, and p5 does the same job as p2 plus p3.
A feature configuration F is a combination of multiple features
E.g. F = {f1, f2, f5}
A part configuration P is a combination of multiple parts
E.g. P = {p1, p2}
The maximum number of possible F's and P's is thus two to the power of the number of features or parts.
What kinds of numbers are we talking about, e.g. number of features, number of parts, number of parts per feature?
How much extra information does a feature have other than just the list(s) of parts that realize it?
Is there an intermediate level, e.g. a particular feature requires network support, and you have parts for ethernet and wireless, both of which contain the information that they provide network support?
Can you tell me anything about the modeling languages used to model Ps, Fs, ps and fs?
As you can tell by the questions, there are many possible ways to implement this in MetaEdit+, and it's a question of choosing the best solution for your problem domain and expected use process. There isn't a single "best way" in general, not even for a fixed set of modeling languages.
In general, I'd only build unidirectional links. Bidirectional either implies a pure tree or requires manual maintenance (whatever the tool). Given unidirectional links, you can always build the reverse mapping on the fly. I'd imagine that a feature simply refers to its parts; obviously that can answer all the questions, but it may not best reflect how your client relates to these concepts.
|