IBM Mashup Center applications use cases, Part 1: Defect tracking and management mashup

Defects management often requires multiple software products. In this article, learn how to use the IBM® Mashup Center, where data can be easily integrated from distinct data sources. Analysis of integrated data provides deeper insight on defect and project status than otherwise possible.

Ronald C. Leung (rcleung@us.ibm.com), Software Engineer, Mashup Hub Enablement, IBM Japan, Software Group

Ronald Leung is a member of the IBM Mashup Center Customer Enablement team and a solutions architect for IBM InfoSphere MashupHub. You can reach him at rcleung@us.ibm.com.



28 August 2008

Also available in Chinese

Introduction

Defect management is critical in any software project, and many tools are available to achieve various tasks. In a common setup, one tool would be used for tracking defects, another for source code version tracking, and yet another for code coverage analysis. Even though the tasks accomplished by these tools are different, the data that they provide are all relevant to software quality control. Wouldn't it be great if you could integrate all these data into one central location for analysis? If you can link the data together in a meaningful way, you would be able to discover relationships between these seemingly disparate data.

IBM Mashup Center allows you to do just that. Using IBM Mashup Center, data from multiple sources can be transformed and merged together easily. Many different data sources are consumable by the IBM Mashup Center, including XML documents and feeds. Most defect management tools provide reports in XML or ATOM feed format, and we can build mashup applications that serve as a defect tracking dashboard using these feeds.

In this article, get a high-level view of how such an application can be constructed. Details of implementing such application, including step-by-step instruction to create and configure each mashup in IBM Mashup Center is included in Part 2 of this series.


Value proposition to use mashups

Mashup applications provide valuable features in a software development environment that cannot be matched by any other stand-alone tool. For example, tools such as Bugzilla provide basic analysis and graphing capabilities. However, what you can do is limited to the features provided by Bugzilla. Using IBM Mashup Center, you can consume information in the form of an XML feed from other tools. The IBM InfoSphere™ MashupHub, a key component of IBM Mashup Center, allows you to easily transform, enhance, or analyze the feeds much more flexibly. In addition, mashup applications allow you to mix data from different sources in one place. By integrating data from various sources, you can discover relationships between these data that are otherwise difficult to find. Integrating relevant data allows you to gain new insights on how to improve the software development process.


Design overview

To create a defects dashboard mashup application, you need to create the following two types of feeds/mashups:

  • Defect details listing feed: This feed provides a list of defects and their details. Based on the criteria that you specify (for example, all defects since a certain date or all defects for a certain component), this feed retrieves all the defects that satisfies the criteria.
  • Defect analysis mashup feeds: You can create different feeds for different types of analysis. By creating mashups to group, sort, or filter the defect listing feed, you can answer questions such as the following:
    • How many defects do you have per component? How many are still outstanding?
    • How many defects are you getting per week over the last few months?
    • What is the relationship between the number of files changed versus the number of defects?

Separating the defect details listing feed from the other mashup feeds allows you to easily reuse this feed for different analysis, and it also provides performance advantages. Depending on the amount of defects, retrieving data from Bugzilla might be very time-consuming. Creating a separate feed allows you to cache the result for use by other feed mashups.

Defect details listing feed

The objective of this feed is to retrieve all the defect details for analysis. A defect management system usually contains defects info for multiple products and releases, and in a typical scenario, it is not necessary to analyze all defects available. For Bugzilla, a Web interface for filtering defects is provided. This interface allows you to filter defects based on product name, version, bug creation date, and much other information.

Figure 1. Bugzilla Web search interface

After clicking on the search button, Bugzilla displays the results on a Web page. It also provides the same output as an ATOM feed. The URL to this feed, can be consumed by the IBM MashupHub. The same methods can be applied to other tools that provide ATOM feeds or XML documents as output.

For this to work properly, the URL must contain all the search criteria. For example, you can see the filter criteria as URL parameters in the following URL to Apache's Bugzilla:

https://issues.apache.org/bugzilla/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr &bug_status=NEW&chfieldfrom=2008-01-01&chfieldto=Now&product=Tomcat%206 &query_format=advanced&title=Bug%20List&ctype=atom

Using a URL similar to the above, the IBM MashupHub is able to retrieve the feed data.

Defect analysis mashups

The IBM InfoSphere MashupHub provides many operators for transforming feed output. For example, the Transform operator allows you to modify the content of the XML feeds or filter out unnecessary elements in the feed. This operator also provides various text handling functions (for example, Trim, Concatenate, SubString) and mathematical functions (for example, Add, Max, Count) for further manipulation of the feed content.

Figure 2. MashupHub operators

These mashups allow you to easily group together the defects that belong to the same product name, component name, or defect severity. If you want to figure out which component has more defects, you can simply group all the defects by the component name and do a count. Or if you want to see the time trend of defect creation, you can group and count the defects by week they were created.

You can also easily combine different feeds into one feed using the combine operator. The input feeds can contain data from multiple sources. For example, you can combine one feed from Bugzilla and another feed from the source control management systems. By integrating these two data, you can analyze whether there are any relationships between these applications. New insight and observations can then be quickly found without writing any code.


Presentation of feed mashups

Information in ATOM feeds is not very useful until it is presented in a meaningful way. IBM Lotus Mashups, another key component of IBM Mashup Center, provides various widgets for displaying feed information. For information such as defect statistics, the most natural way to present it would be using bar charts or line charts. Using widgets provided by IBM Lotus Mashups, you can create dashboard type applications. Figure 3, below, shows a simple application with two widgets. The left widget displays the total number of defects for a particular component in a table, and the bar chart on the right displays the number of defects over the last few weeks. Clicking on different rows on the table updates the bar chart to display data for the corresponding component.

Figure 3. Sample dashboard application

Charting widgets can also plot multi-series data. As mentioned earlier, it is very useful to mash data from different sources into one feed. For example, if you merged SVN data together with Bugzilla data into one single feed, you can easily plot them using the Charting widget.

Figure 4. Multi series chart

Summary

IBM Mashup Center provides a platform for mashing up data from various sources easily. Defect management is one of many interesting use cases that would benefit from mashup applications. Using the transformation capability of IBM InfoSphere MashupHub and the presentation features of IBM Lotus Mashup widgets, you can easily combine data from distinct sources and gather new insights from the integrated data.

To see detailed instructions on how to build mashup applications described in this article, see the tutorial "Defect management mashup application construction" (developerWorks, August 2008).

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management
ArticleID=333383
ArticleTitle=IBM Mashup Center applications use cases, Part 1: Defect tracking and management mashup
publish-date=08282008