Book a Demo

Author Topic: Sequence Diagram and nesting levels  (Read 3034 times)

Josef Stadelmann

  • EA User
  • **
  • Posts: 59
  • Karma: +0/-0
  • as simple as possible, but not too simple
    • View Profile
Sequence Diagram and nesting levels
« on: April 26, 2011, 06:20:57 pm »
Hi,

maybe someone can help/hint me a bit, as I am still evaluating this very greate tool. I can meanwhile draw very nice sequence diagrams for a VB.NET apps, with a VB.net dll in VB and 3 or 4 other dlls below written in C# coded, the last one is the generated web service stub, all code imported, also mscorlib.dll is binary imported into the same model db.

I like to see all the invocations from my apps down to and until the generated web service stub is executing.

In EA at the Breakpoint and Markers window, I can select the recording stack deep, and I have adjusted it from 3 to 8; but still I do not get all the detailes I want. What is wrong?

Given I have 1 method in the aps, which calls a method inplemented at the first dll, this calls a method at the second lower dll, and this calls a method at the 3 dll, which calls a method at the stub dll which calls method inside the mscorelib.dll

Or in short M1 calls M2 calls M3 calls M4 calls M5 where each M is implemented by a different DLL, that should require me only to mark M1 for tracing to gather sequenc diagram data? Right?

So Which markers do I need to set and where?

When I marke the begin and end of my method in the apps, would that then include all consecutive lower level calls? if yes, by which adjustment can I then turn sequenc drawing on to reach the lowest possible level?

OR

If I just set the method marker tracing and drawing all from begin to end of this one method call, should I still see all lower level invocations at lower level dlls?

and if yes how do I control the stack deep?

OR

as I have guarded
SyncLock obj
   Mb()
SyncEnd

Could that be a reason that the trace to sequencing Mb is interrupted somehow? I have no clue how this tracing to sequenc diagrams is implemented by EA. maybe by a second tread, it would explain why a second thread can not enter the guarded section and return without deeper level sequence data.

Sorry, perhaps just badly documented or an oversite on  my part.

We are evaluating and I would be very happy to know that all before I buy the tool, but hopefully I can master this.

Josef

Josef Stadelmann

  • EA User
  • **
  • Posts: 59
  • Karma: +0/-0
  • as simple as possible, but not too simple
    • View Profile
Re: Sequence Diagram and nesting levels
« Reply #1 on: April 26, 2011, 11:51:34 pm »
I think I have found the answer to my problem hunting me since I started to evaluater EA. EA is unable to go from the top level SW stack to lower level SW stack and is unable to draw lowest in stack objects. method() at work !

If ....

It has to do with late binding in VB!

I have defined, communication protocol dependent 2 handler objects each with the same methods but one calls a CORBA stub and one calls a Web Service stub, that is to say, different method implementations.

Then I have a generic transport dependent t_fkt object which is defined as  

Dim t_fkt AS Object

later in code depending on chosen protocol the instantiation of the proper obejct takes pace and a reference is given to t_fkt; So t_fkt becomes either
t_fkt = New SpSe.Fkt ' to talk to the CORBA Stub OR
t_fkt = New Web SpSe ' to make t_fkt talking to the Web Service Stub

later on in code when t_fkt.login() is used to call login on either the CORBA or the Web Service stub or any other methods i.e.

t_fkt.login( TWS1, TWS2 )

will not be traced and will not up with the proper sequence diagram of work done by login()

The sequence ends one bevore and continues one after this call, and all lower level work is omitted, not shown in a diagram.

to say: it just skips

t_fkt.login(TWS1,TWS2)
if t_fkt is of type Object and Object is not defined closer

The work arround is :
Dim k_fkt AS WebSpSe.Fkt

in code

k_fkt = t_fkt
k_fkt.login (TWS1,TWS2)

and all lower levels are nicely reached drawn in the sequence diagram

conlsuion: EA has a problem with VB's (and maybe other languages) late binding to objects of a given type.

Bug or Feature?
I can log it if you like.

Josef