Brief Description

Project Name: Binoculars_2010.

Duration: 5 Months ( June, 2010 to October, 2010 ).

Client: Department of Software Systems. Tampere University of Technology.

Status: Successfully Completed.

Project: Cloud Software Project, Department of Software Systems, Tampere University of Technology.

Project Group: M.M. Mahbubul Syeed, Prof. Tarja Systä and Prof. Tommi Mikkonen.

Tools used: Java (J2SE), Eclipse, Eclipse Rich Client Platform (RCP), ZEST graph visualization kit, JFree   
                   charts, SWT, Dom XML parser.

Project Description: 

Binoculars_2010 (see features and snaps) is the upgraded version of the previous tool Binoculars. This tool has the same basic focus and purpose as of its predisessor but encorporates massive upgradation.In brief, the foucs of this work is to analyze open source projects both from the point of view of Reverse Engineering (RE) and Social Network Analysis (SNA). Thus this tool analyzes those aspects of an Open Source project for which both RE and SNA are required by exploiting all the available data sources that are used by both these approaches (i.e., code base, SVN checkout, project mailing list, bug repository, user information system). Interested reader can find more on this here. Some of the example queries that one can make using this tool are,

Q1. Where does the expertise lay in the developer community? Who are the developers responsible for the      
      particular code segment?

Q2. Do interlock and cohesion hold in the code base?

Q3. What is the inclusion structure of the code base?

Q4. Does the inclusion structure of the code base conform to the organizational structure (i.e., does the Conway’s

      law apply)?

Q5. Whom (developer) users should contact for solving an issue?

Q6. How many people work on each software component? Who are they? 

Q7. Who are the users having common interest or usage of the software? 

Q.8 What are the critical issues from developer’s perspective?

Q9. Who are the people (developers) involved in answering user issues and bug solving?

Features and Snapshots

Please click on the snapshot to view larger image.
Features Description Screenshots
Project View: List all the project that are already analyzed as tree view. In this view,
 - New projects can be added.
 - New graphs can be added under an existing project.
 - Existing graphs and / or projects can be removed along with all the project data.
Graph View [Tabular]: Displays graph as list of edges and nodes. This view contains the followings,
 - Edge list table list edges as, Source node, destination node, edge weight and weight detail.
 - Node list table list all the graph nodes with the number of  connections for each node.
 - Node detail table shows information about a selected node. For example, shows detail of  a code file or person info.
Sort and Search operations can be performed on these tables.
Graph view:
Displays graphs in a graphical way with detail graph information. This view has the following parts,
 - Graph display form: displays the graph with nodes and edges between then with edge weights.
 - Node list form: list all the nodes of the displayed graph. This list can be sorted and selecting a node in this table will highlight corresponding node in the graph.
 - Node detail form: this form shows detail information about a selected node in graph display form.  
 - Edge list form: This form consists of three parts,
    - Graph Option table: shows total number of edges and nodes of the displayed graph and a
      serach option to search nodes in the graph.
    - Edge list table: lists all the edges in the table as source node, destination node, edge
      weight. This table can be sorted on column data. Selecting an edge in this table highlights
      corresponding edge in the graph.
    - Weight detail table: list the weight elements for selected edge in the edge list table.
Graph customization: Displayed graphs can be cusotmized in 5 (five) different ways. This option is available for both tabular graph view and graph view.
 - Node Nearest Neighbour: n level nearest neighbour of a selected graph node can be viewed. It shows the nodes that are nearest to a selected node for the given level.
 - Split on edge weight: User can set a range on edge weights and the edges that satisfies the weight range is displayed. User can set both upper limit and lower limit or either of them.
 - Customize on selected nodes: User can select a set of nodes from the node list and can draw graphs on those selected nodes (if one existis in the original graph).
 - Customize on selected edges: User can select a list of edges of their interest from the edge list table and draw graph on them.
 - Customize on node attributes: This is the most convenient graph customization option. User can set values on any of the node attributes for customization. For example, each person in the project has a joining date attribute. Thus one can set a range of dates (e.g. between 10-01-2010 to 10-10-2010) or set starting date (e.g. 10-02-2010) or ending date to view the customized graph for that selected period.
Save graph: Displayed and cusotmized graphs can be saved to xml files. This option is also available for both the graph views. Following are the saving options,
Save complete graph: Save the original graph with all edges and node list.
Save complete node list: Save only nodes of the original graphs with their detail.
Save this graph: Save the customized graph with all edge list and node list.
Save this node list: Save only the node list for the cusotmized graph.
Save this edge list: Save only edge list for the customized graph.  
Layout Change option: Layout of a displayed graph can be changed. This option is available in graph view. There are four layout options available,
- Spring layout.
- Grid layout.
- Tree layout.
- Radial layout.
layout change
Zoom Option: This option is available in graph view. A displayed graph can be zoomed from 0% to 400%. zoom option
Chart View: Chart view is used to show summary data on the project. Two charts are currently available,
- Pie chart and
Bar chart.
This view has the following parts,
 - Data selection form
 - Chart view form
 - Chart component form
 - Chart detail form
             
Followings are some cusotomization option provided by chart view,
  - Selected data can be viewed either as pie chart or bar chart or both.
  - Charts are customizable. User can add or remove chart data.
  - Pie in the pie charts can be splited for clearer view.
  - Chart components (each pie or each bar) are listed in the chart detail table. Selecting a pie or bar in this table would list the detail content of that pie or bar.
  - Charts can be zoomed in or out.
  - Charts can be saved as .png file.



Project Personel view: This view lists all the projects, under each proejct list all the personels and for each personel it would display their profile detail (e.g., name, user name, joining date, current position held, responsibilities, organization(s) worked for, contact detail and other relevant information provided by the project). binoculars ui
Project code Base view: This view also list all the project, for each project list all the code files in the code base. For each code file it would show its detial information. For example, code file name, extension, svn path, copyright information, developers names, included files etc.
Project bugzilla view: This view again list all the proejcts and under each project list all bugs or issues posted. For each bug or issue this view will display the following informaiton, issue id, issue title, priority, current status, submitted by with date and time, list of repliers with date and time,detail description of the issue with all the replies.