Author Topic: Generate from Components  (Read 4990 times)

Owl Saver

  • EA User
  • **
  • Posts: 37
  • Karma: +0/-0
  • Never give up.
    • View Profile
Generate from Components
« on: July 11, 2007, 12:50:23 pm »
Based on my experience with EA and the documentation, code can only be generated from Classes and Packages. However, it seems to me that Components are really where code generation belongs. A component should represent something that will be implemented in the system. So, in Java terminology, a component could be a class, or a package. We could define classes in a class model but implement them as components. The component would then be the focus of code generation.

An advantage of this is that the class model could be organized and structured to best represent the problem domain. But, the components could be organized to represent the solution architecture.

Does this make sense? Any thoughts?
« Last Edit: July 11, 2007, 12:51:04 pm by michaelwacey »

Kevin G. Watson

  • EA User
  • **
  • Posts: 217
  • Karma: +0/-0
  • I love EVERYTHING including Microsoft
    • View Profile
Re: Generate from Components
« Reply #1 on: July 11, 2007, 02:14:09 pm »
Totally agree with you...

I thought I'd just inherited this thinking from using Rational RoseRT (which also gave us deployment and component instances, from which we could run simulations).

Kevin

thomaskilian

  • Guest
Re: Generate from Components
« Reply #2 on: July 12, 2007, 12:44:14 am »
I also like the way RR is (was?) doing that. One way to implement this in EA would be to have an Add-in that triggers code generation for all those classes related to a component. However, I think that Sparx should look into that part of RR to see how EA could be improved.

Get's my vote.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8607
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Generate from Components
« Reply #3 on: July 12, 2007, 01:59:34 am »
Yes, I came to the same conclusion when I built my first code generation automation for EA.

It seems to me that this would also help with the integration technologies (such as with VS and eclipse).  The VS Solution (for example) would be the source level component that controlled the creation of the binary level component(s).

Thoughts?

Paolo
[size=0]©2007 Paolo Cantoni, -Semantica-[/size]

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

Owl Saver

  • EA User
  • **
  • Posts: 37
  • Karma: +0/-0
  • Never give up.
    • View Profile
Re: Generate from Components
« Reply #4 on: July 12, 2007, 05:19:04 am »
Just to make sure we are all on the same page, here is a simple example of what I am thinking. Suppose you are building an Order Entry System. In the class model, I would expect to see packages like: Customer, Product, Order, Shipping, etc. Each package would have several classes that are included. They would also contain references to classes from other packages. For example, the Order package may have an Order and Order Line Item classes included in it. It would have references to Customer and Product classes.

In the component model, the structure would be more aligned to implementation architecture. There could be a package for the Presentation tier, the Business tier, and the Data tier. Components in these tiers could realize classes from many of the packages described above.

In essence, what I am looking for is that the relationship between components and classes will represent the transition from the business realm to the technical realm.

For me, this seems like an intuitive interpretation of UML. I am not sure why Sparx has not implemented this capability in EA.

The example above is overly simplified. For any large real world application, with many people on each team, the issues become far more complicated.

Take Care

thomaskilian

  • Guest
Re: Generate from Components
« Reply #5 on: July 12, 2007, 05:38:05 am »
Quote
I am not sure why Sparx has not implemented this capability in EA.

Good question.

For the rest we're in line. Maybe a version 9.0 will bring us something that resembles your suggestion. :-/