Software Compliance System Using Object Hierarchy Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software development tools are passive and limited in their ability to actively monitor and enforce compliance with predefined software development phases, failing to detect complex exceptions and lacking collaboration across different phases, and are often tailored to specific development processes or technology stacks.
Innovation Solution
A computer system that generates an object hierarchy from a software application's definition file and applies rules from a rule engine to check compliance, augmenting the hierarchy and presenting results in various formats, allowing for comprehensive compliance checking across arbitrary software development processes and phases.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If passive monitoring tools are used to check compliance, then simple event instances can be monitored, but complex exceptions cannot be detected and collaboration across phases is not supported
Solution Approach 1:
The system segments the software development process into distinct phases (requirements, design, implementation, testing, deployment) with phase-specific monitors. Each monitor handles specific phase events, and the phase relationship manager coordinates them to detect complex exceptions spanning multiple phases, resolving the contradiction between simple monitoring capability and complex exception detection.
Solution Approach 2:
The phase relationship manager acts as an intermediary that receives events from multiple phase-specific monitors, processes them according to phase relationships, and generates compliance determinations. This intermediary enables collaboration across phases by coordinating information from different monitors to detect complex exceptions that individual monitors cannot detect alone.
2Reliability
If specialized tools are used for specific development processes, then compliance checking for that process is improved, but adaptability to other processes is limited
Solution Approach 1:
The system implements a universal compliance monitoring framework that can be configured for different software development processes (waterfall, iterative, agile) through phase relationship definitions. The same core architecture handles multiple process types by loading appropriate phase relationship configurations, achieving both reliable compliance checking for specific processes and adaptability to various methodologies.
Solution Approach 2:
The phase relationships and monitor configurations are dynamically adjustable based on the selected development methodology. The system can switch between different process models (waterfall, iterative, agile) by loading corresponding phase relationship definitions, allowing the monitoring behavior to adapt dynamically to the specific development process being used.
3Loss of information
If comprehensive monitoring of all phases is implemented, then complete compliance overview is achieved, but system complexity increases
Solution Approach 1:
The monitoring system is segmented into independent phase-specific monitors that each handle a specific development phase. This segmentation reduces complexity by allowing each monitor to focus on phase-specific events and rules, while the phase relationship manager coordinates them. The modular structure maintains complete compliance information without requiring a single complex monolithic monitor.
Solution Approach 2:
While individual monitors are simple and specialized, the system merges their capabilities through the phase relationship manager to achieve comprehensive compliance monitoring. The manager combines events from multiple phase monitors and applies cross-phase rules, achieving complete compliance information coverage while keeping individual components simple and manageable.
Data Source
AI summary
A computer compliance system checks a software application during a software development process. The system receives an object definition file of the software application comprising a definition of a plurality of objects and generates an object hierarchy that describes the plurality of objects. For each rule of a plurality of rules from a rule engine, the system applies the rule to the object hierarchy, and augments the object hierarchy based on one or more new objects that are generated. When all rules have been applied, the system generates a final object hierarchy and converts the final object hierarchy into a predetermined output format.


