Talks about the issues which developers face while interacting with the many software repositories and the questions they usually have in their mind while search. Introduce the linked data approach to integrate the information from different software repositories.
WikiSym2012 Deletion Discussions in Wikipedia: Decision Factors and Outcomes
One-stop shop for software development information
1. Digital Enterprise Research Institute www.deri.ie
One-Stop Shop for Software Development
Information
Aftab Iqbal
aftab.iqbal@deri.org
Digital Enterprise Research Institute, NUI Galway, Ireland
Stefan.Decker@deri.org
http://www.StefanDecker.org/
Copyright 2010 Digital Enterprise Research Institute. All rights reserved.
2. Introduction
Digital Enterprise Research Institute www.deri.ie
Software development is a collaborative activity.
Developers use various tools to solve software related
problems:
Bug tracking systems
Source code management system
Continuous build integration frameworks
Developers use different communication channels.
Mailing lists
IRC channels
Discussion forums
3. Information Seeking
Digital Enterprise Research Institute www.deri.ie
Mailing lists Issue tracking Configuraiton
Source code Test cases
Discussion forums systems management
Commit logs documentation
What are my what is the last
Who should I seek Who should i What are the relevant
co-workers doing week activity of my
help on the task assign the next information to the task
co-workers
task at hand
4. Heterogeneous & Interdependent
Software Repositories
Digital Enterprise Research Institute www.deri.ie
Software artefacts are closely related and interdependent.
Feature
Request
Documentatio
Specification n
Test
Data
Configuration
management etc
5. Heterogeneous & Interdependent
Software Repositories
Digital Enterprise Research Institute www.deri.ie
Source Code
Source Code
Issue Tracking System Source Repository
developers
Bugs Bugs committers
Bugs
developers
Source Code
Discussion Forum
IRC Channel
Integrated Development
Mailing list Source Code Environment
developers
6. What we have !
Digital Enterprise Research Institute www.deri.ie
Desktop
How to connect
these islands
Web
Discussion forums
IRC chat logs
Mailing list
7. Project Memory
Digital Enterprise Research Institute www.deri.ie
Query:
Give me all developers, bugs and discussions related
to a software module
Interlinked
Platform
Discussion forums
IRC Chat Logs
Mailing lists
8. But …
Digital Enterprise Research Institute www.deri.ie
Data format issues
Relational Data
– Bug tracking systems
– Discussion forums
– Wikis
– Source control repositories
Structured Data
– Source code
RFC Standards
– Mailing lists
– IRC Channels
9. Linked Data Driven Software
Development (LD2SD)
Digital Enterprise Research Institute www.deri.ie
Source Code
Source Code
Issue Tracking System Source Repository
developers
Bugs
Bugs committers
Bugs
developers
Source Code
Discussion Forum
IRC Channel
Integrated Development
Mailing list Source Code Environment
developers
11. What’s next
Digital Enterprise Research Institute www.deri.ie
Large Scale Software
Project Integration
(The Linked Data way)
linked software data set
RDF data sources
GoogleCode SourceForge GitHub RubyForge
code forges
linking software project repositories
12. Conclusion
Digital Enterprise Research Institute www.deri.ie
Outlined software tools used by software developers
Discussed problems in software development
Introduced linked data approach in software development paradigm
The idea is to make implicit links between software artefacts explicit and
expose them using RDF
Provide valuable information to end users by aggregating information from
different interconnected software artefacts
Editor's Notes
Software development as we all know is a collaborative activity. Now a days developers are well equipped with a variety of software development tools in order to manage and develop software projects efficiently and cost effectively.Apart from using the tools to produce high quality software, developers also use different mediums of communication to interact with each other.
The questions which developers usually have in mind are hidden deep inside the software repositories. Information stored in historical software repositories, such as mailing lists and bug repositories, represent a group memory for a project. Such information is very valuable for current members of a project. But these repositories are not easy to search in order to answer such questionsUnderstanding large software systems remains a challenge for most software organizations. Documentations for large systems rarely exist and if they exist they are often not up-to-date. Moreover system experts are usually too busy to help novice developers, or may no longer be part of an organization. The information is not easily accessible due to its sheer volume, the lack of tools to navigate the repositories effectively and the difficulty of making connections between logically related items in disparate repositories.software developer who joins an existing software development team must come up-to-speed on a large, varied amount of information before becoming productive. In collocated teams, this knowledge is often gained through mentoring: An existing member of the team works closely with each of the newcomers, looking over their shoulders, and imparting the oral tradition of the project, as the newcomers work on their first assigned tasks
It wouldn’t be wrong to consider these software artefacts as closely related and interdependent, talking about the same thing, i.e., software. However these interconnections are not explicit, hence machine-accessible but rather ofan implicit nature (a mentioning of a certain Java class in a blog post, for example). A bug report, for example, may lead to achange in the program code and additionally the documentation needs to be updated. This may be reflected in theconfiguration management system. Developers nowadays have to perform keyword-based searches on the Web to find source-code examples or need to manually trace discussions about a past bug on the mailing list.
An example here. A bug discussed on mailing list, implemented by someone and committed via source control. For a certain period of time, the information will be kept in mind of the developers but assume after six month, the bug has been reproduced than how easy would it be to trace back the discussion and the changes that was done six months ago.Given the type of information stored in these repositories, one can see the potential of linking these pieces of information which would address plenty of software development issues.
Provide developers effective and efficient access to project memory.
An example here. A bug discussed on mailing list, implemented by someone and committed via source control. For a certain period of time, the information will be kept in mind of the developers but assume after six month, the bug has been reproduced than how easy would it be to trace back the discussion and the changes that was done six months ago.Given the type of information stored in these repositories, one can see the potential of linking these pieces of information which would address plenty of software development issues.