在此页:
目标用户:
CAST AI 管理员
健康仪表盘有一个基于“图块”或“面板”的界面,提供对数据的访问:
这些图块具有默认的表示设置,但是可以根据需求进行修改和自定义。例如:
- 图块颜色可以改变
- 图块位置可以改变
- 图块内容可以改变
- 图块大小可以改变
- 可以添加新的图块
编辑图块展示
默认的图块表示形式定义在以下文件中:
文件名 | 使用 |
---|---|
%CATALINA_HOME%\webapps\CAST-Health\portal\resources\cmp.json | 当测量服务包含多个应用(即多个应用登录页)时,此文件管理图块的显示。 |
%CATALINA_HOME%\webapps\CAST-Health\portal\resources\app.json | 该文件管理单个应用(即应用登录页)的图块显示。此页面有以下两种情况显示:
|
有关多应用和应用登录页的更多信息,参见健康仪表盘。 |
要修改表示,使用文本编辑器(记事本或其它类似的应用)编辑.json文件。CAST推荐:
- 创建默认.json文件的副本,如果在编辑过程中发生错误,可以使用该文件作为替换
- 首先更改现有的参数,如颜色和标题,并在开始进行大规模和更复杂的更改之前移动图块
请注意,CAST提供了“库”文件,其中包含可以在健康仪表盘中创建和使用的所有图块的示例。可以使用这些文件以及本文档页面中的示例来构建图块。这些库块可以在实时cmp.json和app.json文件旁边找到:
- %CATALINA_HOME%\webapps\CAST-Health\portal\resources\cmp_tiles_library.json
- %CATALINA_HOME%\webapps\CAST-Health\portal\resources\app_tiles_library.json
在浏览器中查看更改
如果编辑和保存cmp.json或app.json文件,则不需要重新启动应用服务器或应用本身:保存文件时立即更改。但是可能会发现这些更改在健康仪表盘中不是立即可见的。这是因为.json文件被加载到浏览器的缓存中,因此CAST建议清空浏览器缓存以强制更改变得可见。
如果使用的是谷歌Chrome,下面的提示可以用来自动清空浏览器缓存:
- 点击F12打开页面底部的Developer Tools窗口。
- 单击Developer Tools窗口右侧的Settings图标(一个cog) 。
- 勾选禁用缓存(当DevTools打开时)选项并关闭设置窗口。
- 在这种状态下,单击F12和F5刷新页面时,浏览器缓存将自动清空。
改变图块的位置
在每个“区域”中,健康仪表盘中以从左到右和从上到下的格式显示图块(参见下面)。在. json文件中,图块依次列出,因此移动一个图块,需要改变. json文件中使用复制/粘贴的位置:“区域”纺织图块代码越高,它将显示在仪表盘本身越高。
.json的结构
.json文件被划分成不同的部分,每个部分对应于健康仪表盘中的一个项、区域或块:
区域
这里有三个区域,每个区域对应于概述、演化和软件增强功能点(从以前的版本开始)(仅适用于app.json)部分,默认情况下可以看到:
这些在.json文件中表示如下:
"id": 1, "title": "Overview",
以及:
"id": 3, "title": "Evolution",
以及:
"id": 2, "title": "Software Enhancement Function Points (since Previous Version)",
图块
在每个区域内,定义了各种图块(或面板),例如:
{ "id": 5, "plugin": "QualityIndicatorResults", "color": "yellow", "parameters": { "title": "Robustness", "qualityIndicator": {"id": "ROBUSTNESS", "format": "0.00"}, "details":{ "ranges":[1.6,2.8,3.0,3.4] }, "widget": "gauge" } },
.json中的可用参数
全局参数
有关可在cmp.json(以及app.json中)定义的下列参数的更多信息,请参见HD - json中的仪表盘宽配置选项,它提供仪表盘范围的参数化(即无论仪表盘包含一个或多个应用,它们都有效):
"title": "Health Dashboard", "language": "dev", "horizontalScroll": false, "confirmLogout": true, "persistNavigationFilters":true, "filtering":{ "filterTags":false }, "period": { "shift": true, "periods": [ { "diff": 30, "units": "days" }, { "diff": 3, "units": "months" }, { "diff": 6, "units": "months" }, { "diff": 12, "units": "months", "selected": true }, { "diff": 2, "units": "years" }, { "diff": 0, "units": "alltime" } ] }
图块参数
一个图块或面板相当于一个“插件”。每个图块由以下属性组成:
参数 | 模式 |
---|---|
id | 表示图块的唯一id,这是一个用于标识面板的技术id,在.json文件中必须唯一。 |
插件 | 表示要在图块中显示的指示器的类型。插件参数下面列出了可用的插件。 |
颜色 | 可选参数,描述要使用的图块颜色主题。如果没有定义,则使用浅灰色。颜色目前仅限于:
|
大小 | 可选参数提供的能力,以扩大图块的大小(大和小): |
自动调整 | 可选参数,当设置为true时(默认位置)将截断插件的标题文本,如果大于图块的大小(无论是大的还是小的图块)。使用此参数可能会导致仪表盘在视觉上不太一致。 默认值为true,其中用于插件标题文本的字体大小将被减小,以便标题文本适合图块的大小。要禁用自动调整选项,需要专门向插件添加参数并将其设置为false。 |
参数 | 本节包含特定于插件的参数。请参考插件参数下面的每个插件定义来获得更多的信息。 |
技术尺寸测量参数
仅在app.json中可用。
技术尺寸测量控制技术尺寸指标的可配置显示(严重违规次数、代码行数、文件数等),可在应用级为技术尺寸图块提供下拉页(点击放大):
这些指示器都可以通过TechnicalSizeMeasures段落中的app.json文件进行配置:
参数 | 描述 |
---|---|
id | 表示CAST评估模型中定义的技术尺寸指示器的ID。 |
标签 | 用于在下拉页面显示技术尺寸指示器名称的文本字段(点击放大): |
示例:
"TechnicalSizeMeasures": { "values": [ { "id": 67011, "label": "Number of Critical Violations" }, { "id": 10151, "label": "Number of Lines of Code" }, { "id": 10154, "label": "Number of Files" }, { "id": 10155, "label": "Number of Classes" }, { "id": 10156, "label": "Number of Programs" }, .....
插件参数
一个插件也有不同的参数如下:
注意:
- 有些插件是专门为特定的.json文件中使用而命名的。换句话说,插件将有两个唯一的名称,一个用于cmp.json,另一个用于app.json。下面将对类似这样的插件进行说明。
- 在cmp.json文件中插入该功能,不一定在app.json文件中起作用(反之亦然)
常见的插件参数
参数 | 描述 |
---|---|
标题 | 用于标识图块的标题。 |
模式 | 确定在图块中显示细节。不是所有的图块都支持这个属性。
|
qualityIndicator或sizingMeasure | 表示度量数据属性(通常是指示器标识符、一些高级描述和值格式化)。
|
范围 | 允许将特定的过滤器添加到图块(以及相关细节)中,以集中于分配给已定义标记和相关类别的应用。两个子参数都必需:
参数是全局图块配置,但只适用于以下插件:
参见健康仪表盘中的注意标签和类别的图块范围。 |
PortfolioListing
此图块仅在cmp.json文件中可用——换句话说,在多应用/组合级别。
没有范围:
{ "id":20150818, "plugin": "PortfolioListing", "color": "grey-dark", "parameters":{ "title":"Number of applications" } },
标签和类别范围:
{ "id":20160405, "plugin": "PortfolioListing", "color": "grey-dark", "parameters":{ "title":"Number of applications", "scope":{ "category":"Vendors", "tag":"Vendor 1" } } },
通知
一种数组,其前五项显示在区域中。每个项目描述一个通知:
- 类型:描述通知的类型。
- analysisSince —— 计算在选定时间内未分析应用的数量
- addedCount —— 计算在选定时间段内添加应用的数量
- sizingMeasureEvolution —— 计算演化大于给定阈值应用的数量
- qualityIndicatorEvolution ——计算演化大于给定阈值应用的数量
- sizingMeasure/qualityIndicator演化使用的阈值,用于过滤具有小演化的应用
- 质量指标演化关注改进/退化的趋势,或者测量演化关注增加/减少的趋势
- qualityIndicatorEvolution自带qualityIndicator信息:
- id可以是: ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- sizingMeasureEvolution伴随sizingMeasure信息
- id可以是: TECHNICAL_DEBT, LINES_OF_CODE, NUMBER_OF_ARTIFACTS, NUMBER_OF_COMMENT_LINES, NUMBER_OF_DECISION_POINTS, NUMBER_OF_FILES, AUTOMATED_IFPUG_FUNCTION_POINTS_ESTIMATION,BACKFIRED_IFPUG_FUNCTION_POINTS和CRITICAL_VIOLATIONS
- id也可以是对应于任何类型的AIP度量的数值id
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- 描述是必要的
注意:
- 图块本身只显示5个项目,但是如果需要,可以配置5个以上的项目——当单击图块向下拉时,将显示额外的项目
- 当单击图块下拉时,图块本身中任何值为0的项都不会显示
示例 (为 cmp.json)
{ "id": 1000, "plugin": "Notification", "color": "orange", "size":"large", "parameters": { "title": "Applications Fast Facts", "notifications":[ {"type":"analysisSince"}, {"type":"addedCount"}, {"type":"sizingMeasureEvolution", "threshold":0.01, "trend":"increase", "sizingMeasure":{"id": "CRITICAL_VIOLATIONS", "format": "0", "description":"critical violations"}}, {"type":"sizingMeasureEvolution", "threshold":0.05, "trend":"increase", "sizingMeasure":{"id": "LINES_OF_CODE", "format": "0", "description":"lines of code"}}, {"type":"qualityIndicatorEvolution", "threshold":0.02, "trend":"degradation", "qualityIndicator":{"id": "PERFORMANCE", "format": "0", "description":"performance"}} ] } }
BackgroundFactsResults / BackgroundFactsResult
注意:
- 在cmp.json文件中使用此图块时,请使用BackgroundFactsResults
- 在app.json文件中使用此图块时,请使用BackgroundFactsResult
一个图块能够显示在快照生成期间手动配置和上传的后台事实。图块可以显示在上传的后台事实文件中定义的一个度量的信息。
- backgroundFact: 关于要显示的指示器的信息:其id、格式和可选描述
- id是CAST 管理器评估模型中显示的后台事实数值ID(在最近的版本中,“metric_group”值为6的id):
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- 描述是必要的
- url: url字段提供了一种简单的方法,可以在细节级别将下拉链接到其它一些基于web的信息。由于度量来自非CAST源,所以包含度量细节信息的外部页面可以链接到这里。如果没有提供url,则无法向下拉,在任何情况下,消息将显示在图块或图表上的工具提示中:
- 缩放:true或false ,以启用放大的详细图表。默认值为true。当多个应用合并到健康仪表盘中时,缩放功能工作的最好——在这种情况下,很难读取每一列的得分细节(一列代表一个应用)。因此可以使用缩放选项选择(使用鼠标)要放大的应用。
- 聚合:(sum或average),图块将使用sum或average来聚合应用后台的事实值——默认值是sum。例如:如果在健康仪表盘中有两个可见的应用,并且仅为其中一个应用配置一个后台事实(例如成本为400美元),那么结果将显示如下:
- AVERAGE: 在多个应用级别的图块中显示200的值(400除以2),在应用级别的图块中显示200。
- SUM: 在多个应用级别和应用级别,图块中将显示400的值,上传后台信息的应用将显示400,未上传背景信息的应用将显示0。
示例 (为 cmp.json)
{ "id": 66002, "plugin": "BackgroundFactsResults", "color": "green", "parameters": { "url":"http://www.castsoftware.com", "aggregation":"sum", "title": "Cost", "backgroundFact": { "id": "66002", "format": "0.0", "description": "Total cost value" } } },
示例 (为 app.json)
{ "id": 39, "plugin": "BackgroundFactsResult", "color": "black", "parameters": { "title": "Number of incidents", "url":"http://www.castsoftware.com", "aggregation":"sum", "backgroundFact": { "id": "66061", "format": "0,000a", "description":"" } } }
示例背景事实配置
在本例中,健康仪表盘中有两个应用。已经为其中一个应用配置和上传了后台事实(更多信息请参见后台事实和业务价值度量上传),如下所示。图块被设计用来显示关于成本(66002)度量的信息(参见cmp.json的示例插件)。
<?xml version="1.0" encoding="iso-8859-1" ?> <DATA model="Central Model" version="1.0.0.17" scope="Productivity"> <!-- Module Definition --> <DSS_IN_OBJECTS> <OBJECT_NAME>SEVRES full content</OBJECT_NAME> <OBJECT_TYPE_ID>20000</OBJECT_TYPE_ID> <OBJECT_ID>10</OBJECT_ID> </DSS_IN_OBJECTS> <!-- RESULTS : 66061 : Business Value for Module --> <DSS_IN_METRIC_RESULTS> <METRIC_ID>66061</METRIC_ID> <METRIC_NUM_VALUE>4</METRIC_NUM_VALUE> <OBJECT_ID>10</OBJECT_ID> </DSS_IN_METRIC_RESULTS> <!-- RESULTS : 66001 : Effort for Module --> <DSS_IN_METRIC_RESULTS> <METRIC_ID>66001</METRIC_ID> <METRIC_NUM_VALUE>10.5</METRIC_NUM_VALUE> <OBJECT_ID>10</OBJECT_ID> </DSS_IN_METRIC_RESULTS> <!-- RESULTS : 66002 : Cost for Module --> <DSS_IN_METRIC_RESULTS> <METRIC_ID>66002</METRIC_ID> <METRIC_NUM_VALUE>400</METRIC_NUM_VALUE> <OBJECT_ID>10</OBJECT_ID> </DSS_IN_METRIC_RESULTS> </DATA>
BackgroundFactsEvolution
请注意,此图块可用于多个(cmp.json)和单个(app.json)应用级别。
可以显示在快照生成期间手动配置和上传后台事实演化的图块。图块可以显示在上传的后台事实文件中定义的一个度量的信息。
- backgroundFact: 有关更多信息,请参见上面的BackgroundFactsResult/BackgroundFactsResults图块。
- aggregation; 有关更多信息,请参见上面的BackgroundFactsResult/BackgroundFactsResults图块。
- widget: 提供呈现类型(数字用于数字变化,直线或样条用于趋势图表示:直线用于直线,而样条用于点之间的平滑过渡)
- selectedApplicationCount定义在多应用级别(cmp.json)定义图块时,在详细级别下拉页面中默认选择的应用数量。
点击图块
当在多应用级别(cmp.json)定义时,单击一个图块将显示作用域中应用的以下后台事实细节:
在单个应用级别(app.json)定义时,单击一个图块将默认显示TQI的演化。如果需要在单个应用级别查看后台事实演化的详细信息,则需要进行以下配置更改:
- 使用文本编辑器编辑以下文件:
%CATALINA_HOME%\webapps\CAST-Health\portal\resources\internal\app-navigation.json
在文件中搜索“id”:“evolution”部分,然后添加一个新的“group”,其中包含在应用级下拉详细信息页面中显示的后台事实。例如,以下组包含所有可能的后台事实:
{ "id": "backgroundFacts", "description":"Background Facts", "indicators": [ { "description": "Effort", "id": "66001", "format":"0,000", "selected": true }, { "description": "Cost", "id": "66002", "format":"0,000", "selected": false }, { "description": "Enhancement Function Points", "id": "66003", "format":"0,000", "selected": false }, { "description": "Delivery Feature Requests", "id": "66004", "format":"0,000", "selected": false }, { "description": "Pending Feature Requests", "id": "66005", "format":"0,000", "selected": false }, { "description": "Pending Fixes", "id": "66007", "format":"$0,000", "selected": false }, { "description": "Business Value", "id": "66061", "format":"$0,000", "selected": false } ] }
- 在添加所需的后台信息后保存文件。
- 要查看更改,可能需要清空浏览器缓存,如本文开头所述。下面的屏幕截图显示了BackgroundFactsEvolution 图块在单个应用级别的演化细节页面,突出显示了后台事实列表:
示例 (为 cmp.json 或 app.json):
{ "id": 660011, "plugin": "BackgroundFactsEvolution", "color": "purple", "parameters": { "widget":"number", "aggregation":"average", "title": "Effort", "backgroundFact": {"id": "EFFORT","format": "0,000"} } }, { "id": 660012, "plugin": "BackgroundFactsEvolution", "color": "purple", "parameters": { "widget":"spline", "aggregation":"sum", "title": "Effort", "backgroundFact": {"id": 66001,"format": "0,000"} } }
BackgroundFactAndQualityIndicatoryBySizingMeasureResults
请注意默认情况下,这个插件(图块)不会出现在任何默认的.json文件中。如果需要使用,将只在多应用级别(cmp.json)发挥作用。下面给出了一个图块的例子。
- qualityIndicator: 关于要显示的指示器(x轴)的信息:其id、格式和最终描述
- id可以是: ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- 描述是必要的
- sizingMeasure: 关于要显示的指示器的信息(如气泡大小):它的id、格式和最终描述
- id可以是: TECHNICAL_DEBT, LINES_OF_CODE, NUMBER_OF_ARTIFACTS, NUMBER_OF_COMMENT_LINES, NUMBER_OF_DECISION_POINTS, NUMBER_OF_FILES, AUTOMATED_IFPUG_FUNCTION_POINTS_ESTIMATION, BACKFIRED_IFPUG_FUNCTION_POINTS 和 CRITICAL_VIOLATIONS
- id也可以是对应于任何类型CAST AIP度量的数值id
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- 描述是必要的
- backgroundFact: 关于要显示的指示器(作为y轴)的信息:其id、格式和最终描述
- id可以是: BUSINESS_VALUE, COST, DELIVERY_FEATURE_REQUESTS, EFFORT, ENHANCEMENT_FUNCTION_POINTS, PENDING_FEATURE_REQUESTS, 和 PENDING_FIXES
- id也可以是对应于任何类型CAST AIP度量的数值id
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- 描述是必要的
- chartSettings: 显示图形的信息。它是由highcharts库描述的(cf. http://api.highcharts.com/highcharts 以获得可用的描述)
- x轴和y轴是指图表轴
- plotLines: 在绘制区域内的一系列线条,在其中一个轴上标出特定的值:
- value: 以轴为单位的直线位置。
- color: 绘制带的颜色。
- label: 绘制带的文本标签。
- align: 水平对齐(“左”、“中”或“右”)
- text: 字符串文本本身。支持HTML的一个子集。
- textAlign: 标签的文本对齐方式决定文本如何与锚点对齐。可能的值是“左”、“中”和“右”。
- verticalAlign: 标签相对于绘图带的垂直对齐。可以是“顶部”、“中部”或“底部”之一。默认为顶部。
- plotBands: 在地块区域内延伸的彩色条带阵列,在轴上标记一个区间:
- from: 图形带在轴单元中的起始位置。
- to: 绘图带在轴单元中的结束位置。
- color: 绘制带的颜色。
- label: 绘制带的文本标签。
- align: 水平对齐(“左”、“中”或“右”)
- text: 字符串文本本身。支持HTML的一个子集。
- textAlign: 标签的文本对齐方式决定文本如何与锚点对齐。可能的值是“左”、“中”和“右”。
- verticalAlign: 标签相对于绘图带的垂直对齐。可以是“顶部”、“中部”或“底部”之一。默认为顶部。
示例:
{ "id": 10203, "plugin": "BackgroundFactAndQualityIndicatoryBySizingMeasureResults", "color": "purple", "parameters": { "title": "Lines of Code - Effort", "order": "descending", "qualityIndicator": {"id": "TQI", "format": "0.00", "description": "TQI"}, "sizingMeasure": {"id": "LINES_OF_CODE", "format": "0,000a", "description": "Lines of Code"}, "backgroundFact": {"id": "EFFORT", "format": "0.00", "description": "Effort"}, "chartSettings": { "xAxis": { "plotLines": [ { "value": 3, "label":{"text":"TQI=3"} } ] }, "yAxis": { "plotLines": [ { "value": 3.0, "label":{"text":"Risk=3"} } ] } } } }
CriticalQualityRulesRatios / CriticalQualityRuleRatio
注意:
- 在cmp.json文件中使用此图块时,请使用CriticalQualityRulesRatios
- 在app.json文件中使用此图块时,请使用CriticalQualityRulesRatios
此图块显示了应用或多应用级别的前5个关键规则,以及:
- 选中列:检查规则的次数——即质量规则检查的对象的数量
- 失败(%)或失败(#)列:失败检查的百分比或数量——即质量规则检查的违反质量规则的对象的百分比或数量
配置:
- type: 描述通知的类型——设置为topRules
- count: 显示的行数。5是图块高度的优化尺寸
- order: 图块中表示的质量规则的顺序。这可以是降序或升序的,并基于失败检查的数量
- format: 遵从值的格式:它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
mode: 有两种选择:
- “比率”:失败(%)列将显示失败检查的百分比——即质量规则检查违反质量规则的对象百分比。
- “number”: 失败(#)列将显示失败的检查的数量——即质量规则检查违反质量规则的对象数量。
- loadLimit: 与其它图块相比,当应用范围增加时,这个图块往往会涉及大量的数据,因此可以很快证明性能低下;loadLimit选项定义了应用数量的限制:当应用少于loadLimit值时,将加载图块的内容。当应用多于loadLimit值时,图块的内容将不会被加载,消息将对此进行声明。
示例 (为 cmp.json):
{ "id": 14, "plugin": "CriticalQualityRulesRatios", "size":"large", "color": "grey-dark", "parameters": { "loadLimit": 60, "title": "Top 5 critical rules", "count": 5, "order": "descending", "format": "0,000", "mode": "ratio" } }
示例 (为 app.json):
{ "id": 107, "plugin": "CriticalQualityRuleRatio", "color": "grey-dark", "size":"large", "parameters": { "type":"topRules", "title": "Top Critical Rules", "count": 5, "format":"0,000", "order": "descending", "mode": "ratio" } }
CriticalViolationsPerHealthFactor
每个健康因子模块的严重违规提供了给定业务标准的严重违规计数:
- count: 显示的行数。5是图块高度的优化尺寸。此参数仅考虑风险最高的图块类型。
- order: 图块中表示数据的顺序。这可以是降序的,也可以是升序的,这是基于规模度量的
- qualityIndicator: 与singleQualityIndicator图块的指示灯相同:
- id可以是:ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
示例 (为 cmp.json)
{ "id": 10, "plugin": "CriticalViolationsPerHealthFactor", "color": "green", "size":"large", "parameters": { "type":"topRiskiest", "title": "Top 5 riskiest Applications", "count": 5, "order": "descending", "qualityIndicator": {"id": "PERFORMANCE", "format": "0.00", "description": "Performance"}, "sizingMeasure": {"id": "CRITICAL_VIOLATIONS", "format": "0,000a", "description": "Critical Violations"} } },
示例 (为 app.json)
{ "id": 106, "plugin": "CriticalViolationsPerHealthFactor", "color": "green", "size":"large", "parameters": { "type":"topRiskiest", "title": "Top riskiest modules", "count": 5, "order": "descending", "qualityIndicator": {"id": "PERFORMANCE", "format": "0.00", "description": "Performance"} } }
FunctionalWeightMeasureResult / FunctionalWeightMeasureResults
注意:
- 在cmp.json文件中使用此图块时,请使用FunctionalWeightMeasureResults
- 在app.json文件中使用此图块时,请使用FunctionalWeightMeasureResults
示例 (为 cmp.json):
{ "id": 10201, "plugin": "FunctionalWeightMeasureResults", "color": "blue", "parameters": { "title": "Functional Size", "functionalWeightMeasure": { "format": "0,000", "description":"OMG-Compliant Automated FPs" } } }
示例 (为 app.json):
{ "id": 1999, "plugin": "FunctionalWeightMeasureResult", "color": "blue", "parameters": { "title": "Functional Size", "functionalWeightMeasure": { "id": "AUTOMATED_IFPUG_FUNCTION_POINTS_ESTIMATION", "format": "0,000", "description": "OMG-Compliant Automated FPs" } } }
请注意下来时,有一个表列出了AFP度量中不包含的所有应用(本质上是所有未使用CAST EFP许可证的应用):
QualityIndicatorBySizingMeasureResult / QualityIndicatorBySizingMeasureResults
注意:
- 在cmp.json文件中使用此图块时,请使用QualityIndicatorBySizingMeasureResults
- 在app.json文件中使用此图块时,请使用QualityIndicatorBySizingMeasureResults
- type: 关于所选应用的全局视图的质量和大小指示器/ treemap的前N个风险最高的表代表的最高风险。
- count: 显示的行数。5是图块高度的优化尺寸。此参数仅考虑风险最高的图块类型。
- order: 图块中表示数据的顺序。这可以是降序的,也可以是升序的,这是基于规模度量的
- qualityIndicator: 与singleQualityIndicator 图块中的指示灯相同:
- id可以是: ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- sizingMeasure: 这是相同指标的规模和criticalViolations图块:
- id可以是:TECHNICAL_DEBT, LINES_OF_CODE, NUMBER_OF_ARTIFACTS, NUMBER_OF_COMMENT_LINES, NUMBER_OF_DECISION_POINTS, NUMBER_OF_FILES, NUMBER_OF_FUNCTION_POINTS, NUMBER_OF_BACKFIRED_FUNCTION_POINTS and CRITICAL_VIOLATIONS.
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- treemapColors: 定义在图块中显示的颜色(例如TQI qualityIndicator)
- "ranges":[1,2,3,4] 定义颜色范围的数量
- "colors":["#ff3600","#ff0242","#fbbb6e","#3dc680"] 定义每个范围的颜色(必须具有与范围相同的颜色数量)
sizingMeasure
请注意在多应用级别(即cmp.json文件中的配置),以下内容也可与sizingMeasure项一起使用:AUTOMATED_IFPUG_FUNCTION_POINTS_ESTIMATION, UNADJUSTED_DATA_FUNCTION_POINTS, UNADJUSTED_TRANSACTIONAL_FUNCTION_POINTS, ADDED_DATA_FUNCTION_POINTS, ADDED_TRANSACTIONAL_FUNCTION_POINTS, ADDED_TRANSACTIONAL_FUNCTION_POINTS, MODIFIED_DATA_FUNCTION_POINTS, MODIFIED_TRANSACTIONAL_FUNCTION_POINTS, MODIFIED_TRANSACTIONAL_FUNCTION_POINTS, DELETED_DATA_FUNCTION_POINTS, DELETED_TRANSACTIONAL_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_DATA_FUNCTION_POINTS, UNCHANGED_TRANSACTIONAL_FUNCTION_POINTS
对这些指标要格外注意,因为只有在拥有EFP许可证密钥时才具有值,并且如果所有应用都没有功能点,那么图块可能会显示问题(在空白空间中,正方形可能非常小)。图块只显示具有配置指示器结果的应用。
示例 (为 cmp.json)
{ "id": 3, "plugin": "QualityIndicatorBySizingMeasureResults", "size":"large", "color": "purple", "parameters": { "type":"treemap", "title": "Applications Map", "order": "descending", "qualityIndicator": {"id": "TQI", "format": "0.00", "tooltipFormat":"0.00", "description": "Total Quality Index"}, "sizingMeasure": {"id": "LINES_OF_CODE", "format": "0,000.0a", "tooltipFormat":"'0,000", "description": "Lines of Code"}, "treemapColors": { "ranges":[1,2,3,4], "colors":["#ff3600","#ff0242","#fbbb6e","#3dc680"] } } },
示例 (为 app.json)
{ "id": 101, "plugin": "QualityIndicatorBySizingMeasureResult", "size":"large", "color": "purple", "parameters": { "type":"treemap", "title": "Security Mapping", "order": "descending", "qualityIndicator": {"id": "SECURITY", "format": "0.00", "tooltipFormat":"0.00", "description": "Security"}, "sizingMeasure": {"id": "LINES_OF_CODE", "format": "0,000.0a", "tooltipFormat":"'0,000", "description": "Lines of Code"}, "treemapColors": { "ranges":[1,2,3,4], "colors":["#ff0242","#FF5B2B","#fbbb6e","#3dc680"] } } },
QualityIndicatorResult / QualityIndicatorResults
注意:
- 在cmp.json文件中使用此图块时,请使用QualityIndicatorResults
- 在app.json文件中使用此图块时,请使用QualityIndicatorResults
- qualityIndicator: 关于要显示的指示器的信息:其id、格式和可选描述
- id可以是: ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- technicalId是要显示的技术标准的ID,例如“61003”将在图块中显示“编程实践——OO继承和多态性”。项目组合和应用级别的功能。
- 描述是必要的
- 详细信息提供了用于下来页面视图的参数
- ranges: 用于分隔在详细视图中显示指示符组的范围。默认为[2,3]生成:[指标< 2,2 <=指标< 3,3<=指标]
- colors: 从十六进制编码颜色到十六进制编码颜色。从提供1级白色到提供4级颜色值。默认值是1级的#CE2029和4级的#28AC1B。可以通过useGradient参数选择渐变或纯色。默认值为false。
- ranges: 用于分隔在详细视图中显示指示符组的范围。默认为[2,3]生成:[指标< 2,2 <=指标< 3,3<=指标]
- widget提供指示器的图形化表示(例如计量器,圆环或风险规)
- 如果将widget设置为riskGauge,那么该标尺将根据riskGauge配置(阈值和颜色)的指示器得分显示颜色。在使用此小部件时,图块颜色主题被限制为grey-light和grey-dark。默认颜色为灰黑色。
- riskGauge: 可以在顶级QualityIndicatorResults全局配置中全局设置,也可以在图块参数中覆盖。如果小部件参数设置为riskGauge,则使用参数
- thresholds: 定义用于限定评分风险的阈值;默认值是:[2,3,3.99],表示高风险:1到2,风险:2到3,低风险:3到3.99,非常低的风险
- colors: 根据阈值的数量使用hexidecimal颜色号定义颜色(记住,3个阈值意味着4个区域,因此需要4种颜色)
- icon: 布尔值,在图块标题旁边显示一个图标(true),默认为false。
- zoom: true 或 false,以启用放大的详细图表。默认值为true。当将多个应用合并到健康仪表盘时,缩放功能最有效——在这种情况下,很难读取每一栏的分数细节(一列代表一个应用)。因此,可以使用缩放选项选择(使用鼠标)要放大的应用。
每个面板都有可用的参数。可以通过“QualityIndicatorResults”字段在json结构的最顶层设置一些通用参数。这里设置的参数涉及范围、颜色或riskGauge等详细字段。
示例 (为 cmp.json)
{ "id": 211, "plugin": "QualityIndicatorResults", "color": "grey-dark", "parameters": { "title": "Programming Practices - OO Inheritance and Polymorphism", "widget": "gauge", "qualityIndicator": { "id": "ROBUSTNESS", "technicalId": "61003", "format": "0.00", "description": "" } } },
示例 (为 app.json)
{ "id": 104, "plugin": "QualityIndicatorResult", "color": "yellow", "parameters": { "title": "Robustness", "widget": "gauge", "qualityIndicator": { "id": "ROBUSTNESS", "format": "0.00" } } },
例如在app.json或cmp.json中顶层的riskGauge
"QualityIndicatorResults" : { "ranges":[1.6,2.8,3.0,3.4], "riskGauge": { "colors":["#02eff4", "#ff4b02", "#02eff4", "#7fc4b2"] } },
QualityIndicatorEvolution
- qualityIndicator: 关于要显示的指示器的信息:其id、格式和可选描述
- id 可以是: ARCHITECTURAL_DESIGN, CHANGEABILITY, DOCUMENTATION, PERFORMANCE, PROGRAMMING_PRACTICE, ROBUSTNESS, SEI_MAINTAINABILITY, SECURITY, TQI, TRANSFERABILITY
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- widget提供了呈现类型(数字用于数字变化,线或样条用于趋势图表示——线使用直线,而样条提供点之间的平滑过渡)
示例 (为 cmp.json)
{ "id": 103, "plugin": "QualityIndicatorEvolution", "color": "green", "parameters": { "widget":"spline", "title": "Security", "qualityIndicator": { "id": "SECURITY", "format": "0.00" } } },
示例 (为 app.json)
{ "id": 201, "plugin": "QualityIndicatorEvolution", "color": "blue", "parameters": { "widget":"number", "title": "TQI", "qualityIndicator": { "id": "TQI", "format": "0.00" } } },
SizingMeasureEvolution
- sizingMeasure: 关于要显示的指示器的信息:其id、格式和可选描述
- id 可以是: TECHNICAL_DEBT, LINES_OF_CODE, NUMBER_OF_ARTIFACTS, NUMBER_OF_COMMENT_LINES, NUMBER_OF_DECISION_POINTS, NUMBER_OF_FILES, NUMBER_OF_FUNCTION_POINTS, NUMBER_OF_BACKFIRED_FUNCTION_POINTS 和 CRITICAL_VIOLATIONS
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- widget提供了呈现类型(数字用于数字变化,线或样条用于趋势图表示——线使用直线,而样条提供点之间的平滑过渡)
示例 (为 cmp.json)
{ "id": 100, "plugin": "SizingMeasureEvolution", "color": "grey-dark", "parameters": { "title": "Technical Debt", "sizingMeasure": {"id": "TECHNICAL_DEBT", "format": "$0,000.0a"} } },
示例 (为 app.json)
{ "id": 202, "plugin": "SizingMeasureEvolution", "color": "orange", "parameters": { "widget":"number", "title": "Technical Debt", "sizingMeasure": {"id": "TECHNICAL_DEBT", "format": "$0,000.0a"} } },
SizingMeasureResult / SizingMeasureResults
注意:
- 在cmp.json文件中使用此图块时,请使用SizingMeasureResults
- 在app.json文件中使用此图块时,请使用SizingMeasureResults
- sizingMeasure: 关于要显示的指示器的信息:其id、格式和可选描述
- id可以是: TECHNICAL_DEBT, LINES_OF_CODE, NUMBER_OF_ARTIFACTS, NUMBER_OF_COMMENT_LINES, NUMBER_OF_DECISION_POINTS, NUMBER_OF_FILES, NUMBER_OF_FUNCTION_POINTS, NUMBER_OF_BACKFIRED_FUNCTION_POINTS 和 CRITICAL_VIOLATIONS
- id也可以是对应于任何类型CAST AIP度量的数值id
- 描述是必要的
- 格式是必须显示值的格式,它使用number .js中定义的格式(有关可用的数字格式,请参见http://numeraljs.com/)
- zoom: true 或 false,以启用放大的详细图表。默认值为true。当将多个应用合并到健康仪表盘时,缩放功能最有效——在这种情况下,很难读取每一栏的分数细节(一列代表一个应用)。因此,可以使用缩放选项选择(使用鼠标)要放大的应用。
示例(为 cmp.json)
{ "id": 12, "plugin": "SizingMeasureResults", "color": "orange", "parameters": { "title": "Critical violations", "mode":"terse", "sizingMeasure": {"id": "CRITICAL_VIOLATIONS", "format": "0,000"} } },
实例 (为 app.json)
{ "id": 102, "plugin": "SizingMeasureResult", "color": "green", "parameters": { "title": "Size", "sizingMeasure": { "id": "LINES_OF_CODE", "format": "0,000", "description": "Lines of Code" } } },
ExternalLink
此图块(默认不可用)提供了在图块中定义外部URL(例如到其它数据仪表盘)的能力:
- color: 图块颜色
- parameters:
- 显示在图块标题的短消息
- url下面的超链接
示例 (为 cmp.json和app.json)
{ "id": 100, "plugin": "ExternalLink", "color": "red", "parameters": { "title": "Tackle your Technical Debt", "url":"http://www.castsoftware.com" } },
自定义表达图块
在组合 (cmp.json)和应用级 (app.json),可以使用自定义表达式定义图块。自定义表达式是通过一个数学子集表示来定义,它涉及到对标准值的操作(例如每个关键违规行为的代码行数之比,或者具有n个以上文件的应用的数量)。
图块可以表示平均值(不包括应用没有其中一个值,如后台事实或某些大小测量,或功能计算结果为无穷大的值)或一个总值。为了进行比较,业务标准得分是平均的,而规模通常是组合的总规模。
可以为当前快照状态(组合级别所有应用的最新快照或应用级别的选定快照)或通过演化定义自定义表达式图块。
可用的数学公式包括以下表达式模式:
运算符
运算符 | 名称 | 语法 | 相关性 | 示例 | 结果 |
(, ) | 括号 | (x) | 不 | 2 * (3 + 4) | 14 |
, | 参数分隔符 | x, y | 从左到右 | max(2, 1, 5) | 5 |
+ | 加 | x + y | 从左到右 | 4 + 5 | 9 |
- | 减 | x - y | 从左到右 | 7 - 3 | 4 |
* | 乘 | x * y | 从左到右 | 2 * 3 | 6 |
/ | 除 | x / y | 从左到右 | 6 / 2 | 3 |
%, mod | 系数 | x % y | 从左到右 | 8 % 3 | 2 |
^ | 幂 | x ^ y | 从右到左 | 2 ^ 3 | 8 |
! | 阶乘 | y! | 从左到右 | 5! | 120 |
? : | 条件表达式 | x ? y : z | 从右到左 | 15 > 100 ? 1 : -1 | -1 |
函数
函数 | 名称 | 语法 | 相关性 | Example | Result |
abs | 绝对值 | abs(x) | 不 | abs(-2) | 2 |
round | 四舍五入 | round(x,n) | 不 | round(3.142265,3) | 3.142 |
sqrt | 平方根 | sqrt(x) | 不 | sqrt(4) | 2 |
log | 对数 | log(x,base) | 不 | log(1024,2) log(1024) | 10 3.01 |
CustomExpressionsEvolution
自定义表达式图块支持通过快照对单个图块中的多个指示器进行操作。可以对图块执行许多不同的操作,从缩放到使用数学公式组合(如上所示)。由于可能需要多个结果和额外的操作来获得结果,customexpressionse图块可能会在某个时候影响仪表盘的性能(取决于块的数量、变量的数量和快照的数量)。
标准参数
- 请注意异常情况下,标题用于标识不同类型的自定义表达式图块,从结果到演化,从组合到应用级别。如果希望在应用级避免重复,请确保具有相同公式的图块具有相同的标题字段。
- 描述
- 格式
图块特定参数
- 文档化:解释自定义指示器的文档化信息。字段值是一个字符串(可以包含html标记),将在组合级别的页面细节中显示。
- 聚合类型:“average”或“sum”,默认为average。
- 表示每个应用要执行的数学运算(例如:"sqrt((tqi-1)/3)", "tqi/loc", "log(x)*y^2",等等)。
在数学运算中定义的每个变量都必须定义,以便计算结果。变量名是通过它的键定义的,有一个类型和一个id。(例如: "variables":{"tqi":{"type":"qualityIndicator", "id":"TQI"},"loc":{"type":"sizingMeasure", "id":"LINES_OF_CODE"},"effort":{"type":"backgroundFact", "id":"EFFORT"}}
关于聚合器类型“AvgSum”的说明
使用此聚合器类型时,还可以为“variables”下的每个键提供一个新的属性“aggregator”,分别将聚合类型指定为每个变量的“sum”或“average”。当“AvgSum”在“aggregator”下定义时,默认设置为“sum”。例如,下面“variables”下的几行代码将两个因子相加,然后进行除法。因此,现在可以先指定所有违规的加法,然后将所有功能点相加,进行除法(SUM(违规)/ SUM(功能点)):
{ "id":987654321529, "plugin": "CustomExpressions", "color": "green", "parameters": { "title": "TQI - Critical violations ratio", "aggregator": "AvgSum", "description":"", "format":"0.00", "expression":"crit / tqi", "variables":{ "tqi": {"type":"qualityIndicator", "id":"TQI", "aggregator": "sum"}, "crit":{"type":"sizingMeasure", "id":"CRITICAL_VIOLATIONS", "aggregator": "sum"} } } },
示例 (为 cmp.json) - CustomExpressions
{ "id": 987654321529, "plugin": "CustomExpressions", "color": "blue", "parameters": { "title": "TQI - Critical violations ratio", "description":"", "format":"0.00", "expression":"crit / tqi", "variables":{ "tqi": {"type":"qualityIndicator", "id":"TQI"}, "crit":{"type":"sizingMeasure", "id":"CRITICAL_VIOLATIONS"} } } },
示例 (为 app.json) - CustomExpression
{ "id": 987654321529, "plugin": "CustomExpression", "color": "blue", "parameters": { "title": "TQI - Critical violations ratio", "description":"", "format":"0.00", "expression":"crit / tqi", "variables":{ "tqi": {"type":"qualityIndicator", "id":"TQI"}, "crit":{"type":"sizingMeasure", "id":"CRITICAL_VIOLATIONS"} } } },