Behavioral Data Model Variants for Software Extensibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing modeling languages and solutions are not extensible and flexible enough to fully express the nature of software systems, requiring manual integration of data elements and functional components, and lack the ability to generate code that effectively utilizes behavioral data models.

Innovation Solution

A computer system and method that uses a modeling language to describe software components in terms of properties and behaviors, allowing for the generation of an in-memory representation that includes data structures and code segments, which can be consumed by various software systems to process data and provide output, with features like derived properties, constraints, and variants to adapt to different conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing modeling languages are used to describe software components, then a basic framework can be generated, but the model is not extensible and flexible enough to fully express the nature of software systems

Engineering Contradiction:
Improveextensibility and flexibility of modeling languageVSAvoidcomplexity of manual integration required
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces dynamic variant selection in behavioral data models, allowing the model to adapt its structure and behavior based on runtime conditions. Variants can be conditionally activated or deactivated, enabling the same model to express different software system configurations without manual reconfiguration. This dynamic capability directly addresses the extensibility and flexibility requirement while reducing manual integration complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent utilizes parameter changes to control variant activation within behavioral data models. By changing model parameters (such as condition flags or configuration values), the system can switch between different behavioral variants without restructuring the entire model. This approach enables flexible adaptation of software systems while maintaining a consistent model framework, resolving the contradiction between model versatility and integration complexity.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If manual integration is used to tie framework components together, then custom operations can be added, but the process is time-consuming and requires significant developer effort

Engineering Contradiction:
Improveease of framework customizationVSAvoidtime required for manual integration
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-defining variant structures and behavioral patterns within the behavioral data model. Common software system configurations are anticipated and encoded as selectable variants, allowing developers to choose from pre-prepared templates rather than building operations from scratch. This significantly reduces the time and effort required for framework customization while maintaining the ability to add custom operations when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent employs copying by allowing variants to be instantiated and reused across different model instances. Once a behavioral variant is defined, it can be copied and applied multiple times with minimal modification, reducing repetitive manual integration work. This copying mechanism enables efficient framework customization by leveraging existing proven patterns while allowing targeted customizations where necessary.

Inventive Principle:
Principle #26Copying

3Extent of automation

If behavioral data models with variants are implemented, then code generation becomes more automatic and flexible, but the model structure becomes more complex

Engineering Contradiction:
Improveautomation of code generationVSAvoidcomplexity of model structure
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the behavioral data model into distinct, manageable variants. Each variant represents a specific behavioral configuration or operational mode, allowing the complex model to be organized as a collection of simpler, well-defined segments. This segmentation makes the model structure more comprehensible and easier to maintain while enabling sophisticated automated code generation by selecting and combining appropriate variant segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements universality by designing behavioral data model variants to serve multiple functions. A single variant structure can represent different behavioral patterns depending on parameter configuration, reducing the need for separate model definitions for similar purposes. This multi-functionality approach manages model structure complexity by creating reusable, universal building blocks that can be applied across different code generation scenarios.

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

Data Source

PatentUS8302069B1Methods and systems utilizing behavioral data models with variants
Publication Date: 2012.10.30 ADOBE INC
  • US8302069B1 patent drawing
  • US8302069B1 patent drawing
  • US8302069B1 patent drawing

AI summary

Embodiments include computer systems, methods, and program code for developing and utilizing behavioral data models. The model can comprise a property and a behavior of the modeled component, with the property defining a data element of the modeled component and the behavior defining a variably applicable portion of the model. The behavior can comprise a programmatic expression of an operation to be performed when the model is consumed, such as a function for determining when the variably applicable portion of the model is to be used based on a condition. Consuming the model can comprise generating an in-memory representation of the modeled component comprising a data structure corresponding to the property and code configured to evaluate the condition.