IMPROVEKIT

Scripting API

IHDSL Commands

average
    fieldName | unaryMessage

Returns the average value of the given numeric field. If you want to access the scalar value using averageValue

Examples

data average effort

buckets

buckets
    fieldName | unaryMessage

Class intervals (frequency) given field (numeric)

Examples

| filtro proyecto |
    
    filtro := data omitExtremes insumido.
    proyecto := filtro distinct proyecto anyOne proyecto.
    (filtro where proyecto: proyecto) buckets insumido

centiles

centiles
    fieldName | unaryMessage

Returns ten percentile values for the given field

Examples

| centiles ds |
    
    ds := data omit insumido.
    centiles := ds centiles insumido.
    ds select
        defaults: [:row | row centil: #insumido on: centiles]
        as: 'centil'

chiSquare

chiSquare
    fieldName | unaryMessage

Returns chi squared frequencies (theoretical) of the given field (numeric)

Examples

| filtro proyecto |
    
    filtro := data omitExtremes insumido.
    proyecto := filtro distinct proyecto anyOne proyecto.
    (filtro where proyecto: proyecto) chiSquare insumido

cumAverage

cumAverage
    fieldName | unaryMessage

Returns the cumulative average of the given numeric field

Examples

data cumAverage items

cumSum

cumSum
    fieldName | unaryMessage

Returns the accumulated sum of the numeric field given

Examples

data cumSum items

distinct

distinct
    fieldName | unaryMessage

It returns the data as a single assembly as given field

Examples

data distinct proyecto

fuzzy

fuzzy
    fieldName | unaryMessage

Returns fuzzy values domino considering a real between 0 .. 1, and a default triangular function {0 0.5 1}

Examples

(data kpi: 'RequirementsChangesRatio') 
            data fuzzy value where isHigh

gini

gini
    fieldName | unaryMessage

The Gini coefficient measures inequality between the values of a frequency distribution. A Gini coefficient of zero expresses perfect equality where all values are the same. A Gini coefficient of one (or 100%) expressed high inequality between values. Especially useful in distributions with skewness runs normal

 

Examples

data gini insumido

groupBy

groupBy
    
    fieldName | unaryMessage

    | defaults
    
    | field: fieldNameN [as: 'aliasN']..., N = 1..6
    | field: aBlockN [as: 'aliasN']..., N = 1..6
    

Returns the data grouped by a series of fields and expressions. Each row of the result is a result group.

There are several ways, the first allows grouping by a single field.

The reserved word defaults refers to a specific set of predefined fields (project, nameRelease, dateRelease).

The last form (field: as :) allows grouping by up to 6 different fields, with optional aliases. Optionally, select: as: an additional field resulting from an expression with alias

Examples

    data groupBy proyecto.
    
    data groupBy defaults.
    data groupBy field: 'proyecto' as: 'p'.
    data groupBy field: 'proyecto' as: 'p' field: 'nombreRelease' as: 'r'.
    data groupBy field: 'proyecto' as: 'p' field: 'nombreRelease' as: 'r' select:[:e|e count] as: 'items'.
    data groupBy defaults select defaults: [:group| group count] as: 'items'.
    
    data groupBy periodo.
    
    data groupBy 
        field: #tipoProyecto as: 'tipo'
        field: [:row| self aggregatedPeriodDateOf: row] as: 'fecha'.
    
    data groupBy 
        field:#proyecto as: 'proyecto'
        select: [:r| r count] as: 'items'.
        
        
    ((data where proyecto: 'NAME') 
        and tipo: 'TYPE') 
        groupBy defaults select defaults: [:g | g count] as: 'items'        
    

hurst

hurst
    fieldName | unaryMessage

Hurst exponent is used as a measure of long term memory time series. Refers to the autocorrelations of the time series, and the speed at which this decrease as the gap between pairs of values increases. Returns the Hurst exponent slope of the line as a linear series of rescaled range (10 logarithmic scale). 

The persistence (positive correlation) allows modeling phenomena that tend to cluster first one way and then the average across while antipersistence (negative correlation) allows modeling phenomena that strongly fluctuate around the mean. Persistence is associated with stable structures with high probability of fulfilling specific functions, while antipersistence relates to unstable structures that seek functionality

Examples

data hurst duracionEstimada

kurtosis

kurtosis
    fieldName | unaryMessage

Kurtosis is a measure of whether the data are peak or flat relative to a normal distribution. That is, data sets with high kurtosis tend to have a distinct peak near the mean, decline rather rapidly, and have heavy tails. Data sets with low kurtosis tend to have a flat top near the mean rather than a sharp peak. A uniform distribution would be the extreme case. The kurtosis of a standard normal distribution is three. The histogram is an effective way to show both the skewness and kurtosis of a dataset graphical technique.

Examples

| ds centiles |
    
    ds := data omit insumido.
    centiles := ds centiles insumido.
    (ds where
        each: [:row | (row centil: #insumido on: centiles)
                = 3]) kurtosis insumido

limits

limits
    fieldName | unaryMessage

In statistical quality control, the X / moving range chart is a type of control chart used to monitor the data variables of a business or industrial process for which it is impractical to use rational subgroups. 

The "graphic" actually consists of a couple of them: one shows the individual measured values; secondly, the moving range chart shows the difference from one point to another. As with other control charts, these two graphs allow the user to control a process for process changes that alter the mean or variance

Examples

|kpi project panelData shewhart |
kpi := data kpi: 'ReleaseEffortMeasurement'.
project := data project: 'LAS MAJAGUAS'.
panelData := (((kpi data where tipoProyecto: project type) groupBy
        field: #tipoProyecto
        as: 'proyecto'
        field: [:row | row weekly]
        as: 'periodo'
        field: [:row | row firstDateOfWeek]
        as: 'fecha') select
        defaults: [:group | kpi isRatio
                ifTrue: [group average value]
                ifFalse: [group sum value]]
        as: 'value')
        sortedBy: #fecha.
shewhart := panelData limits value.
shewhart parameters.

Ver también #signals (en el ejemplo se observará la forma de obtener los mismos datos utilizando protocolo de KPI)

log

log
    fieldName | unaryMessage

Logarithmic log-lin series (x values are linear, logarithmic and y values).
There are two main reasons for using logarithmic scales in graphs. The first is to manage the asymmetry (skewness) towards graneds values; That is, cases where one or more points are much larger than most of the data. The second is to show the percent change or multiplicative factors.

Examples

data log valor plot.
    
data log valor y limits plot

max

max
    fieldName | unaryMessage

Returns the maximum value of a field (magnitude)

Examples

data max duracion

median

median
    fieldName | unaryMessage

Returns the median value of the given numeric field. If you want to access the scalar value using medianValue

Examples

data median effort

min

min
    fieldName | unaryMessage

Returns the minimum value of a field (magnitude)

Examples

data min duracion

mode

mode
    fieldName | unaryMessage

Returns the mode given numeric field. If you want to access the scalar value use modeValue

Examples

data mode items

movingRange

movingRange
    fieldName | unaryMessage

Moving range (difference between two successive values of a series)

Examples

| filtro proyecto |
    
    filtro := data omit insumido.
    proyecto := filtro distinct proyecto anyOne proyecto.
    (filtro where proyecto: proyecto) movingRange insumido

normalityChiSquareTest

normalityChiSquareTest
    fieldName | unaryMessage

Null hypothesis that the frequency distribution of certain events observed in a sample is consistent with a particular theoretical distribution is tested. The events considered must be mutually exclusive and have total probability 1. 

The chi square test of Pearson is used to assess two types of comparison: tests of goodness of fit and independence tests. 

  • A goodness of fit test determines whether or not an observed frequency distribution differs from a theoretical distribution. 

  • A test of independence assesses whether paired observations on two variables, expressed in a contingency table are independent of each other (eg, voting responses of people of different nationalities, to see if nationality is related to the response )

Examples

data omitExtremes normalityTest esfuerzo

omit

omit
    fieldName | unaryMessage

Returns a new set filtering nulls, zeros or empty field values given

Examples

data omit adjuntos

omitExtremes

omitExtremes
    fieldName | unaryMessage

Returns a new set filtering null values, zeros, empty, minimum and maximum of the given field

Examples

| total extremes omit|
total := data count.
omit := data omit esfuerzo count.
extremes := data omitExtremes esfuerzo count.
{total. omit. extremes}

quartiles

quartiles
    fieldName | unaryMessage

Returns three quartiles for field values given

Examples

| quartiles ds |
    
    ds := data omit insumido.
    quartiles := ds quartiles insumido.
    ds select
        defaults: [:row | row quartil: #insumido on: quartiles]
        as: 'quartil'

range

range
    fieldName | unaryMessage

Returns the range (maximum value minus minimum value) of a given field (magnitude)

Examples

data range duracion

ranks

ranks
    fieldName | unaryMessage

Returns a collection with the ranks (in ascending order) of the given field (numeric)

Examples

| ranking ds |
    
    ds := data omit insumido.
    ranking := ds ranks insumido.
    ds select
        defaults: [:row | row rankedOn: ranking]
        as: 'ranks'

rescaledRange

rescaledRange
    fieldName | unaryMessage

The rescaling is a statistical measure of the variability of a time series introduced by the British hydrologist Harold Edwin Hurst (1880-1978). Its purpose is to provide an assessment of how the apparent variability of a series switch with the length of the period of time considered. The rescaled range is calculated from dividing the range of the exposed part of the time series by the standard deviation of the values on the same portion of the time series values. For example, consider a time series {2, 5, 3, 7, 8, 12, 4, 2} which has a range, R, 12 -. 2 = 10 The standard deviation, s, is 3.46, so the range is rescaled r / s = 2.71

Examples

data omitExtremes insumido rescaledRange insumido

select

select
    fieldName | unaryMessage
    
    | fieldName: 'alias' ...
    
    | all
    
    | defaults
    
    | defaults: aBlock alias: 'alias'
    
    | field: #fieldNameN [as: 'aliasN'] ..., N = 1..6
    [field: aBlock as: 'alias']

    | rowExpression
    
    rowExpression :=: 
        each: oneArgBlock |
        dayOf: aspect |
        firstDateOfQuarter |
        firstDateOfWeek |
        monthOf: aspect |
        monthsFrom: aspect1 to: aspect2 |
        quarterOf: aspect |
        quartersFrom: aspect1 to: aspect2 |
        weekOf: aspect |
        weeksFrom: aspect1 to: aspect2 |
        yearOf: aspect         

 

Is used to project individual columns of the data source. 

There are several options, including the ability to reference predefined sets of fields (all, defaults, default: alias :) and use expressions (unaryMessage, select: as:, rowExpressions)

Examples

data select defaults.

data select field: #proyecto as: 'pro'.

data select field:[:row| row duracion ] as: 'duration'

serie

serie
    fieldName | unaryMessage

Returns the set of values of the given field (numeric) as a series object

Examples

(data omitExtremes esfuerzo 
        sortedBy:'fecha') serie esfuerzo plot

sigmas

sigmas
    fieldName | unaryMessage

Returns a dictionary with the Sigma (- +3) variation from the average value of the given field (numeric)

Examples

| filtro proyecto |
    
    filtro := data omitExtremes insumido.
    proyecto := filtro distinct proyecto anyOne proyecto.
    (filtro where proyecto: proyecto) sigmas insumido

signals

signals
    fieldName | unaryMessage

Returns a collection with signs of variation in the values of the given (numerical) column. The signals can be statistical or fuzzy logic. Each signal knows the points of the data series that compose it, and is identified by a name. The meaning of each signal is the following:

 

ascendantSignals

Possible process of change that shifts somewhat the average down, or up

 

dominantSignals

Possible process (or data error) that causes an overflow outside the natural statistical limits

 

moderateSignals

Possible change process moving average near the lower natural limit, or higher

 

nearAverageSignals

Sign of a possible process that keeps the performance close to the average

 

weakSignals

Possible process of change that shifts somewhat the average down, or up

 

ascendantFuzzySignals

Possible change process that shifts somewhat the diffused average value downwards, or upwards

 

dominantFuzzySignals

Posible proceso (o datos con error) que ocasiona un desborde por fuera de los límites difusos

 

moderateFuzzySignals

Possible change process that shifts the average value near the lower diffuse limit, or higher

 

nearAverageFuzzySignals

Possible process that keeps the performance near the diffused average value

 

weakFuzzySignals

Possible process that causes a downward shift, or rise, of the mean diffuse value

Examples

| kpi panelData |
    
    kpi := data kpi: 'ReleaseEffortMeasurement'.
    panelData := kpi
                baselines: (Projects named: 'LAS MAJAGUAS').
    panelData signals value

skewness

skewness
    fieldName | unaryMessage

is a measure of symmetry, or more accurately, the lack of symmetry. A distribution, or data set, is symmetric if it looks the same on the left and right of the center point. The asymmetry of a normal distribution is zero, and symmetric data should have a skewness near zero. Negative values of the asymmetry may indicate that the data are skewed to the left, positive values for the skewness indicate data that are skewed to the right

Examples

| ds centiles |
    
    ds := data omit insumido.
    centiles := ds centiles insumido.
    (ds where
        each: [:row | (row centil: #insumido on: centiles)
                = 1]) skewness insumido

standardDeviation

standardDeviation
    fieldName | unaryMessage

Returns the value of the standard deviation of the given number field. If you want to access the scalar value using standardDeviationValue

Examples

data standardDeviation defects

sum

sum
    fieldName | unaryMessage

Returns the sum of given number field. If you want to access the scalar value using sumValue

Examples

data sum items

theil

theil
    fieldName | unaryMessage

An index of inequality / order, can be seen as a measure of redundancy, lack of diversity, isolation, segregation, inequality, no randomness and compressibility (1 highest order, greater inequality)

Examples

data theil insumido

trend

trend
    fieldName | unaryMessage

Returns an object of class or ExponentialTrendSeries LinearTrendSeries (best fit) for the values of the given field (numeric)

Examples

| kpi panelData |
    
    kpi := data kpi: 'ReleaseEffortMeasurement'.
    panelData := kpi
                trend: (Projects named: 'LAS MAJAGUAS').
    panelData trend value parameters

valuesOf

valuesOf
    fieldName | unaryMessage

Returns a collection with the values of the given field

Examples

data omitExtremes insumido valuesOf insumido kurtosis

variance

variance
    fieldName | unaryMessage

Returns the value of variance (stddev ^ 2) given the number field. If you want to access the scalar value using varianceValue

Examples

data variance insumido.
    
data variance esfuerzo.

where

where
    fieldName: value,    value :=: number | string | stringWithWildcards
        
    | booleanExpression
    | and ...
    | having ...
    
    
    booleanExpression :=: 
    
        ResultSetRow boolean protocol, examples:
    
        field: fieldName before: aDate
        field: fieldName from: startingMagnitude to: endingMagnitude
        field: fieldName match: stringWithWildcars
        field: fieldName matchNot: stringWithWildcars
        field: fieldName in: aSet
        
        isNotNull: fieldName
        isNull: fieldName
        isNotZero: fieldName
        isZero: fieldName
        isToday: fieldName
        
        each: oneArgBlock
        

Select one or more rows per logical conditions. 

It can be short putting equal ':' between a field name and value (you can use wildcards * and # to indicate any sequence of characters, or any character respectively). 

Logical expressions must be the result of a message sent to each row of data (see predefined functions). 

It can be calculated more complex expressions using eval: oneArgBlock (block of Smalltalk code that evaluates each row getting as argument)

Examples

((medida resultRows where proyecto: project proyecto) 
    and field: 'periodo' matchNot: '*.*.*.') 
    and each: [:row | row duracion <= 30]

ResultSet class

 

Protocols of messages that can be sent to a ResultSet
Collection of rows that implements HOM (High Order Messaging) protocols

Examples

    ResultSet fromFileName: 'data.txt'.
    
    ResultSet fromScriptNamed: 'script.st'.
    
    ResultSet fromBundle: 'bundle.st'.
    
    ResultSet datasources.
    
    tabDelimitedString asResultSet.
    
    tabDelimitedString asResultSetDefault.
    
    tabDelimitedString 
        asResultSetKinds: #(#String #String #Dateyyyymmdd #Number ) 
        required: (true false false true)
    

Protocol *DevImprovekit-fuzzy set

fuzzy

Returns a collection with the fuzzy values (using triangular membership function for values 0 .. 1) given field (number> = 0 and <= 1)

 

Protocol *DevImprovekit-statistic collections

chiSquare

Returns a collection with the chi squared frequencies of the given field (numeric)

Protocol *DevImprovekit-statistic values

gini

Returns the Gini coefficient for the given field

 

hurst

Hurst exponent is used as a measure of long term memory time series. Refers to the autocorrelations of the time series, and the speed at which this decrease as the gap between pairs of values increases. Returns the Hurst exponent slope of the line as a linear series of rescaled range (10 logarithmic scale)

 

 

rescaledRange

Returns the scaled range (range / stddev) of a (numeric) field. Its purpose is to provide an assessment of how the (apparent) variability of a series changes with the length of the time period considered. The modified scale range is calculated from the division of the range of the values exposed in a part of the time series by the standard deviation of the values over the same portion of the time series. For example, consider a time series {2, 5, 3, 7, 8, 12, 4, 2} having a range, R, of 12 -. 2 = 10 Its standard deviation, s, is 3.46, so the rescaled range is R / s = 2.71.

 

theil

Returns the Theil coefficient for the given field

 

Protocol *DevImprovekit-testing

checkData

normalityChiSquareTest

Returns true if the given column values follow a normal distribution (based on chi-square method)

Protocol accessing

configuration

scalars

values

Returns a collection with the values of the first field

valuesOf

Returns a collection with the values of the given field

Protocol copying

transposedAt:average:

Returns a result adding new columns by transposing rows from fieldNameOrSymbol field. Calculate anotherField's average for each group of fieldNameOrSymbol

 

transposedAt:in:average:

Returns a result adding new columns by transposing rows from fieldNameOrSymbol field (filter by aSet).Calculate the anotherField's average for each group of fieldNameOrSymbol

 

transposedAt:in:sum:

Returns a new result by adding columns by transposing rows from the fieldNameOrSymbol field (filtered by aSet). Calculate the sum of anotherField for each group of fieldNameOrSymbol.

| activities rows ranks |
    
    activities := (ranks := ((data groupBy field: #proyecto field: #tipo) 
                    select
                        field: #proyecto
                        field: #tipo
                        field: #nombreRelease
                        field: [:group | group count] as: 'items')
                            where: #tipo isTop: 5 rankedBy: #items) 
                                indexedOn: {#proyecto. [:row | row quarterly]. #tipo}.
    rows := (data groupBy
                field: #proyecto as: 'proyecto'
                field: [:row | row quarterly] as: 'periodo'
                field: #tipo as: 'tipo'
                select: [:group | group count] as: 'total') 
                select
                    field: #proyecto as: 'proyecto'
                    field: #periodo    as: 'periodo'
                    field: #tipo as: 'tipo'
                    field: [:group | (activities join: group on: #(#proyecto #periodo #tipo ))
                            ifNotNil: [:row | row items]] as: 'items'
                    field: #total as: 'total'.
    rows
        transposedAt: #tipo
        in: ranks distinct tipo
        sum: #total

 

transposedAt:sum:

Returns a result adding new columns by transposing rows from fieldNameOrSymbol field. Calculate anotherField's sum for each group of fieldNameOrSymbol

 

Protocol enumerating

difference:by:

Returns a new set that is the difference with
Another set (comparing the given aspects).
    
        closed difference: new by: #('proyecto' 'periodo''tipo')

 

distinct

It returns the data as a single assembly as given field

 

distinct:

Retorna los valores diferentes del campo dado. 
    En IHDSL: self distinct perform: fieldName

 

filterDataWithArguments:

arguments are: 1:proyecto or nil, 2: medicion, 3: grouping[, 4:instruments, 5: operations, 6: actors]

 

groupBy

Returns the data grouped by a series of fields and expressions. Each result file is a result group.

There are several ways.

The first allows grouping by a single field.

The reserved word defaults refers to a specific set of predefined fields (project, nameRelease, dateRelease).

The variant defaults: as: allows you to group and then select a new field as an aliased expression (the alias modifies the name of the field for subsequent commands).

The last form (field: as :) allows grouping by up to 6 different fields, with optional aliases. Optionally, select: as: an additional field resulting from an expression with alias

 

indexedOn:

Returns a ResultSetIndex (a Dictionary) that indexes the content
For the aspects in aCollection. 
    Example: index := data 
        indexedOn: {#proyecto. [:row | row quarterly]. #tipo}

 

join:as:

Returns a new set consisting of concatenating the given set (with
same number of rows)

| measure d values |
measure: = KPI id: 'ReleaseDefectsMeasurement'.
d: = ((measure perform: (weekly measure ifTrue: [#data] ifFalse:
[#releases])) where project: 'myproject')
groupBy defaults
sortedBy: 'date'.
values: = d cumSum value.
((d select field: #project as: 'project'
field: [: row | aggregatedPeriodOf measure: row] as: 'period'
field: #date as: 'date') sortedBy: 'date')

join: values as: 'value'

 

join:on:

It detects the first row with matching with aSet by the set of aspects. To make an indexed join use indexedOn :.
Example: activities join: group on: #(#proyecto #periodo #tipo)

    | activities rows ranks |
    activities := (ranks := ((data groupBy field: #proyecto field: #tipo) 
        select
            field: #proyecto
            field: #tipo
            field: #nombreRelease
            field: [:group | group count] as: 'items')
                where: #tipo isTop: 5 rankedBy: #items) 
                    indexedOn: {#proyecto. [:row | row quarterly]. #tipo}.
    rows := (data groupBy
            field: #proyecto as: 'proyecto'
            field: [:row | row quarterly] as: 'periodo'
            field: #tipo as: 'tipo'
            select: [:group | group count] as: 'total') 
                select
                    field: #proyecto as: 'proyecto'
                    field: #periodo as: 'periodo'
                    field: #tipo as: 'tipo'
                    field: [:group | (activities join: group on: #(#proyecto #periodo #tipo )) ifNotNil: [:row | row items]] as: 'items'
                    field: #total as: 'total'.
    rows
        transposedAt: #tipo
        in: ranks distinct tipo
        sum: #total

 

omit

Narrow values nil, zero, or empty field given

 

omit:

Omit sobre el campo dado

 

omitExtremes

Narrow values nil, zero, or empty field, minimum and maximum of the given

 

range

Returns the rank of a (numeric) field

 

select

Is used to project individual columns of the data source. 

There are several options, including the ability to reference predefined sets of fields (all, defaults, default: alias :) and use expressions (unaryMessage, select: as:, rowExpressions)

 

sorted

Returns a new result ordered by first field in ascending order

 

sortedBy:

Returns a new result ordered by fieldName (ascending)

 

sortedDescendingBy:

Returns a new result ordering for fieldName in descending order

 

where

Selects rows by one or more logical conditions.

You can abbreviate an equality by putting '': '' between the name of a field and the value (you can use wildcards * and # to indicate any sequence of characters, or any character respectively).

Logical expressions must be the result of a message sent to each data row (see predefined functions).

You can calculate expressions of greater complexity by using each: oneArgBlock (Smalltalk code block that evaluates each row as an argument)

 

where:isTop:rankedBy:

Select rows for selectFieldName values in the first
aNumber ranking positions given by fieldNameOrSymbol.
Example: data where: #type isTop: 5 rankedBy: #items

 

Protocol inspecting

preview

displays the results in a browser

 

previewNamed:

displays the results in a browser

 

model

kpi:

Returns the KPI repository with the identification given (nil if it does not exist)

 

project:

Returns the project with the given name, nil if not exists

 

projects

Returns a list of the projects present in the dataset (class objects Projects)

 

Protocol statistic collections

buckets

Returns a collection with the class intervals (frequencies) for the given field (numeric)

 

centiles

Returns a collection with the percentiles of the given field (numeric)

 

kurtosis

Kurtosis is a measure of whether the data are peak or flat relative to a normal distribution. That is, data sets with high kurtosis tend to have a distinct peak near the mean, decline rather rapidly, and have heavy tails. Data sets with low kurtosis tend to have a flat top near the mean rather than a sharp peak. A uniform distribution would be the extreme case. The kurtosis of a standard normal distribution is three. The histogram is an effective way to show both the skewness and kurtosis of a dataset graphical technique.

 

movingRange

Returns a collection with the moving range of the given field (numeric)

 

quartiles

Returns a collection with the quartiles of the given field (numeric)

 

ranks

Returns a collection with the ranks 
(ascending) given field (numeric)

 

sigmas

Returns a dictionary with the values corresponding to + -3 sigma deviations from the average of the elements

 

skewness

It is a measure of symmetry, or more accurately, the lack of symmetry. A distribution, or data set, is symmetric if it looks the same on the left and right of the center point. skewness of a normal distribution is zero, and symmetric data should have a skewness 
near zero. Negative values of skewness indicate data that are skewed left and positive values for the skewness indicate data that are skewed right

 

Protocol statistic series

extrapolation

Returns extrapolated points (from the value field of a trend)

 

limits

Returns a Shewhart Plot Series class object for the values of the given field (numeric)

 

log

Returns a LogSeries class object with the values of the given field (numeric)

 

serie

Returns an object of class PlotSeries values for the given field (numeric)

 

signals

Returns a collection with signs of variation in the values of the given column (numerical)

 

trend

Returns an object of class or ExponentialTrendSeries LinearTrendSeries values for the given field (numeric)

 

Protocol statistic values

average

Returns the average value of the given numeric field. example: 

average effort data 

If you want to access the scalar value using averageValue

 

average:

Returns the average of a given number field

 

count

Returns the number of rows

 

cumAverage

Returns the cumulative average of the given numeric field

 

cumSum

Returns the cumulative sum of the given numeric field

 

linearCorrelationBetween:and:

Returns the linear correlation coefficient (Pearson) between the values of the given collections. Example:
    
| x y d correls |
    
    correls := Dictionary new.
    (Proyecto proyectos
        select: [:each | each activo])
        do: [:proyecto | 
            d := data where proyecto: proyecto.
            x := d select insumido values.
            y := d select defectos values.
            (d linearCorrelationBetween: x and: y)
                ifNotZero: [:correl | correls at: proyecto put: correl]]
        displayingProgress:[:each| each proyecto].
    correls

 

max

Returns the maximum value of a field

 

median

Returns the median value of the given numeric field. If you want to access the scalar value using medianValue

 

min

Returns the minimum value of a field

 

mode

Returns the value of fashion given the numeric field

 

rankCorrelationBetween:and:

Returns the non-parametric correlation coefficient (Spearman) between the values of the given collections. Example: 
| x y d correls |
    correls := Dictionary new.
    (Proyecto proyectos
        select: [:each | each activo])
        do: [:proyecto | 
            d := (data where proyecto: proyecto).
            x := d select insumido values.
            y := d select duracion values.
            (d rankCorrelationBetween: x and: y)
                ifNotZero: [:correl | correls at: proyecto put: correl]]
        displayingProgress:[:each| each proyecto].
    correls
    

standardDeviation

Returns the value of the standard deviation of the given number field. If you want to access the scalar value using standardDeviationValue

 

sum

Returns the sum of given number field. example: 

sum data defects 

If you want to access the scalar value use sumValue

 

sum:

Returns the sum of a given number field

 

variance

Returns the value of the variance of the field 
number given. If you want to access the value 
scale use varianceValue

 

Protocol testing

exists:

Returns true if the given set is not empty

 

Class ResultSetRow

Protocols of messages that can be sent to a ResultSetRow
One row of a ResultSet

Manage message routing to access a field directly by name

Protocol *DevImprovekit-fuzzy set

fuzzy:on:

Return the fuzzy value

isHigh:

Returns true if the field value is fuzzy high 
(considering a real number domain 0 .. 1). example: 
(data kpi 'RequirementsChangesRatio') data where isHigh select value 'value'

 

isHigh:on:

Returns true if the field value is fuzzy high 
respect to the given values. example: 
(data kpi 'RequirementsChangesRatio') data 
where isHigh select value 'value' on: 
domainValues

 

isLMedium:on:

Returns true if the field value is fuzzy medium 
respect to the given values.

 

isLow:

Returns true if the field value is fuzzy low 
(considering a real number domain 0 .. 1)

 

isLow:on:

Returns true if the field value is fuzzy low 
respect to the given values.

 

isMedium:

Returns true if the field value is fuzzy medium 
(considering a real number domain 0 .. 1)

 

Protocol *DevImprovekit-testing

checkData

Protocol aggregating

average:as:

Cumulative average of the given field

field:as:average:as:

Returns the field or expression (block of
Code) with alias plus the average of one
Second field

field:as:field:alias:average:as:

Returns two fields or expressions (block of
Code) with alias plus the average of one
Second field

 

field:as:field:alias:field:as:average:as:

Returns three fields or expressions (block of
Code) with alias plus the average of one
Second field

 

field:as:field:alias:field:as:field:as:average:as:

Returns four fields or expressions (block of
Code) with alias plus the average of one
Second field

 

field:as:field:alias:field:as:field:as:field:as:average:as:

Returns five fields or expressions (block of
Code) with alias plus the average of one
Second field

 

field:as:field:alias:field:as:field:as:field:as:field:as:average:as:

Returns six fields or expressions (block of
Code) with alias plus the average of one
Second field

 

field:as:field:alias:field:as:field:as:field:as:field:as:sum:as:

Returns six fields or expressions (block of
Code) with alias, plus the sum of one
Second field

 

field:as:field:alias:field:as:field:as:field:as:sum:as:

Returns five fields or expressions (block of
Code) with alias, plus the sum of one
Second field

 

field:as:field:alias:field:as:field:as:sum:as:

Returns four fields or expressions (block of
Code) with alias, plus the sum of one
Second field

 

field:as:field:alias:field:as:sum:as:

Returns three fields or expressions (block of
Code) with alias, plus the sum of one
Second field

 

field:as:field:alias:sum:as:

Returns two fields or expressions (block of
Code) with alias, plus the sum of one
Second field

 

field:as:sum:as:

Returns the field or expression (block of
Code) with alias, plus the sum of one
Second field

 

field:field:field:field:field:field:sum:as:

Returns six fields or expressions (block of
Code), plus the sum of one
Second field

 

field:field:field:field:field:sum:as:

Returns five fields or expressions (block of
Code), plus the sum of one
Second field

 

field:field:field:field:sum:as:

Returns four fields or expressions (block of
Code), plus the sum of one
Second field

 

field:field:field:sum:as:

Returns three fields or expressions (block of
Code), plus the sum of one
Second field. Example:
    
    (data omit fallasProduccion)
    select 
        field: #fallasProduccion
        field: #fallasUat
        sum: [:r|r fallasProduccion + r fallasUat] as: 'total'

 

field:field:sum:as:

Returns two fields or expressions (block of
Code), plus the sum of one
Second field. Example:
    
    (data omit fallasProduccion)
    select 
        field: #fallasProduccion
        field: #fallasUat
        sum: #fallasProduccion as: 'total'
        

 

fields:as:average:as:

Returns the field or expression (block of
Code) with alias plus the average of one
Second field

 

fields:as:sum:as:

Returns the field or expression (block of
Code) with alias, plus the sum of one
Second field

 

sum:as:

Sumatoria acumulada del campo dado

 

Protocol aspects

date

Returns the period's date

 

effort

esfuerzo

fieldValue:

Returns the value of the given field (symbol)

leader

Returns the project leader name

 

monthly

Returns the period as year / month

 

projectName

Returns the name of the project

 

projectType

Returns project categorization

 

quarterly

Returns the period as quartern yyyy

 

releaseDuration

Returns the length in days of the phase 
project, by default Release defaultDays 

 

releaseStartingDate

Returns the project's phase starting date

 

weekly

Returns the period as BaselineN yyyy

 

Procotol dates

dayOf:

Returns the day of the given date type column (by default today)

 

firstDateOfMonth

Devuelve la fecha que es el primer día del mes de #fecha

 

firstDateOfQuarter

Returns the date that is the first day of the quarter #fecha

 

firstDateOfWeek

Returns the date that is the first day of the week #fecha (starting on Sunday = 0)

 

monthOf:

Returns the month of the given date type column (by default the current month)

 

monthsFrom:to:

Returns the number of months between the date values for the two fields given.

 

quarterOf:

Returns the quarter of the given date type column (by default the quarter today)

 

quartersFrom:to:

Returns the number of quarters elapsed between the date values for the two fields given

 

weekOf:

Returns the week of the year for the given date type column (by default the week of the year today)

 

weeksFrom:to:

Returns the number of elapsed weeks between the date values for the two fields given. 

Example: data field select: [: row | row weeksFrom: # DateCreated to: # fechaCierre] as 'weeks'

 

yearOf:

Returns the year of the given date type column (by default the current year)

 

 

Protocol defaults

fecha

Returns the period's date

 

fechaInicioRelease

Returns the project's phase starting date

 

fechaRelease

Retorna la fecha de finalización de la fase del proyecto -Mejora de
    performance 

 

nombreRelease

Nombre del release o fase

 

period

Retorna el período (quarter, month, weekly) o nombre de release

 

periodo

Returns the period

 

periodoFecha

Returns a parsed date from the period

 

project

project name

 

projectRelease

release (version) del proyecto

 

proyecto

project name

 

releaseDate

Returns the project's end of phase date

 

releaseName

Project release name (version) 

 

total

Devuelve el valor del campo numerico #value, #valor o #total

 

value

Returns the value of the numeric field #value, #value or #total

 

Protocol enumerating

all

Returns all columns

 

all:as:

Returns all fields plus the given field
With alias. Example: 
    
    ((data omit fallasProduccion)
        distinct proyecto)
        select all: [:r|Date today] as:'processDate'

 

all:as:on:

Returns all fields plus the given field
In another set with alias (indexed). Example:
    
    |uat|
    uat := data where isNotZero:'fallasUat'.
    uat indexedOn: #('proyecto' 'nombreRelease').
    (data select field: #proyecto field:
    #nombreRelease) select all: [:ug| ug duration]
    as: 'dur' on: uat.
    

 

defaults

Returns the predefined fields of the values
Of indicators (curve type): 
proyecto,nombreRelease, fechaRelease

 

defaults:as:

Returns the defaults fields plus another aliased field calculated at
from aBlock.

Example: 
data select defaults: [: group |
measure isRatio 
ifTrue: [group average value]
ifFalse: [group sum value]] as: 'value'

 

defaults:as:field:as:

Returns the defaults fields plus another aliased field calculated at
starting with aBlock, plus an additional field.

Example: data select defaults: [: group |
measure isRatio ifTrue: [group average value] ifFalse: [group sum
value]] as: 'value'
field: 'type' as: 'type'

 

defaults:as:field:as:field:as:

Returns the defaults fields plus another aliased field calculated at
Starting with aBlock, plus two additional fields.

Example: data select defaults: [: group |
measure isRatio ifTrue: [group average value] ifFalse: [group sum
value]] as: 'value'
field: 'type' as: 'instrument'
field: 'status' as: 'operation'

 

defaults:as:field:as:field:as:field:as:

Returns the defaults fields plus another aliased field calculated at
Starting with aBlock, plus three additional fields.

Example: data select
defaults: [: group | measure isRatio ifTrue: [group average value] ifFalse:
[group sum value]] as: 'value'
field: [: g | (g distinct: #type) asOrderedCollection joinSeparatedBy: $ ~]
as: 'instrument'
field: [: g | (g distinct: #state) joinSeparatedBy: $ ~] as: 'operation'
field: [: g | g allActors asSet joinSeparatedBy: $ ~] as: 'actors'

 

each:

Returns the result of evaluating aBlock with rank. 

Example: data where each: [: row | row duration <= 30]

 

field:as:on:

Returns the field or expression (block of
Code) of another set with aliases (the set must be
Indexed by existing fields in this set).
Example:
    
    |uat|
    uat := data where isNotNull:'fallasUat'.
    uat indexedOn: #('proyecto' 'nombreRelease').
    data select field: [:ug| ug duration] as: 'dur' on: uat
    

 

field:as:on:ifNone:

Returns the field or expression (block of
code) from another set with aliases (the set must be
indexed by existing fields in this set).
If not found, returns the value of aBlock.

Example:

| uat |
uat: = data where isNotNull: 'fallasUat'.
uat indexedOn: # ('project' 'rename').
data select
field: [: ug | ug duration] as: 'dur' on: uat
ifNone: [0]

 

quarterDefaults:as:

 

Protocol fields

field:

Returns a named field

 

field:as:

Returns the field or expression (code block) with alias

 

field:as:field:as:

Returns two fields / expression (code block) with alias. 

Example: select data 
field: # tipoProyecto as: 'tipoProyecto' 
field: [: row | self aggregatedPeriodDateOf: row] as: 'date'

 

field:as:field:as:field:as:

Returns three fields / expression (code block) with alias

 

field:as:field:as:field:as:field:as:

Returns four fields / expression (code block) with alias

 

field:as:field:as:field:as:field:as:field:as:

Returns five fields / expression (code block) with alias

 

field:as:field:as:field:as:field:as:field:as:field:as:

Returns six fields / expression (code block) with alias

 

field:as:field:as:field:as:field:as:field:as:field:as:field:as:

Returns seven fields / expression (code block) with aliases

 

field:field:

Returns two field / expression (code block)

 

field:field:as:

Returns a field / expression (code block) plus another field / expression with alias

 

field:field:field:

Returns three field / expression (code block)

 

field:field:field:as:

Returns two fields / expressions (code block) plus another field / expression with alias

 

field:field:field:field:

Returns four fields

 

field:field:field:field:as:

Returns three fields / expressions (code block) plus another field / expression with alias

 

fields:

Returns the fields with the same alias. Example: row fields: # (date project phase)

 

fields:as:

Returns the fields with aliases. Example: 
    row 
        fields: #(''proyecto'' ''id'') 
        as:#(''proyecto'' ''issue_tracker_id'' )

Protocol statistics

centil:on:

Returns the percentile value belonging to the 
percentile dice field (zero if not 
found in centiles, error)

 

quartil:on:

Returns the quartile it belongs to the field value given in quartiles

 

rankedOn:

Returns the rank of the record in the given ranking.
Example:
| ds ranking |

ds: = data omit inputTime.
ranking: = ds ranks timeUsed.
ds select
defaults: [: row | row rankedOn: ranking]
as: 'ranks''

 

Protocol testing

equal:to:

Returns true if the field value is equal to the value given

 

field:after:

Returns true if the field value is given later (>) to the given magnitude. 

Example: data field where: # date after: date row

 

field:before:

Returns true if the field value is given above (<=) to the given magnitude. 

Example: data field where: #date before: row fecha

 

field:between:and:

Returns true if the field value is in the range given

 

field:in:

Returns true if the field value is included in the given set. 

Example: data field where: selectFieldName in: values

 

field:match:

Returns true if the field matchs against the given pattern

 

field:matchNot:

Returns true if the field does not matchs against the given pattern. 

Example: data field where 'period' matchNot: '... * * *'

 

ifNull:then:

Returns the value of the field, or if the given value is nil

 

isNotNull:

Returns true if the given field is not NULL

 

isNotZero:

Returns true if the given field is non-zero

 

isNothing:

Returns true if the given field is NULL, zero or empty

 

isNull:

Returns true if the given field is NULL

 

isSomething:

Returns true if the given field is NOT NULL, zero or 
empty

 

isToday:

Returns true if the given field is today's date

 

isZero:

Returns true if the given field is zero

 

notEqual:to:

Returns true if the field value is different from the value given

 

 

Class ResultSetRowGroup

Protocols of messages that can be sent to a ResultSetRowGroup
Grouping of a ResultSet

Note: #sum, #average, y #standardDeviation answer a ResultSet. If you want the scalar value, use protocol #sumValue, #averageValue, #standardDeviationValue (see Collection)

Protocol *DevImprovekit-activity system

defaultsWithMetadata:as:

Group by defaults fields and components of the activity system
(instruments, operations, actors) plus an aliased field / expression

Example:

((data where project: 'PROJECT NAME') and type: 'TYPE OF DEFECT')
groupBy defaults select defaultsWithMetadata: [: g | g count] as: 'items'

 

defaultsWithMetadata:as:field:as:

defaultsWithMetadata:as:field:as:field:as:

quarterDefaultsWithMetadata:as:

quarterDefaultsWithMetadata:as:field:as:

 

Protocol enumerating

defaults

Grouped by the defaults fields

 

defaults:as:

Group by defaults field plus aliased field / expression

Example: ((data where proyecto: 'NOMBRE DEL PROYECTO') 
    and tipo: 'TIPO DE DEFECTO') 
    groupBy defaults select
    defaults: [:g | g count] as: 'items'

 

defaults:as:field:as:

Group by field defaults plus two field / expression with alias

Example: ((data where project: 'PROJECT NAME')
and type: 'TYPE OF DEFECT')
groupBy defaults select
defaults: [: g | g count] as: 'items'
field: [: g | (g distinct: #type) joinSeparatedBy: $ ~] as: 'instrument'

 

defaults:as:field:as:field:as:

Group by fields defaults plus three field / expression with alias

Example: ((data where project: 'PROJECT NAME')
and type: 'TYPE OF DEFECT')
groupBy defaults select
defaults: [: g | g count] as: 'items'
field: [: g | (g distinct: #type) joinSeparatedBy: $ ~] as: 'instrument'
field: [: g | (g distinct: #state) joinSeparatedBy: $ ~] as: 'operation'

 

defaults:as:field:as:field:as:field:as:

Group by fields defaults plus four field / expression with alias

Example: ((data where project: 'PROJECT NAME')
and type: 'TYPE OF DEFECT')
groupBy defaults select
defaults: [: g | g count] as: 'items'
field: [: g | (g distinct: #type) joinSeparatedBy: $ ~] as: 'instrument'
field: [: g | (g distinct: #state) joinSeparatedBy: $ ~] as: 'operation'
field: [: g | g allActors asSet joinSeparatedBy: $ ~] as: 'actors'

 

 

Protocol fields

field:as:

Grouped by a field / expression with alias

 

field:as:field:as:

Groups of two fields / expressions alias

 

field:as:field:as:field:as:

Groups of three fields / expressions alias

 

field:as:field:as:field:as:field:as:

Groups of four fields / expressions alias

 

field:as:field:as:field:as:field:as:field:as:

Groups of five fields / expressions alias

 

field:as:field:as:field:as:field:as:field:as:field:as:

Groups of six fields / expressions alias

 

field:as:field:as:field:as:field:as:field:as:field:as:field:as:

Returns seven fields / expression (code block) with aliases

 

field:field:

Grouped by a field / expression

 

field:field:as:

Grouped by a field / expression, plus another field / expression with alias

 

field:field:field:

Groups of three fields / expressions

 

field:field:field:as:

Groups of two fields / expressions, plus another field / expression with alias

 

field:field:field:field:

Groups of four fields / expressions

 

field:field:field:field:as:

Groups of three fields / expressions, plus another field / expression with alias

 

Class ShewhartPlotSeries

Protocols of messages that can be sent to a ShewhartPlotSeries
In statistical quality control, the individual / moving-range chart is a type of control chart used to monitor variables from a business or industrial process for which it is impractical to use rational subgroups.

The "chart" actually consists of a pair of charts: one, the individual chart, displays the individual measured values; The other, the moving range chart, displays the difference from one point to the next. As with other control charts, these two charts enable the user to monitor the process for shifts in the process that alter the mean or variance of the measured statistic.

Series of a StatisticPlotMorph that determines limits of variation and bands (sigmas) from the moving range. Source: Understanding Variation, Wheeler

Protocol *DevImprovekit-signals

ascendantFuzzySignals

As the signal of '' upward '' variation, but considering fuzzy logic (group of projects) instead of statistical variation

 

dominantFuzzySignals

As the "dominant" variation signal, but considering fuzzy logic (group of projects) instead of statistical variation

 

moderateFuzzySignals

As the "moderate" variation signal, but considering fuzzy logic (group of projects) instead of statistical variation

 

nearAverageFuzzySignals

As the "near-average" signal of variation, but considering fuzzy logic (group of projects) rather than statistical variation

 

weakFuzzySignals

As the "weak" variation signal, but considering fuzzy logic (group of projects) instead of statistical variation

 

Protocol accessing

lb1

Lower limit -1sigma

 

lb2

Lower limit -2sigma

 

lnlp

Lower limit

 

movingRange

Moving range (difference from previous value)

 

movingRangeAverage

Average moving range

 

parameters

Parameter values that characterize the series

 

ub1

Upper Limit +1sigma

 

ub2

Upper Limit +2sigma

 

unlp

Upper limit

 

url

Moving range limit

 

valuesAverage

Data average

Protocol drawing

histogram

Opens a frequency histogram around
Of the mean value (- + 3sigma)

plot

Draws the series and opens in the Hand

Protocol signals

ascendantSignals

Returns a collection with the signs of upward variation: a possible process of change that shifts somewhat the average downwards, or upwards

 

dominantSignals

Returns a collection with the dominant variation signals: possible process (or data with error) that causes an overflow beyond the natural limits

 

moderateSignals

Returns a collection with moderate variation signals: a possible change process that shifts the average near the lower or upper natural limit

 

nearAverageSignals

Returns a collection with the signs of variation close to the average: possible process that keeps the performance close to the mean

 

signals

Returns a collection with the signs of variation

 

weakSignals

Returns a collection with weak variation signals: a possible process that causes a downward slope, or a rise, of the mean

 

Protocol statistics

bucketFrecuencies

Intervalos de clase (dividido x1000)

 

frecuencies

Frequency histogram (Sigma)

 

frecuenciesValues

Valores del histograma de frecuencias (sigmas) - (dividido x1000)

 

limitsAverages

_Valores promedio de los sigmas (dividido x1000)

 

Class TrendPlotSeries

Protocols of messages that can be sent to a TrendPlotSeries
Abstract class of trend series based on the equation of the line.

It can be reimplementated for better fit using "The Theil" algorithm

Protocol accessing

parameters

Parameter values that characterize the series

Protocol drawing

plot

Draws the series and opens in the Hand

Protocol regression

b

Returns the b component of the equation of the line

 

m

Returns the slope of the line of least squares straight

 

r2

Returns the coefficient of the regression line

 

Protocol testing

isTrendSerie

 

Class KPI

Protocols of messages that can be sent to a KPI
Public interface of Measures for IHDSL.

Examples

    KPI enabled.

    (KPI id: 'ReleaseDefectsMeasurement') baselines: (Projects named: 'Producto').
    
    KPI select:[:kpi| kpi qi < 0.92]

Protocol accessing

category

Returns the categorization (or size) of the indicator (Effort, Quality, Activity, etc.).

 

code

Returns the code IHDSL (nil if the code is SQL)

 

datasource

Devuelve la identificación de la fuente de datos del indicador - En caso de SQL es un string

 

description

Returns a text that explains the indicator

 

formula

Returns text describing the algorithm for indicator

 

intention

Returns a text that indicates the purpose of the indicator

 

kpi

Returns the kpi with a given ID.
    
    'ReleaseDefectsMeasurement' kpi
    
    

process

Returns a text with the name of the process associated with the indicator

 

unit

Returns the unit of measure (Quantity | Rate |%)

 

user

Returns the ID of the owner / author user flag

 

Class protocol

id:

Devuelve una nueva KPI cuya identificación es el ID dado

 

select:

Devuelve un conjunto de KPI que evaluan aBlock a true

 

Protocol context

context

Returns a dictionary with information related to the indicator that supplements the same numerical tables and graphs. It provides a broader context to aid the user in making decisions

 

qi

Returns a number from 0 to 1 that indicates the quality of the input data (related to the size or category of the indicator). Much higher, the better

 

Protocol queries

baselines:

Returns a ResultSet with weekly consolidation project type equal to a given

 

consolidated:

Returns # organizational: o 
# organizationalAggregated: depending on 
indicator

 

cumulated:

Returns a ResultSet with the trend of 
consolidated rate equal to a given project, or 
weekly baseline if available

 

data

Returns a ResultSet with data for all projects. The data correspond to a comparable phase or periods, or to weeks if the indicator allows it

 

data:weekly:filter:

Retorna un ResultSet con los datos para el
    proyecto (períodos repetitivos comparables
    entre sí). Se puede solicitar detalle semanal y/o
    filtrar solo las fases principales (según
    convención de nombres o duración menor al
    mes)

 

dataAggregated:

Returns a ResultSet with data for 
project (comparable repeated periods 
each other) - To graph type indicator 
Circular or Bars

 

releases

Returns a ResultSet with data for all projects. The data correspond to a comparable phase (s)

 

releases:

Returns a ResultSet with data for the given project. The data correspond to a comparable phase or period (without discriminating the type of phase or release)

 

trend:

Returns a ResultSet with the 'trend' accumulated for the given project (sum, average, or if the unit corresponds to the indicator ratios)

 

weekly

Retorna un ResultSet con los datos semanales para todos los proyectos

 

Protocol queries-activity systems

 

baselines:instruments:operations:actors:

Returns a ResultSet with weekly consolidation by type of project equal to the given. The other arguments correspond to components of the activity system used as filters

 

data:weekly:instruments:operations:actors:filter:

Returns a ResultSet with the data for the
project (comparable repetitive periods
each other) and activity system components.
You can request weekly details and / or
filter only the main phases (according to
naming convention or duration less than
month)

 

releases:instruments:operations:actors:

Returns a ResultSet with the data for the project and components
of the given activity system. The data corresponds to a phase or
comparable period (without discriminating the type of phase or release)

 

 

Protocol testing

bar

Returns true if the graph type indicator is Bar

 

dsl

Returns true if the indicator is IHDSL code (stored in the application repository), false if SQL (stored procedures server database)

 

empty

Returns true if no data in the repository for this indicator

 

enabled

Returns true if the indicator is active

 

isAggregated

Returns true if the indicator adds information (type of bar or pie)

 

isRatio

Returns true if the gauge unit is a percentage or a rate

 

pie

Returns true if the graph type indicator is Pie

 

procedural

Returns true if the flag is implemented in stored procedure. These indicators are executed by passing additional arguments to the calculation procedure (such as the project, the indicator identifier and a group by project category flag.

 

significant

Returns true if the measurement is the minimum amount of data to be considered statistically significant

 

 

Class ImprovekitPoject

Protocols of messages that can be sent to a Projects
Public interface of Projects for IHDSL.

Examples:

    ImrprovekitProject enabled.
    
    ImrprovekitProject named: 'Product'.
    
    ImrprovekitProject selectFromGroup: 'group hurst value < 0.4'

Protocol *DevImprovekit-fuzzy set

performance

Returns a fuzzy set associated with a given metric (ActivityVolume) indicating an overall level of 'performance' of the project in relation to its category (# nodata if it could not calculate)

 

Protocol accessing

enabled

Returns true if the project is active

 

group

Returns the attribute group project

 

id

Returns the unique ID project

 

leader

Returns the name of the project leader

 

name

Returns the name of the project

 

type

Returns the categorization of project (used as a key to group projects with similar characteristics, or 'homogeneous')

Contact improvekit@gmail.com