MetaCase Homepage
Forum Home Forum Home > > MetaEdit+
  New Posts New Posts RSS Feed - How to do tracing?
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

How to do tracing?

 Post Reply Post Reply
Author
Message
alev View Drop Down
Contributor
Contributor
Avatar

Joined: 08.Oct.2010
Location: Arnhem, NL
Points: 19
Post Options Post Options   Thanks (0) Thanks(0)   Quote alev Quote  Post ReplyReply Direct Link To This Post Topic: How to do tracing?
    Posted: 13.Oct.2010 at 14:48
Hi,

My client's business process needs to configure models at two levels:

1. Product features selectable by client -> configuration F
2. Inhouse parts that realize those features -> configuration P

Obviously the features and parts are fixed elements, organized in a library of features and a library of parts. These libraries are used to define Fs and Ps. For each F, multiple Ps are possible, each having its own quality/price ratio.

The essence of client's process is to find a P that is quality/price optimum for the client's customer and needs as little as possible custom-specific development/costs.

There are many features and even more parts, and many Fs and (especially) many Ps are possible. Unfortunately, this includes incomplete or redundant Ps. To help reduce the number of such unwanted Ps, we need tracing between the two levels. Specifically, tracing between parts and features; and tracing between F and Ps. Ideally, this tracing would be bidirectional.

What is the best way to do such tracing in MetaEdit+?

Thanks!
Back to Top
stevek View Drop Down
MetaCase
MetaCase
Avatar

Joined: 11.Mar.2008
Points: 643
Post Options Post Options   Thanks (0) Thanks(0)   Quote stevek Quote  Post ReplyReply Direct Link To This Post Posted: 13.Oct.2010 at 15:15
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.
Back to Top
alev View Drop Down
Contributor
Contributor
Avatar

Joined: 08.Oct.2010
Location: Arnhem, NL
Points: 19
Post Options Post Options   Thanks (0) Thanks(0)   Quote alev Quote  Post ReplyReply Direct Link To This Post Posted: 13.Oct.2010 at 17:10
Steven, your understanding is correct. There is many-to-many relationship between feature and part concepts. And there are functionally identical parts that differ in quality and manufacturing costs.

I do not have the numbers of parts at the hand, but the exploration space of P configurations is large enough that experts struggle with access to distributed information and maintaining information consistency.

I simplified the top modeling level: it actually contains functional specification of a product (which reflect features customer wants).

There is no intermediate level.

About modeling languages without gong into to many details:
F is a graph containing fs,
P is a graph containing ps.
Currently ps have property 'realization of' which is a collection of objects of f type. Graph P has property 'realization of' which value is Graph of F type. This takes care of unidirectional tracing upwards.

From technical point, I agree with you on preferring unidirectional links. However, when troubleshooting/optimizing a F/P pair, customer finds it convenient to navigate both ways (see all ps realizing an f and the other way around). Any advice on a MetaEdit+ unidirectional solution that can provide this 'bidirectional' effect? I guess, I can always fall back on a generated traceability report for a given configuration, as well as for a selected p or f?
Back to Top
stevek View Drop Down
MetaCase
MetaCase
Avatar

Joined: 11.Mar.2008
Points: 643
Post Options Post Options   Thanks (0) Thanks(0)   Quote stevek Quote  Post ReplyReply Direct Link To This Post Posted: 14.Oct.2010 at 12:49

Is there some kind of permanent library of all fs and ps? As a model or elsewhere?

Are F and P graphs made for an offer to a customer by simply selecting existing fs and ps? Presumably first by selecting fs, and then looking at what ps would satisfy these fs, and also satisfy the customer's desires for price, quality etc.
 
In that case you'd want:
  1. a good selection process for choosing fs to put in a new F
    • Easy enough: just have a library graph or graphs containing all fs, and either copy them from there, or use Add Existing... in F
  2. a generator for F to list all its fs and for each, all possible ps
    • Again, easy: use "foreach f", and within that use "do graphs" to go through the library of ps, listing all those that realize that f. Double-clicking each p in the listing will take you to it in the library, where you can check it out and if desired, copy and paste it into your P graph. If it makes life easier, the listing of ps can of course give more information about each p, so you can see straight from the listing which one you want (e.g. if each p has a Price property).

Try that first, and see how it works out.

The other option is to make type p have an id generator, so its name in the UI includes the fs that it realizes, e.g. "p1 [f1, f2, f3]". In the Type Browser you can then select type p and set a filter, *[*f1*, which will list just all the ps that realize f1. From the list you can see their properties, open them, and copy them for pasting in your graph P. I think the generator is the better solution, though, since you can see all the fs and realizing ps at once, and have more control over what information is shown and in what format.
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.05
Copyright ©2001-2022 Web Wiz Ltd.

This page was generated in 0.047 seconds.