Toward an environment for comprehending distributed systems
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

Toward an Environment for Comprehending Distributed Systems PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

Toward an Environment for Comprehending Distributed Systems. Outline. Motivation Software comprehension environment Data gathering Data repository Preliminary results Conclusions and future work. Background. Project Comprehending distributed component-based systems Phase-I

Download Presentation

Toward an Environment for Comprehending Distributed Systems

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Toward an environment for comprehending distributed systems

Toward an Environment for Comprehending Distributed Systems

Reverse Engineering (Dynamic Analysis)


Outline

Outline

  • Motivation

  • Software comprehension environment

  • Data gathering

  • Data repository

  • Preliminary results

  • Conclusions and future work

Reverse Engineering (Dynamic Analysis)


Background

Background

  • Project

    • Comprehending distributed component-based systems

    • Phase-I

      • Development of a core toolset

    • Phase-II (Iterative)

      • Modeling and visualization

      • Evaluation

Reverse Engineering (Dynamic Analysis)


Characteristics of modern software systems

Characteristics of modern software systems

  • Large and complex

  • Distributed

  • Written in multiple programming languages

  • Developed using component-models

Reverse Engineering (Dynamic Analysis)


Software comprehension challenges

Software Comprehension Challenges

  • Unavailability of source code

    • Vigder-2001, Weyuker-2001

  • Physical distribution of components

    • Bruegge-1993, Mendonca-1999

  • Use of pre-built component

    • Stroermer-2002, Vigder-2001, Weyuker-2001

  • Multiple programming languages

    • Hassan-2002, Chen-1995,

    • Koschke-1998, Stroermer-2002

    • Demeyer-1999, CDIF-1994, XML/XMI-2002

Reverse Engineering (Dynamic Analysis)


Approach

Approach

  • Software Comprehension Environment

    • Technical issues

      • Distributed profilers

      • Single data repository

      • Data management

      • Extensible architecture

      • Data gathering and Repository subsystems

    • Modeling and visualization subsystem

    • Empirical evaluation

      • Survey/questionnaire

      • Industrial-strength case studies – Cigna Corporation

Reverse Engineering (Dynamic Analysis)


Software comprehension environment

Software Comprehension Environment

Reverse Engineering (Dynamic Analysis)


Data gathering subsystem

Data Gathering subsystem

Reverse Engineering (Dynamic Analysis)


Data gathering subsystem1

Data Gathering subsystem

  • Distributed Profiler

    • Local Profiler

    • Logical Time Server

    • Data collection manager

  • Remote Interactions

    • Network interceptor

    • Communication Endpoint

  • Program Facts/Data

    • Static: Entities and Relations

    • Dynamic: Entities, Relations and Events

Reverse Engineering (Dynamic Analysis)


Data gathering subsystem2

Data Gathering subsystem

  • Endpoint entity

    • Local and Remote host

    • Local and Remote port numbers

    • Time-stamp

  • Connects Relation

Reverse Engineering (Dynamic Analysis)


Example sequence diagram

Example: Sequence Diagram

Reverse Engineering (Dynamic Analysis)


Data gathering subsystem3

Data Gathering subsystem

  • Supported data collectors

    • WDBG Win32 Profiler

    • JVPROF Java Profiler

    • JSA Java static analyzer

    • Others, provided the conversion to XML

  • Network-call interceptors

    • WDBG and JVPROF

Reverse Engineering (Dynamic Analysis)


Data repository

Data Repository

  • Logical Models

    • Language definitions

    • Program Data

    • Used-defined views

  • Implementation

    • Relational database

  • Query/Manipulation Language

    • SQL

    • SMQL

Reverse Engineering (Dynamic Analysis)


Language definitions

