Dynamic Function Groups for Software Plugin Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications lack the ability to dynamically enable or disable third-party contributed functionalities, leading to cluttered user interfaces and code duplication, as they rely on an 'always-on' or 'always-off' approach for plugins, with no mechanism to coordinate vendor contributions or prioritize functionalities.

Innovation Solution

Implementing dynamic function groups that allow vendors to define sets of functionalities and enable or disable them based on specific conditions within the software application, eliminating the need for duplicate code and improving user interface relevance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If plugins are always on or always off, then the plugin extension functionality is simple to implement, but the user cannot choose particular sets of functionalities to enable or disable by default

Engineering Contradiction:
Improvefunctionality selection flexibilityVSAvoidplugin management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments plugin functionalities into functional groups that can be independently enabled or disabled. Each functional group represents a logical unit of related functionalities, allowing users to selectively enable specific groups rather than all or nothing. This segmentation resolves the contradiction by providing fine-grained control (improving adaptability) while maintaining simple binary enable/disable states for each group (avoiding excessive complexity).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic functionality where plugin groups can be enabled or disabled based on runtime conditions such as project type, user role, or system configuration. The system dynamically determines which functional groups should be active without requiring users to manually configure each plugin. This dynamic approach provides flexibility (improving adaptability) while automating the management complexity (reducing the burden on users).

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If multiple third party vendors contribute similar functionalities, then the software application has more extended functionalities available, but the user interface becomes cluttered with extensions that are not directly relevant

Engineering Contradiction:
Improveextended functionality availabilityVSAvoiduser interface clarity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent segments functionalities from multiple vendors into organized functional groups with clear logical boundaries. Each vendor's contributions are grouped by functional purpose rather than being presented as individual scattered plugins. This segmentation allows the system to selectively display only relevant groups, maintaining UI clarity while preserving access to all available functionalities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making different functional groups visible or accessible based on local conditions such as the current project context, user role, or system configuration. Rather than uniformly displaying all vendor functionalities, the system adapts the visible functionality to match the local context, ensuring users see only what is relevant to their current task while maintaining access to the full set of extended functionalities when needed.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If each vendor provides custom mechanisms to enable or disable functionality, then each vendor can control their contributions independently, but integration of similar types of functionalities becomes difficult

Engineering Contradiction:
Improvevendor contribution independenceVSAvoidintegration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a universal functional group mechanism that all vendors can use to organize and control their contributions. Instead of each vendor implementing custom enable/disable mechanisms, the system provides a standardized functional group framework that works uniformly across all vendor contributions. This universal approach maintains vendor independence (each vendor still controls their own functional groups) while simplifying integration (all vendors use the same mechanism).

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces functional groups as an intermediary layer between vendor contributions and the user interface. Rather than direct vendor-to-UI connections that require custom integration mechanisms, the functional groups act as mediators that standardize the interface. This intermediary layer allows vendors to independently manage their functionalities while the system handles the coordination and integration automatically.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7657870B2Method and apparatus for implementing dynamic function groups in a data processing system
Publication Date: 2010.02.02 LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
  • US7657870B2 patent drawing
  • US7657870B2 patent drawing
  • US7657870B2 patent drawing

AI summary

A method, an apparatus, and computer instructions are provided for implementing dynamic function groups in a data processing system. An extensible framework is provided, which provides function groups to amalgamate extended sets of functionality by either vendor or purpose and allows the function groups to be dynamically enabled or disabled within a software application. A user may specify which extended sets of functionality are relevant and when to enable them. With the use of function groups, third party vendors may integrate added functionalities with existing ones in a software application, and indicate when these functionalities should be available to end-users without the need to duplicate code. The invention allows for the construction of other extensible frameworks including wizards, editors, and operations may also be extended with the use of function groups.