Finite State Machine for Software Feature Usage Recognition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for analyzing software user behavior, such as usability studies and user surveys, are insufficient for understanding software feature usage in real-world applications, as they primarily provide data from artificial environments and struggle to extract meaningful information from the vast amounts of data collected during actual software usage.

Innovation Solution

A technology that uses a visual user interface with drag-and-drop operations to model software features, compiles this into a finite state machine, and employs a recognition process to locate and analyze feature usage within recorded command sequences, while excluding irrelevant commands using noise models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional usability studies and user surveys are used to analyze software user behavior, then ease of operation is improved, but measurement precision deteriorates because these methods provide data from artificial environments that do not reflect real-world usage

Engineering Contradiction:
Improveease of conducting user studiesVSAvoidaccuracy of feature usage data
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent replaces traditional mechanical research methods (usability studies, surveys, interviews) with automated electronic instrumentation that collects data directly from software execution. Instrumentation code is embedded in the software to automatically record feature usage, commands, and user interactions in real-world environments without requiring manual research intervention.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces an intermediary instrumentation layer between the user and the software features. This instrumentation code acts as a mediator that transparently captures usage data without altering user behavior or requiring user awareness, thereby obtaining authentic real-world usage patterns.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If data collection during actual software usage is implemented, then measurement precision is improved, but device complexity worsens due to the difficulty of analyzing vast amounts of collected data

Engineering Contradiction:
Improveaccuracy of usage dataVSAvoidcomplexity of data analysis system
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the vast usage data into structured feature models with defined hierarchies and relationships. Each software feature is modeled as a discrete unit with associated commands and parameters, allowing the analysis system to process data in manageable segments rather than as an unstructured mass.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms raw usage data into standardized parameters that conform to the feature model structure. By changing the representation of data from raw command sequences to parameterized feature instances, the system simplifies analysis while preserving measurement precision.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If advanced software features are introduced to increase functionality, then adaptability is improved, but difficulty of detecting and measuring worsens due to the complexity of tracking sophisticated feature usage patterns

Engineering Contradiction:
Improvesoftware functionalityVSAvoiddifficulty of tracking feature usage
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs preliminary action by pre-defining feature models that describe the structure, commands, and parameters of software features before usage analysis. This preparatory modeling enables the system to automatically recognize and measure complex feature usage patterns without requiring complex detection algorithms during runtime.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7680645B2Software feature modeling and recognition
Publication Date: 2010.03.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7680645B2 patent drawing
  • US7680645B2 patent drawing
  • US7680645B2 patent drawing

AI summary

Described is a technology by which software program feature usage is located within a sequence of commands collected during program usage sessions. For example, feature generally corresponds to a series of commands, such as copy and paste. A visual modeling component is controlled via drag-and-drop operations to describe a feature model, which is then compiled by a compiler into a finite state machine. Noise models may be used to exclude any command in the sequence that is irrelevant to the feature usage. A recognition process uses the finite state machine to locate program feature usage within the sequence of recorded commands by matching command sub-sequences corresponding to the feature model via the state machine. An analyzer may then use the located matches to provide an analysis report on feature usage.