Software Domain Model for Decoupled Component Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Monolithic software design limits scalability, code reuse, and productivity, making it difficult to extend applications with adjustable complexity and functionality to meet diverse customer needs, and introduces high code impedance and bugs during development.

Innovation Solution

A software domain model that enables independent development of decoupled components using a common core layer and micro-orchestrations, allowing components to extend data definitions and behaviors independently without affecting each other, and facilitating holistic tasks through a composite software layer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If monolithic software design is used, then application functionality can be implemented, but scalability of development team size and application features is severely limited

Engineering Contradiction:
Improvescalability of development team size and application featuresVSAvoidmonolithic architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the monolithic software architecture into independent, loosely-coupled components that can be developed, deployed, and scaled separately. Each component encapsulates specific functionality and can be worked on by different development teams simultaneously, enabling horizontal scaling of both the application features and development team size without the constraints of a monolithic structure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If monolithic design techniques are used, then application can be developed, but code reuse is low and productivity within development teams is low

Engineering Contradiction:
Improveproductivity within development teamsVSAvoidcode impedance and bug likelihood
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates universal, reusable components that can serve multiple functions and be shared across different parts of the system. These components are designed with well-defined interfaces and can be composed in various ways to build different applications, thereby increasing code reuse and developer productivity while reducing the complexity associated with monolithic design.

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

3Productivity

If components are decoupled and developed independently, then simultaneous independent development is enabled, but components cannot access extended definitions of shared items in other components

Engineering Contradiction:
Improvesimultaneous independent development capabilityVSAvoidaccess to extended item definitions
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent introduces an intermediary layer (such as a service registry, event bus, or standardized API gateway) that enables decoupled components to access and interact with extended definitions of shared items without direct coupling. This intermediary mediates between components, allowing them to independently develop while still accessing necessary information from other components through well-defined interfaces.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If micro-orchestrations are used to perform holistic tasks, then flexibility and customization are improved, but system complexity increases

Engineering Contradiction:
Improveflexibility and customizationVSAvoidmicro-orchestration system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a nested structure where micro-orchestrations are composed of smaller, reusable atomic operations or building blocks. These nested components can be independently developed, tested, and reused across different orchestrations. The nesting allows complex holistic tasks to be broken down into manageable units, providing flexibility and customization while managing system complexity through modular composition.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS8490053B2Software domain model that enables simultaneous independent development of software components
Publication Date: 2013.07.16 INTUIT INC
  • US8490053B2 patent drawing
  • US8490053B2 patent drawing
  • US8490053B2 patent drawing

AI summary

One embodiment of the present invention provides a software domain model that enables simultaneous independent development of software components. A system using this model includes a first component, a second component, and a core layer that defines an item that can be accessed by the first and second components. Both components are able to independently and separately extend the definition of the item. A high-level software layer uses a set of micro-orchestrations to perform a holistic task, with each micro-orchestration invoking a piece of functionality in a component, the core layer, and/or the software layer.