Enforcing Architectural Design Compliance in Software Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers often deviate from the architectural design during the development process, leading to code that does not comply with the intended design, resulting in inconsistencies and potential errors.

Innovation Solution

Extracting computable rules from architectural designs or codebases to enforce compliance throughout the development process, including check-ins, builds, and runtime, using an enforcement tool that converts and analyzes source code and design intent into an intermediate format for graph analysis and feedback.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers work quickly to deliver the product, then productivity is improved, but architectural compliance deteriorates

Engineering Contradiction:
Improveproduct delivery speedVSAvoidarchitectural compliance
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system extracts computable rules from the architectural design in advance, before development begins. These rules are then automatically applied during code check-ins and builds, allowing rapid development while maintaining architectural compliance through pre-established guidelines.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides automatic feedback to developers when code violations are detected during check-in or build processes. This real-time feedback mechanism allows developers to correct architectural compliance issues immediately, maintaining both productivity and design adherence.

Inventive Principle:
Principle #23Feedback

2Manufacturing precision

If architects provide detailed design specifications, then design precision is improved, but developer flexibility deteriorates

Engineering Contradiction:
Improvedesign specification precisionVSAvoiddeveloper flexibility
Core Design Contradiction:
Manufacturing precisionVSAdaptability or versatility

Solution Approach 1:

The architectural design is segmented into discrete, computable rules that can be automatically extracted and enforced. This segmentation allows precise architectural guidance while giving developers flexibility in implementing specific solutions, as long as the fundamental architectural rules are followed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transforms architectural design specifications into parameterized computable rules with configurable weights and priorities. This allows the architecture to maintain precision while adapting to different development contexts and requirements through adjustable parameters.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If automated compliance checking is implemented, then architectural enforcement is improved, but development process complexity deteriorates

Engineering Contradiction:
Improvearchitectural enforcementVSAvoiddevelopment process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system automatically extracts computable rules from existing architectural designs and applies them during standard development workflows. The enforcement mechanism serves itself by integrating into existing tools like version control and build systems, adding reliability without requiring separate complex processes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system acts as an intermediary layer between existing development tools and architectural compliance requirements. By integrating with standard workflows like check-in and build processes, it enforces architecture without adding significant complexity to the development process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8677316B2Enforcement of architectural design during software development
Publication Date: 2014.03.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8677316B2 patent drawing
  • US8677316B2 patent drawing
  • US8677316B2 patent drawing

AI summary

Architectural design intent for software is represented in some type of concrete form. A set of computable rules are inferred from the representation of the architectural design intent. The rules are applied to the codebase at various points in the development process including but not limited to when source code is checked into a project or when a build is run, or when a test run is performed. If the codebase being developed is not consistent with the architectural intent of the designer as captured, feedback concerning non-compliance is provided.