SlideShare a Scribd company logo
1 of 6
Download to read offline
IOSR Journal of Computer Engineering (IOSRJCE)
ISSN: 2278-0661 Volume 3, Issue 3 (July-Aug. 2012), PP 50-55
www.iosrjournals.org

     Modeling Object Oriented Applications by Using Dynamic
    Information for the Iterative Recovery of Collaborations and
               Roles (Collaboration Browser Model)
                     1
                       Smt Vedavati R Tiwari, 2Shri M.D Panchamukhi
                                   1, 2
                                          Dept of Cse Khkie Vidyagiri Dharwad-4

Abstract: The paper presents the Collaboration-based or role-based design that decompose an application
into tasks performed by a subset of applications’ classes. Collaborations provide a larger understanding and
reuse than classes. They form an important aid in the maintenance and evolution of software. The extraction of
collaborations is therefore an important issue in the design recovery. The paper presents an iterative approach
that uses the dynamic information to support recovery and understanding of collaborations.
 The paper presents the details of prototype “Collaboration Browser” modeled for querying of dynamic
information using collaborations. The prototype modeled intends to eliminate visual representations that are
laborious and expensive to understand and hence represents dynamic information on the collaboration browser
in the form of collaboration patterns through which the developer can perform querying to extract and
understand the collaborations between instances of classes in Java programming application. The collaboration
browser is developed in Java language on Net beans 6.0 platform using Swings feature of Java.
Keywords: collaboration-based design, design recovery, program understanding, object-oriented reverse
engineering, dynamic analysis.

                                              I.        Introduction
          In contrast to procedural applications, where a specific functionality is often identified with a
subsystem or module, the functionality in object-oriented systems comes from the cooperation of interacting
objects and methods.
In designing object-oriented applications, the importance of modeling how objects cooperate to achieve a
specific task is well recognized. Collaboration-based or role-based design decomposes an object-oriented
application into a set of collaborations between classes playing certain roles. Each collaboration encapsulates an
aspect of the application and describes how instances of class interact to achieve a specific task. The recovery of
collaborations from the code is an important aid for understanding and maintaining object-oriented applications.
However, detecting and deciphering interactions of objects in the source code is not easy: polymorphism makes
it difficult to determine which method is actually executed at runtime, and inheritance means that each object in
a running system exhibits behavior which is defined not only in its class, but also in each of its super classes.
This difficulty is further aggravated in case of the languages like Java where many instances of different class
types collaborate interactively and also repeatedly and methods are never statically bound. To get a better
understanding of the dynamic interactions between instances, developers often turn to tools which display the
run-time information as interaction diagrams. Designers of such tools are confronted with the challenge of
dealing with a huge amount of trace information and presenting it in an understandable form to the developer.
Several visualization techniques, such as information murals, program animation and execution pattern views
have been proposed to reduce the amount of trace information presented and to facilitate its navigation.
This paper proposes an approach to the recovery and study of collaborations by using dynamic information, but
does not rely heavily on visualization techniques. The most visualization tools display an entire trace and give
the user a feel for the overall behavior of an application, and paper proposes focusing on understanding much
smaller chunks of interactions and the roles that classes play in these. The paper proposes developing a tool
prototype, the Collaboration Browser, to demonstrate the validity of approach. Collaboration Browser is used to
query run-time information iteratively to answer concrete questions about collaborations and interactions
between instances of classes of Java programs.
Collaboration-based or role-based designs decompose an application into tasks performed by a subset of the
applications’ classes. Collaborations provide a larger unit of understanding and reuse than classes, and are an
important aid in the maintenance and evolution of the software. The extraction of collaborations is therefore an
important issue in design recovery
This paper presentation is not oriented primarily towards program visualization. It simply presents the use of a
sequence diagram (visualization) to generate and display the collaboration pattern. The paper concentrates on
the prototype tool that supports the recovery and understanding of collaborations.

                                              www.iosrjournals.org                                       50 | Page
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
The paper is organized as follows.
It starts with the design of prototype, its architecture and then implementation details as to how to iteratively
recover collaborations and roles. It is a reverse engineering process. It starts from program of object-oriented
concept, then gets the run-time execution trace or dynamic information of the program and then designs the
model or prototype i.e, collaboration browser used to recover collaborations and roles. This mainly helps the
developer who can perform querying to extract and understand the collaborations between instances of classes
in Java programming application. The extraction of collaborations is an important issue in the design recovery.

                          II.         The Model Collaboration Browser Design
