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
www.iosrjournals.org 50 | Page
Modeling Object Oriented Applications by Using Dynamic
Information for the Iterative Recovery of Collaborations and
Roles (Collaboration Browser Model)
1
Smt Vedavati R Tiwari, 2
Shri 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.
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
www.iosrjournals.org 51 | Page
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.
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
www.iosrjournals.org 52 | Page
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.
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
www.iosrjournals.org 53 | Page
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.
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
www.iosrjournals.org 54 | Page
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)
Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of
www.iosrjournals.org 55 | Page
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

More Related Content

What's hot

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
 
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
 
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
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000eudal
 
Online eaxmination
Online eaxminationOnline eaxmination
Online eaxminationAditi_17
 
Multiagent system for scrutiny of
Multiagent system for scrutiny ofMultiagent system for scrutiny of
Multiagent system for scrutiny ofcsandit
 
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
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalHarieHaren GV
 
Domain class model
Domain class modelDomain class model
Domain class modelshekharsj
 
Lab 1: Creating and viewing traceability relationships between artifacts that...
Lab 1: Creating and viewing traceability relationships between artifacts that...Lab 1: Creating and viewing traceability relationships between artifacts that...
Lab 1: Creating and viewing traceability relationships between artifacts that...IBM Rational software
 
Development of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer InteractionDevelopment of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer InteractionWaqas Tariq
 
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
 
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
 

What's hot (17)

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...
 
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
 
Sub1583
Sub1583Sub1583
Sub1583
 
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
 
2. uml-methodology_hypermedia_design_2000
2.  uml-methodology_hypermedia_design_20002.  uml-methodology_hypermedia_design_2000
2. uml-methodology_hypermedia_design_2000
 
Online eaxmination
Online eaxminationOnline eaxmination
Online eaxmination
 
Multiagent system for scrutiny of
Multiagent system for scrutiny ofMultiagent system for scrutiny of
Multiagent system for scrutiny of
 
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...
 
UML Diagrams For Online Course Portal
UML Diagrams For Online Course PortalUML Diagrams For Online Course Portal
UML Diagrams For Online Course Portal
 
Domain class model
Domain class modelDomain class model
Domain class model
 
java
javajava
java
 
Lab 1: Creating and viewing traceability relationships between artifacts that...
Lab 1: Creating and viewing traceability relationships between artifacts that...Lab 1: Creating and viewing traceability relationships between artifacts that...
Lab 1: Creating and viewing traceability relationships between artifacts that...
 
Intoduction to uml
Intoduction to umlIntoduction to uml
Intoduction to uml
 
Development of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer InteractionDevelopment of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer Interaction
 
EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY EXTENDING WS-CDL TO SUPPORT REUSABILITY
EXTENDING WS-CDL TO SUPPORT REUSABILITY
 
Paper 55 final
Paper 55 finalPaper 55 final
Paper 55 final
 
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...
 

Viewers also liked

The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...
The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...
The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...IOSR Journals
 
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...The Phase Theory towards the Unification of the Forces of Nature the Heart Be...
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...IOSR Journals
 
Research Paper Selection Based On an Ontology and Text Mining Technique Using...
Research Paper Selection Based On an Ontology and Text Mining Technique Using...Research Paper Selection Based On an Ontology and Text Mining Technique Using...
Research Paper Selection Based On an Ontology and Text Mining Technique Using...IOSR Journals
 
Computer aided environment for drawing (to set) fill in the blank from given ...
Computer aided environment for drawing (to set) fill in the blank from given ...Computer aided environment for drawing (to set) fill in the blank from given ...
Computer aided environment for drawing (to set) fill in the blank from given ...IOSR Journals
 
Implementation of PCI Target Controller Interfacing with Asynchronous SRAM
Implementation of PCI Target Controller Interfacing with Asynchronous SRAMImplementation of PCI Target Controller Interfacing with Asynchronous SRAM
Implementation of PCI Target Controller Interfacing with Asynchronous SRAMIOSR Journals
 
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...IOSR Journals
 
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...IOSR Journals
 

Viewers also liked (20)

The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...
The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...
The Role of IL-17, Metaphase Reactants on Patients with Early Rheumatoid Arth...
 
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...The Phase Theory towards the Unification of the Forces of Nature the Heart Be...
The Phase Theory towards the Unification of the Forces of Nature the Heart Be...
 
J1802035460
J1802035460J1802035460
J1802035460
 
U01761147151
U01761147151U01761147151
U01761147151
 
G1802033543
G1802033543G1802033543
G1802033543
 
U01725129138
U01725129138U01725129138
U01725129138
 
E017552629
E017552629E017552629
E017552629
 
Research Paper Selection Based On an Ontology and Text Mining Technique Using...
Research Paper Selection Based On an Ontology and Text Mining Technique Using...Research Paper Selection Based On an Ontology and Text Mining Technique Using...
Research Paper Selection Based On an Ontology and Text Mining Technique Using...
 
