![]() |
Home |
| Developer Services | Home | Public Server | Stable Release | Last Build | Build Archive | Telemetry Report | Defect Tracking | People | About |
| Hackystat Version 8 |
We are pleased to announce that we are now at work on a major redesign of Hackystat. The new design will implement Hackystat as a set of RESTful web services, and is intended to provide the following benefits:
| Release Announcements |
| 01-May-2007 | Stable release of 7.7 configurations. |
| 23-December-2006 | Stable release of 7.6 configurations. |
| 18-October-2006 | Stable release of 7.5 configurations. |
| 07-June-2006 | Stable release of 7.4 configurations. |
| 17-March-2006 | Stable release of 7.3 configurations. |
| Documentation |
Hackystat documentation is organized into four volumes: the User, Administrator, Developer, and Reference Guide. Like the rest of Hackystat, this documentation framework is modular, extensible, and customizable to the set of modules making up a particular configuration of Hackystat. The following configuration of the Hackystat documentation guides is generated nightly from the set of all public Hackystat modules, and thus may refer to features not present in any particular configuration (including the configuration installed on the public Hackystat server.)
The Hackystat Documentation Framework is relatively new, and we have not yet ported all prior documentation to this format. The following links provide access to older documentation while we transition it into the new framework.
| Selected Publications and Tech Reports |
| Features in a nutshell |
| Sensors | Ant, BCML, Bugzilla, CCCC, Checkstyle, CLI, CppUnit, CVS, DependencyFinder, Eclipse, Emacs, Emma, FindBugs, Idea, JBlanket, Jira, JUnit, Jupiter, LoadTest, LOCC, Office, PMD, SCLC, SVN, Vim, VisualStudio |
| Sensor Data Types | Activity, BuffTrans, Build, CLI, CodeIssue, Commit, Coverage, Dependency, DevEvent, FileMetric, Issue, Perf, ReviewActivity, ReviewIssue, UnitTest |
| Analysis Types | Personal metrics, Project metrics, Cross-Project metrics, Workflow, Software Telemetry |
| Languages | Java, C#, C++, Ada, Chapel, Eiffel, Fortran, Lisp, Matlab, Pascal, Perl, Tcl, ZPL, XML, HTML, JSP, SQL |
| Reports and Charts | XML, HTML, CSV, Charts (Bar, Line, Scatter, Box-and-Whisker). |
| Getting Hackystat |
There are several ways to obtain Hackystat. Which one you choose depends upon your needs for stability and/or modifiability.
| Hackystat Architecture: modules, subsystems, and configurations |
Hackystat is designed to be extensible and configurable along three primary dimensions: (1) the set of "sensors" (i.e. plugins to development tools that gather process and product data); (2) the set of "sensor data types" (i.e. structures that represent raw sensor data of various types); and (3) the set of "applications" (i.e. analyses that provide useful information based upon the data collected by the sensors).
To provide this flexibility, Hackystat has an architecture consisting of over 60 public "modules" that are organized into four "subsystems". The "Core" subsystem includes modules that provide basic framework mechanisms. Modules in the "Sdt" subsystem implement sensor data types. Modules in the "Sensor" subsystem implement sensors for development tools. Finally, modules in the "App" subsystem provide applications that generate useful analyses over the sensor data collected by the sensors.
A Hackystat "configuration" consists of a subset of modules from across the four subsystems providing the specific sensors, sensor data types, and applications best suited for a particular development context. The Stable Release and Last Build pages provide access to a set of pre-defined configurations that we build and maintain. It's relatively easy to build your own custom configuration if none of these fit your needs. You can even build a custom configuration that includes one or more "private" Hackystat modules you have implemented yourself and which are not part of the public Hackystat distribution.
The following table lists the set of public Hackystat modules in alphabetical order. The module name prefix indicates the subsystem that the module belongs to---"hackyApp" indicates the Application subsystem, and so forth. Each module appears with a brief description of its purpose and a list of "Dependent modules". This list indicates the modules that this module is directly dependent upon. To create a configuration, the modules that are dependent both directly and indirectly must be included in the build.
| hackyApp_BuildAnalysis |
Provides analyses of daily build data to improve the rate of successful builds.
Dependent modules: hackyCore_Telemetry, hackySdt_Commit, hackySdt_Build, hackySdt_Activity |
|---|---|
| hackyApp_Cgqm |
Provides support for the "continuous goal-question-metric (cGQM)" analysis method.
Dependent modules: hackyCore_Common, hackyCore_Telemetry, hackySdt_Activity, hackySdt_Build, hackySdt_Commit, hackySdt_Coverage, hackySdt_Dependency, hackySdt_FileMetric, hackySdt_Issue, hackySdt_UnitTest, hackySdt_WorkspaceMap, hackyApp_StdCmd |
| hackyApp_Cocomo |
Provides analyses to support the basic Cocomo cost estimation model.
Dependent modules: hackyCore_Kernel |
| hackyApp_Course |
Provides support for comparative analysis of software engineering projects in a classroom setting.
Dependent modules: hackySdt_Activity, hackySdt_Coverage, hackySdt_FileMetric, hackySdt_UnitTest |
| hackyApp_Experiment |
Provides support for setup and execution of empirical experiments with Hackystat.
Dependent modules: hackyCore_Telemetry, hackySdt_Activity |
| hackyApp_Hpcs |
Provides support for analysis of high performance computing application development products and processes.
Dependent modules: hackyCore_Telemetry, hackySdt_FileMetric, hackySdt_Perf |
| hackyApp_Mds |
Provides support for analysis of the Mission Data System (MDS) workflow and build process.
Dependent modules: hackyCore_Telemetry |
| hackyApp_Pri |
Provides analyses supporting the "Priority Ranked Inspection" method.
Dependent modules: hackyCore_Telemetry, hackySdt_Activity, hackySdt_Build, hackySdt_Coverage, hackySdt_Dependency, hackySdt_FileMetric, hackySdt_Issue, hackySdt_Commit, hackySdt_ReviewIssue, hackySdt_UnitTest, hackySdt_WorkspaceMap |
| hackyApp_PrjSize |
Provides (partially implemented) support for size estimation based upon prior Project data.
Dependent modules: hackyCore_Common, hackySdt_FileMetric, hackySdt_Activity |
| hackyApp_Review |
Provides support for analysis of review activity and review issue sensor data.
Dependent modules: hackyCore_Telemetry, hackySdt_ReviewActivity, hackySdt_ReviewIssue |
| hackyApp_Sdsa |
Provides support for "software development stream analysis", a rule-based
approach to inferring higher level developer behavioral patterns (such as Test Driven Design episodes) from
sequences of low level sensor data.
Dependent modules: hackyCore_Kernel, hackySdt_Activity, hackySdt_BuffTrans, hackySdt_Build, hackySdt_Cli, hackySdt_Commit, hackySdt_WorkspaceMap |
| hackyApp_StdCmd |
Provides standard (i.e. administrative and multi-SDT) commands helpful in most Hackystat applications.
Dependent modules: hackyCore_Common, hackySdt_Activity, hackySdt_Coverage, hackySdt_FileMetric, hackySdt_UnitTest |
| hackyApp_TelemetryControlCenter |
Provides the "Telemetry Control Center" application, which is a stand-alone client-side application for automatic retrieval and
display of a set of telemetry charts at predefined intervals.
Dependent modules: hackyCore_Telemetry |
| hackyApp_Workflow |
Provides support for setup and execution of empirical experiments with Hackystat.
Dependent modules: hackyCore_Telemetry |
| hackyApp_Zorro |
Provides support for inference of Test Driven Design practices using the rule-based
"Software Development Stream Analysis" technique.
Dependent modules: hackyCore_Kernel, hackySdt_Activity, hackySdt_BuffTrans, hackySdt_Build, hackySdt_Cli, hackySdt_Commit, hackySdt_WorkspaceMap |
| hackyCore_Build |
Provides the Ant-based build system for Hackystat.
Dependent modules: none |
| hackyCore_Common |
Provides common abstractions useful to most Hackystat applications, including Projects and Workspaces.
Dependent modules: hackyCore_Report |
| hackyCore_Installer |
Provides a GUI and CLI installer service for Hackystat clients to support downloading, installation, and
updating of Hackystat sensors.
Dependent modules: hackyCore_Kernel |
| hackyCore_Kernel |
Provides the basic language features and web application implementation for Hackystat.
Dependent modules: hackyCore_Build |
| hackyCore_Report |
Provides a high-level interface to the JFreeChart graphical chart package for use by Hackystat analyses.
Dependent modules: hackyCore_Statistics |
| hackyCore_Statistics |
Provides support for basic statistical operations for use by hackystat analyses.
Dependent modules: hackyCore_Kernel |
| hackyCore_Telemetry |
Provides the language implementation and analysis interface for Software Project Telemetry.
Dependent modules: hackyCore_Common |
| hackySdt_Activity |
Provides the Activity sensor data type, which records developer activities. To be replaced by the DevEvent SDT.
Dependent modules: hackyCore_Telemetry |
| hackySdt_BadData |
Provides the BadData sensor data type, which is used by the server to log receipt of syntactically incorrect data sent by incorrectly implemented sensors.
Dependent modules: hackyCore_Telemetry |
| hackySdt_BuffTrans |
Provides the BuffTrans sensor data type, which records patterns of context switching between buffers in an editor.
Dependent modules: hackyCore_Telemetry |
| hackySdt_Build |
Provides the Build sensor data type, which records system build attempts and the results.
Dependent modules: hackyCore_Telemetry |
| hackySdt_Cli |
Provides the Cli sensor data type, which records command line invocations.
Dependent modules: hackyCore_Telemetry |
| hackySdt_CodeIssue |
Provides the CodeIssue sensor data type, which records problems discovered in code by static analysis tools.
Dependent modules: hackyCore_Telemetry |
| hackySdt_Commit |
Provides the Commit sensor data type, which records information about each commit made to a configuration
management system.
Dependent modules: hackyCore_Telemetry |
| hackySdt_Coverage |
Provides the Coverage sensor data type, which records test coverage information.
Dependent modules: hackyCore_Telemetry, hackySdt_WorkspaceMap |
| hackySdt_Dependency |
Provides the Dependency sensor data type, which records structural coupling and complexity measures based
upon static analysis of source code.
Dependent modules: hackyCore_Telemetry, hackySdt_FileMetric, hackySdt_WorkspaceMap |
| hackySdt_DevEvent |
Provides the DevEvent sensor data type, which records development events.
Dependent modules: hackyCore_Telemetry |
| hackySdt_FileMetric |
Provides the FileMetric sensor data type, which records static size information about files of various types.
Dependent modules: hackyCore_Telemetry, hackySdt_Activity |
| hackySdt_Issue |
Provides the Issue sensor data type, which records information about each issue posted to an issue
management system (such as BugZilla or Jira).
Dependent modules: hackyCore_Telemetry, hackySdt_FileMetric |
| hackySdt_Perf |
Provides the Perf sensor data type, which records performance analysis information based upon execution
timing data.
Dependent modules: hackyCore_Telemetry |
| hackySdt_ReviewActivity |
Provides the ReviewActivity sensor data type, which records developer activities during software review.
Dependent modules: hackyCore_Telemetry |
| hackySdt_ReviewIssue |
Provides the ReviewIssue sensor data type, which records issues generated during software review.
Dependent modules: hackyCore_Telemetry, hackySdt_ReviewActivity |
| hackySdt_UnitTest |
Provides the UnitTest sensor data type, which records the occurrence and results of running an automated test.
Dependent modules: hackyCore_Telemetry, hackySdt_WorkspaceMap |
| hackySdt_WorkspaceMap |
Provides the WorkspaceMap construct for sensor data types, which builds a mapping between workspaces
(acquired using the Activity SDT) and classes (acquired using the FileMetric SDT) for use by
other SDT-related analyses (Coverage, Dependency, UnitTest.) This mechanism is brittle and we will be
developing alternatives to it during the Version 7 release stream.
Dependent modules: hackySdt_Activity, hackySdt_FileMetric |
| hackySensor_Ant |
Provides a sensor for the Ant build system that records build invocation events.
Dependent modules: hackyCore_Installer, hackySdt_Build, hackySdt_DevEvent |
| hackySensor_Bcml |
Provides a sensor for the Bcml size counting tool that records Java file size and several
Chidamber-Kemerer OO complexity metrics via bytecode analysis.
Dependent modules: hackyCore_Installer, hackySdt_FileMetric |
| hackySensor_Bugzilla |
Provides a sensor for the Ant build system that records build invocation events.
Dependent modules: hackyCore_Installer, hackySdt_Issue |
| hackySensor_Cccc |
Provides a sensor for the CCCC size counting tool for C/C++ and Java code that records size and other structural
information.
Dependent modules: hackyCore_Installer, hackySdt_FileMetric |
| hackySensor_Checkstyle |
Provides a sensor for the Checkstyle code format analysis tool that records instances of checkstyle violations.
Dependent modules: hackyCore_Installer, hackySdt_CodeIssue |
| hackySensor_Cli |
Provides a sensor for the (Unix) command line that records information about each command entered.
Dependent modules: hackyCore_Installer, hackySdt_Cli, hackySdt_DevEvent |
| hackySensor_CppUnit |
Provides a sensor for the CppUnit test system that records unit test invocation events and their
results for C/C++ systems.
Dependent modules: hackyCore_Installer, hackySdt_UnitTest, hackySdt_DevEvent, hackySensor_XmlData |
| hackySensor_Cvs |
Provides a sensor for the CVS configuration management system that records data about each commit event.
Dependent modules: hackyCore_Installer, hackySdt_Commit, hackySensor_Vcs |
| hackySensor_DependencyFinder |
Provides a sensor for the DependencyFinder Java structural metrics tool that records structural complexity
(i.e. coupling) information.
Dependent modules: hackyCore_Installer, hackySdt_Dependency |
| hackySensor_Eclipse |
Provides a sensor for the Eclipse IDE that records Activity, UnitTest, and other developer and product data.
Dependent modules: hackyCore_Installer, hackySdt_Activity, hackySdt_UnitTest, hackySdt_DevEvent |
| hackySensor_Emacs |
Provides a sensor for the Emacs IDE that records Activity and DevEvent event data.
Dependent modules: hackyCore_Installer, hackySdt_Activity, hackySdt_BuffTrans, hackySdt_DevEvent |
| hackySensor_Emma |
Provides a sensor for the Emma coverage tool that records Coverage information.
Dependent modules: hackyCore_Installer, hackySdt_Coverage |
| hackySensor_Europa |
Provides a sensor for the Europa code review tool that records ReviewActivity and ReviewIssue data.
Dependent modules: hackyCore_Installer, hackySdt_ReviewIssue, hackySdt_ReviewActivity |
| hackySensor_FindBugs |
Provides a sensor for the FindBugs tool that records coding violations using the CodeIssue SDT.
Dependent modules: hackyCore_Installer, hackySdt_CodeIssue |
| hackySensor_Idea |
Provides a sensor for the Idea IDE that records DevEvent data.
Dependent modules: hackyCore_Kernel, hackySdt_DevEvent |
| hackySensor_JBlanket |
Provides a sensor for the JBlanket coverage tool that records coverage data.
Dependent modules: hackyCore_Installer, hackySdt_Coverage |
| hackySensor_JBuilder |
Provides a sensor for the JBuilder IDE that records Activity data.
Dependent modules: hackyCore_Installer, hackySdt_Activity |
| hackySensor_JUnit |
Provides a sensor for the JUnit test tool that records test invocations and their results.
Dependent modules: hackyCore_Installer, hackySdt_UnitTest |
| hackySensor_Jira |
Provides a sensor for the Jira issue management system that records issue creation using the Issue SDT.
Dependent modules: hackyCore_Installer, hackySdt_Issue |
| hackySensor_Jupiter |
Provides a sensor for the Jupiter code review plugin for Eclipse that records ReviewActivity and ReviewIssue data.
Dependent modules: hackyCore_Installer, hackySdt_ReviewIssue, hackySdt_ReviewActivity, hackySensor_Eclipse |
| hackySensor_LoadTest |
Provides a sensor for the HackyLoadTest performance analysis tool that records performance data about
the Hackystat system itself.
Dependent modules: hackyCore_Installer, hackySdt_Perf |
| hackySensor_Locc |
Provides a sensor for the LOCC size counting tool that records FileMetric (size) data for Java systems.
Dependent modules: hackyCore_Installer, hackySdt_FileMetric |
| hackySensor_Office |
Provides a sensor for the Microsoft Office tool suite that records Activity data.
Dependent modules: hackyCore_Installer, hackySdt_Activity |
| hackySensor_OpenOffice |
Provides a sensor for the OpenOffice tool suite that records Activity data.
Dependent modules: hackyCore_Installer, hackySdt_Activity |
| hackySensor_Pmd |
Provides a sensor for the PMD static analysis tool for Java that records complexity problems using the CodeIssue SDT.
Dependent modules: hackyCore_Installer, hackySdt_CodeIssue |
| hackySensor_ShellLogger |
Provides a sensor for the ShellLogger tool, which logs shell commands and timestamps from the command line.
Dependent modules: hackyCore_Telemetry, hackySdt_Cli, hackySdt_DevEvent, hackySensor_XmlData |
| hackySensor_Svn |
Provides a sensor for the Subversion configuration management tool that records commit events.
Dependent modules: hackyCore_Installer, hackySdt_Commit, hackySensor_Vcs |
| hackySensor_Vcs |
Provides generic utility code for use by configuration management sensors such as hackySensor_Cvs and hackySensor_Svn.
Dependent modules: hackyCore_Installer, hackySdt_Commit |
| hackySensor_Vim |
Provides a sensor for the Vim IDE that records Activity data.
Dependent modules: hackyCore_Installer, hackySdt_Activity, hackySdt_DevEvent |
| hackySensor_VisualStudio |
Provides a sensor for the Visual Studio IDE that records DevEvent data.
Dependent modules: hackyCore_Installer, hackySdt_DevEvent |
| hackySensor_XmlData |
Provides a "generic" sensor for XML data that has already been formatted as Hackystat sensor data. For tools
that can output their results in XML and configure the format, the xmldata sensor can be an easier way
to provide a sensor.
Dependent modules: hackyCore_Installer, hackySdt_Coverage, hackySdt_UnitTest, hackySdt_FileMetric |
| Mailing Lists |
If you would like to stay in touch with Hackystat development, there are several mailing lists:
To subscribe to any of these lists, email a standard listserv subscription request to listserv@hawaii.edu. In other words, the "Subject" line is ignored, and the body should contain a line similar to:
subscribe hackystat-users-l Philip Johnson
where you replace 'hackystat-users-l' with the mailing list you are interested in, and 'Philip Johnson' with your own first and last name. If you wish to subscribe to more than one list, just put each 'subscribe' command on its own line.
If you wish to remove yourself from a hackystat mailing list, then send an email to listserv@hawaii.edu with a line in the body similar to the following:
signoff hackystat-users-l
Be sure to send the signoff command from the same email address used to subscribe to the list.
You can also subscribe and unsubscribe from any of these lists using the web-based interface to the University of Hawaii ListServ system.
Finally, several of the Hackystat mailing lists are archived at: The Mail Archive. (Archives available only since September, 2004).