"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
- Associate concerns with Java code (types, methods, and fields)
using drag-n-drop and right-click
- Supports hierarchical concerns
- Supports multiple concern domains
- Supports multiple concern-code relations (e.g., implements,
related-to, contributes-to, executed-by-test-case,
depends-on-removal)
- Determine if concerns in one domain (e.g., requirements) are
tangled with concerns in another domain (e.g., bugs)
- Label decorations and highlighting make it easy to see which concerns
are associated with a type, method, or field
- Computes scattering and size metrics for concerns
- Concern Diffusion over Components (CDC) (*)
- Concern Diffusion over Operations (CDO) (*)
- Degree of Scattering over Classes (DOSC)
- Degree of Scattering over Methods (DOSM)
- Source Lines of Concern Code (SLOCC)
- List and count of tangled concerns
- Import/export concerns and mapping using
attribute-relation file format (ARFF) files,
a popular format for publishing
empirical case study datasets
- Stores concerns, code model, and mappings in an
HSQLDB database
(*) Created by Garcia et al.
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:
- Snapshot of the source code
- Concerns we identified
- Mapping of concerns to program elements
- Bugs we identified, including metadata such as developer, severity, etc.
- Mapping of "fixed" bugs to program elements (although for dbviz,
we mapped bugs directly to concerns)
- Concern metrics computed for the concern and bug mappings
|
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) |
(24 MB)
|
(48 MB)
|
(75 MB)
|
(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.
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.
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.
Marc Eaddy
<me133 AT columbia.edu>