Book a Demo

Author Topic: Using "branch" elements  (Read 4853 times)

carolmika

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Using "branch" elements
« on: February 02, 2007, 08:46:43 am »
Hi,
I wish to know how to solve the following "branch" element problem:

I've an EA Project that has a central Repo who everybody share all elements; this repo is version controlled and there are many local EA Projects that represent each project.

Let's take "Class_01" and "Class_02" as example:

- Project_01 must to use Class_01 on version 1 and Class_02 on version 2.

- Project_02 must to use Class_01 on version 1 and Class_02 on version 1.

- Project_03 must to use Class_01 on version 2 and Class_02 on Version 2.

How could I represent these different scenarios if EA not allow the element versioning? Please, help me to solve this problem!!!

Carol

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Using "branch" elements
« Reply #1 on: February 02, 2007, 11:01:21 am »
Quote
Hi,
I wish to know how to solve the following "branch" element problem:

I've an EA Project that has a central Repo who everybody share all elements; this repo is version controlled and there are many local EA Projects that represent each project.

Let's take "Class_01" and "Class_02" as example:

- Project_01 must to use Class_01 on version 1 and Class_02 on version 2.

- Project_02 must to use Class_01 on version 1 and Class_02 on version 1.

- Project_03 must to use Class_01 on version 2 and Class_02 on Version 2.

How could I represent these different scenarios if EA not allow the element versioning? Please, help me to solve this problem!!!

Carol
Without internal EA version control it is not logically possible...

Don't use a central repository...  Use controlled packages and XMI import/export to create project/version specific XMI files to combine as each project requires it...

(Once Sparx fix the XMI round-trip problems - which is, hopefully, very soon)

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

carolmika

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Using "branch" elements
« Reply #2 on: February 02, 2007, 11:48:18 am »
Paolo,
Even if do not central, I cannot solve my problem!!!!
'Cause EA versioned the elements by packages!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Using "branch" elements
« Reply #3 on: February 02, 2007, 11:57:46 am »
YOU (since EA won't) have to manage the versioning and evolution.

You will need to balance the scope of the version controlled package against the ability to cross-reference the right versions of classes.

Then you will have to place each version of the exported XMI into it's own folder (preferably related to the version number) and then build a project specific model by importing the appropriate packages.

I never said it was easy...    ;)
Just that it was impossible with a central repository...  :-X

Correct use of the Local Path feature may help.

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

carolmika

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Using "branch" elements
« Reply #4 on: February 05, 2007, 03:09:40 am »
Hi Paolo,

Even if I separate the project using the XMI Import/Export, how can you manage each class element into the appropriate version?
For example, in the same package there is a Class in version 2 and a another Class in version 5! How could I replect it into EA + Version Control Tool?

Regards,
Carol

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Using "branch" elements
« Reply #5 on: February 05, 2007, 04:33:02 am »
Quote
Hi Paolo,

Even if I separate the project using the XMI Import/Export, how can you manage each class element into the appropriate version?
For example, in the same package there is a Class in version 2 and a another Class in version 5! How could I replect it into EA + Version Control Tool?

Regards,
Carol
Carol,

I said that you had create packages at the correct level of granularity to suit your needs.  It is NOT the absolute versions of the classes that matter but the way in which those items that are dependent upon them react to changes in one class or the other.

You may need to review your design for the correct level of cohesion and coupling.

We have classes evolving at different rates in the same package, but because of our design, the impact is manageable.  If you aren't able to separate out the packages into manageable groups of classes, then that may, in fact, be your problem.

Our system is made up of a number of subsystems, which contain assemblies, components and sub components.  They each (and the classes within them) evolve at different rates, but because of the cohesiveness and coupling of the designs, we limit the impact on the other parts.

Each project (Real project NOT EA project) gets its subset of the appropriate containers at the appropriate versions.  Some packages are in ALL projects, some are in Some projects, and others are project specific.  In your case, if you substitute Product for Project, you should be able to make the same statements.

It is not easy to manage, but it is manageable.

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

carolmika

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Using "branch" elements
« Reply #6 on: February 05, 2007, 04:59:25 am »
Hi Paolo,

Thank you for the explanation, but I still cannot realize this new package structure, I can only see 1 package per EA element!  ???

My main doubt is not only for the Project Documentation, but for the Product Documentation as well.
In governance concept, the information has to be visible and reusable, and I cannot find how to realize it using EA.

Could you give an example of what is your concept of package structure?
For example, supposing I've a Project A, what structure of packages you suggest? How do you generate the branch and reuse for other projects? To simplify, use the sample for classes elements...
Thanks!
Carol

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Using "branch" elements
« Reply #7 on: February 05, 2007, 08:59:32 am »
Quote
Let's take "Class_01" and "Class_02" as example:

- Project_01 must to use Class_01 on version 1 and Class_02 on version 2.

- Project_02 must to use Class_01 on version 1 and Class_02 on version 1.

- Project_03 must to use Class_01 on version 2 and Class_02 on Version 2.
Carol,

For the sake of some sanity, I'm going to define that Class_01 is in (controlled) Package_A and Class_01 is in (controlled) Package_B.  If this is not the case, then without explicit element versioning I don't really see any way out of your problem.  Your design is too intertwined.

Class_01 v1 is stored as XML in \Code\V1\Package_A.xml
Class_01 v2 is stored as XML in \Code\V2\Package_A.xml

Class_02 v1 is stored as XML in \Code\V1\Package_B.xml
Class_02 v2 is stored as XML in \Code\V2\Package_B.xml

You have an empty skeleton with (empty) packages: Package_A  and Package_B.

Project_01 takes Skeleton and imports \Code\V1\Package_A.xml and \Code\V2\Package_B.xml
Project_02 takes Skeleton and imports \Code\V1\Package_A.xml and \Code\V1\Package_B.xml
Project_03 takes Skeleton and imports \Code\V1\Package_A.xml and \Code\V2\Package_B.xml

Now, it is important that Class_01 v1 and Class_01 v2 have identical GUIDs...

And that any relationships between the two classes retain their GUIDs as the models evolve.  This is so that EA can recognise the elements and connections regardless of the version used.

I really don't think I can help any more.

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

carolmika

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Using "branch" elements
« Reply #8 on: February 12, 2007, 06:10:36 am »
Hi Paolo,
Thank you for your help!
I'll work on your comments...
Carol