The design of collaboration browser is preceded by the task that parses the dynamic information obtained from
execution trace of sample java application. The tool or the prototype Collaboration browser is developed using
JDK 1.6 on netbeans platform with usage of Profile for execution trace of Object Oriented Application. The
tools generates collaboration patterns and allows the developer to re query and thus understand and recover the
collaborations.




                                      Figure 1. Collaboration browser window

Panels a, b and c list the sender classes, the receiver classes and the invoked methods respectively. Panel d lists
collaboration patterns.
It presents the dynamic information to the user through four basic elements of information: sender classes,
receiver classes, invoked methods and collaboration patterns. Each of these four elements is displayed on the
screen in a separate panel as seen in Figure 1 Panels a, b and c list the sender classes, the receiver classes and the
invoked methods respectively. Panels d list collaboration patterns. Collaboration patterns are designed using
sequence diagrams. Sequence diagrams are drawn using UML feature of netbeans 6.0. The different buttons are
defined for iterative querying of the information displayed on the panels a,b,c and d.

Various functionalities of the command buttons of the browser
Method: After selecting the sender class, receiver class clicking on method button sets focus to all the methods
those are interfaces for the selected classes.
Class: After selecting method, clicking on class sets focus to methods sender and receiver class.
Pattern: After selecting method, clicking on pattern sets focus to all collaboration patterns within which the
selected method is invoked.
Filter: After selecting the sender class, receiver class clicking on filter filters or deletes interfaces or the methods
of the selected two classes from the methods panel.
Self sends: After clicking on sender class, clicking on self send deletes the method from the methods panel for
the selected sender class.
Current: Clicking on current displays current execution trace of the program.
Colab: Clicking on Colab sets the display to the base of of the collaboration pattern and also stes focus on
sender class and receiver class and also focuses collaboration instances of the two highlighted classes.




                                               www.iosrjournals.org                                           51 | Page
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
                          III.       The prototype architecture:




                                         Figure 2. Prototype Architecture

The architecture consists of three layers
Presentation layer: It consists of Graphical User Interface and classification browser that presents execution
trace classified as panels for sender class, receiver class and interface and methods. It also consists of panel for
collaboration pattern for which values are to be generated depending on execution trace repository.
Logic layer: It consists of java implementation classes and functions for event-driven programming.
Database layer: It consists of schemas, tables of the execution trace.

Architecture Components:
The Collaboration Browser supports three basic kinds of operations:
         querying the current base of dynamic information
         editing the base of dynamic information through filtering out information or loading a collaboration
instance,
         querying the dynamic information of the selected collaboration pattern

