The SQALE method has been developed to answer a generic and permanent need for assessing the quality of source code.
The SQALE method has been validated through the analysis of millions of lines of code of numerous languages. It is now implemented by private, open source and commercial tools and used within large organizations.
The SQALE method is targeted for an automated implementation. It is generic and language and tool independent. The SQALE Method Definition Document lists all accepted tailoring rules while preserving the quality and benefits of the method.
The SQALE method is particularly devoted to the management of the Technical Debt (or Design Debt) of software developments. It allows:
- To define clearly what creates the technical debt
- To estimate correctly this debt
- To analyse this debt upon technical and business perspective
- To offer different prioritisation strategies allowing establishing optimised payback plan.
The SQALE Quality Model
The SQALE Quality Model is used for formulating and organizing the non-functional requirements that relate to the code’s quality. It is organised in three hierarchical levels. The first level is composed of characteristics, the second of subcharacteristics. The third level is composed of requirements that relate to the source code’s internal attributes. These requirements usually depend on the software’s context and language. Any violation of these requirements induces Technical Debt.
The SQALE Analysis Model
The SQALE Analysis Model contains on the one hand the rules that are used for normalising the measures and the controls relating to the code, and on the other the rules for aggregating the normalised values.
The SQALE Method normalises the reports resulting from the source code analysis tools by transforming them into remediation costs and non-remediation costs. To do this a remediation and non-remediation functions are used. The SQALE Method defines rules for aggregating these costs, either following the Quality Model’s tree structure, or following the hierarchy of the source code’s artefacts.