Software Extension Interface Specification for Multi-Layered Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches to specifying and enforcing extension interfaces in software applications are inadequate, particularly for complex, multi-layered systems, as they lack support for differentiating extension interfaces for various stakeholders, managing inter-layer dependencies, and explicitly defining extension possibilities and access rights, leading to increased complexity and maintenance difficulties.

Innovation Solution

A method and system for generating base and extendable objects with defined insertion points, enabling the addition of new functionalities, and specifying extension interfaces across multiple layers, including control constraints for access and visibility, to support multiple extension interfaces and interdependencies, allowing for explicit definition and enforcement of extension possibilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a one-size-fits-all extension interface is provided, then the implementation is simple, but it cannot support different extension interfaces for different stakeholders or groups

Engineering Contradiction:
Improvesupport for different extension interfacesVSAvoidextension interface specification
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The extension interface is segmented into multiple distinct interfaces, each tailored to specific stakeholder groups (e.g., UI developers, business process developers, database developers). Each interface defines specific extension capabilities for its target audience, allowing differentiated access and functionality without requiring all stakeholders to navigate the entire complex interface.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically provides different extension interfaces based on the stakeholder's role and permissions. The interface adapts its structure and available extension points according to the user's context, enabling simple interfaces for some groups while providing comprehensive interfaces for others, thus balancing simplicity and versatility.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If extension possibilities are expressed only on the technical code layer, then the implementation is straightforward, but it does not support the multi-layered nature of software applications and makes it difficult to assess extension feasibility without diving into implementation details

Engineering Contradiction:
Improveassessment of extension feasibilityVSAvoidmulti-layered extension management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a new dimension of abstraction by expressing extension possibilities not just at the code level but across multiple architectural layers (UI layer, business process layer, data layer). This layered view allows stakeholders to assess extension feasibility at the appropriate level without needing to dive into implementation code, while still maintaining the connection to underlying technical structures.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The system introduces intermediate abstraction layers that mediate between high-level business requirements and low-level code implementations. These intermediate layers provide a simplified view of extension possibilities, allowing stakeholders to evaluate and specify extensions without directly interacting with complex code structures.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If manual code implementation of extension interfaces is used, then the flexibility is high, but the technical realization becomes coupled with functional code, increasing application complexity and making maintenance difficult

Engineering Contradiction:
Improveextension implementation flexibilityVSAvoidapplication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The extension interface definition is extracted from the functional code into a separate, declarative specification format. This allows the extension interface to be defined independently of the implementation code, enabling flexible specification of extension possibilities while keeping the actual code structure separate and maintainable.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The extension interface is preliminarily defined in a declarative format before implementation. This preliminary specification establishes the extension contract independently, allowing the actual code implementation to be generated or written separately without coupling the interface definition with functional code, thus reducing complexity while maintaining flexibility.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If extension interfaces are not explicitly defined, then the implementation is simpler, but the software provider cannot explicitly control access rights and extension possibilities

Engineering Contradiction:
Improvecontrol over access rightsVSAvoidextension interface definition
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Access rights and extension possibilities are preliminarily defined in the extension interface specification before the extension is implemented. This preliminary definition establishes clear rules about what extensions are allowed and what access is granted, enabling explicit control over security and functionality while providing a structured framework that manages complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9311054B2Method and system for specifying and enforcing extensibility of software applications
Publication Date: 2016.04.12 SAP SE
  • US9311054B2 patent drawing
  • US9311054B2 patent drawing
  • US9311054B2 patent drawing

AI summary

The method includes generating at least one base object, and generating at least one extendable object associated with the base object, the extendable object defining an insertion point and is configured to enable addition of new functionalities to an application including the at least one base object.