The Queries are numbered as (Q1,Q2,Q3,Q4 and Q5), editing (E1, E2, E3, E4) and displaying functions (D1,
D2, D3).
Query about the interface of a class. These queries are of the form
Q1: what methods of class A are invoked by class B?
Selecting sender and receiver classes, the user requests a list of the methods displayed in panel c.
Q2: which classes are senders and receivers of the following method?
Conversely, selecting a method in panel c, the developer can request the list of senders
and receivers of the selected method.
Query about a collaboration.
By selecting the method of interest (panel c) the following query can be answered:
Q3: what collaboration patterns result from this method invocation?
Panel d lists the collaboration patterns that have selected method in their invoked method list
Q4: For the selected collaboration pattern which are the sender class, receiver class and the methods.
Panel a highlights sender class, panel b highlights receiver class and panel c lists the methods and also highlights
the methods those are interfaces between the sender class
Query about a role. These queries are of the form:
Q5: given a collaboration pattern what are all the methods that collaborate the senders and receivers ?
The developer can request a list of receivers which play this role in the same collaboration pattern and the
corresponding senders.
Editing the dynamic information. To focus the investigation on the events of interest the developer can filter
out method invocation events which are not relevant by specifying sender classes, receiver classes and methods
to be filtered out. This reduces the amount of dynamic information to be analyzed and presented.
Another option for focusing on events of interest is to load an instance of one collaboration pattern as the current
base of information. This allows the developer to focus on analyzing one collaboration pattern.
The browser queries operate on a current execution trace. When the tool starts up, the current trace corresponds
to original execution trace obtained through instrumenting and executing the application. In the course of the
iterative process this trace can be edited by the user (using the buttons in panel f) to:
E1: remove method invocation events from the trace for selected senders, receivers and methods,
E2: remove method invocation events which are self-sends,
E3: set the current trace to an instance of a selected collaboration pattern, or
E4: reset the current trace to the original execution trace.




                                             www.iosrjournals.org                                         52 | Page
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
                                          Implementation and testing




                                      Figure 3 class diagram of the example

1.   The approach uses dynamic information recorded from program execution. For each method invocation
     event sender class, receiver class and name of invoked method is recorded.
2.   Pattern matching is used to eliminate similar execution sequences in the execution trace. This makes the
     developer not to confront the entire trace of execution but rather with the collaboration patterns.
3.   The tool Collaboration browser lets the developer query the dynamic information in terms of classes and
     interactions of interest. Thus allows the developer to refine the investigation to focus on collaborations of
     interest

                                   IV.          Types of Tests carried
a)Recovery of collaborations of java.lang.String
        Start by querying about the interface that class java.lang.String presents to other classes in Java. Table
1 shows the methods of class java.lang.String which are invoked by other Java classes
        The Table1 depicts that there is overlap in the table cells. That is, some methods of java.lang.String are
invoked by instances of two different classes.




                                     Table1 java.lang.String interface matrix

         For example , both Java.lang.ClassLoader and Sun. misc. Floating Decimal invoke charAt(int).
equals(Object) method is invoked by instances of three different classesJava.util.Hashtable, Java.lang.System
and Javax.swing.ArrayTable. Both Javax.swing.text.GapContent and Java.lang.AbstractBuilder invoke
<init>(char[],int,int) and both orgUI.employee and orgUI.manager invoke <init>(String).
         Using the collaboration browser we group methods in the interface String class presents to the
ClassLoader and look at the shortest collaboration patterns in which these methods occur. This is accomplished
by interactively selecting methods and posing queries of the form Q3:”what are the collaboration patterns in
which instance of ClassLoader invokes the methods(indexOf(int) and charAt(int)) on an instance of String class.
These queries and the corresponding response are shown schematically in Table 2 and Table 3.




                                             www.iosrjournals.org                                       53 | Page
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of




                     Table 2 the contexts i.e. collaboration patterns for the selected method.

         The interface indexOf(int)) occurs in two different contexts as shown in Table 2 by loading an instance
of the patterns Java.lang.ClassLoader .
Table 3 shows two interfaces .The interfaces of the collaboration pattern are shown in bold face font. The name
        of the collaboration pattern is named after the method of a class which is the root of a call tree.




                        Table 3 collaborations involving the ClassLoader-string interface

         You can concentrate on String charAt , to learn about the how String class invokes charAt() method.
By loading an instance of the collaboration patterns orgUI_ClassLoader and orgUI_JLabel (E3 function) and
querying about interfaces (Q1 and Q2 queries) we can arrive at charAt(int) collaboration which describes the
predictable participants as shown in the Table 4. The variation in the call tree resulting from invocation of
charAt() is due to the different kinds of user events. The role of classes is represented simply by means of the
interface they represent in the collaboration.
         The test can be continued for discovering other collaboration patterns in which the instances of
