ConcernTagger

"All things have a cause. Look into your past for answers." - fortune cookie

Overview

ConcernTagger is a plug-in for the Eclipse development environment that allows you to manually associate requirements, features, bugs, etc. (concerns) with Java code (types, methods, and fields) using drag-n-drop and right click. ConcernTagger computes scattering metrics that measure the number of classes (CDC) and methods (CDO) involved in the implementation, and the distribution of lines across those classes (DOSC) and methods (DOSM).

ConcernTagger is based on the excellent ConcernMapper Eclipse plug-in created by Martin Robillard and Frédéric Weigand-Warr.

Features

(*) Created by Garcia et al.

Downloads

The latest source code can be found on our SourceForge website.

Source code and plug-in for ConcernTagger 2.0.1. Warning: 44 MB!

Case Studies

We performed several case studies using ConcernTagger. We offer our datasets and results to allow other researches to replicate the studies. We only ask that you reference this web page. Each study includes the following:

Case Studies

dbviz Mylyn-Bugzilla Rhino iBATIS
Summary Database schema visualizer Task-oriented development plug-in for Eclipse JavaScript compiler/interpreter Object-relational mapping tool
Download (project snapshot, datasets, and results) (Download zip)
(24 MB)
(Download zip)
(48 MB)
(Download zip)
(75 MB)
(Download zip)
(53 MB)
Application Domain Databases Development Tools Compilers Databases
Programming Language Java Java Java Java
Project Size 12.7 KLOC 13.7 KLOC 32.1 KSLOC 13.3 KSLOC
Version 0.5 1.0.1 1.5 (Release 6) 2.3
Concern Assignment Time (hours) 18 31 102 18
Concern Assignment Rate (KSLOC/hr) .7 .4 .5 .7
Project Website jdbv.sourceforge.net/dbViz eclipse.org/mylyn mozilla.org/rhino ibatis.apache.org
Source Repository CVS CVS CVS Subversion
Issue Repository SourceForge Issue Tracker Bugzilla Bugzilla Jira
Concern Domain Analyzed Use Cases Requirements ECMAScript Specification Requirements
Bug Assignment Technique Associated bugs directly with concerns Associated bugs with program elements Associated bugs with program elements Associated bugs with program elements
Bug Assignment Technology None (Manual) ConcernTagger (Manual) BugTagger (Automated) BugTagger (Automated)

Note: As a by-product of our search for appropriate case studies, we obtained metadata (size, bugs, etc.) for several open source projects. Feel free to download the Excel spreadsheet. Warning: The numbers are rough estimates only and are guaranteed to be out-of-date with the latest versions of the projects.

Related Publications

Marc Eaddy, Alfred Aho, and Gail C. Murphy, "Identifying, Assigning, and Quantifying Crosscutting Concerns," ICSE Workshop on Assessment of Contemporary Modularization Techniques (ACoM 2007), Minneapolis, MN, May 22, 2007. [ pdf ]

Marc Eaddy and Alfred Aho, "Towards Assessing the Impact of Crosscutting Concerns on Modularity," AOSD Workshop on Assessment of Aspect Techniques (ASAT 2007), Vancouver, BC, Canada, March 12, 2007. [ pdf ]

A. Garcia, C. Sant'Anna, E. Figueiredo, U. Kulesza, C. Lucena, and A. v. Staa, "Modularizing Design Patterns with Aspects: A Quantitative Study," Aspect Oriented Software Development (AOSD 2005), Chicago, IL, March 14-18, 2005.

Acknowledgements

We thank Martin Robillard and Frédéric Weigand-Warr for developing the ConcernMapper plug-in, on which ConcernTagger is based.

Vibhav Garg created the initial version of ConcernTagger.

Tom Zimmerman created the BugTagger Eclipse plug-in, which we used to automatically map bugs to program elements for Rhino and iBATIS.

Nachiappan Nagappan computed correlation and regression statistics for the case studies.

Kaitlin Duck Sherwood mapped concerns for Mylyn-Bugzilla with help from Gail Murphy.

Contact

Marc Eaddy <me133 AT columbia.edu>