Book a Demo

Author Topic: import source directory  (Read 2265 times)

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
import source directory
« on: October 19, 2007, 01:20:09 am »
Hello,

since I am working with EA, I am asking me: Why are they doing the reverse engineering in that way.

For me it is not very productive in a team environment and even wrong in some point of view.

Sample:
Let's say we have package A and subpackage B in A and a class CB1 in B.

Thus we have the fully qualified class in the class model:

A.B.CB1 with A as the namespace root.

The class model, package A and package B are under version control.

Now let's say we have to reverse engineer class A.B.CB2.

What do we have to do:

checkout class model
checkout package A
checkout package B
select import source directory on the class model node and trigger reversengineering of A.B.CB2.

What's wrong with this process?
Doing it this way you block all other team members who wants to use the class model or the package A.
Or you can't do it, because you can not checkout the class model and package A because there is currently another team member working on.

And the process is even unnecessary.

Because nothing is modified in class model and package A.

The better solution would be:

Only checkout package B and trigger import source directory from that node.

But that's not possible in EA, because what you get in EA as a result is the following package structure.

A.B.A.B.CB2

And that's wrong.

What EA has to do is recognizing that I am reverse engineering the class A.B.CB2 and that belongs to the package which I am currently working on an thus NOT producing the additional (wrong package structure).
Why do I have a namespace root?

When I have a namespace root A and I am reverse engineering
A.B.CB2 than of course CB2 belongs to package B inside package A and not to A.B.A.B.CB2.

If it would be implemented that way I propose only the team members, which are sharing package B are blocked from the one who is currently working on B. All other team member are able to continue working.

If other packages would be impact by the reverse engineering
(e.g. other packages parallel to B) than the namespace structure is mixed in the source files and than of course other packages must be checked out from the user.

But in this case the developer has spreaded its source file in a wrong way I would say. OK, I don't want to discuss this. If you want to do it, do it, but than don't wonder about additionaly locks on the model due to aditional checkout packages.

To give you an impression from the scenario I am talking about: We did a reverse engineering of our existing classes
(10.000+). Reverse engineering lasted 4 full days.

The code is written from about 1.000 developers.
In this scenario, you cannot block the class model root and even some nodes below that level.

Regards
Michael