-
Notifications
You must be signed in to change notification settings - Fork 8
Requirements
Requirements for ProSoul produces the ROADMAP of the project. The ROADMAP is implemented using milestones and issues included in them.
Initial Requirements from Boris
The product should support a set of different files to store all required information:
- Quality Model definition is a JSON file that defines the quality model structure.
- Metrics definition is a JSON file that describes the metrics used in the QM.
- Attributes of quality definition is a JSON file that describes the quality attributes used in the QM.
The visualisation tool should be dynamic:
- If attributes definition change, the model should be updated on-the-fly.
- If metrics definition change, the model should be recomputed with the new metrics on-the-fly.
- If values change, the values on the model should change on-the-fly to reflect the updated aggregated values.
The use case for this is when people are in the process of defining the quality model (or the attributes or metrics btw).
ProSoul must support different formats for the Quality Model definition.
The quality model definition file defines the structure of the quality model. It optionally defines weights that will be used for the aggregation. If no weight is provided then its default is 1.
{
"name": "Alambic quality model for Eclipse",
"version": "1.0.1",
"children": [
{
"mnemo": "QM_QUALITY",
"type": "attribute",
"active": "true",
"weight": 2,
"children": [
{
"mnemo": "SLOC",
"type": "metric",
"active": "true",
}
]
}
]
}
The metrics definition files includes the name, mnemo and description of metrics. It also defines the scale that will be used to compute attributes.
{
"name": "Alambic Metrics",
"version": "0.1",
"children": [
{
"name": "Stack Overflow Questions (5Y)",
"mnemo": "SO_QUESTIONS_VOL_5Y",
"desc": [
"The number of questions related to the project's tag posted on Stack Overflow during the last 5 years.",
"Having many questions posted about the project indicates a strong interest from the community. The list of questions associated to the tag can be browsed on the <a href=\"https://stackoverflow.com/questions/tagged/java\">Stack Overflow web site</a>."
],
"scale": [5,50,400,800]
}
]
}
The attributes definition provides the name, mnemo and description of all quality attributes used in the quality model.
{
"name": "Alambic Attributes",
"version": "0.1",
"children": [
{
"name": "Project Maturity",
"mnemo": "QM_QUALITY",
"desc": [
"The overall Maturity of the project.",
"In the context of embedded software, Maturity is usually associated with some kind of reliability (most bugs have been already found) and functionality of code, sustainability of the project (will it still deliver fixes and improvements in a few years), and process predictability. Maturity in the PolarSys context has been further described <a href=\"https://polarsys.org/wiki/MaturityDefinition\">on the wiki</a>, and is actually precisely defined by the decomposition of this quality model."
]
}
]
}