Please check the attached html file, and comment. Thank you. -Cedric

Title: Hackystat Telemetry Language Specification

	
	
		

Hackystat Developer Documentation

Hackystat Telemetry Language

 

Version 1.1

Qin Zhang
Collaborative Software Development Laboratory

University of Hawaii 

$Id: HackyTelemetryLanguageSpecification.html,v 1.9 2004/06/29 13:08:22 qzhang Exp $

 

Abstract

This document describes the problem we encountered with Hackystat Telemetry Language Version 1.0, and the proposal to solve the problem.

 

1. The Problem

Suppose we are interested in ActiveTime in all top level packages of Hackystat, then we need to define a telemetry stream for each of the package:

streams ActiveTime-hackyKernel = { ActiveTime("**/hackyKernel/**" }

...

streams ActiveTime-hackyTelemtry = { ActiveTime("**/hackyTelemetry/**" }

The situation got even worse when we are interested in active time that each project member has spent on each module (ref: MemberActiveTime). Then we have to define a telemetry stream for each member/module combination. The exponential increase of definitions has created usability issues, as well as maintenance nightmare (just take a look at telemetry management page on the public server). 

 

2. Proposed Solution

C++ template-like mechanism is ideal for solving the problem. Following example will illustrate the proposed solution:

streams MyActiveTime = { template<pattern, member> MemberActiveTime(pattern, "true", member) }

charts MyChart = { template<member> (MyActiveTime<"**/*.java", member>, MyActiveTime<"**/Test*.java", member>) }

Notice that:

  1. MemberActiveTime is a reduction function.
  2. Two templates (i.e. "pattern", "member") are used in defining MyActiveTime.
  3. MyChart shows two lines, one for java code, the other for java testing code. It instantiates one of the two templates in MyActiveTime.
  4. User can use MyChart<"[EMAIL PROTECTED]"> to see qzhang's individual active time.
  5. The proposed solution is backward compatible with Hackystat Telemetry Language Version 1.0.

 

Reply via email to