Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » UML2 » Should we immediately create inheritances at modeling stage ?
Should we immediately create inheritances at modeling stage ? [message #677747] Thu, 09 June 2011 05:28 Go to next message
Vlad Varnica is currently offline Vlad Varnica
Messages: 546
Registered: July 2009
Location: Milton Keynes - UK
Senior Member
I was talking few days ago with a disappointed UML user. He said to me that inheritance should be added at the end and certainly not at the beginning. He finally said that because of that UML and MDD are useless.

I don't fully agree with him but must admit he is not far from the truth.
My today's question which will be used later in specification requirements of the UML2 implementation is : Should we immediately create all inheritances at the modeling stage ?
Re: Should we immediately create inheritances at modeling stage ? [message #677791 is a reply to message #677747] Thu, 09 June 2011 07:55 Go to previous messageGo to next message
Thomas Neustupny is currently offline Thomas Neustupny
Messages: 75
Registered: October 2009
Member
Which modeling stage? Analysis, design, implementation (or whatever your methodology suggests)?

I'm not in favor of UML models that are "complete" (i.e. all code can be generated from it). Such models are just another representation of the code and make sense in an MDD environment only. So, my answer is: NO.
Re: Should we immediately create inheritances at modeling stage ? [message #677793 is a reply to message #677791] Thu, 09 June 2011 08:07 Go to previous messageGo to next message
Vlad Varnica is currently offline Vlad Varnica
Messages: 546
Registered: July 2009
Location: Milton Keynes - UK
Senior Member
Nice answer.
Thx Thomas
(no subject) [message #680753 is a reply to message #677791] Thu, 09 June 2011 12:32 Go to previous messageGo to next message
Ed Willink is currently offline Ed Willink
Messages: 4003
Registered: July 2009
Senior Member
Hi Thomas

On 09/06/2011 12:55, Thomas Neustupny wrote:
> Which modeling stage? Analysis, design, implementation (or whatever
> your methodology suggests)?
>
> I'm not in favor of UML models that are "complete" (i.e. all code can
> be generated from it). Such models are just another representation of
> the code and make sense in an MDD environment only. So, my answer is: NO.

Complete? NO. Creating another representation of the code is futile, and
too often over-diligent UML modeling is very counter-productive. How
many Eclipse (Modeling) committers would voluntarily include UML as a
dominant rather than occasional part of their developments?

Complete? YES. But NO is because UML cannot usefully model behavior
other than state machines. That is where M2M comes in. A new way of
looking at models, so that behavior is declared usefully and potentially
re-instating the algorithm dominance of pre-OO days that got lost when
the algorithm got distributed to classes. Let the M2M tooling distribute
the algorithm, create the contributing functions and guarantee
conflict-free scheduling that realises atomic transactions. Wave good
bye to private/protected/public and so many other 'advanced' C++/Java
OOisms; they're only needed to stop me breaking your code; a complete
irrelevance for code generated from useful abstractions. The current
textual M2M languages are of mixed quality. Unfortunately the graphical
M2M languages are far worse. Both are needed since different problems
merit different representation; some complex M2Ms are really easy to
understand when you draw UML-like before and after patterns. (One day I
might have time to progress my UMLX graphical UML M2M language.)

We badly need major investment in M2M.

Regards

Ed Willink
(no subject) [message #681716 is a reply to message #677747] Thu, 09 June 2011 13:10 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 25917
Registered: July 2009
Senior Member
Vlad,

Comments below.

Vlad Varnica wrote:
> I was talking few days ago with a disappointed UML user. He said to me
> that inheritance should be added at the end and certainly not at the
> beginning.
There's always a zealot with some extreme position to make. No doubt
inheritance is evil and should generally be avoided at all costs.
Object oriented languages were probably a big mistake and it's the
beginning of the end for them. In Java, "extends" and "implements"
should be deprecated.
> He finally said that because of that UML
Because of course its impossible to use UML without drawing inheritance
relationships. Oh wait, no, they're not manditory.
> and MDD are useless.
Because MDD is primarily drawing inheritance relationships in UML2. Oh
wait, that sounds like a stupid assertion...
>
> I don't fully agree with him but must admit he is not far from the truth.
No, actually, I mustn't. Certainly inheritance can be overused and
abused. Then then, it's possible to express profanity in any language...
> My today's question which will be used later in specification
> requirements of the UML2 implementation is : Should we immediately
> create all inheritances at the modeling stage ?
You should do what makes most sense for solving the immediate problem.
Many problems will require no inheritance at all...
(no subject) [message #681725 is a reply to message #677791] Thu, 09 June 2011 13:36 Go to previous messageGo to next message
Ed Merks is currently offline Ed Merks
Messages: 25917
Registered: July 2009
Senior Member
Thomas,

Comments below.

Thomas Neustupny wrote:
> Which modeling stage? Analysis, design, implementation (or whatever
> your methodology suggests)?
Indeed. Of course in many methodologies these stages are revisited
often so aren't really stages.
>
> I'm not in favor of UML models that are "complete" (i.e. all code can
> be generated from it).
I'm sure there are certainly cases where that might sense, but I don't
think that should be a holy grail goal...
> Such models are just another representation of the code
I agree. I think it's great to have views on the code, much like an
outline is convenient for navigation and a hierarchy view is a good way
to get a high-level sense of relationships between classes, but we
really don't need redundant representations.
> and make sense in an MDD environment only.
Clearly you have a very specific meaning for MDD in mind that's likely
very different from mine. I see the use of Xtext to define a DSL and
then using that DSL to implement a compiler/interpretter/code-generator
as MDD. I see defining an XML Schema to define an interchangeable
format for heterogeneous systems as MDD.
> So, my answer is: NO.
I'd be surprised if you really mean one shouldn't consider using
inheritance as part of one's repertoire for solving problems... Of
course it's entertaining to be controversial, especially for Vlad.
Re: (no subject) [message #682082 is a reply to message #681725] Fri, 10 June 2011 07:30 Go to previous messageGo to next message
Thomas Neustupny is currently offline Thomas Neustupny
Messages: 75
Registered: October 2009
Member
Ed wrote:
>> So, my answer is: NO.
>I'd be surprised if you really mean one shouldn't consider using
>inheritance as part of one's repertoire for solving problems... Of
>course it's entertaining to be controversial, especially for Vlad.

That's not what I meant, of course inheritance is to be used. So I change my answer to: not necessarily. Read my lips. Wink
Re: (no subject) [message #682214 is a reply to message #682082] Fri, 10 June 2011 12:13 Go to previous message
Ed Merks is currently offline Ed Merks
Messages: 25917
Registered: July 2009
Senior Member
Thomas,

I totally agree with that. Inheritance can always be used later in the
design/development as you notice the things that have much in common.

I find it frustrating that so often folks treat issues as though there
is only one problem to solve and there is only a choice between black or
white for solving it when in fact there are an infinite set of problem
domains and an infinite set of choices, all of them with various
trade-offs that make none of them obviously optimal.


Thomas Neustupny wrote:
> Ed wrote:
>>> So, my answer is: NO.
>> I'd be surprised if you really mean one shouldn't consider using
>> inheritance as part of one's repertoire for solving problems... Of
>> course it's entertaining to be controversial, especially for Vlad.
>
> That's not what I meant, of course inheritance is to be used. So I
> change my answer to: not necessarily. Read my lips. ;)
Previous Topic:MDD or CMD which to select ?
Next Topic:Should UML model be saved as EMF annotations in the java code ?
Goto Forum:
  


Current Time: Thu Jul 24 04:27:38 EDT 2014

Powered by FUDForum. Page generated in 0.02688 seconds