Skip to main content

Quality-Aware Rapid Software Development

Periodic Reporting for period 2 - Q-RAPIDS (Quality-Aware Rapid Software Development)

Reporting period: 2018-05-01 to 2019-10-31

Software quality is an essential competitive factor for the success of software companies today. Recent technological breakthroughs, such as cloud technologies, the emergence of IoT and technologies such as 5G, pose new quality challenges in software development. These challenges include quality aspects such as availability, reliability, security, performance, and scalability, which significantly impact the success of current and future software products and services.

Optimal management of software quality demands the appropriate integration of quality requirements (QRs) in the software life-cycle. However, despite the competitive advantage of ensuring and maintaining high quality levels, software development methodologies still provide limited support to QR management which is essential in rapid software development processes; faster and more frequent release cycles should not compromise software quality.

In response to this challenge, Q-Rapids defines an evidence-based, data-driven quality-aware rapid software development methodology. QRs are incrementally elicited, refined and improved based on data gathered from software repositories, project management tools, system usage and quality of service. This data is analysed and aggregated into quality-related key strategic indicators (e.g. time-to-market delay related to not including the implementation of a given QR in the next development cycle) which are presented to decision makers using a highly informative dashboard. QRs scheduled for the next cycle are integrated with functional requirements for their uniform treatment in the rapid software development project.

The scientific objectives of the project are:

- SO1. To provide methods to systematically collect and analyse runtime and development time data to improve software quality.

- SO2. To define a rapid software life cycle process that integrates quality requirements and functional requirements into a holistic method.

- SO3. To provide quality-related key strategic indicators to support decision makers in managing the development process from a quality-aware perspective.

- SO4. To implement adequate tool support to a quality-aware software life cycle.

The outcome of the project has been a validated Q-Rapids framework: a quality-aware rapid software development process supported by advanced tools and methods. It consists basically of three main elements:

- A strategic dashboard presenting graphically the values of some indicators and offering several techniques (simulation, prediction, ...) to support decision-making.

- A collection of data collectors that gather data from repositories and elaborate and aggregate into those indicators.

- A portfolio of processes involved in the adoption of Q-Rapids.

As a conclusion of the project, we have deployed a general solution fulfiling the objectives above that has been adopted up to TRL 7 by the four participating companies. We have identified some challenges like the need to tailor the solution to the particularities of every company and the complexity to deploy the solution in an adopting company. Also some lessons learned have naturally emerged at the end of the project: the convenience to follow an incremental approach to the adoption of Q-Rapids; the importance of push transparency as a business value in the company; the usefulness of strategic indicators for monitoring project progress.
The work performed in the project has been mainly:

- A set of data producers and connectors. Concretely, data connectos finally developed are for the following repositories: Jenkins, Jira, Redmine, Mantis, Open Project, SVN and GitLab.

- A quality model for actionable analytics, based on expert knowledge (conducting software quality workshops), and evolved with data-driven techniques, using external data analysis tools.

- The Q-Rapids strategic dashboard deployed in the form of a software component, intented to grow over time as new features are implemented.

- A set of techniques offered through the dashboard, to facilitate decision-making during the rapid software development process: assessment of strategic indicators (both quantitative and qualitative approaches), prediction, what-if analysis and remarkably, generation of quality requirements.

- A Q-Rapids solution model that provides an overview of the Q-Rapids solution and defines the requirements and tasks to be performed when setting up Q-Rapids.

- Design and execution of empirical studies evaluating the results of the work done until M36, including summative evaluation by aggregating the evaluation of the four companies.

- Creation of a docker that drives the deployment process.

These results have been disseminated through scientific publications including papers in JCR-indexed journals. The project website gives open access to preprints of these publications and also some other dissemination artifacts, as video-tutorials and public deliverables.

Exploitation is facilitated by the existence of a public GitHub organization composed of several repositories mainly related to particular components that confirm the Q-Rapids architecture. Components are licensed mainly under Apache License 2.0.
The main progress beyond the state of the art is categorized as:

1) Quality Requirements (QR) and their Management
- Data gathering and analytic techniques which injects runtime data and development time data into the QR elicitation process
- Expert-based and data-driven incremental construction of models that map QR types onto key strategic indicators
- Intelligent dashboard that provides informed support to decision makers based on the findings above

2) Quality in Modern Software Development Processes
- Quality-aware rapid development process that seamlessly integrates functional requirements and QRs so that both are holistically managed by following the principles of rapid software development
- Methods, tools and metrics for increasing the transparency on QRs in rapid software development processes based on an intelligent dashboard that visualises quality metrics and provides informed support for product quality
- Mechanisms that provide real-time quality monitoring through systematic and continuous gathering, analysis and visualisation of quality-related aspects
- Methods and practises for the continuous and systematic generation of QRs based on evidence and quality-related data generated in rapid development cycles

3) Evidence-based quality decision-making
- Complementary usage of heterogeneous, i.e. structured and unstructured data from development and usage to support QR-related decision making
- In-time analysis methods using both quantitative and qualitative data within an integrative approach to identify QR-related correlations
- Scalable and efficient data gathering and analysis solution integrated into an evidence-based decision making environment

Potential impact. Q-Rapids will increase the levels of quality in software products and services by promoting quality requirements at the same level of functional requirements in rapid software development processes. Q-Rapids will support the management of quality requirements by analysing runtime data and software repositories, bringing a significant productivity increase to the software life-cycle. The reduction of maintenance effort due to less quality-related defects, together with better decision making in the planning of release cycles, will shorten time to market.