Book a Demo

Author Topic: Time-aware models: revert clone  (Read 10924 times)

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Time-aware models: revert clone
« on: April 19, 2018, 10:14:14 pm »
Hi boys & girls,

I can't find a function to revert a cloned element in a diagram, in other words destroy the cloned element and replace it in the diagram with the original.

Isn't there one?


/Uffe
My theories are always correct, just apply them to the right reality.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Time-aware models: revert clone
« Reply #1 on: April 20, 2018, 10:14:32 am »
Hi boys & girls,

I can't find a function to revert a cloned element in a diagram, in other words, destroy the cloned element and replace it in the diagram with the original.

Isn't there one?


/Uffe
As far as I'm aware there's not.  I can also tell you why (I think).  In my topic on TAM where I discuss sequential versus parallel cloning; when you clone an early version which has subsequent versions, you get the latest version ONLY.  The cloned element has NO memory of where it was cloned from and so you can't revert.  It doesn't know which version to revert to.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Time-aware models: revert clone
« Reply #2 on: April 20, 2018, 06:43:41 pm »
As far as I'm aware there's not.  I can also tell you why (I think).  In my topic on TAM where I discuss sequential versus parallel cloning; when you clone an early version which has subsequent versions, you get the latest version ONLY.  The cloned element has NO memory of where it was cloned from and so you can't revert.  It doesn't know which version to revert to.

Ah, but it does -- I'm reverting to the previous version. I'm not talking about parallel branches here, just a basic "undo check-out" if you will, of a single element.

The element I'm reverting has the special-dodgy-kludgy trace connector to its predecessor. Which diagrams that predecessor is in is easily checked, so restoring those occurrences to the cloned diagrams (where the predecessor has been replaced by the clone) should be no harder when reverting than when cloning the diagram in the first place.

I'm fully prepared to accept that you can't revert an element which has already been cloned in turn (ie has an inbound special-dodgy-kludgy trace relationship), but you should be able to back up from the head.

Amirite?


/Uffe
My theories are always correct, just apply them to the right reality.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Time-aware models: revert clone
« Reply #3 on: April 23, 2018, 12:44:44 pm »
Ah, but it does -- I'm reverting to the previous version. I'm not talking about parallel branches here, just a basic "undo check-out" if you will, of a single element.

The element I'm reverting has the special-dodgy-kludgy trace connector to its predecessor. Which diagrams that predecessor is in is easily checked, so restoring those occurrences to the cloned diagrams (where the predecessor has been replaced by the clone) should be no harder when reverting than when cloning the diagram in the first place.

I'm fully prepared to accept that you can't revert an element which has already been cloned in turn (ie has an inbound special-dodgy-kludgy trace relationship), but you should be able to back up from the head.

Amirite?


/Uffe
Hi Uffe,
I wasn't clear enough.  My point applies to BOTH sequential and parallel streams.  Each clone knows the predecessor clone, but NOT which version it was cloned from!

Say I have versions 1 to 5 in the model and the diagram I am using to clone has #2.  When I say clone to a new version it will place #5 on the diagram.

Now it doesn't know it came from #2 - so it can't revert to #2.  I'm not sure that reverting to #4 is what you're after.

Is that clearer?

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Nizam

  • Prolab Moderator
  • EA User
  • *
  • Posts: 320
  • Karma: +15/-2
  • Model Sharing - Simplified
    • View Profile
    • Professional Model Collaboration
Re: Time-aware models: revert clone
« Reply #4 on: April 23, 2018, 12:56:41 pm »
Serious discussion! but just wondering how about a baseline of the source and the target packages before cloning, and use that to revert back? ideally automated, but in absence of which can it be a manual effort?

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Time-aware models: revert clone
« Reply #5 on: April 23, 2018, 04:49:34 pm »
Serious discussion! but just wondering how about a baseline of the source and the target packages before cloning, and use that to revert back? ideally automated, but in absence of which can it be a manual effort?
Hi Nizam,

Unfortunately, at enterprise scale, this is unviable.  Anyway, as Uffe has said, it's a diagram, not package problem.  One way would be to make a copy of the diagram before cloning and then revert to the saved copy - if it didn't go correctly.  The underlying issue of what "Clone to NEW version" means needs to be clarified first.

In addition to the problem Uffe has mentioned, it could (and we have) be argued that if you change the clone on one diagram in a version branch, you should change the clone in ALL (or at least be given the option to select which diagrams should also be changed) the diagrams in the version branch.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Nizam

  • Prolab Moderator
  • EA User
  • *
  • Posts: 320
  • Karma: +15/-2
  • Model Sharing - Simplified
    • View Profile
    • Professional Model Collaboration
Re: Time-aware models: revert clone
« Reply #6 on: April 23, 2018, 06:27:38 pm »
Hi Paolo
Agreed its best handled within EA and cannot be manual at an enterprise level, but a clone results in not only changing the diagram, but also the packages (creating new elements, connectors, etc), hence thought this way.

I haven't explored beyond basic use-cases for TAM, and for my usage I couldn't understand it completely, so gave it a miss.

Thanks for clarifying.

Nizam

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Time-aware models: revert clone
« Reply #7 on: April 23, 2018, 06:45:02 pm »
I wasn't clear enough.  My point applies to BOTH sequential and parallel streams.  Each clone knows the predecessor clone, but NOT which version it was cloned from!

Say I have versions 1 to 5 in the model and the diagram I am using to clone has #2.  When I say clone to a new version it will place #5 on the diagram.

Now it doesn't know it came from #2 - so it can't revert to #2.  I'm not sure that reverting to #4 is what you're after.

I'm still not in complete agreement, but I think I see the problem here.

