Tool for Visualizing external / internal metod calls

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Linus Nikander

    Tool for Visualizing external / internal metod calls

    After trying to manually reverse-engineer a piece of code i've been handed
    using Visio I figure someone must have developed a tool that can do
    automatically in 5 minutes what took me 2 hours.

    What I need is a tool that i can tell to "start with this method call, and
    show me what happens" . The tool would then go through the sourcecode
    visually mapping dependencies for that particular call. Prefrebly i'd be
    allowed to specify which calls I want to be part of the resulting diagram
    (internal calls, external calls, object instatiation). The result would
    ideally be shown in an easy to understand graphical format whice i'd be
    allowed to add my own comments to.

    Anyone know of a tool that fulfills any/all of the above ? I've reverse
    engineered the code using Rationals XDE, but within XDE I haven't found a
    tool to help me trace the dependencies of a specific "top-level" method
    call. The XDE overview genereated was probably correct in itself. The
    problem was that I've got several thousand classes of essentially "unknown"
    sourcecode to try and understand, getting all of it in a single diagram
    doesn't help much, i need to be able to drill down further.

    //Linus Nikander - linus@nikander. net


  • Robert Klemme

    #2
    Re: Tool for Visualizing external / internal metod calls


    "Linus Nikander" <linus@nikander .net> schrieb im Newsbeitrag
    news:axxKa.6257 [email protected] redband.com...[color=blue]
    > What I need is a tool that i can tell to "start with this method call,[/color]
    and[color=blue]
    > show me what happens" . The tool would then go through the sourcecode
    > visually mapping dependencies for that particular call. Prefrebly i'd be
    > allowed to specify which calls I want to be part of the resulting[/color]
    diagram[color=blue]
    > (internal calls, external calls, object instatiation). The result would
    > ideally be shown in an easy to understand graphical format whice i'd be
    > allowed to add my own comments to.
    >
    > Anyone know of a tool that fulfills any/all of the above ? I've reverse
    > engineered the code using Rationals XDE, but within XDE I haven't found[/color]
    a[color=blue]
    > tool to help me trace the dependencies of a specific "top-level" method
    > call. The XDE overview genereated was probably correct in itself. The
    > problem was that I've got several thousand classes of essentially[/color]
    "unknown"[color=blue]
    > sourcecode to try and understand, getting all of it in a single diagram
    > doesn't help much, i need to be able to drill down further.[/color]

    You could use ALF[1] to trace method invocations. ALF allows you to
    specify classes and packages to trace. For more selective evaluation you
    could easily write a script that massages the output, or at least selects
    only those lines that contain the method you want to inspect. This way
    you don't get a graphical output but you can recognize the calling tree
    via indention.

    Another option is to use doxygen [2] which generates a very nice,
    hyperlinked documentation much like JavaDoc but with additional graphical
    class diagrams (including dependencies), that can also be navigated. And
    the source code is included and linked.

    Regards

    robert


    [1] http://alfj.sourceforge.net/
    [2] http://www.doxygen.org

    Comment

    • Linus Nikander

      #3
      Re: Tool for Visualizing external / internal metod calls

      Thank you for the response.

      AFL only seems to trace runtime invocations. As I want to trace mainly EJB:s
      running within a container this would be a bit awkward. Apart from that it
      does seem to feature just about the things I'm looking for. Do you know of
      any tools that can generate the same information from source-files and not
      runtime-invocation ?

      Yours,

      Linus

      "Robert Klemme" <[email protected] et> wrote in message
      news:bdebka$rkj [email protected] is.de...[color=blue]
      >
      > "Linus Nikander" <linus@nikander .net> schrieb im Newsbeitrag
      > news:axxKa.6257 [email protected] redband.com...[color=green]
      > > What I need is a tool that i can tell to "start with this method call,[/color]
      > and[color=green]
      > > show me what happens" . The tool would then go through the sourcecode
      > > visually mapping dependencies for that particular call. Prefrebly i'd be
      > > allowed to specify which calls I want to be part of the resulting[/color]
      > diagram[color=green]
      > > (internal calls, external calls, object instatiation). The result would
      > > ideally be shown in an easy to understand graphical format whice i'd be
      > > allowed to add my own comments to.
      > >
      > > Anyone know of a tool that fulfills any/all of the above ? I've reverse
      > > engineered the code using Rationals XDE, but within XDE I haven't found[/color]
      > a[color=green]
      > > tool to help me trace the dependencies of a specific "top-level" method
      > > call. The XDE overview genereated was probably correct in itself. The
      > > problem was that I've got several thousand classes of essentially[/color]
      > "unknown"[color=green]
      > > sourcecode to try and understand, getting all of it in a single diagram
      > > doesn't help much, i need to be able to drill down further.[/color]
      >
      > You could use ALF[1] to trace method invocations. ALF allows you to
      > specify classes and packages to trace. For more selective evaluation you
      > could easily write a script that massages the output, or at least selects
      > only those lines that contain the method you want to inspect. This way
      > you don't get a graphical output but you can recognize the calling tree
      > via indention.
      >
      > Another option is to use doxygen [2] which generates a very nice,
      > hyperlinked documentation much like JavaDoc but with additional graphical
      > class diagrams (including dependencies), that can also be navigated. And
      > the source code is included and linked.
      >
      > Regards
      >
      > robert
      >
      >
      > [1] http://alfj.sourceforge.net/
      > [2] http://www.doxygen.org
      >
      >[/color]


      Comment

      • Ira Baxter

        #4
        Re: Tool for Visualizing external / internal metod calls


        "Linus Nikander" <linus@nikander .net> wrote in message
        news:axxKa.6257 [email protected] redband.com...[color=blue]
        > After trying to manually reverse-engineer a piece of code i've been handed
        > using Visio I figure someone must have developed a tool that can do
        > automatically in 5 minutes what took me 2 hours.
        >
        > What I need is a tool that i can tell to "start with this method call, and
        > show me what happens" . The tool would then go through the sourcecode
        > visually mapping dependencies for that particular call. Prefrebly i'd be
        > allowed to specify which calls I want to be part of the resulting diagram
        > (internal calls, external calls, object instatiation). The result would
        > ideally be shown in an easy to understand graphical format whice i'd be
        > allowed to add my own comments to.
        >
        > Anyone know of a tool that fulfills any/all of the above ? I've reverse
        > engineered the code using Rationals XDE, but within XDE I haven't found a
        > tool to help me trace the dependencies of a specific "top-level" method
        > call. The XDE overview genereated was probably correct in itself. The
        > problem was that I've got several thousand classes of essentially[/color]
        "unknown"[color=blue]
        > sourcecode to try and understand, getting all of it in a single diagram
        > doesn't help much, i need to be able to drill down further.
        >
        > //Linus Nikander - linus@nikander. net[/color]

        The DMS Software Reengineering Toolkit could probably do this relatively
        easily.
        It has a full Java front end, builds compiler data structures (ASTs) for an
        entire
        system of software with full name and type resolution.
        From there, it can be customized to extract all kinds of interesting
        information,
        including what you are requesting. One example of extracted information
        is a full cross reference according to the language rules; see our
        Java Source Code Browser (and especially the example of it) at
        http://www.semdesigns.com/Products/F...aHTMLizer.html.

        To learn more about DMS,
        http://www.semanticdesigns.com/Produ...MSToolkit.html.


        --
        Ira D. Baxter, Ph.D., CTO 512-250-1018
        Semantic Designs, Inc. www.semdesigns.com




        ----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
        http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
        ---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---

        Comment

        Working...