Concept-Oriented Software Engineering System for Cross-Language Impact Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for modeling software systems are inadequate in capturing complex relationships within large-scale enterprise software systems, especially when written in multiple languages, leading to difficulties in impact analysis and maintenance for software engineers.
Innovation Solution
A concept-oriented software engineering system that extracts, organizes, and queries software system facts by identifying relationships between concept instances from different software artifacts, using a method that includes storing these relationships in repositories and employing Link Definition Language statements to define cross-artifact relationships.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional modeling languages are used to model software system relationships, then the modeling process is simple and familiar, but the ability to capture complex relationships across multiple programming languages is severely limited
Solution Approach 1:
The patent introduces an intermediary representation layer (abstract syntax trees and concept-oriented models) that mediates between different programming language artifacts. This intermediary enables relationships across multiple languages to be captured without requiring direct complex modeling between heterogeneous languages, thus improving adaptability while managing complexity.
Solution Approach 2:
The patent creates a universal modeling framework that can handle relationships across different programming languages (Java, C++, C#, etc.) and various artifact types (classes, methods, fields) through a unified concept-oriented approach. This universal model serves multiple functions: capturing dependencies, representing architectures, and enabling impact analysis across heterogeneous systems.
2Loss of information
If formal documentation is created for legacy systems, then system understanding is improved, but the documentation process becomes time-consuming and may be completely unavailable for older systems
Solution Approach 1:
The patent performs preliminary action by automatically extracting and modeling relationships from existing source code artifacts before any documentation is needed. The system pre-processes the codebase to create a comprehensive relationship model that can be queried for impact analysis, eliminating the need for time-consuming manual documentation creation later.
Solution Approach 2:
The system enables self-service by automatically generating the relationship model directly from the code itself without requiring human intervention for documentation creation. The code artifacts serve their own documentation function through the extracted relationships, making the system self-documented and eliminating manual documentation efforts.
3Reliability
If comprehensive relationship modeling is implemented across all software artifacts, then impact analysis capability is improved, but the complexity of extracting and organizing relationships from multiple languages increases
Solution Approach 1:
The patent segments the complex relationship extraction process into distinct phases: first extracting relationships within individual language artifacts, then inferring cross-artifact relationships, and finally organizing them in a structured model. This segmentation breaks down the overwhelming complexity into manageable steps while maintaining comprehensive coverage for accurate impact analysis.
Data Source
AI summary
Software system facts comprising concepts, concept instances and relationships within the software system are identified and stored in a repository. The software system facts are extracted from artifacts comprising the software system or are provided through explicit definition. Architectures of the software system are recovered from the stored software system facts. Layered views of the recovered architectures are generated. The stored software system facts are checked against architectural rules to ensure architectural compliance of the software system. The impact of proposed changes to the software system is assessed by querying the identified software system facts.


