Chybka v Enterprise Architectu

Po delší době jsem opět sedl k mému připravovanému projektu a testoval nově napsaný kód. Zjistil jsem, že v některých případech nedělá to, co má. Po delší době přicházím na to, že chyba je samozřejmě mezi klávesnicí a židlí, ovšem na straně Sparxu.

Sám mám verzi EA 11, build 1107 (na 64bitových Windows 8.1), ale věřím, že to bude reprodukovatelné i jinde. Co je vlastně tak špatně? Zkuste si to sami:

  1. Nejprve si uložte rozpracovanou práci, abyste o nic nepřišli! 
  2. Vytvořte si diagram a vložte do něj omezení (prvek Constraint). 
  3. Nyní vložte do diagramu jiný prvek, třeba třídu.
  4. Od omezení k třídě udělejte link.
  5. Nyní chytněte konec linku u třídy a přetáhněte jej na omezení (je to sice proti UML pravidlu not_apply_to_self definovaného u metatřídy Constraint, ale EA to přesto umožní).
  6. Teď označte omezení a stiskněte Ctrl+C.
  7. Enterprise Architekt spadne. 

    Když jsem si s tím hrál, tak v některých případech (nenašel jsem, v jakých přesně) jsem v tabulce t_object (soubor .eap není nic jiného než accessovská databáze a tak k ní lze přistupovat) objevil nepříjemnou věc a to, že hodnota ve sloupci object_id byla shodná s hodnotou ve sloupci parentid (což je hodně podivné – EA to používá pro vnořování elementů, např. akce do aktivit). To má mimo jiné ten důsledek, že pokud přes OLE Automation přistupujete k datům v Enterprise Architektu, tak v kolekci Package.Elements takový objekt nemáte k dispozici.

    Reportoval jsem chybu přímo Sparxu, tak uvidíme, jak se pochlapí. Průběžně budu informovat.