Book a Demo

Author Topic: Anyone forward engineer w/ EA?                      (Read 6414 times)

lipmanc

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Anyone forward engineer w/ EA?                    
« on: March 27, 2006, 07:32:08 am »
I'm a new EA user.  Starting to develop models for BA with clients, but am looking forward to leveraging EA's forward engineering (FE) capabilities over the long-term.  Here are just some of my questions...

At what point, e.g., with which models/diagram, do we get into models that will be used for FE?  (Is that even the right question???).  Is it during the BA, implementation modeling, etc?  Should I be doing anything differently now in anticipation of utilizing FE?  If not, when does it come into play?

Use Cases, Activity Diagrams, Sequence Diagrams, and class models are among the models that we expect to be using.  What role, if any, will these play with forward engineering?

What do I need to know to be able to set the expectations of others for the potential / effort related to positioning for forward engineering?

We are in a .Net world.  We'll be starting with a working prototype supporting a single customer and will evolve into a solution supporting tens to hundreds of users.  If we want the long-term benefits of FE, is it important to begin it with the prototype or is that something that makes more sense when the prototype is replaced (or evolved into... oh no!) the long-term solution?

I don't know enough about FE with UML to ask the right questions.  For those of you that have been there/done that, what are the questions that one should be asking in order to set expectations and minimize surprises in the future?
« Last Edit: March 29, 2006, 12:30:30 am by lipmanc »

jaimeglz

  • EA User
  • **
  • Posts: 164
  • Karma: +0/-0
    • View Profile
Re: Anyone forward engineer w/ EA?                
« Reply #1 on: March 29, 2006, 07:30:38 am »
Hi lipmanc,

This is a very short answer, but I hope to address your main concern. In EA, you can forward engineer classes and interfaces. If you are planning to use it for the long run, I would definetely recommend to understand how the code generating templates work: search for info on these templates in EA Help, and then bravely experiment with the templates themselves (Settings -> Code generation templates). Don't worry if you make a mistake, because you can always revert to the default tamplate.

Cheers,

Jaime

lipmanc

  • EA User
  • **
  • Posts: 29
  • Karma: +0/-0
    • View Profile
Re: Anyone forward engineer w/ EA?                
« Reply #2 on: March 29, 2006, 08:16:20 am »
Thanks.  That helps.  

If we want to FE in the long-term, how important is that we understand/tackle FEing when we start using EA?  Are we going to regret in the future (e.g., lots of re-work) if we do not spend time tyring to understand FEing until sometime after models are developed?

Do you (or anyone else) have experience with FE in EA such that you can comment whether or not it has proven to be worth the effort (assuming it's the right project for it)/

jaimeglz

  • EA User
  • **
  • Posts: 164
  • Karma: +0/-0
    • View Profile
Re: Anyone forward engineer w/ EA?                
« Reply #3 on: March 29, 2006, 08:39:30 pm »
Hi,

1. Through interviews and JAD sessions, you can interactively create a business process model, a conceptual (domain) class model, a use case model, and whatever else you need for analysis (requirements, org charts, etc.). You can now generate a good-looking, professional,  business and/or systems analysis documentation. This is great, but you can also…
2. From the conceptual model and use cases (and requirements, in general), you can derive a database model. This will be your most natural departing point for forward engineering your model: you can now generate your CREATE TABLE…, PKs, FKs, constraints… from a model that is visible to the whole development team (and that is also neatly documented for your stakeholders). This is even better that having just a good analysis and requirement documentation, and it is also fairly straight-forward, but you can also…
3. Build a class model for your windows, web pages, and so forth. You can now create operations that logically interface with your database (just copy the attributes from your tables and/or conceptual model...)  Forward engineering will initially generate skeleton code for these classes, and (as you get more and more proficient) your will generate readily-executable/compilable code. For .NET, you can manually write whatever is necessary, and reverse-engineer it into your classes.
4. If you are bold (or reckless enough), you can customize the code generating templates for your own needs. There is a learning curve, of course; so you have to balance between immediate and long-term gains.

Cheers,

Jaime
« Last Edit: March 29, 2006, 08:40:55 pm by jaimeglz »

KP

  • EA Administrator
  • EA Expert
  • *****
  • Posts: 2919
  • Karma: +55/-3
    • View Profile
Re: Anyone forward engineer w/ EA?     &
« Reply #4 on: March 30, 2006, 04:50:17 pm »
Quote
If we want to FE in the long-term, how important is that we understand/tackle FEing when we start using EA?

In theory, you can defer such considerations and create a platform-independent model (PIM). When you're ready to forward engineer, you can transform your PIM to a platform-specific model (PSM) from which you will generate code. EA has a number of defined transformations that you can use, or you can define your own.

Working this way, you don't have to worry about detail like "but Java needs one of these things here" and just get on with the job of creating a model that expresses your ideas.

Search for "MDA Transforms" in the EA helpfile for more guidance.

HTH
The Sparx Team
[email protected]

thomaskilian

  • Guest
Re: Anyone forward engineer w/ EA?                
« Reply #5 on: April 01, 2006, 10:44:50 am »
Neil is right in that he points you to MDA. I even use this to create parts of the PIM from a CIM. However, the more you rely on MDA, the more you are dependent on the underlying framework. It's quite a lot of work to produce such a framework, but once you have it, it will support much of your work - as long it permits this ;) Tools like AndroMDA work like that. As long as you stay on the road you're fast. But almost a bit abroad , you are lost.