java.lang.String participate. By using Q4 ,it is investigated that java.lang.String participates in nine main
collaborations. It required 18 queries. The method E1 and E2 are not demonstrated for the example.

                                          V.           Conclusions:
         The application begins with an execution trace and condenses this information by representing program
behavior in terms of collaboration patterns. It presents this information to developers in terms of sender classes,
receiver classes, invoked methods and collaboration patterns and allows developers to query each of these items
in terms of the others. In this way it lets a developer focus on the aspect of the application of interest without
wading through a lot of trace information and the output is checked for 19 collaboration patterns resulted after
instrumenting sample code.




                               Table 4. Participant classes for interface charAt(int)
                                               www.iosrjournals.org                                      54 | Page
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
              This is how Collaboration Browser is used to discover important collaborations in an application and to
      understand the roles that classes play in these collaborations. The approach is promising and is used to discover
      important collaborations in an application and to understand the roles that classes play in these collaborations.

                                                           References:
[1]       Visualising the behavior of Object Oriented Systems Proceedings of 9th Annual Conference on OOP Systems, languages and
          Applications
[2]       Execution patterns in Object Oriented Visualization IBM Research center, Wim DePauw, David Lorenz
[3]       Roles and classes in OOP- Reenskuag
[4]       white papers for Toolbox for IT: it.toolbox.com
[5]       Getting Dynamic: Java & UML Interaction diagrams by Stephen Palmer
[6]       Netbeans 6.0 UML tutorials
[7]       MySQL Reference manual
[8]       The JFC Swing tutorial by Kathy Walruth




                                                     www.iosrjournals.org                                             55 | Page

More Related Content

What's hot

Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manualPraseela R
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000eudal
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTleela rani
 
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
 
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...ijseajournal
 
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...ijseajournal
 
Source code visualization (SourceViz)
Source code visualization (SourceViz)Source code visualization (SourceViz)
Source code visualization (SourceViz)Anas Bilal
 
Case tool lab-Reg2013 by Karthick Raja
Case tool lab-Reg2013 by Karthick RajaCase tool lab-Reg2013 by Karthick Raja
Case tool lab-Reg2013 by Karthick RajaursKarthick Raja
 
SMARCOS CNR Paper Workshop Distributed UI
SMARCOS CNR Paper Workshop Distributed UISMARCOS CNR Paper Workshop Distributed UI
SMARCOS CNR Paper Workshop Distributed UISmarcos Eu
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV pkaviya
 
Domain class model
Domain class modelDomain class model
Domain class modelshekharsj
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecturedrewz lin
 
EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
 

What's hot (17)

Sub1583
Sub1583Sub1583
Sub1583
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manual
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...
 
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...
Distributed Graphical User Interfaces to Class Diagram: Reverse Engineering A...
 
Paper 55 final
Paper 55 finalPaper 55 final
Paper 55 final
 
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
JELINSKI-MORANDA SOFTWARE RELIABILITY GROWTH MODEL: A BRIEF LITERATURE AND MO...
 
Source code visualization (SourceViz)
Source code visualization (SourceViz)Source code visualization (SourceViz)
Source code visualization (SourceViz)
 
Case tool lab-Reg2013 by Karthick Raja
Case tool lab-Reg2013 by Karthick RajaCase tool lab-Reg2013 by Karthick Raja
Case tool lab-Reg2013 by Karthick Raja
 
SMARCOS CNR Paper Workshop Distributed UI
SMARCOS CNR Paper Workshop Distributed UISMARCOS CNR Paper Workshop Distributed UI
SMARCOS CNR Paper Workshop Distributed UI
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
 
Intoduction to uml
Intoduction to umlIntoduction to uml
Intoduction to uml
 
Domain class model
Domain class modelDomain class model
Domain class model
 
4+1view architecture
4+1view architecture4+1view architecture
4+1view architecture
 
EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY
 

Viewers also liked (6)

H0124246
H0124246H0124246
H0124246
 
E0332427
E0332427E0332427
E0332427
 
