Conditional Software Crash Mechanism for Usage Data Collection
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
Data Source
Figure 1
Figure 2
Figure 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.