Book a Demo

Author Topic: Tracking changes to connectors  (Read 20613 times)

Manfred Kröpfli

  • EA User
  • **
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Tracking changes to connectors
« on: May 07, 2009, 10:38:08 pm »
Finding:
Unlike elements in EA, connectors don't have change attributes refelcting their creation date, last modification date resp. author.

Rationale:
Models are representing the problem domain, therefore connectors often reflect important semantic information, too. In my eyes, it would be a natural thing to have the same change attributes for connectors in order to be abel to do an equal level of change tracking (meaning: the informaiton about who is responsible for the current state of a particular modelled aspect).

Conclusion:
Elements and Connectors should carry the attribute:
- Creator (creating author)
- Modifier (last modifing author)
- Created (creation date)
- Modified (modification date)

Please take this feature request into consideration for future extensions.
Cheers
Manfred

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Tracking changes to connectors
« Reply #1 on: May 19, 2009, 01:24:28 pm »
Quote
Finding:
Unlike elements in EA, connectors don't have change attributes refelcting their creation date, last modification date resp. author.

Rationale:
Models are representing the problem domain, therefore connectors often reflect important semantic information, too. In my eyes, it would be a natural thing to have the same change attributes for connectors in order to be abel to do an equal level of change tracking (meaning: the informaiton about who is responsible for the current state of a particular modelled aspect).

Conclusion:
Elements and Connectors should carry the attribute:
- Creator (creating author)
- Modifier (last modifing author)
- Created (creation date)
- Modified (modification date)

Please take this feature request into consideration for future extensions.
Gets my vote!
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Tracking changes to connectors
« Reply #2 on: May 19, 2009, 09:54:25 pm »
Absolutely!

But this might entail a change to the EA schema. So far (since EA 5.0) suggestions that would require such a change have generally not been answered, let alone implemented.
No, you can't have it!

Manfred Kröpfli

  • EA User
  • **
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #3 on: May 20, 2009, 07:01:41 pm »
Hi Midnight

if you consider pure extensions to the db schema as changes, I agree. IMHO, pure extensions might be implemented without breaking foreward compatibility of EA resp. backward compatibility of the db schema.

Can you give me an advice, how I could best implement additional 'global' attributes for connectors, like Author, Created, Modified? What combination of EA features might show me the way?

Cheers
Manfred

Cheers
Manfred

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Tracking changes to connectors
« Reply #4 on: May 20, 2009, 09:36:31 pm »
Perhaps by using the PDATA fields of the connector. You would have to use an add-in, and directly manipulate the underlying database. For the EA Element class these fields are available via the MiscData properties, but not so for the Connector class. With the Element class the fields are read-only from the API (thus the need to directly manipulate the database if you want to change these fields).

Note that EA uses these fields to store various 'magic' values (that are largely undocumented, and are subject to change). You would have to ensure you did not disrupt any values EA placed in these fields, and you would be at risk of EA damaging your data.

Thus my comments about the schema...
No, you can't have it!

Frank Horn

  • EA User
  • **
  • Posts: 535
  • Karma: +1/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #5 on: May 21, 2009, 02:50:02 am »
You could use tagged values to store your additional values.

KP

  • EA Administrator
  • EA Expert
  • *****
  • Posts: 2919
  • Karma: +55/-3
    • View Profile
Re: Tracking changes to connectors
« Reply #6 on: May 21, 2009, 08:34:23 am »
Quote
You could use tagged values to store your additional values.
+1
The Sparx Team
[email protected]

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Tracking changes to connectors
« Reply #7 on: May 21, 2009, 09:47:48 am »
Very true, and it would certainly go a long way.

But this begs the following questions:
  • Why not do the same for elements too? Is there some reason why connectors should be handled through a different paradigm?
  • Why do we have different structures in the database for these two entity types? What's important about elements and not so for connectors?
  • As long as connectors have PDATA fields, why are these fields not exposed the way they are for elements?
No, you can't have it!