G0323640
G0323640G0323640
G0323640
 
B0120610
B0120610B0120610
B0120610
 
C0361419
C0361419C0361419
C0361419
 
H0114044
H0114044H0114044
H0114044
 

Similar to IOSR Journals

Modeling Object Oriented Applications by Using Dynamic Information for the I...
Modeling Object Oriented Applications by Using Dynamic  Information for the I...Modeling Object Oriented Applications by Using Dynamic  Information for the I...
Modeling Object Oriented Applications by Using Dynamic Information for the I...IOSR Journals
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
 
Teaching Case Teaching Software Componentization .docx
  Teaching Case  Teaching Software Componentization  .docx  Teaching Case  Teaching Software Componentization  .docx
Teaching Case Teaching Software Componentization .docxjoyjonna282
 
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....Reza Nourjou, Ph.D.
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architectureshuchi tripathi
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1stanbridge
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1stanbridge
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technologyMayukh Maitra
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technologySaransh Garg
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
Architecture and design
Architecture and designArchitecture and design
Architecture and designhimanshu_airon
 
Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSYogeshIJTSRD
 

Similar to IOSR Journals (20)

Modeling Object Oriented Applications by Using Dynamic Information for the I...
Modeling Object Oriented Applications by Using Dynamic  Information for the I...Modeling Object Oriented Applications by Using Dynamic  Information for the I...
Modeling Object Oriented Applications by Using Dynamic Information for the I...
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
Teaching Case Teaching Software Componentization .docx
  Teaching Case  Teaching Software Componentization  .docx  Teaching Case  Teaching Software Componentization  .docx
Teaching Case Teaching Software Componentization .docx
 
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....
Simulation of an Organization of Spatial Intelligent Agents in the Visual C#....
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
 
Cs 1023 lec 2 (week 1) edit 1
Cs 1023  lec 2 (week 1) edit 1Cs 1023  lec 2 (week 1) edit 1
Cs 1023 lec 2 (week 1) edit 1
 
Sdlc
SdlcSdlc
Sdlc
 
Sdlc
SdlcSdlc
Sdlc
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMS
 

More from iosrjournals (20)

I0114549
I0114549I0114549
I0114549
 
G0145458
G0145458G0145458
G0145458
 
G0135059
G0135059G0135059
G0135059
 
G0123541
G0123541G0123541
G0123541
 
G0113839
G0113839G0113839
G0113839
 
F0144153
F0144153F0144153
F0144153
 
F0134249
F0134249F0134249
F0134249
 
F0122934
F0122934F0122934
F0122934
 
F0112937
F0112937F0112937
F0112937
 
E0143640
E0143640E0143640
E0143640
 
E0133641
E0133641E0133641
E0133641
 
E0112128
E0112128E0112128
E0112128
 
D0142635
D0142635D0142635
D0142635
 
D0133235
D0133235D0133235
D0133235
 
D0121720
D0121720D0121720
D0121720
 
D0111420
D0111420D0111420
D0111420
 
C0141625
C0141625C0141625
C0141625
 
C0132131
C0132131C0132131
C0132131
 
C0121116
C0121116C0121116
C0121116
 
B0140815
B0140815B0140815
B0140815
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

