]> source.dussan.org Git - sonarqube.git/commitdiff
fix SONAR-5820/SONAR-6019 fix characteristic facet
authorStas Vilchik <vilchiks@gmail.com>
Wed, 21 Jan 2015 10:07:57 +0000 (11:07 +0100)
committerStas Vilchik <vilchiks@gmail.com>
Wed, 21 Jan 2015 11:03:30 +0000 (12:03 +0100)
21 files changed:
server/sonar-web/src/main/js/coding-rules/app.js
server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js
server/sonar-web/src/main/js/coding-rules/rule-details-view.js
server/sonar-web/src/main/js/coding-rules/show-app.js
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/app.json
server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/app.json

index cbf845d64100d276371bc7fa14b77d931cb8ea52..b467dbaadb7fcf2d0829e3b3f2330b451b1a4419 100644 (file)
@@ -93,8 +93,14 @@ requirejs([
         };
       };
 
-      App.getSubCharacteristicName = function (name) {
-        return (App.characteristics[name] || '').replace(': ', ' > ');
+      App.getSubCharacteristicName = function (key) {
+        if (key != null) {
+          var ch = _.findWhere(App.characteristics, { key: key }),
+              parent = _.findWhere(App.characteristics, { key: ch.parent });
+          return [parent.name, ch.name].join(' > ');
+        } else {
+          return null;
+        }
       };
 
       var appXHR = $.get(baseUrl + '/api/rules/app').done(function(r) {
index 256db1fa3d819a8d897e4d3cd1167da7adbfed89..359131f5f04e59f9048a45886c6e1ca9c9dd9e31 100644 (file)
@@ -1,20 +1,20 @@
 define([
-    'coding-rules/facets/base-facet'
+  'coding-rules/facets/base-facet'
 ], function (BaseFacet) {
 
-  var $ = jQuery;
-
   return BaseFacet.extend({
 
     getValues: function () {
       var values = this.model.getValues(),
           characteristics = this.options.app.characteristics;
       return values.map(function (value) {
-        var label = characteristics[value.val];
-        if (value.val === 'NONE') {
-          label = t('coding_rules.noncharacterized');
+        var ch = _.findWhere(characteristics, { key: value.val });
+        if (ch != null) {
+          _.extend(value, ch, { label: ch.name });
+        } else {
+          _.extend(value, { label: t('coding_rules.noncharacterized') });
         }
-        return _.extend(value, { label: label });
+        return value;
       });
     },
 
@@ -24,17 +24,6 @@ define([
       });
     },
 
-    toggleFacet: function (e) {
-      var obj = {},
-          property = this.model.get('property');
-      if ($(e.currentTarget).is('.active')) {
-        obj[property] = null;
-      } else {
-        obj[property] = $(e.currentTarget).data('value');
-      }
-      this.options.app.state.updateFilter(obj);
-    },
-
     serializeData: function () {
       return _.extend(BaseFacet.prototype.serializeData.apply(this, arguments), {
         values: this.sortValues(this.getValues())
index 95475fe7b5acdb50fba9f788d25e642edbfedfd5..c6c6d75cb64bec261a26a8215399c1fc556abcbf 100644 (file)
@@ -171,7 +171,6 @@ define([
             isEditable: isEditable,
             canWrite: this.options.app.canWrite,
             qualityProfilesVisible: qualityProfilesVisible,
-            subCharacteristic: this.options.app.getSubCharacteristicName(this.model.get('debtSubChar')),
             allTags: _.union(this.model.get('sysTags'), this.model.get('tags'))
           });
         }
index 3e815a93f266029a51a5eaead9885784a2868310..1505c23ec51e38ce5b69f38c10a860572410b461 100644 (file)
@@ -42,8 +42,14 @@ requirejs([
         };
       };
 
-      App.getSubCharacteristicName = function (name) {
-        return (App.characteristics[name] || '').replace(': ', ' > ');
+      App.getSubCharacteristicName = function (key) {
+        if (key != null) {
+          var ch = _.findWhere(App.characteristics, { key: key }),
+              parent = _.findWhere(App.characteristics, { key: ch.parent });
+          return [parent.name, ch.name].join(' > ');
+        } else {
+          return null;
+        }
       };
 
       var appXHR = $.get(baseUrl + '/api/rules/app').done(function(r) {
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 439f0faafca9c1472244cdc3ab3182aa3da12a63..4e69bdee31a7b2119a7c9da5cd4d3c4fdd5c77c8 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index f66b07ba5a14f847b40de2ed7aa133e60bbebcf5..50148bb1b6ec891700724c6824824d51bbcdda69 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index f66b07ba5a14f847b40de2ed7aa133e60bbebcf5..50148bb1b6ec891700724c6824824d51bbcdda69 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index f66b07ba5a14f847b40de2ed7aa133e60bbebcf5..50148bb1b6ec891700724c6824824d51bbcdda69 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index f66b07ba5a14f847b40de2ed7aa133e60bbebcf5..50148bb1b6ec891700724c6824824d51bbcdda69 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index f66b07ba5a14f847b40de2ed7aa133e60bbebcf5..50148bb1b6ec891700724c6824824d51bbcdda69 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }
index 4f3319c8707cf920513dc33f29d1d88a4f18398b..0eb43bc39f7a5a54c6e0851e930bce53194ca32d 100644 (file)
     "DEPRECATED": "Deprecated",
     "READY": "Ready"
   },
-  "characteristics": {
-    "UNDERSTANDABILITY": "Maintainability: Understandability",
-    "MAINTAINABILITY": "Maintainability",
-    "TIME_ZONE_RELATED_PORTABILITY": "Portability: Time zone related portability",
-    "READABILITY": "Maintainability: Readability",
-    "SECURITY_FEATURES": "Security: Security features",
-    "ARCHITECTURE_RELIABILITY": "Reliability: Architecture related reliability",
-    "OS_RELATED_PORTABILITY": "Portability: OS related portability",
-    "EXCEPTION_HANDLING": "Reliability: Exception handling",
-    "LOGIC_CHANGEABILITY": "Changeability: Logic related changeability",
-    "SOFTWARE_RELATED_PORTABILITY": "Portability: Software related portability",
-    "INPUT_VALIDATION_AND_REPRESENTATION": "Security: Input validation and representation",
-    "LANGUAGE_RELATED_PORTABILITY": "Portability: Language related portability",
-    "ERRORS": "Security: Errors",
-    "SECURITY": "Security",
-    "RELIABILITY": "Reliability",
-    "PORTABILITY": "Portability",
-    "HARDWARE_RELATED_PORTABILITY": "Portability: Hardware related portability",
-    "SYNCHRONIZATION_RELIABILITY": "Reliability: Synchronization related reliability",
-    "TRANSPORTABILITY": "Reusability: Transportability",
-    "COMPILER_RELATED_PORTABILITY": "Portability: Compiler related portability",
-    "RESOURCE_RELIABILITY": "Reliability: Resource",
-    "CPU_EFFICIENCY": "Efficiency: Processor use",
-    "EFFICIENCY": "Efficiency",
-    "CHANGEABILITY": "Changeability",
-    "DATA_CHANGEABILITY": "Changeability: Data related changeability",
-    "API_ABUSE": "Security: API abuse",
-    "ARCHITECTURE_CHANGEABILITY": "Changeability: Architecture related changeability",
-    "UNIT_TESTS": "Reliability: Unit tests",
-    "INSTRUCTION_RELIABILITY": "Reliability: Instruction related reliability",
-    "REUSABILITY": "Reusability",
-    "MODULARITY": "Reusability: Modularity",
-    "UNIT_TESTABILITY": "Testability: Unit level testability",
-    "TESTABILITY": "Testability",
-    "INTEGRATION_TESTABILITY": "Testability: Integration level testability",
-    "NETWORK_USE": "Efficiency: Network use",
-    "MEMORY_EFFICIENCY": "Efficiency: Memory use",
-    "DATA_RELIABILITY": "Reliability: Data related reliability",
-    "FAULT_TOLERANCE": "Reliability: Fault tolerance",
-    "LOGIC_RELIABILITY": "Reliability: Logic related reliability"
-  }
+  "characteristics": [
+    {
+      "key": "UNDERSTANDABILITY",
+      "name": "Understandability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "MAINTAINABILITY",
+      "name": "Maintainability"
+    },
+    {
+      "key": "TIME_ZONE_RELATED_PORTABILITY",
+      "name": "Time zone related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "READABILITY",
+      "name": "Readability",
+      "parent": "MAINTAINABILITY"
+    },
+    {
+      "key": "SECURITY_FEATURES",
+      "name": "Security features",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_RELIABILITY",
+      "name": "Architecture related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "OS_RELATED_PORTABILITY",
+      "name": "OS related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "EXCEPTION_HANDLING",
+      "name": "Exception handling",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_CHANGEABILITY",
+      "name": "Logic related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "SOFTWARE_RELATED_PORTABILITY",
+      "name": "Software related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "INPUT_VALIDATION_AND_REPRESENTATION",
+      "name": "Input validation and representation",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "LANGUAGE_RELATED_PORTABILITY",
+      "name": "Language related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "ERRORS",
+      "name": "Errors",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "SECURITY",
+      "name": "Security"
+    },
+    {
+      "key": "RELIABILITY",
+      "name": "Reliability"
+    },
+    {
+      "key": "PORTABILITY",
+      "name": "Portability"
+    },
+    {
+      "key": "HARDWARE_RELATED_PORTABILITY",
+      "name": "Hardware related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "SYNCHRONIZATION_RELIABILITY",
+      "name": "Synchronization related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "TRANSPORTABILITY",
+      "name": "Transportability",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "COMPILER_RELATED_PORTABILITY",
+      "name": "Compiler related portability",
+      "parent": "PORTABILITY"
+    },
+    {
+      "key": "RESOURCE_RELIABILITY",
+      "name": "Resource",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "CPU_EFFICIENCY",
+      "name": "Processor use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "EFFICIENCY",
+      "name": "Efficiency"
+    },
+    {
+      "key": "CHANGEABILITY",
+      "name": "Changeability"
+    },
+    {
+      "key": "DATA_CHANGEABILITY",
+      "name": "Data related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "API_ABUSE",
+      "name": "API abuse",
+      "parent": "SECURITY"
+    },
+    {
+      "key": "ARCHITECTURE_CHANGEABILITY",
+      "name": "Architecture related changeability",
+      "parent": "CHANGEABILITY"
+    },
+    {
+      "key": "UNIT_TESTS",
+      "name": "Unit tests",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "INSTRUCTION_RELIABILITY",
+      "name": "Instruction related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "REUSABILITY",
+      "name": "Reusability"
+    },
+    {
+      "key": "MODULARITY",
+      "name": "Modularity",
+      "parent": "REUSABILITY"
+    },
+    {
+      "key": "UNIT_TESTABILITY",
+      "name": "Unit level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "TESTABILITY",
+      "name": "Testability"
+    },
+    {
+      "key": "INTEGRATION_TESTABILITY",
+      "name": "Integration level testability",
+      "parent": "TESTABILITY"
+    },
+    {
+      "key": "NETWORK_USE",
+      "name": "Network use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "MEMORY_EFFICIENCY",
+      "name": "Memory use",
+      "parent": "EFFICIENCY"
+    },
+    {
+      "key": "DATA_RELIABILITY",
+      "name": "Data related reliability",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "FAULT_TOLERANCE",
+      "name": "Fault tolerance",
+      "parent": "RELIABILITY"
+    },
+    {
+      "key": "LOGIC_RELIABILITY",
+      "name": "Logic related reliability",
+      "parent": "RELIABILITY"
+    }
+  ]
 }