A017160104
A017160104A017160104
A017160104
 
M017548895
M017548895M017548895
M017548895
 
C011122428
C011122428C011122428
C011122428
 
B017310612
B017310612B017310612
B017310612
 
I017377074
I017377074I017377074
I017377074
 
Computer aided environment for drawing (to set) fill in the blank from given ...
Computer aided environment for drawing (to set) fill in the blank from given ...Computer aided environment for drawing (to set) fill in the blank from given ...
Computer aided environment for drawing (to set) fill in the blank from given ...
 
G0562430
G0562430G0562430
G0562430
 
Implementation of PCI Target Controller Interfacing with Asynchronous SRAM
Implementation of PCI Target Controller Interfacing with Asynchronous SRAMImplementation of PCI Target Controller Interfacing with Asynchronous SRAM
Implementation of PCI Target Controller Interfacing with Asynchronous SRAM
 
F012515059
F012515059F012515059
F012515059
 
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...
Academic Libraries: Engine Breed Spuring Innovation for Competitiveness and S...
 
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...
Study of Boron Based Superconductivity and Effect of High Temperature Cuprate...
 
G1304014050
G1304014050G1304014050
G1304014050
 

Similar to Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery of Collaborations and Roles (Collaboration Browser Model)

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.
 
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
 
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
 
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
 
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
 
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
 
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
 
Automating and Validating Semantic Annotations.pdf
Automating and Validating Semantic Annotations.pdfAutomating and Validating Semantic Annotations.pdf
Automating and Validating Semantic Annotations.pdfKathryn Patel
 
PHASE II.pptx
PHASE II.pptxPHASE II.pptx
PHASE II.pptxMotiDiro1
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...Waqas Tariq
 

Similar to Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery of Collaborations and Roles (Collaboration Browser Model) (20)

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#....
 
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...
 
Sdlc
SdlcSdlc
Sdlc
 
Sdlc
SdlcSdlc
Sdlc
 
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
 
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
 
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
 
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
 
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
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
SE-Lecture-4.pptx
SE-Lecture-4.pptxSE-Lecture-4.pptx
SE-Lecture-4.pptx
 
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
 
Automating and Validating Semantic Annotations.pdf
Automating and Validating Semantic Annotations.pdfAutomating and Validating Semantic Annotations.pdf
Automating and Validating Semantic Annotations.pdf
 
PHASE II.pptx
PHASE II.pptxPHASE II.pptx
PHASE II.pptx
 
Sample SRS format
Sample SRS formatSample SRS format
Sample SRS format
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
Cognitive Approach Towards the Maintenance of Web-Sites Through Quality Evalu...
 

More from IOSR Journals (20)

A011140104
A011140104A011140104
A011140104
 
M0111397100
M0111397100M0111397100
M0111397100
 
L011138596
L011138596L011138596
L011138596
 
K011138084
K011138084K011138084
K011138084
 
J011137479
J011137479J011137479
J011137479
 
I011136673
I011136673I011136673
I011136673
 
G011134454
G011134454G011134454
G011134454
 
H011135565
H011135565H011135565
H011135565
 
F011134043
F011134043F011134043
F011134043
 
E011133639
E011133639E011133639
E011133639
 
D011132635
D011132635D011132635
D011132635
 
C011131925
C011131925C011131925
C011131925
 
B011130918
B011130918B011130918
B011130918
 
A011130108
A011130108A011130108
A011130108
 
I011125160
I011125160I011125160
I011125160
 
H011124050
H011124050H011124050
H011124050
 
G011123539
G011123539G011123539
G011123539
 
F011123134
F011123134F011123134
F011123134
 
E011122530
E011122530E011122530
E011122530
 
D011121524
D011121524D011121524
D011121524
 

Recently uploaded

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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

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
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery of Collaborations and Roles (Collaboration Browser Model)

  • 1. IOSR Journal of Computer Engineering (IOSRJCE) ISSN: 2278-0661 Volume 3, Issue 3 (July-Aug. 2012), PP 50-55 www.iosrjournals.org www.iosrjournals.org 50 | Page Modeling Object Oriented Applications by Using Dynamic Information for the Iterative Recovery of Collaborations and Roles (Collaboration Browser Model) 1 Smt Vedavati R Tiwari, 2 Shri 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.
  • 2. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of www.iosrjournals.org 51 | Page 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.
  • 3. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of www.iosrjournals.org 52 | Page 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.
  • 4. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of www.iosrjournals.org 53 | Page 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.
  • 5. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of www.iosrjournals.org 54 | Page 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)
  • 6. Modeling Object Oriented Applications by Using Dynamic Information for The Iterative Recovery of www.iosrjournals.org 55 | Page 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