IOSR Journals

  • 1. IOSR Journal of Computer Engineering (IOSRJCE) ISSN: 2278-0661 Volume 3, Issue 3 (July-Aug. 2012), PP 50-55 www.iosrjournals.org Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery of Collaborations and Roles (Collaboration Browser Model) 1 Smt Vedavati R Tiwari, 2Shri M.D Panchamukhi 1, 2 Dept of Cse Khkie Vidyagiri Dharwad-4 Abstract: The paper presents the Collaboration-based or role-based design that decompose an application into tasks performed by a subset of applications’ classes. Collaborations provide a larger understanding and reuse than classes. They form an important aid in the maintenance and evolution of software. The extraction of collaborations is therefore an important issue in the design recovery. The paper presents an iterative approach that uses the dynamic information to support recovery and understanding of collaborations. The paper presents the details of prototype “Collaboration Browser” modeled for querying of dynamic information using collaborations. The prototype modeled intends to eliminate visual representations that are laborious and expensive to understand and hence represents dynamic information on the collaboration browser in the form of collaboration patterns through which the developer can perform querying to extract and understand the collaborations between instances of classes in Java programming application. The collaboration browser is developed in Java language on Net beans 6.0 platform using Swings feature of Java. Keywords: collaboration-based design, design recovery, program understanding, object-oriented reverse engineering, dynamic analysis. I. Introduction In contrast to procedural applications, where a specific functionality is often identified with a subsystem or module, the functionality in object-oriented systems comes from the cooperation of interacting objects and methods. In designing object-oriented applications, the importance of modeling how objects cooperate to achieve a specific task is well recognized. Collaboration-based or role-based design decomposes an object-oriented application into a set of collaborations between classes playing certain roles. Each collaboration encapsulates an aspect of the application and describes how instances of class interact to achieve a specific task. The recovery of collaborations from the code is an important aid for understanding and maintaining object-oriented applications. However, detecting and deciphering interactions of objects in the source code is not easy: polymorphism makes it difficult to determine which method is actually executed at runtime, and inheritance means that each object in a running system exhibits behavior which is defined not only in its class, but also in each of its super classes. This difficulty is further aggravated in case of the languages like Java where many instances of different class types collaborate interactively and also repeatedly and methods are never statically bound. To get a better understanding of the dynamic interactions between instances, developers often turn to tools which display the run-time information as interaction diagrams. Designers of such tools are confronted with the challenge of dealing with a huge amount of trace information and presenting it in an understandable form to the developer. Several visualization techniques, such as information murals, program animation and execution pattern views have been proposed to reduce the amount of trace information presented and to facilitate its navigation. This paper proposes an approach to the recovery and study of collaborations by using dynamic information, but does not rely heavily on visualization techniques. The most visualization tools display an entire trace and give the user a feel for the overall behavior of an application, and paper proposes focusing on understanding much smaller chunks of interactions and the roles that classes play in these. The paper proposes developing a tool prototype, the Collaboration Browser, to demonstrate the validity of approach. Collaboration Browser is used to query run-time information iteratively to answer concrete questions about collaborations and interactions between instances of classes of Java programs. Collaboration-based or role-based designs decompose an application into tasks performed by a subset of the applications’ classes. Collaborations provide a larger unit of understanding and reuse than classes, and are an important aid in the maintenance and evolution of the software. The extraction of collaborations is therefore an important issue in design recovery This paper presentation is not oriented primarily towards program visualization. It simply presents the use of a sequence diagram (visualization) to generate and display the collaboration pattern. The paper concentrates on the prototype tool that supports the recovery and understanding of collaborations. www.iosrjournals.org 50 | Page
  • 2. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of The paper is organized as follows. It starts with the design of prototype, its architecture and then implementation details as to how to iteratively recover collaborations and roles. It is a reverse engineering process. It starts from program of object-oriented concept, then gets the run-time execution trace or dynamic information of the program and then designs the model or prototype i.e, collaboration browser used to recover collaborations and roles. This mainly helps the developer who can perform querying to extract and understand the collaborations between instances of classes in Java programming application. The extraction of collaborations is an important issue in the design recovery. II. The Model Collaboration Browser Design The design of collaboration browser is preceded by the task that parses the dynamic information obtained from execution trace of sample java application. The tool or the prototype Collaboration browser is developed using JDK 1.6 on netbeans platform with usage of Profile for execution trace of Object Oriented Application. The tools generates collaboration patterns and allows the developer to re query and thus understand and recover the collaborations. Figure 1. Collaboration browser window Panels a, b and c list the sender classes, the receiver classes and the invoked methods respectively. Panel d lists collaboration patterns. It presents the dynamic information to the user through four basic elements of information: sender classes, receiver classes, invoked methods and collaboration patterns. Each of these four elements is displayed on the screen in a separate panel as seen in Figure 1 Panels a, b and c list the sender classes, the receiver classes and the invoked methods respectively. Panels d list collaboration patterns. Collaboration patterns are designed using sequence diagrams. Sequence diagrams are drawn using UML feature of netbeans 6.0. The different buttons are defined for iterative querying of the information displayed on the panels a,b,c and d. Various functionalities of the command buttons of the browser Method: After selecting the sender class, receiver class clicking on method button sets focus to all the methods those are interfaces for the selected classes. Class: After selecting method, clicking on class sets focus to methods sender and receiver class. Pattern: After selecting method, clicking on pattern sets focus to all collaboration patterns within which the selected method is invoked. Filter: After selecting the sender class, receiver class clicking on filter filters or deletes interfaces or the methods of the selected two classes from the methods panel. Self sends: After clicking on sender class, clicking on self send deletes the method from the methods panel for the selected sender class. Current: Clicking on current displays current execution trace of the program. Colab: Clicking on Colab sets the display to the base of of the collaboration pattern and also stes focus on sender class and receiver class and also focuses collaboration instances of the two highlighted classes. www.iosrjournals.org 51 | Page
  • 3. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of III. The prototype architecture: Figure 2. Prototype Architecture The architecture consists of three layers Presentation layer: It consists of Graphical User Interface and classification browser that presents execution trace classified as panels for sender class, receiver class and interface and methods. It also consists of panel for collaboration pattern for which values are to be generated depending on execution trace repository. Logic layer: It consists of java implementation classes and functions for event-driven programming. Database layer: It consists of schemas, tables of the execution trace. Architecture Components: The Collaboration Browser supports three basic kinds of operations:  querying the current base of dynamic information  editing the base of dynamic information through filtering out information or loading a collaboration instance,  querying the dynamic information of the selected collaboration pattern The Queries are numbered as (Q1,Q2,Q3,Q4 and Q5), editing (E1, E2, E3, E4) and displaying functions (D1, D2, D3). Query about the interface of a class. These queries are of the form Q1: what methods of class A are invoked by class B? Selecting sender and receiver classes, the user requests a list of the methods displayed in panel c. Q2: which classes are senders and receivers of the following method? Conversely, selecting a method in panel c, the developer can request the list of senders and receivers of the selected method. Query about a collaboration. By selecting the method of interest (panel c) the following query can be answered: Q3: what collaboration patterns result from this method invocation? Panel d lists the collaboration patterns that have selected method in their invoked method list Q4: For the selected collaboration pattern which are the sender class, receiver class and the methods. Panel a highlights sender class, panel b highlights receiver class and panel c lists the methods and also highlights the methods those are interfaces between the sender class Query about a role. These queries are of the form: Q5: given a collaboration pattern what are all the methods that collaborate the senders and receivers ? The developer can request a list of receivers which play this role in the same collaboration pattern and the corresponding senders. Editing the dynamic information. To focus the investigation on the events of interest the developer can filter out method invocation events which are not relevant by specifying sender classes, receiver classes and methods to be filtered out. This reduces the amount of dynamic information to be analyzed and presented. Another option for focusing on events of interest is to load an instance of one collaboration pattern as the current base of information. This allows the developer to focus on analyzing one collaboration pattern. The browser queries operate on a current execution trace. When the tool starts up, the current trace corresponds to original execution trace obtained through instrumenting and executing the application. In the course of the iterative process this trace can be edited by the user (using the buttons in panel f) to: E1: remove method invocation events from the trace for selected senders, receivers and methods, E2: remove method invocation events which are self-sends, E3: set the current trace to an instance of a selected collaboration pattern, or E4: reset the current trace to the original execution trace. www.iosrjournals.org 52 | Page
  • 4. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of Implementation and testing Figure 3 class diagram of the example 1. The approach uses dynamic information recorded from program execution. For each method invocation event sender class, receiver class and name of invoked method is recorded. 2. Pattern matching is used to eliminate similar execution sequences in the execution trace. This makes the developer not to confront the entire trace of execution but rather with the collaboration patterns. 3. The tool Collaboration browser lets the developer query the dynamic information in terms of classes and interactions of interest. Thus allows the developer to refine the investigation to focus on collaborations of interest IV. Types of Tests carried a)Recovery of collaborations of java.lang.String Start by querying about the interface that class java.lang.String presents to other classes in Java. Table 1 shows the methods of class java.lang.String which are invoked by other Java classes The Table1 depicts that there is overlap in the table cells. That is, some methods of java.lang.String are invoked by instances of two different classes. Table1 java.lang.String interface matrix For example , both Java.lang.ClassLoader and Sun. misc. Floating Decimal invoke charAt(int). equals(Object) method is invoked by instances of three different classesJava.util.Hashtable, Java.lang.System and Javax.swing.ArrayTable. Both Javax.swing.text.GapContent and Java.lang.AbstractBuilder invoke <init>(char[],int,int) and both orgUI.employee and orgUI.manager invoke <init>(String). Using the collaboration browser we group methods in the interface String class presents to the ClassLoader and look at the shortest collaboration patterns in which these methods occur. This is accomplished by interactively selecting methods and posing queries of the form Q3:”what are the collaboration patterns in which instance of ClassLoader invokes the methods(indexOf(int) and charAt(int)) on an instance of String class. These queries and the corresponding response are shown schematically in Table 2 and Table 3. www.iosrjournals.org 53 | Page
  • 5. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of Table 2 the contexts i.e. collaboration patterns for the selected method. The interface indexOf(int)) occurs in two different contexts as shown in Table 2 by loading an instance of the patterns Java.lang.ClassLoader . Table 3 shows two interfaces .The interfaces of the collaboration pattern are shown in bold face font. The name of the collaboration pattern is named after the method of a class which is the root of a call tree. Table 3 collaborations involving the ClassLoader-string interface You can concentrate on String charAt , to learn about the how String class invokes charAt() method. By loading an instance of the collaboration patterns orgUI_ClassLoader and orgUI_JLabel (E3 function) and querying about interfaces (Q1 and Q2 queries) we can arrive at charAt(int) collaboration which describes the predictable participants as shown in the Table 4. The variation in the call tree resulting from invocation of charAt() is due to the different kinds of user events. The role of classes is represented simply by means of the interface they represent in the collaboration. The test can be continued for discovering other collaboration patterns in which the instances of java.lang.String participate. By using Q4 ,it is investigated that java.lang.String participates in nine main collaborations. It required 18 queries. The method E1 and E2 are not demonstrated for the example. V. Conclusions: The application begins with an execution trace and condenses this information by representing program behavior in terms of collaboration patterns. It presents this information to developers in terms of sender classes, receiver classes, invoked methods and collaboration patterns and allows developers to query each of these items in terms of the others. In this way it lets a developer focus on the aspect of the application of interest without wading through a lot of trace information and the output is checked for 19 collaboration patterns resulted after instrumenting sample code. Table 4. Participant classes for interface charAt(int) www.iosrjournals.org 54 | Page
  • 6. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of This is how Collaboration Browser is used to discover important collaborations in an application and to understand the roles that classes play in these collaborations. The approach is promising and is used to discover important collaborations in an application and to understand the roles that classes play in these collaborations. References: [1] Visualising the behavior of Object Oriented Systems Proceedings of 9th Annual Conference on OOP Systems, languages and Applications [2] Execution patterns in Object Oriented Visualization IBM Research center, Wim DePauw, David Lorenz [3] Roles and classes in OOP- Reenskuag [4] white papers for Toolbox for IT: it.toolbox.com [5] Getting Dynamic: Java & UML Interaction diagrams by Stephen Palmer [6] Netbeans 6.0 UML tutorials [7] MySQL Reference manual [8] The JFC Swing tutorial by Kathy Walruth www.iosrjournals.org 55 | Page