Conditional Software Crash Mechanism for Usage Data Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in identifying all possible uses of a software application, leading to unintended crashes that inconvenience users and provide limited information for updates, as they cannot anticipate every sequence, format, or combination of feature interactions.

Innovation Solution

Implementing a conditional crash mechanism that allows software applications to detect unexpected uses and control intentional crashes through a crash setting, either crashing or not crashing based on a configuration value to minimize user inconvenience and gather necessary usage data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If the software application intentionally crashes when unexpected use is detected, then the software developer can identify use cases that need to be implemented, but the user experiences inconvenience and frustration

Engineering Contradiction:
Improveusage dataVSAvoiduser convenience
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The crash setting is dynamically changed from a fixed state to a modifiable state. The system transitions from always crashing or never crashing to conditionally crashing based on the setting value, allowing flexible control between gathering usage data and maintaining user convenience

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The crash setting parameter is introduced to control the crashing behavior. By changing the value of this parameter (first value for crashing, second value for not crashing), the system can switch between different operational modes to balance data collection and user experience

Inventive Principle:
Principle #35Parameter changes

2Loss of information

If the software application crashes frequently to gather usage data, then the developer can identify unanticipated features, but the user spends time and resources restarting the application

Engineering Contradiction:
Improveusage dataVSAvoidrestart time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The crash setting parameter controls whether crashes occur, allowing the system to minimize unnecessary crashes after sufficient usage data has been collected, thereby reducing restart time and resource waste for users

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3625685B1Conditionally crashing software applications to track software use
Publication Date: 2024.07.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3625685B1 patent drawingFigure 1
  • EP3625685B1 patent drawingFigure 2
  • EP3625685B1 patent drawingFigure 3

AI summary

Systems and methods for controlling an intentional crash of a software application. One system includes a computing device including an electronic processor. The electronic processor is configured to receive a crash setting for the software application from a configuration server. The crash setting has a first value or a second value. The electronic processor is also configured to detect an unexpected use of the software application during execution. The electronic processor is configured to, in response to detecting the unexpected use and the crash setting having the first value, intentionally crash the software application causing a generation of a crash report describing a state of the software application when the unexpected use occurred. The electronic processor is configured to, in response detecting the unexpected use and the crash setting having the second value, not intentionally crash the software application.