Book a Demo

Author Topic: Linking classes (Tables) in different packages  (Read 4648 times)

Stark

  • EA Novice
  • *
  • Posts: 6
  • Karma: +0/-0
    • View Profile
Linking classes (Tables) in different packages
« on: September 29, 2004, 04:09:33 am »
Hi

I'm newbie to EA and need advice for a specific problem. I have just started at a new company and will be working on a new architecture for an existing product.  

Like most legacy systems documentation varies from adequate at best to none existent.

The first thing I want to do is document the Oracle database and its 700 odd tables.

To make this more managable I want to seperate the system into packages in EA to represent different modules in the system and then create the UML equivalent of an ERD diagram for each.  

EA's reverse engineering functionality is a great help.

I want to produce the output in HTML form to place on an intranet site,

EA's HTML document output seems to work well around the splitting of a model into packages.  Each package having a seperate node in the tree diagram on the top left and a ERD diagram and table list on the bottom left pane.

However some tables span more than one module of the system.  Therefore I have duplicated tables in several packages.

Is there a way to link these so the changes to a table in one pacakge will be refelected in the same table in another?  Especially as regards the notes section for each field.

Am i using EA in the best way for this problem?

Sorry a bit of a long winded question, but any help at all would be appreciated. :)

CJ

  • EA User
  • **
  • Posts: 288
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #1 on: September 29, 2004, 04:54:43 am »
G'day Stark,

First, don't put the tables in separate packages!  That's the first thing I did, and it really messes up any later synchronization;  database synchronization expects all the tables in one package.  (If I am wrong here and there is something I missed, please let me know!)

When you import the database in some package, leave the tables in that package (call it your import package).  This is important for future synchronization and also really nice when producing HTML documentation: you have available a sorted list of hyperlink database table names.

To split your model into packages, don't move the tables into those packages.  Instead, create a class diagram in each package and show in that diagram only the tables that pertain to the package.

I've found this setup the best.  Again, though, if anybody knows something that I've missed, then please point out the error of my ways!

Thanks.
Cheers and best regards.

Stark

  • EA Novice
  • *
  • Posts: 6
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #2 on: September 29, 2004, 07:24:07 am »
Thanks CJ.

I thought that might be the case and I would have to import into the one package.

Its a shame though. I quite liked the hyperlinked list of tables for each seperate module (package) within the HTML output.

I'm not sure as yet whether or not I will be using EA to generate the DLL to create the database itself or maintain it that way.  Especially as I'm unsure of EA's ability to generate triggers and views.

But setting it up in the correct manner now will help if I decide to do that in the future

Cheers



CJ

  • EA User
  • **
  • Posts: 288
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #3 on: September 29, 2004, 11:03:18 am »
G'day Stark,

Quote
I quite liked the hyperlinked list of tables for each seperate module (package) within the HTML output


That's what I thought too at the start, until I realized that the one large list of all tables was more useful for our needs (i.e. one complete table directory to lookup table documentation).

For each of our packages, we wanted a diagram of the tables in the package.  We use the diagrams as the source for hyperlinking to table documentation when viewing documentation for a package.

One of our primary reasons for datamodeling within EA is the ability to link any software classes or components to tables so that we can at any time find out the impact on the software when/if we make changes to any table.

All that babbling aside, good luck to ya.
« Last Edit: September 29, 2004, 11:03:59 am by jasonv »
Cheers and best regards.

Stark

  • EA Novice
  • *
  • Posts: 6
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #4 on: September 30, 2004, 02:18:55 am »
CJ,

I see your point now and thinking about it that would seem a good Idea for my current problem.

However what I don't like is the Package Name prefix on the Class (Table) in the diagram in this case.

I.e if you have package and diagram called say "Schema"  into which all the table are imported and then you create another package for a module of the apllication and an associate class diagram then all table classes in that diagram have a prefix "Schema::".

Which doesn't really aid clarity for UML novices.
« Last Edit: September 30, 2004, 02:32:32 am by Stark »

CJ

  • EA User
  • **
  • Posts: 288
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #5 on: September 30, 2004, 04:43:56 am »
G'day Stark,

How about setting up the diagram to "not" highlight foreign elements?  Check out "set appearance options" in EA's help file index.  The option will show/hide package name prefixes on the diagram.
Cheers and best regards.

Stark

  • EA Novice
  • *
  • Posts: 6
  • Karma: +0/-0
    • View Profile
Re: Linking classes (Tables) in different packages
« Reply #6 on: October 04, 2004, 08:49:06 am »
Ah ha.  Easy when you know how.

Thats much better thanks.

Stark