Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: Richard Freggi on January 25, 2020, 09:16:26 pm

Title: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 25, 2020, 09:16:26 pm
In use case diagram, some use cases are shown as specialization of other use cases (Generalization relationship) and some actors are shown as specialization of other actors.
But neither specialized use case or actor inherits the associations or tagged values of the parent: nothing is visible in the relationship matrix (use case/actor using use case as link type), nor in the tagged value or relationships windows.
Is this a Sparx bug, or is this correct per UML standard  (I don't think so  but I may be wrong)?  Thanks!
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: qwerty on January 25, 2020, 09:46:17 pm
While I don't have a problem with generalizing Actors, I don't think that this is a meaningful concept for UCs since a UC should be a unique added value for the SUC. Generalization would be a contradiction to that paradigm and (in all cases I saw so far) just start of functional decomposition.

Anyhow, in V13.5 I see the inherited tags for actors. Probably a V15 issue.

q.

P.S. Just looked into V15.1 which also shows the inherited tag.

P.P.S. Cant tell anything about the RM since I never use it.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 26, 2020, 03:07:23 am
Thanks for quick reply, it helped!  p.s. I use v 1310.
I tried and tagged values are inherited by children, I was wrong.  What is not inherited is , but not associations (not shown in relationship matrix or in Relationship tab).  Since relationships are not inherited, relationship tagged values are also not inherited.
p.s. Qwerty, generalizations are very useful in use case diagrams (requirement analysis and stakeholder identification/categorization). You can generalize the common use case or actor and specialize the unique little variants that are important to different business models, geography etc.   Then when you negotiate/build consensus on requirement implementation you can divide and conquer the commonalities vs. the specialized needs.  This is why I need to show all inherited properties in my use case reports.  I'll write a custom query for this - cheers.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 26, 2020, 03:09:04 am
p.s. I think it's a Sparx bug - inheritance of associations should be implemented!
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 27, 2020, 08:37:29 pm
Although I fully agree wit this:
p.s. Qwerty, generalizations are very useful in use case diagrams (requirement analysis and stakeholder identification/categorization). You can generalize the common use case or actor and specialize the unique little variants that are important to different business models, geography etc.   Then when you negotiate/build consensus on requirement implementation you can divide and conquer the commonalities vs. the specialized needs.  This is why I need to show all inherited properties in my use case reports.  I'll write a custom query for this - cheers.

I am having some trouble visualising this:
Quote
I tried and tagged values are inherited by children, I was wrong.  What is not inherited is , but not associations (not shown in relationship matrix or in Relationship tab).  Since relationships are not inherited, relationship tagged values are also not inherited.
If I specialise or generalise an Actor and any associated use cases, I would not expect the generalised (or specialised) use case to have inherited all elements that make the use case being generalised (or specialised), including the relationship between the original Actor and Use Case.

For example, if I have an general Applicant actor consuming an "Applying for (something)" use case, and specialised the actor and use case twice, once as Mortgage Application and Applying for a Mortgage and again as Credit Card Applicant and Applying for a Credit Card, I would expect stand alone empty use cases as a result. Hence, not inhering the tagged values of any associations involving the specialised use cases and actors.

Am I missing something?

 
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 28, 2020, 02:13:49 am


If I specialise or generalise an Actor and any associated use cases, I would not expect the generalised (or specialised) use case to have inherited all elements that make the use case being generalised (or specialised), including the relationship between the original Actor and Use Case.

For example, if I have an general Applicant actor consuming an "Applying for (something)" use case, and specialised the actor and use case twice, once as Mortgage Application and Applying for a Mortgage and again as Credit Card Applicant and Applying for a Credit Card, I would expect stand alone empty use cases as a result. Hence, not inhering the tagged values of any associations involving the specialised use cases and actors.

Am I missing something?
Yes, if there is a further specialization of Mortgage Applicant (e.g. "Priority applicant"), then the Relationship window should show a relationship between Apply for a Mortgage and Priority applicant, because Priority applicant has inherited this association from its parent "Mortgage applicant".
Same for the use case: if there is a specialization use case "Apply for business facility mortgage", it should show an association with both Mortgage Applicant and Priority applicant, because it inherited them from its parent.
You would not want to show these associations in diagram, but you should see inherited properties in the window (and in the relationship matrix) so you can work on them.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 29, 2020, 12:56:09 am


If I specialise or generalise an Actor and any associated use cases, I would not expect the generalised (or specialised) use case to have inherited all elements that make the use case being generalised (or specialised), including the relationship between the original Actor and Use Case.

For example, if I have an general Applicant actor consuming an "Applying for (something)" use case, and specialised the actor and use case twice, once as Mortgage Application and Applying for a Mortgage and again as Credit Card Applicant and Applying for a Credit Card, I would expect stand alone empty use cases as a result. Hence, not inhering the tagged values of any associations involving the specialised use cases and actors.

Am I missing something?
Yes, if there is a further specialization of Mortgage Applicant (e.g. "Priority applicant"), then the Relationship window should show a relationship between Apply for a Mortgage and Priority applicant, because Priority applicant has inherited this association from its parent "Mortgage applicant".
Same for the use case: if there is a specialization use case "Apply for business facility mortgage", it should show an association with both Mortgage Applicant and Priority applicant, because it inherited them from its parent.
You would not want to show these associations in diagram, but you should see inherited properties in the window (and in the relationship matrix) so you can work on them.
You are right, insofar, as Sparx does not behave this way. We have tried something similar with v13 and it does not behave the way you described.

With regards to the "bug or UML standard" question, I am not sure if what you described is as per the UML standard and, somehow, have my doubts it is supported by the standard (but cannot yet articulate why). Somehow, this does not sound right:
Quote
then the Relationship window should show a relationship between Apply for a Mortgage and Priority applicant, because Priority applicant has inherited this association from its parent "Mortgage applicant"
The inheritance is likely to be indirect, through the generalisation and not direct. If you are suggesting the following:
I am not sure transitivity applies here, I am not sure the standard supports transitivity. Somehow transitivity does not sound right.


Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Paolo F Cantoni on January 29, 2020, 08:48:35 am
[SNIP]

The inheritance is likely to be indirect, through the generalisation and not direct. If you are suggesting the following:
  • B specialises A
  • A has and association to X
  • Therefore B should inherit the association to X
I am not sure transitivity applies here, I am not sure the standard supports transitivity. Somehow transitivity does not sound right.
B has a derived relationship to X via traversal.

Paolo
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 29, 2020, 11:42:27 am
Yes if A's association with X is a property of A, then B should inherit it I think
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 29, 2020, 08:23:46 pm
[SNIP]

The inheritance is likely to be indirect, through the generalisation and not direct. If you are suggesting the following:
  • B specialises A
  • A has and association to X
  • Therefore B should inherit the association to X
I am not sure transitivity applies here, I am not sure the standard supports transitivity. Somehow transitivity does not sound right.
B has a derived relationship to X via traversal.

Paolo
If we were dealing with certain types of relationships in ArchiMate 3 - e.g., dependencies - I am tentatively inclined to agree with you. But we are dealing with UML and, specifically, with generalisations and associations. Generalisations and associations are very different from dependencies, they are characterising.

Yes if A's association with X is a property of A, then B should inherit it I think
This is the bit I am not sure about. I am not sure inheritance of associations should be automatic. Take the following example, if I had chosen to create a model like:
It would not be a good idea to inherit 1 between Submarine and Wheel, because the model is incorrect.

I am sure the same can be done with Use Case but cannot think of a good example.

In short, inheriting certain types of relationships can result on a incorrect model.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Paolo F Cantoni on January 29, 2020, 11:36:44 pm
[SNIP]
This is the bit I am not sure about. I am not sure inheritance of associations should be automatic. Take the following example, if I had chosen to create a model like:
  • A Motor Vehicle has n Wheels(s) - <<Class>>Motor Vehicle related to a <<Class>>Wheel with an Association
  • A Car is a Motor Vehicle - <<Class>>Car related to a <<Class>>Motor Vehicle with a Generalisation
  • A Submarine is a Motor Vehicle - <<Class>>Submarine related <<Class>>Motor Vehicle with a Generalisation
It would not be a good idea to inherit 1 between Submarine and Wheel, because the model is incorrect.

I am sure the same can be done with Use Case but cannot think of a good example.

In short, inheriting certain types of relationships can result in an incorrect model.
As Mrs Beaton is reputed to have said (she actually didn't - I checked):
"To make Rabbit pie, first, catch your rabbit".

Define motor vehicle (your definition implies that it has AT LEAST one wheel)

A submarine has NO wheel (of this conceptualisation) therefore it CANNOT be a motor vehicle (via the Bjelke-Petersen "Duck" principle")

If a motor vehicle can have NO wheels, then a submarine is, INDEED, a motor vehicle with NO wheels.

I case my reset...

Paolo
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: qwerty on January 29, 2020, 11:44:31 pm
A hover craft is a motor vehicle, isn't it? Does it have wheels?

q.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Paolo F Cantoni on January 30, 2020, 12:40:37 am
A hovercraft is a motor vehicle, isn't it? Does it have wheels?

q.
FWIW, in English speaking countries, a motor vehicle is "an automobile, truck, bus, or similar motor-driven conveyance."

However, that's NOT the point I'm making.  If (as Modesto at least implied) a motor vehicle must have at least one wheel, then by definition (the "Duck" principle") then neither a submarine nor a hovercraft is a motor vehicle.  If a motor vehicle may have no wheels, then the relationship between a motor vehicle and wheels is moot (and, essentially, irrelevant) and therefore the problem "reductio ad absurdum".

Paolo
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 30, 2020, 01:46:26 am
"A Motor Vehicle has n Wheels(s) - <<Class>>Motor Vehicle related to a <<Class>>Wheel with an Association"

That's just a modeling fault that should be corrected as the model evolves.  Obviously not all motor vehicles have wheels.  The association between motor vehicle and wheel is wrong, it belongs to a child (possibly fairly down the hierarchy) of motor vehicle.

But ALL motor vehicles have a motor.  So association between motor vehicle and motor (motor type, power generated, efficiency etc.) would be a good association at the motor vehicle parent class.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 30, 2020, 04:12:42 am
I was missing a thread like this.

The choice of example was not accidental, but you may have guessed this already.

A motor vehicle is indeed "an automobile, truck, bus, or similar motor-driven conveyance", and conveyance is "the action or process of transporting or carrying someone or something from one place to another". So a submarine, a hovercraft, or a line cruiser are all motor vehicles because they "transport or carry something using" using a motor (and none of the have wheels).

Of course the model in the example is faulty, the fault was deliberately introduced to illustrate an example, but I am sure we all have being around long enough to see faulty models.

My point is that if you allow inheritance on a faulty model, you will get an even faultier model. Hence, I don't think that associations should be inherited when specialising and I don't think the standard supports this.

Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Glassboy on January 30, 2020, 07:11:23 am
But ALL motor vehicles have a motor.  So association between motor vehicle and motor (motor type, power generated, efficiency etc.) would be a good association at the motor vehicle parent class.

If I take the motor out of a motor vehicle (commonly done) does it magically become something else?
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Glassboy on January 30, 2020, 07:15:39 am
"A Motor Vehicle has n Wheels(s) - <<Class>>Motor Vehicle related to a <<Class>>Wheel with an Association"

That's just a modeling fault that should be corrected as the model evolves.  Obviously not all motor vehicles have wheels.  The association between motor vehicle and wheel is wrong, it belongs to a child (possibly fairly down the hierarchy) of motor vehicle.

But ALL motor vehicles have a motor.  So association between motor vehicle and motor (motor type, power generated, efficiency etc.) would be a good association at the motor vehicle parent class.

"motor vehicle" isn't your parent class.  Vehicle is your parent class.  Motor is also only one type of power source for your vehicle.  It's not actually that complex an ontology.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: qwerty on January 30, 2020, 07:41:25 am
But ALL motor vehicles have a motor.  So association between motor vehicle and motor (motor type, power generated, efficiency etc.) would be a good association at the motor vehicle parent class.

If I take the motor out of a motor vehicle (commonly done) does it magically become something else?

Yes. A wreck.

q.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Glassboy on January 30, 2020, 08:29:36 am
Actually pondering this, "motor vehicle" is probably an externality to the ontology.  It's a set of rules - within a particular jurisdiction - that allows anything with a motor to be given a licence to operated on a public right of way.

Which explains why so much of the conversation to this point has involved a categorical mistake.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: KP on January 30, 2020, 11:01:50 am
In use case diagram, some use cases are shown as specialization of other use cases (Generalization relationship) and some actors are shown as specialization of other actors.
But neither specialized use case or actor inherits the associations or tagged values of the parent: nothing is visible in the relationship matrix (use case/actor using use case as link type), nor in the tagged value or relationships windows.
Is this a Sparx bug, or is this correct per UML standard  (I don't think so  but I may be wrong)?  Thanks!


The Relationship Matrix doesn't show inherited associations (or any kind of connector), nor does the Relationships window. This is true for any kind of element: use case, actor, class etc. Doesn't mean that the association isn't inherited though; it is, but to find out what associations are inherited you will need to traverse the inheritance tree.

Inherited tagged values are listed in the "Tags" tab of the Properties window for all element types, and will be displayed on diagrams if you enable the compartment (you may need to switch to Rectangle notation).
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 30, 2020, 10:03:28 pm
Actually pondering this, "motor vehicle" is probably an externality to the ontology.  It's a set of rules - within a particular jurisdiction - that allows anything with a motor to be given a licence to operated on a public right of way.

Which explains why so much of the conversation to this point has involved a categorical mistake.
Interesting comment and thanks for bringing it up, there is some externality to this ontology. It is possible that in certain jurisdictions an electric bicycle or a motorised scooter could be categorised as motor vehicles. But I also think that there is more to this ontology than just externality: horses, mules and even humans - think humans carrying babies on their backs - can be used to “convey somebody or something” and they probably will not be classed as vehicles.

2 other points.

Firstly, the same model without the deliberate categorical mistake could look like
“Vehicle” relating to a “Conveying something or somebody Use Case”
“Motor Vehicle” specialising “Vehicle”, associated to or composed of “Motor”, and using a “Conveying something or somebody by motor” Use Case
“Car” specialising “Motor Vehicle”, associated to/or composed of “Wheel” and using a “Conveying something or somebody by car”
“Non Motor Vehicle” specialising “Vehicle” and using a “Conveying something or somebody without using a motor”
“Sail Boat” specialising “Non Motor Vehicle”, associated to or composed of “Sail” and using a “Conveying something or somebody by sail boat” Use Case

In this example, Richard´s inheritance will work perfectly but this is just because the model is not faulty.

Secondly, I am not sure what KP means with this
[SNIP]
Doesn't mean that the association isn't inherited though; it is, but to find out what associations are inherited you will need to traverse the inheritance tree.
But KP is alluding to an important and subtle difference between inheritance and  traversing the inheritance tree. My understanding is that this thread is about inheritance and not about traversing the inheritance tree. Being able to traverse the inheritance tree does not mean that an element at the bottom of the tree will inherit relationships to something at the top of the tree.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 31, 2020, 02:24:47 am
In use case diagram, some use cases are shown as specialization of other use cases (Generalization relationship) and some actors are shown as specialization of other actors.
But neither specialized use case or actor inherits the associations or tagged values of the parent: nothing is visible in the relationship matrix (use case/actor using use case as link type), nor in the tagged value or relationships windows.
Is this a Sparx bug, or is this correct per UML standard  (I don't think so  but I may be wrong)?  Thanks!


The Relationship Matrix doesn't show inherited associations (or any kind of connector), nor does the Relationships window. This is true for any kind of element: use case, actor, class etc. Doesn't mean that the association isn't inherited though; it is, but to find out what associations are inherited you will need to traverse the inheritance tree.

Inherited tagged values are listed in the "Tags" tab of the Properties window for all element types, and will be displayed on diagrams if you enable the compartment (you may need to switch to Rectangle notation).

Thank you.  I understand the relationship matrix limitation.  But I'm querying the tags by SQL and I'm checking the tags in the use case properties and in my case (EA v. 1310) they are definitely NOT inherited for use cases and/or actors as described in my original post.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Geert Bellekens on January 31, 2020, 03:17:32 am
In EA the "inherited" tags are only a visual GUI thing.
The tags are never really duplicated, which you see when you query the database.

And I think that is a good thing. If I you need "inherited" tags in your SQL queries you'll have to climb the inheritance tree yourself (which is completely doable)

Same goes for inherited associations, attributes or operations. EA might sometimes visually show them (attributes and operations at least) but they still are only defined on the parent.
I don't see a use case for copying "inherited" anythings to the child entities.

Geert
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Glassboy on January 31, 2020, 07:59:49 am
Actually pondering this, "motor vehicle" is probably an externality to the ontology.  It's a set of rules - within a particular jurisdiction - that allows anything with a motor to be given a licence to operated on a public right of way.

Which explains why so much of the conversation to this point has involved a categorical mistake.
Interesting comment and thanks for bringing it up, there is some externality to this ontology. It is possible that in certain jurisdictions an electric bicycle or a motorised scooter could be categorised as motor vehicles.

Anything with a motor using a road is generally captured under the legislation.  There's generally specific rules on bicycles and scooters.  However things like ride-on lawn mowers and motorised sofas do run into trouble all the time.

You may have thought I was being flippant, but I worked for central government for a long time and it is a really common to see problems with data models because people have assumed a common language definition not a legal definition.  For example people might assume a building is something with a roof, whereas the law regards it as something capable of bearing a load.

No business or industry is free of regulation and at some stage assumptions will bite hard.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Paolo F Cantoni on January 31, 2020, 08:57:14 am
[SNIP]

But KP is alluding to an important and subtle difference between inheritance and traversing the inheritance tree. My understanding is that this thread is about inheritance and not about traversing the inheritance tree. Being able to traverse the inheritance tree does not mean that an element at the bottom of the tree will inherit relationships to something at the top of the tree.
Precisely what do you mean here Modesto?

A couple of points...
1.  I've held true to the old UML injunction, a named association end IS an Attribute.
2.  Inheritance includes the ability to remove non-essential attributes from the descendent as well as adding and modifying attributes.

Consequently, if there is a different set of attributes in the descendent than the ancestor, then the relationship set WILL differ - but in a very controlled way. 

In this view, just enunciated, inheritance and the traversal of the inheritance tree are (more or less) one and the same.

Paolo
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: skiwi on January 31, 2020, 09:00:43 am
(via the Bjelke-Petersen "Duck" principle")

You had to be there, see DuckSpeak (https://en.wiktionary.org/wiki/duckspeak) and Duck Test (https://en.wikipedia.org/wiki/Duck_test).
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Paolo F Cantoni on January 31, 2020, 09:10:53 am
[SNIP]
 
Anything with a motor using a road is generally captured under the legislation.  There are generally specific rules on bicycles and scooters.  However, things like ride-on lawnmowers and motorised sofas do run into trouble all the time.

You may have thought I was being flippant, but I worked for central government for a long time and it is really common to see problems with data models because people have assumed a common language definition, not a legal definition.  For example, people might assume a building is something with a roof, whereas the law regards it as something capable of bearing a load.

No business or industry is free of regulation and at some stage, assumptions will bite hard.
Hi Glassboy,

It's usually pretty clear when you're being flippant - and this wasn't one of them.

Your point is well taken about "common" language definitions.  Firstly there's NO such thing.  Secondly, the definition has to be consistent with the structure of the model.  ("It's better to be consistently wrong than inconsistently wrong" - Paolo Cantoni)

This is why for decades now, I have included a formal, rigorous (and, I hope, industrial-strength) ontology with my models. So it's as crystal clear as I can make it as to what is meant and their interrelationships.

Regulatory and Statutory inputs are vital to that process.  I am always amazed at the lack of awareness of businesspeople as to the models of the statutes, regulations and rules that impact their business.

"if you control the portion of the model, you can be a bit lax in your modelling, if you DON'T own that portion, you have to be more rigorous in your modelling (and obtain input from the owner of that portion)"  - Paolo Cantoni

Paolo
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: KP on January 31, 2020, 11:04:55 am
Secondly, I am not sure what KP means with this
[SNIP]
Doesn't mean that the association isn't inherited though; it is, but to find out what associations are inherited you will need to traverse the inheritance tree.

I think I was making the point that inheritance may not look how the OP expects it. Sometimes it just looks like a Generalization connector between two elements. The point of inheritance is not for the modeling tool to bring everything down the inheritance tree and show it all in the one place; it's to arrange the complexity so each individual element only shows its differences.



But I'm querying the tags by SQL and I'm checking the tags in the use case properties and in my case (EA v. 1310) they are definitely NOT inherited for use cases and/or actors as described in my original post.

Yes, they will only appear in the t_objectproperties table if explicitly overridden. Otherwise you will need to recurse up the tree to get the full list of inherited tagged values.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Richard Freggi on January 31, 2020, 01:04:29 pm
Thank you very much, now I understand.  I had the wrong expectation and did not know as Geert points out, that In EA the "inherited" tags are only a visual GUI thing.
It makes sense now.  I need to rely on "you will need to traverse the inheritance tree" as KP says.

Secondly, I am not sure what KP means with this
[SNIP]
Doesn't mean that the association isn't inherited though; it is, but to find out what associations are inherited you will need to traverse the inheritance tree.

I think I was making the point that inheritance may not look how the OP expects it. Sometimes it just looks like a Generalization connector between two elements. The point of inheritance is not for the modeling tool to bring everything down the inheritance tree and show it all in the one place; it's to arrange the complexity so each individual element only shows its differences.



But I'm querying the tags by SQL and I'm checking the tags in the use case properties and in my case (EA v. 1310) they are definitely NOT inherited for use cases and/or actors as described in my original post.

Yes, they will only appear in the t_objectproperties table if explicitly overridden. Otherwise you will need to recurse up the tree to get the full list of inherited tagged values.
Title: Re: Use case and actor inheritance does not work: bug, or not UML standard?
Post by: Modesto Vega on January 31, 2020, 08:10:33 pm
[SNIP]
You may have thought I was being flippant, but I worked for central government for a long time and it is a really common to see problems with data models because people have assumed a common language definition not a legal definition.  For example people might assume a building is something with a roof, whereas the law regards it as something capable of bearing a load.

No business or industry is free of regulation and at some stage assumptions will bite hard.
Glassboy, I did not think that you were flippant. I know from experience, similar to yours, that you raised a very important point (even when you removed the motor because at that point the motor vehicle may become waste, even a hazard, and there are  of regulations about waster.

So no worries there and thanks for bringing that important point up.

[SNIP]
Precisely what do you mean here Modesto?

Well I am going to
1) quote/paraphrase here (and hopefully I would not get in trouble):
[SNIP]
I don't see a use case for copying "inherited" anythings to the child entities.
[SNIP]
The point of inheritance is not for the modeling tool to bring everything down the inheritance tree and show it all in the one place.
2) Paraphrase you, inheritance is traversal and should be used in a very controlled way

3) And, add inheritance is not transversal, the inheritance tree is traversed via generalisations/specialisations and only structural characteristics of the traversed objects (including operations) are inherited. Inheriting other relations, the things at their end together with their properties is potentially transversing (jumping to) to another semantic area nor traversing. In short, inheritance has to be kept within a semantic area.