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.
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
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).
- IBM Mashup Center applications use cases, Part 2: Defect management mashup application construction (developerWorks, August 2008): The companion tutorial to this article. Learn step by step how to construct the defect management mashup application.
- IBM Mashup Center: Find an easy to use business mashup solution, supporting line of business assembly of dynamic situational applications -- with the security and governance capabilities IT requires.
- "In-depth look at Feed Mashup Editor within IBM Mashup Center's InfoSphere MashupHub" (developerWorks, July 2008): Explore the Feed Mashup Editor within IBM Mashup Center's InfoSphere MashupHub more deeply and extend the use-case scenario to showcase the different components and illustrate the advantages of using Web 2.0 concepts.
- "Get started with InfoSphere MashupHub" (developerWorks, June 2008): Get an introduction to InfoSphere MashupHub, part of the IBM Mashup Center product. You'll learn about the architecture of the product and about the different tools and utilities within it. Then, explore a simple use case scenario.
- "Choosing between mashups and traditional Web applications" (developerWorks, July 2008): This article compares and contrasts traditional Web applications with the evolving platforms for creating mashups as viable business tools.
- developerWorks Information Management zone: Learn more about Information Management. Find technical documentation, how-to articles, education, downloads, product information, and more.
- Stay current with developerWorks technical events and webcasts.
- Technology bookstore: Browse for books on these and other technical topics.
Get products and technologies
- Try out IBM Mashup Center on Green House: Discover a live community Web site where you can use Lotus Collaboration Products for free.
- Build your next development project with IBM trial software, available for download directly from developerWorks.
- IBM Mashup Center Wiki: Learn about IBM Mashup Center, contribute to its knowledge base, and collaborate with others.
- Participate in developerWorks blogs and get involved in the developerWorks community.
Dig deeper into Information management on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Keep up with the best and latest technical info to help you tackle your development challenges.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.