Language Definitions

  • Model(General) = Graph(Eg , Rg)

    Eg: Set of entity types

    Rg: Set of relation types

  • Java, example:

    • Model(Java) = Graph(Ejava , Rjava)

      EjavaEg : Entity types supported by Java

      RjavaRg : Relation types supported by Java

      Such that the source and destination entity Ejava

  • C++, defining

    Model(C++) = Graph(Ec++, Rc++)

    Ec++ = Ejava {template, struct, typedef, function}

    - {interface, package}

  • Reverse Engineering (Dynamic Analysis)


    Java language example

    Java Language Example

    Reverse Engineering (Dynamic Analysis)


    Toward an environment for comprehending distributed systems

    SMQL

    • SMQL

      • Software Modeling Query Language

    • Set-based:

      • Typed Set

        • Entity Set

        • Relation Set

        • Event Set

      • Generic Set

    • Extensible using Java

    Reverse Engineering (Dynamic Analysis)


    Toward an environment for comprehending distributed systems

    SMQL

    • Operations

      • Union, intersection, Difference

    • Functions

      • Closure

        Closure(Source, Target, RelationTypes)

        Returns a Relation-Set

      • Composition

        • Builds a hierarchical model from flat set of entities into a nested set of entities

      • Output: Saves a typed-set as an XML document

      • Output_dot: Saves a relation set as DOT graph

    Reverse Engineering (Dynamic Analysis)


    Example deployment architecture

    Example: Deployment Architecture

    Reverse Engineering (Dynamic Analysis)


    Smql defining entity set

    SMQL: Defining Entity Set

    EntityIdentifier

    {

    [caption=String;]

    type=StringSet;

    (EntityFirstOrderFilter)+

    }

    EntityFirstOrderFilter ::

    include ( EntityAttrib ) = StringSet ;

    | exclude ( EntityAttrib ) = StringSet ;

    Reverse Engineering (Dynamic Analysis)


    Smql inheritance example

    SMQL: Inheritance example

    // Get Inheritance tree rooted at org.mortbay.http.HttpListener

    // OR org.mortbay.http.HttpHandler

    EntitySet Http

    {

    caption = "HttpListener" ;

    type = {“interface”, “class”} ;

    include (name) = { "org.mortbay.http.HttpListener", "org.mortbay.http.HttpHandler" } ;

    include (project) = { "jetty" } ;

    }

    Inh_Http = closure(null, Http, { “implement”, “subclass” } ) ;

    Output (“file.xml”, Inh_Http, Http) ;

    Output_dot (“graph.dot”, Inh_Http) ;

    Reverse Engineering (Dynamic Analysis)


    Smql inheritance example1

    SMQL: Inheritance example

    Reverse Engineering (Dynamic Analysis)


    Toward an environment for comprehending distributed systems

    Reverse Engineering (Dynamic Analysis)


    Toward an environment for comprehending distributed systems

    Reverse Engineering (Dynamic Analysis)


    Smql events example

    SMQL: Events Example

    // Events from Tear & Jetty

    importjava:serg.sc.filter.CallGraph as CallGraph ;

    EventSet Events

    {

    caption = "Event (Jetty & Tear) " ;

    type = {"method-entry",

    "method-exit",

    "endpoint",

    "thread-start",

    "thread-end",

    "module-load",

    "process-start",

    "process-end"} ;

    include (project) = {"jetty-rt", "Tear"} ;

    }

    // Convert events trace into a CallGraph (Relation Set)

    GC = CallGraph( events ) ;

    // Save as results

    output ("tear-jetty.xml", events);

    Output_dot (“GC.dot”, GC) ;

    Reverse Engineering (Dynamic Analysis)


    Smql events example1

    SMQL: Events Example

    Reverse Engineering (Dynamic Analysis)


    Toward an environment for comprehending distributed systems

    Reverse Engineering (Dynamic Analysis)


    Smql user defined functions

    SMQL: User defined functions

    • User-defined functions

      • IFilter interface

        Importjava:Qualified-Java-Class-NameasFunctionName ;

    • Example

    Importjava:serg.sc.MyClass as MyFunction

    EntitySet E

    {

    caption = "HttpListener" ;

    type = {“interface”, “class”} ;

    include (name) = { "org.mortbay.http.HttpListener” } ;

    include (project) = { "jetty" } ;

    }

    X = MyFunction(E) ;

    Reverse Engineering (Dynamic Analysis)


    Modeling and visualization subsystem

    Modeling and visualization subsystem

    Reverse Engineering (Dynamic Analysis)


    Progress

    Progress

    • Repository implementation

      • SQL Server & Hypersonic DB

    • Data gathering

      • WDBG, JVPROF, and JSA

    • Tools

      • SMQL

      • Dbmgr - Database and SMQL front-end

      • dbImport, dbexport

    Reverse Engineering (Dynamic Analysis)


    Conclusions and future work

    Conclusions and Future Work

    • Software Comprehension Environment

      • Dynamic analysis of distributed systems

      • Multi-language systems

      • Common repository

      • Distributed profiler

      • SMQL

  • Future work

    • Phase I

      • Performance

      • Support for Microsoft.Net, VB and COM+

    • Phase II (Early stage)

      • Construction and visualization of views

      • Empirical evaluation in an industrial setting (at Cigna)

  • Reverse Engineering (Dynamic Analysis)


    References

    References

    Vigder-2001] M. Vigder. The evolution, maintenance, and management of component-based systems. In G. Heineman and W. Councill, editors, Component-Based Software Engineering: Putting the Pieces Together, chapter 29, pages 527. 539. Addison-Wesley, 2001.

    [Weyuker-2001] E. J. Weyuker. The trouble with testing components. In G. Heineman and W. Councill, editors, Component-Based Software Engineering: Putting the Pieces Together, chapter 28, pages 499.512. Addison-Wesley, 2001.

    [Stroermer-2002] C. Stroermer, L. O'Brien, and C. Verhoef. Practice patterns for architecture reconstruction. In Proceedings of the 9th Working Conference on Reverse Engineering (WCRE), Richmond, VA, USA, October 2002.

    [Hassan-2002] A. E. Hassan and R. C. Holt. Architecture recovery of web applications. In 24th International Conference on Software Engineering (ICSE), Orlando, Florida, USA, May 2002.

    [Chen-1995] Y.-F. R. Chen, G. S. Fowler, E. Koutsoos, and R. S. Wallach. Ciao: A graphical navigator for software and document repositories. In Proceedings of International Conference on Software Maintenance (ICSM), Nice, France, October 1995. IEEE.

    Reverse Engineering (Dynamic Analysis)


    References1

    References

    [Demeyer-1999] S. Demeyer, S. Tichelaar, and P. Steyaert. Famix 2.0 – the famoos information exchange model. Technical report, University of Berne, August 1999.

    [CDIF-1994] Electronic Industries Alliance and International Standards Organization (EIA/ISO). CDIF - Framework for Modeling and Extensibility, 1994.

    [XML/XMI-2002] Object Management Group. XML Metadata Interchange (XMI), version 1.2 edition, January 2002.

    [Koschke-1998] R. Koschke, J.-F. Girard, and M.Wurthner. An intermediate representation for reverse engineering analysis. In Proceedings of the 5th Working Conference on Reverse Engineering (WCRE), Honolulu, HI, USA, October 1998.

    [Bruegge-1993] B. Bruegge, T. Gottschalk, and B. Luo. A framework for dynamic program analysis. In Conference on Object Oriented Programming Systems, Languages, and Applications (OOSLA93), Washington, USA, September 1993.

    [Mendonca-1999] N. C. Mendonca. Software Architecture Recovery for Distributed Systems. PhD thesis, Department of University of London, November 1999.

    Reverse Engineering (Dynamic Analysis)


  • Login