When you clone an element in a diagram, EA only replaces the predecessor with the clone in that diagram. I was unaware of this. This means that in a derived version of a model, you can have some diagrams with the clone and some with the predecessor (or not even "the" but "a" predecessor, chaining all the way back to the original).

This is insane.

If when cloning, the predecessor were replaced in all diagrams in the version of the model where the cloning takes place, and new relationships were created accordingly, the situation where both a clone and a predecessor are shown within the same model version could not arise. (At least, not without deliberately breaking the model.) And thus, reverting becomes possible.

Serious discussion! but just wondering how about a baseline of the source and the target packages before cloning, and use that to revert back? ideally automated, but in absence of which can it be a manual effort?

Only if the baseline functionality becomes time-aware.

At present, even with the best possible setup for baselines and TAM to coexist (a package which holds the baselines and only contains the original model package and its TAM clones, with no TAM clones existing outside that package), you can't use the baseline comparison function to see that one element is a clone of another. You only see a new element (the clone), with a new connector to a changed element (the predecessor).

The restore from baseline function would probably also need to understand what a TAM-clone is, and there would certainly need to be a specific "revert" or "un-clone" menu item.

Again, my basic point is that TAM is not integrated with other EA functions, and it shows.


Y'know, the more I look at this the more this whole thing looks like a concept demo that was deemed good enough for a trade show which somehow got shipped with no consideration for the fact that EA elements exist independently of diagrams -- one of EA's core features.


/Uffe
My theories are always correct, just apply them to the right reality.

Graham_Moir

  • EA User
  • **
  • Posts: 749
  • Karma: +10/-15
    • View Profile
Re: Time-aware models: revert clone
« Reply #8 on: April 23, 2018, 07:03:16 pm »

This is indeed a serious and very useful discussion. 

My conclusion - steer clear of time aware modelling for the foreseeable future. 

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Time-aware models: revert clone
« Reply #9 on: April 23, 2018, 07:23:08 pm »
This is indeed a serious and very useful discussion. 

My conclusion - steer clear of time aware modelling for the foreseeable future.
Well I think Paolo hit the nail on the head further up: what exactly is a clone supposed to be?

What is "cloning" supposed to mean for a package structure, a diagram, an element? Or even an element feature or tagged value, although I for one would happily accept the element as the smallest cloneable entity.

It seems like the only considered use case has a package with no child packages, and a bunch of elements which each occur in exactly one diagram. If that is the case, then that's a good start and extending the solution to take more complex use cases into account should be doable.

But as it is, TAM is not yet ready for prime time.


/Uffe
My theories are always correct, just apply them to the right reality.

Nizam

  • Prolab Moderator
  • EA User
  • *
  • Posts: 320
  • Karma: +15/-2
  • Model Sharing - Simplified
    • View Profile
    • Professional Model Collaboration
Re: Time-aware models: revert clone
« Reply #10 on: April 23, 2018, 08:19:51 pm »
Very good perspectives and analysis in this thread. This is the kind of discussion that could have given a perfect spec for the new feature.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Time-aware models: revert clone
« Reply #11 on: April 24, 2018, 09:54:58 am »
Very good perspectives and analysis in this thread. This is the kind of discussion that could have given a perfect spec for the new feature.
What ask the users what they want in a feature BEFORE you build it?  To paraphrase the ".Net Rocks" guys, "That's crazy talk!"

One of our senior architects was bemoaning a new "feature" that had been developed by one of our manufacturers on one of our production applications. "They build what they want to build and then wonder why it doesn't suit our needs.  They never asked anybody".

It seems to be an occupational hazard.

For our part, we have decided (and here I don't mean the "royal" we, I mean our Modeling Review Board) that this year we need to implement a proper cloning mechanism to help us keep track of what's going on in our enterprise-wide repository.  So given Sparx has developed a "cloning" mechanism of sorts, we need to be as compatible as we can with that.  Based on previous experience,  the feature design is not going to change significantly in the next little while.

Notwithstanding that the cloning mechanism is for our use (notionally), I could practice what I preach and open up a "crowd-sourced" requirements and use case thread - to help us specify what the mechanism should do and how it should behave.

Thoughts?
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Nizam

  • Prolab Moderator
  • EA User
  • *
  • Posts: 320
  • Karma: +15/-2
  • Model Sharing - Simplified
    • View Profile
    • Professional Model Collaboration
Re: Time-aware models: revert clone
« Reply #12 on: April 24, 2018, 10:24:42 am »
Can't agree more :).

Having a focus group and consolidating the suggestions would be a wonderful thing to do, Threads like these (hopefully without a lot of negativity :)) will be a great way to go.

We've been following(trying to) this approach for all our feature developments, where our partners and users share ideas and collaborate, and we've particularly found that to be an invaluable input in shaping our product.

Uffe

  • EA Practitioner
  • ***
  • Posts: 1859
  • Karma: +133/-14
  • Flutes: 1; Clarinets: 1; Saxes: 5 and counting
    • View Profile
Re: Time-aware models: revert clone
« Reply #13 on: April 24, 2018, 04:46:36 pm »
Notwithstanding that the cloning mechanism is for our use (notionally), I could practice what I preach and open up a "crowd-sourced" requirements and use case thread - to help us specify what the mechanism should do and how it should behave.

I'm in!

/Uffe
My theories are always correct, just apply them to the right reality.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Time-aware models: revert clone
« Reply #14 on: April 26, 2018, 04:59:13 pm »
Notwithstanding that the cloning mechanism is for our use (notionally), I could practice what I preach and open up a "crowd-sourced" requirements and use case thread - to help us specify what the mechanism should do and how it should behave.

I'm in!

/Uffe
OK, I'm "up to my neck in muck and bullets" right now, but I'll try to get something started soon.

If you like, PM me some requirements as you see them.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!