Modular Code Component Assembly for Software Productivity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The software development industry faces challenges such as low productivity, high software defects, software bloating, complexity limits, and a low barrier to entry due to a lack of specialisation among programmers, leading to inefficient code generation and maintenance, with existing solutions like 3rd, 4th, and 5th Generation Languages, Object Oriented Programming, and Code Reuse not effectively addressing these issues.

Innovation Solution

A method and apparatus for generating computer executable code using components that correspond to respective data manipulation services, where components are combined to define and implement a sequence of data manipulations, allowing for context-dependent code generation and promoting specialisation among entities providing these services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If programmers manually generate code for each application on a case-by-case basis, then software applications can be created with general functionality, but productivity remains low and code reuse is minimal

Engineering Contradiction:
Improvesoftware functionalityVSAvoiddeveloper productivity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments software development into reusable code components that can be independently developed, stored in a database, and assembled to create applications. This allows developers to build software from pre-existing modular units rather than writing entire applications from scratch, thereby improving productivity while maintaining adaptability through component selection and combination.

Inventive Principle:
Principle #1Segmentation

2Productivity

If entities invest minimally in software code development to maintain competitiveness, then code can be produced quickly, but code quality and optimisation suffer leading to software bloating and defects

Engineering Contradiction:
Improvecode production speedVSAvoidcode quality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements preliminary action by pre-developing, testing, and optimising code components before they are used in applications. Code components are created, stored in a database with metadata, and made available for reuse, ensuring that high-quality, optimised code is prepared in advance rather than rushed during application development, thereby improving both reliability and productivity.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If programmers are generalists capable of programming wide ranges of functionality, then they can compete in the marketplace, but specialisation is lost leading to higher bug rates and complexity

Engineering Contradiction:
Improveprogrammer capabilityVSAvoidsoftware defect rate
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments software functionality into specialised code components that can be developed by specialists in specific domains. Each component encapsulates specific functionality with defined interfaces, allowing specialists to focus on particular areas while the overall system integrates multiple specialised components, reducing defects through focused expertise.

Inventive Principle:
Principle #1Segmentation

4Productivity

If code is optimised to minimise quantity and improve operation, then software efficiency improves, but development time increases significantly

Engineering Contradiction:
Improvesoftware efficiencyVSAvoidoptimisation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs optimisation in advance during the code component development phase. Code components are created, tested, and optimised before being stored in the database, so that when they are assembled into applications, the optimisation work has already been completed. This transfers the time investment to the preliminary stage, making subsequent application development faster while maintaining high efficiency.

Inventive Principle:
Principle #10Preliminary action

5Adaptability or versatility

If software complexity increases to provide more functionality, then adaptability improves, but the ability to maintain systems in a stable state is threatened

Engineering Contradiction:
Improvesoftware functionalityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent segments software into modular code components with well-defined interfaces and dependencies. Each component is independently maintainable and can be replaced or updated without affecting the entire system. This modular architecture allows the system to accommodate increased functionality through component addition while maintaining stability through isolated change management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal code component framework that can be applied across multiple applications and domains. Standardised interfaces and metadata schemas provide a common foundation that supports diverse functionality while maintaining system stability through consistent structural patterns and reusable components.

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

Data Source

PatentUS8589861B2Code generation
Publication Date: 2013.11.19 CODE VALLEY CORP PTY LIMITED
  • US8589861B2 patent drawing
  • US8589861B2 patent drawing
  • US8589861B2 patent drawing

AI summary

The present invention provides a method of generating computer executable code using components, each of which corresponds to a respective data manipulation service, typically implemented by a respective entity. The method includes defining a combination of components corresponding to a sequence of data manipulations. The data manipulations are then performed, which can be achieved by requesting the provision of each service from the respective entities in accordance with the defined component combination, thereby causing computer executable code to be generated.