Policy-Based Event Engine for Software Architecture Conformance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches lack a reliable and efficient method for controlling the development of complex software applications, particularly in ensuring compliance with a pre-defined architecture and timely integration of various development tools, leading to potential failures and errors.

Innovation Solution

A system comprising an event channel, a policy-based event engine, and a repository to monitor and control development tools, enabling early detection of policy violations and ensuring architecture conformance by evaluating events and initiating appropriate actions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple existing development tools are used for complex software application development, then functionality and versatility are improved, but control and coordination of these tools become difficult and unreliable

Engineering Contradiction:
Improveuse of multiple development toolsVSAvoidcontrol over development process
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a central control system that acts as an intermediary between multiple development tools. This system receives events from various tools, evaluates them against defined policies, and coordinates their actions. The intermediary maintains reliability by providing a single point of control that ensures consistent policy enforcement across all tools, preventing the coordination difficulties that arise when tools operate independently.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The control system is designed with universal functionality to manage diverse development tools through a common interface. It can evaluate events from different tool types (compilers, linkers, debuggers, etc.) and initiate appropriate actions across the entire toolchain. This multi-functional approach maintains versatility while ensuring reliable control through standardized event handling and policy evaluation mechanisms.

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

2Reliability

If comprehensive control mechanisms are implemented to ensure architecture compliance, then software integrity is improved, but system complexity increases

Engineering Contradiction:
Improvesoftware integrityVSAvoidcontrol system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements preliminary action by defining policies and architectural constraints before the development process begins. The control system is pre-configured with rules that automatically evaluate events as they occur, ensuring compliance without requiring complex real-time analysis. This advance preparation reduces system complexity by replacing complex runtime control with simpler, pre-defined evaluation criteria that are automatically applied.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The control system uses feedback mechanisms where events from development tools are continuously evaluated against policies, and results are used to initiate corrective actions. This closed-loop feedback approach maintains software integrity through automatic compliance checking rather than complex manual control processes. The feedback-driven architecture simplifies the control system by relying on automated evaluation and response rather than complex decision-making logic.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If continuous monitoring of development events is performed, then detection precision of policy violations is improved, but processing time increases

Engineering Contradiction:
Improvedetection of policy violationsVSAvoiddevelopment process time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system replaces mechanical/manual policy checking with automated electronic event evaluation. Development tool events are automatically captured, evaluated against defined policies, and processed by the control system without manual intervention. This substitution maintains high detection precision for policy violations while reducing processing time by eliminating manual review steps and enabling parallel evaluation of multiple events against multiple policies simultaneously.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS20160170741A9System and method for controlling the development of a software application
Publication Date: 2016.06.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20160170741A9 patent drawing
  • US20160170741A9 patent drawing

AI summary

Certain example embodiments relate to techniques for controlling the development of a software application. The system includes an event channel for receiving at least one event that indicates an action performed by one of a plurality of existing development tools used in the development of the software application, a policy-based event engine for evaluating the at least one event and for initiating at least one action of one of the plurality of existing development tools in accordance with at least one policy, and a repository, for storing at least one artifact to define an architecture of the software application. The at least one artifact corresponds to a component of the software application and/or to a dependency between a first component and a second component of the software application.