Frank Horn

  • EA User
  • **
  • Posts: 535
  • Karma: +1/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #8 on: May 22, 2009, 06:22:22 am »
If I needed an author field and such for connectors (or for attributes and operations, come to that), I would probably use tagged values for those, and I would ignore the fields supplied for elements and use an "author" tagged value for elements as well. Just to get some of the consistency which EA is lacking, and to unify e.g. the x-path expressions I would then need to extract the author of anything from xmi.

But of course it would be preferable if EA treated all entities in a consistent way.

mrf

  • EA User
  • **
  • Posts: 311
  • Karma: +0/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #9 on: May 22, 2009, 09:13:38 am »
You could also try enabling auditing on your model, which should identify which user created and updated connectors over time. Please note however that this will also track changes on all elements (not just connectors) and may cause performance concerns on large models.
Best Regards,

Michael

[email protected]
"It is more complicated than you think." - RFC 1925, Section 2.8

Manfred Kröpfli

  • EA User
  • **
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #10 on: May 25, 2009, 06:17:12 pm »
Hi folks

thx for sharing your thoughs with me. To make elements and connectors somehow feel consistent, I'll go for tagged values and use the addin broadcast event EA_OnNotifyContextItemModified() to make sure that the items get their change authors and dates.

Final question:
[highlight]How to grab the author string a user entered in its Options->General dialog? Repository.GetCurrentLoginUser() only returns the sometimes cryptic Windows login name.[/highlight]

Cheers
Manfred
« Last Edit: May 25, 2009, 07:06:39 pm by kroepfli »
Cheers
Manfred

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Tracking changes to connectors
« Reply #11 on: May 26, 2009, 02:58:48 am »
Check the Windows registry. I don't remember the key, but you can use the registry editor (carefully, don't change anything!) to find it.
No, you can't have it!

fwoolz

  • EA User
  • **
  • Posts: 435
  • Karma: +0/-0
  • We have met the enemy, and he is us.<Pogo, 1970>
    • View Profile
Re: Tracking changes to connectors
« Reply #12 on: May 26, 2009, 06:37:21 am »
The EA schema already has a number of "hacks" (e.g. fields holding multiple key-value pairs as a delimited list), so it would seem possible to add the requested fields to t_connector w/o changing the schema. Another alternative might be to store them as custom properties but display them in the connector properties dialog as they are displayed in the element equivalent.

Speaking of the EA schema, it may make sense at some point in future for Sparx to rework the entire schema (shades of Mac switching to Intel!), with perhaps a "conflated" database interface that handles both the old and new schemas to eliminate the "hacks" and provide better consistency in relationships between tables. The need to unpack and parse delimited data, follow Xref chains, etc. must carry some performance penalty, and as EA gets bigger, the penalty will grow with it. Consistent PK-FK relationships, normalization, etc. and indexing should speed things up. Also, the need for inconsistent handling of different bits of otherwise similar data must be a maintenance headache and a source of bugs.
Fred Woolsey
Interfleet Technology Inc.

Always be ready to laugh at yourself; that way, you beat everyone else to the punch.


Manfred Kröpfli

  • EA User
  • **
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #13 on: May 26, 2009, 07:06:29 pm »
Quote
Check the Windows registry. I don't remember the key, but you can use the registry editor (carefully, don't change anything!) to find it.

Thx. It's HKEY_CURRENT_USER\Software\Sparx Systems\EA400\EA\OPTIONS\AUTHOR. Works fine for EA 7.5. The key is missing for EA 7.1 :-(
« Last Edit: May 27, 2009, 01:08:25 am by kroepfli »
Cheers
Manfred

Manfred Kröpfli

  • EA User
  • **
  • Posts: 31
  • Karma: +0/-0
    • View Profile
Re: Tracking changes to connectors
« Reply #14 on: May 26, 2009, 07:09:11 pm »
Quote
Another alternative might be to store them as custom properties but display them in the connector properties dialog as they are displayed in the element equivalent.

I'd love to use custom properties, but they are readonly and their values are only editable using the EA user interface. Bad luck.
Cheers
Manfred