Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - eberline

Pages: [1] 2 3
1
Bugs and Issues / autosize keyboard shortcut (Alt-Z)
« on: December 04, 2019, 11:34:46 am »
Docs say that multiple elements must be selected in order for autosize to be available via context menu, but seem to suggest that it should be available via the ribbon and the Alt-Z shortcut even with only a single element selected.

https://sparxsystems.com/enterprise_architect_user_guide/15.0/modeling/resizeelements.html
https://sparxsystems.com/enterprise_architect_user_guide/15.0/modeling/autosizeelements.html

The ribbon access is always there (Layout > Diagram > Select > Autosize Selected Elements).
But Alt-Z only works if multiple elements are selected.

Is this a defect in documentation, or in implementation?
Is there a reason why it should matter how many elements are selected?

2
Uml Process / Re: object prototypes
« on: September 25, 2019, 05:33:22 am »
These instances are NOT objects.  Objects are run-time instances of a specifying Class.

It's common among game engines that runtime supports design activities. A title is developed with the engine running "editor mode", and then played with a constrained & optimized build running "game mode". The same prototype instances are deserialized and then cloned, both in editor mode and game mode.

But...

That a new game object is instantiated by cloning its prototype, rather than by invoking a conventional constructor, is an implementation detail. So modeling these prototypes as classifiers related by «prototype» generalizations does seem more useful than as instances related by e.g. «prototype» dependencies. (For this model view's intent/audience.)

These instances have lifetimes outside the run-time.

(Wouldn't that would be true of any persistent object, e.g. in an object-relational database?)

Cheers,

3
Uml Process / Re: object prototypes
« on: September 20, 2019, 08:45:39 am »
Thanks, Paolo, I really like that better already.
I'm going to work with that approach and see how it feels.

Cheers,

4
Uml Process / object prototypes
« on: September 20, 2019, 04:51:59 am »
Given instances of the same type, in which one is a prototype that only provides default attribute values for the others which then may override some of those defaults, how should that sort of relationship between instances be modeled?

(The context is large-scale game development, in which level designers and other non-programmers use the prototyping architecture to specialize game objects without creating subclasses and recompiling.)

Thanks for any tips. A custom stereotype on a dependency is the best I could come up with.

Cheers,

5
Uml Process / Re: switch all Sparx users to read only mode
« on: July 26, 2019, 08:00:35 am »
Wow. What kind of WAN is that? Think of using pigeons with USB sticks attached. They have a much greater bandwidth!

San Francisco  <-->  Montreal, Quebec; current ping is 66 ms.

(IPoAC? God-like MTU, but reportedly up to 55% packet loss and terrible latency.)

6
Uml Process / Re: switch all Sparx users to read only mode
« on: July 26, 2019, 04:34:55 am »
PS. 4 days for a database transfer? How big is your database? The models I've worked with transferred to .eap file from 5 minutes to 45 minutes, but never longer.

3-4 days is about how long it recently took to transfer my .eapx to SQL Server over WAN, w/o Cloud Services or WAN Optimizer or anything like that. The .eapx was about 1/2 GB.

are you using the old Access97 (Jet 3.5) for your .EAP file?  You should switch to the Jet 4.0 engine and the Access2000 .Eapx files.  They should be able to accommodate a large repository.  Did you see our test?  Our .eapx files are over 1GB before compressing.

Interesting... I took Sparx at their word in their 2014 whitepaper and elsewhere asserting that for Jet formats, "less than 30-40 mb is recommended".


7
General Board / Re: incremental code import into a very large model
« 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.

8
General Board / Re: incremental code import into a very large model
« 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:
  • importing from just e.g. a few dozen files that have changed in the last {n} hours, not all of the tens of thousands of files;
  • removing elements that were in updated files but are no longer there; and,
  • removing elements that were in deleted files.
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?!

9
Suggestions and Requests / Re: С++14/17/20 Reverse engineering
« on: July 16, 2019, 03:51:12 am »
I'd vote for this. C++20 is maybe a bit much to expect in 2019, but C++17 was ratified and published over a year and a half ago, and it's not like it was sneaking up on anybody back then either.

10
Uml Process / Re: Code importing exception
« on: July 13, 2019, 05:46:01 am »
You delete them after the import.

Parse a ton of unwanted elements and resolve all their relationships, only to immediately delete them?
On a large model, it's much faster to temporarily move folders outside the source tree.
For individual header files, temporarily rename with a non-C++ filename extension, e.g. *.h_exclude.

(I note in another thread, this doesn't work well for incremental imports.)

11
General Board / incremental code import into a very large model
« 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?

12
General Board / Re: XMI import problem
« on: October 23, 2018, 09:11:45 am »
Although the Microsoft support article doesn't mention it, I needed to restart Windows before the larger MaxLocksPerFile value seemed to take effect. Once I'd done that, all good. FWIW.

(I was getting those pesky DAO errors pasting a diagram.)

13
What's the best way to model, and explore within EA, a hierarchy of Solution Explorer filter folders from Visual Studio?

I need to model legacy code currently arranged in solution explorer folders, filesystem folders, and C++ namespaces. The three hierarchies are not orthogonal, but not isomorphic either. Anybody have a preferred modeling pattern/practice for this?

What I've been doing is manually creating a package structure that aspires to somehow unify the C++ namespaces and solution explorer folders. C++ namespaces have packages, and if pretty much isomorphic to a solution explorer folder, I use the latter as a package alias. For a solution explorer folder not isomorphic to a C++ namespace, I make it its own package but set "Suppress Namespace". Then I import whatever C++ headers are assign to a solution explorer folder within whatever model package represents that folder (either as itself or as a C++ namespace alias). In this manner I get a model that is somewhat useful as a starting point, but only that. I generally have to manually fix various relationships, because the solution explorer folders are just this fiction not actually represented in the C++ source code that was imported.

For policy and/or institutional cultural reasons, C++ namespaces are pretty coarse-grained and historically not really encouraged. Likewise with source filesystem folders. Whether I had EA's importer assign a package per C++ namespace or per filesystem folder, either way if I just ignored the solution explorer folders entirely, the model package hierarchy would be overly flat, with enormous packages serving as dumping grounds for hundreds of elements.

For better or worse, the VS folder hierarchy does embody much of the design. Round-tripping isn't needed at this time, but being able to re-sync the model to updated source code would be great.

Any suggestions? Thanks for reading.

14
Suggestions and Requests / hide specific return types
« on: May 14, 2016, 07:37:35 am »
Diagram properties -> Features -> Feature Options -> Show Operation Return Type

This really wants a subordinate property to hide specific operation return types. For example, the types 'void' for Java/C#/C++ and 'nil' for Lua. As return types, they're usually just diagram noise.

15
Suggestions and Requests / import utility functions in C++ namespaces
« on: March 25, 2016, 05:57:44 am »
I wish EA had a C++ import option to treat namespaces declaring non-class functions as <<utility>> classes with static methods. Rather than not importing them at all. These are often functions that I'd like to include on sequence diagrams and drill down to model their behavior.

Or maybe leave the namespace a namespace, and instead create a class named "<anonymous>" to hold static method declarations, as is already done for anonymous enumerations.

Pages: [1] 2 3