Book a Demo

Author Topic: How utilize EA models in development process  (Read 4721 times)

vipasane

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
How utilize EA models in development process
« on: March 05, 2021, 12:05:15 am »
I am total newbie with EA have done few illustrations several years ago without any linking or automation what so ever.
As I understood there are more efficient ways to get more out from EA therefore I

As .NET developer my workflow has been something like this.

(Reverse Engineer from DB) --> C# Classes --> EF code First model with migrations --> Web API --> Swagger (OpenAPI)
Benefits of this approach is that I can do a change in one place and it is reflected from design to documentation
Now I would like to add EA as a part of this toolset while doing a greenfield project so that when I create a design document I could generate implementation based on it OR should I just put in the development effort and just import the results for documentation purposes

EA Model --> DB Model And Swagger

How would you create such a workflow? And what plugins or extensions one would need for that?
Are there any decent tutorials regarding this have found some but not really useful or up to date?

Few examples:
EA Model --> Generate Json --> Paste as Classes in Visual Studio + current work flow
OR
EA Model --> Interface --> Swagger (OpenAPI) --> Reverse engineer a client classes from swagger
« Last Edit: March 05, 2021, 12:13:08 am by vipasane »

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: How utilize EA models in development process
« Reply #1 on: March 05, 2021, 12:41:27 am »
It depends... Roundtripping does not work (as per my experience). There is a media break and no tool I know has overcome that. Make your design in EA and eventually export headers for classes. There is not much win in that as you can easily do that manually. So coding will run in parallel to UML design. Visualize your collaboration where the tricky parts are. Don't start graphical programming. There's a lot to tell and I'm too lazy to write it all down. But basically it boils down to the above. There can be frustration when creating SDs which can turn out to be tedious. Know the tool or have someone who knows it. That's essential. Starting from scratch without the one or other will give you a lot of grief. What also works is RE something with EA where you import stuff and re-do the missing documentation. Again, the media break is not easy and synching is not like just re-import and you're done. Often the re-import does not do what you expect. And then you have to consider the changes which must be reflected in behavior docs (like SDs) which can only be done manually.

So what's my advice? Good luck. Learn the tool (more luck with that). You can fail without EA easily. You will have different fails when using EA. For small projects it's fine. For large ones you need "something" and the choice is not as broad as it should be.

q.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How utilize EA models in development process
« Reply #2 on: March 05, 2021, 03:15:20 am »
You can do a whole lot of stuff, but most if will will require an investment in either time for manual processing, or in writing some kind of automated process to import/export stuff in/out of EA in some form.

Examples of processes I've seen working first hand (and for which I wrote part or all of the automation)

- Logical data model => compare and transform to physical database model (using Database Transformer addin) => generate DDL code for database (standard DDL transformation)
- Canonical XML schema model => message XML schema model (using schema composer + Message Composer add-in) => XSD code (standard XSD generation)
- Canonical Logical data model (UPCC3) => message model (using schema composer + Message Composer add-in) => XSD code (using Vienna.Be addin)

These processes are using in actual production systems, but they all required a significant investment in the tooling (which is good for me of course :))

Geert

vipasane

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: How utilize EA models in development process
« Reply #3 on: March 09, 2021, 11:37:05 pm »
thanks qwerty and Geert,

- Logical data model => compare and transform to physical database model (using Database Transformer addin) => generate DDL code for database (standard DDL transformation)
- Canonical XML schema model => message XML schema model (using schema composer + Message Composer add-in) => XSD code (standard XSD generation)
- Canonical Logical data model (UPCC3) => message model (using schema composer + Message Composer add-in) => XSD code (using Vienna.Be addin)

These processes are using in actual production systems, but they all required a significant investment in the tooling (which is good for me of course :))

These are exactly the things which I have done in my past with the help of EA models + plugins and therefore I was eager to learn if there are any tooling for swagger and JSON.
It is a bummer that we would loose a lot of information from our domain model since we have already a lot of things done within EA models like aliases which act as translations between documentation language and implementation.

Sine some kind of a JSON export option exists + VS paste JSON as classes, I will utilize that one as a one time option when moving from design to implementation.
And perhaps will import DDL from deployed Entity Framework model back to EA when first implementation phase is over.