Blok přesunut






Vážení čtenáři. Tento blok byl přesunut na novou adresu http://blok.kurzy-uml.cz. Zde ještě chvíli budou staré články, nové však již vycházejí pouze na novém místě. Prosím, upravte si své záložky.



pondělí 30. června 2014

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.

Žádné komentáře:

Okomentovat