Presented by Abirami Poonkundran

advertisement
Presented by
Abirami Poonkundran












Introduction
Current Work
Current Tools
Solution
Tesseract
Tesseract Usage Scenarios
Information Flow
Architecture
Evaluation
Conclusion
Strength
Weakness

Success of a Software Project depends on robust
understanding of both Technical and Social linkages, that
happens within a project

Technical artifacts:
◦ Code Analysis
◦ Task Analysis
◦ Mining project archives

Social linkages:
◦ Relationship between developers
◦ Communication between developers etc.,

Research has shown that:
◦ Source code, artifacts, developers and tasks are intrinsically
bound together in a software project
◦ Developers who work on interdependent code modules without
communicating with each other, introduce future integration
problems
◦ Development work proceeds more efficiently, when developers
have access to patterns of communication or logical
dependencies between artifacts

Studies have shown that:
◦ Teams which interact rigorously through emails, IRC or mailing
list were aware of “Who is doing what” and this reduced
potential errors
◦ Teams with high congruence (match between technical
dependencies among artifacts and communication patterns) took
less time to complete tasks
• There are various tools available for Code Analysis or Social
Network Analysis
• All the current tools focuses on either Technical or Social aspects
of a project independently
• It is very useful when all these information are combined
together
• Combining them together helps to manage changes, time,
improve collaboration, coordination, as well as finding the right
person to communicate etc.,

We need a tool which:
◦ Simultaneously show the social as well as technical relationships
among different project entities, like:




Developers
Communication
Code, and
Bugs
◦ Cross-link and enable interactive exploration of these
relationships and how they evolve
◦ Highlight matches among technical dependencies and
communication patterns of developers

Tesseract is a tool which does everything that is mentioned
above

Tesseract is an interactive, exploratory environment, to
enable developers to investigate complex relationships
among code, developers, communications and bugs
(a)
(b)
(C)
(d)

4 cross – linked panes
a) Project Activity Pane

displays the activities in a project as a time series
b) Files Network Pane

Displays the link between the files
c) Developers Network Pane

displays developers and links among them
d) Issues Pane

displays defect or feature related information
Demo:

◦
http://crc.maccherone.com/tesseract/mpv.html

Investigating an event
◦ A new developer is assigned to fix a particular bug regarding the
display of “minutes remaining” in a play list.
◦ From reading the mailing lists, he remembers that some one had
worked on a related feature.
◦ So he decided to investigate that feature to obtain a better
understanding of the file and the people who involved in the
project

Deciphering patterns
◦ This scenario provides two snapshots of project history, each
presenting
 file network
 developer network
 issues data

Figure (a)
◦ Stephen is the primary contributor having changed literally every
file

Figure (b)
◦ Alicia is now the primary contributor and she is communicating
with other contributors
(a)
(b)
Contrasting development patterns

Collecting:
◦ Most open source and distributed development projects use 3
major tools to manage software development
 SCM
 one or more project mailing lists
 common bug or issue tracking database.

Extracting and Cross-linking:
◦ Different projects use different systems for their code and bug
archival.
◦ A project may use CVS, Perforce, Bugzilla etc.,
◦ Tesseract is able to work with a wide set of projects

Analyzing
◦ The XML files generated by the extractor are analyzed on the
web client to identify
 Relationships among code, developer, and bugs
 Coordination among team members
 Communication patterns among developers

Filtering
◦ Includes time slider, file pane, developer pane, search field.

Visualizing
◦ visualizing the socio-technical relationships in the project.
◦ graphical representation

Use of GNOME project data
◦ This is a open source project with large data in the database

Usability studies
◦ Small experiment to evaluate whether user could understand and
apply

Experienced developer feedback
◦ Conducted a series of interview with experienced developers



Tesseract is designed for investigating relationships among
code, communication records, bugs, and developers over
time.
Tesseract builds upon the recent history of socio-technical
tools by showing the feasibility of creating a general project
browser tool
Tesseract based on user recommendations, such as:
◦ Hierarchically grouping files based on packages, functionality, or
architecture
◦ Providing additional context of changes
◦ Allowing developers to specify when they have communicated
with another developer




Tesseract is designed for investigating relationships among
code, communication records, bugs, and developers over
time
Tesseract as a web application removes the need for installing
any software on the client side, which makes it easy for
managers to quickly use the tool
Tesseract is an open source tool and it is easy to use and very
uses full for new developers
The author conducted interviews with real life developers and
got their feedback




XML file is generated while analyzing
The author has tested with GNOME project
Being open source, individuals used different aliases for each
system.
Large part of the normalization process was automated.
Download