Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: eberline on July 12, 2019, 10:08:12 am

Title: incremental code import into a very large model
Post by: eberline on July 12, 2019, 10:08:12 am
Is it possible to perform an incremental code import, to both synchronize existing elements and import new ones? For our large project, a full re-import from source takes far too long to be practical for a nightly job. That's on a local .eapx repo; on a SQL Server repo over WAN, it would take days. (Even just doing a project transfer over WAN takes days; I'll be looking at PCS4 for WAN optimization, later.)

I tried temporarily removing from the source tree those files that haven't changed, but EA then considers those unchanged elements to be "not found in code". I was hoping it would instead ignore those elements, and only consider removing elements no longer found in their still-found source files.

I need an automatable workflow to control missing code elements separately from missing code files. Or some other way to accomplish incremental import, for example if EA would compare model element timestamps with source file timestamps.

Any suggestions?
Title: Re: incremental code import into a very large model
Post by: Mauricio Moya (Arquesoft) on July 20, 2019, 12:56:04 am
I've worked in several different environments in EA with different clients and definitely the worst option is to choose a workflow in which you need to export and import data from one model to another. In those cases the best way is to export lower-level packages (containing fewer elements), but the costs is to have more packages to export.

So, this is a nightmare from any point of view. The solution: restructure your strategy in order to avoid export and import. Maybe consider have a unique repository.

If you try to explain here why you need more than one repository we could help you to think different strategies.
Title: Re: incremental code import into a very large model
Post by: eberline on July 20, 2019, 05:12:45 am
the worst option is to choose a workflow in which you need to export and import data from one model to another.

If you try to explain here why you need more than one repository we could help you to think different strategies.

Hey, thank you for the response, but I think there's been a miscommunication.

By "import", I mean as reverse engineering of C++ code, not import of model packages from one repo to another. So the question is how to do that incrementally:
Just one EA model repository, shared (eventually) among our WAN-distributed team.

I hope this is a pretty common use case, and somebody must have solved it already; this can't be the first project needing a model in sync with a very large codebase under active and geo-distributed development. I may get lucky with the C# automation API, meanwhile... Help?!
Title: Re: incremental code import into a very large model
Post by: Mauricio Moya (Arquesoft) on July 20, 2019, 07:36:37 am
Do you use the native reverse engineering option in EA? have you ever tried the Visual Studio integration? https://sparxsystems.com/products/mdg/int/vs/index.html
Title: Re: incremental code import into a very large model
Post by: eberline on July 22, 2019, 06:12:23 am
Do you use the native reverse engineering option in EA? have you ever tried the Visual Studio integration?

I've been importing code via EA's UI, if that's what you mean by the native option:
   Code  →  Import  →  File  →  Import Source Directory...
And occasionally
   Code  →  Code Engineering  →  Synchronize  →  Synchronize Selected Element(s)

I tried MDG Integration years ago, but get the impression it's a dead end, or at least no longer under active development. It never seemed to track releases of Visual Studio very well. The latest install I found (version 5.0) was signed five years ago, and is only documented to support up to VS 2013 and Windows 7. I see the option to automatically sync when saving code files in VS, but no mention of doing so when code files are modified externally by for example a Perforce client. So even if MDG Integration works at all with Visual Studio 2015-2019 and Windows 10 and maybe the old Perforce SCC plugin for VS, I still don't see how it gets me any closer.

But again, I do appreciate the suggestion, thanks.