Semantic Notification System for Distributed Code Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Version Control Systems (VCSs) in distributed software development primarily focus on text changes, lacking semantic awareness of programming language-specific changes, which complicates developers' understanding of code modifications and collaboration.

Innovation Solution

A notification system that provides concept-level semantics of source code changes, allowing developers to subscribe to entities like developers, source code files, and artifacts, and receives notifications through an integrated development environment (IDE), enhancing transparency and awareness of development activities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If Version Control Systems focus on text changes to manage distributed development, then text-based change tracking is achieved, but semantic understanding of programming language-specific changes is lost

Engineering Contradiction:
Improvesemantic informationVSAvoidsystem complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component that translates raw text-based version control changes into semantically meaningful notifications. This intermediary layer processes diff information and converts it into concept-level semantics that preserve programming language-specific meaning without requiring the entire VCS to become semantically aware, thus resolving the contradiction between information preservation and system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If developers manually investigate text changes to understand code modifications, then detailed analysis is possible, but time and effort are consumed

Engineering Contradiction:
Improveinvestigation timeVSAvoidchange understanding
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The system performs preliminary processing of code changes by automatically generating concept-level semantics and preparing meaningful notifications before developers need to understand the changes. This advance preparation eliminates the need for manual investigation while preserving precise change understanding, as the semantic information is ready when needed.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If all change notifications are provided to developers in distributed development, then complete information is available, but information overload occurs

Engineering Contradiction:
Improvechange information completenessVSAvoidnotification management
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent applies local quality by customizing notifications based on individual developer subscriptions and preferences. Each developer receives tailored notifications about specific entities they care about (e.g., particular files, features, or colleagues' work), rather than a uniform flood of all changes. This selective approach maintains information completeness for subscribed entities while eliminating irrelevant noise.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10459717B2Observing evolution of software development artifacts
Publication Date: 2019.10.29 SAP SE
  • US10459717B2 patent drawing
  • US10459717B2 patent drawing
  • US10459717B2 patent drawing

AI summary

Methods, systems, and computer-readable storage media for providing notifications in distributed development. In some implementations, actions include receiving change information, the change information indicating one or more changes to source code, processing the change information to determine one or more entities associated with the change, comparing the one or more entities to one or more subscriptions, the one or more subscriptions being specific to a user, for each entity associated with a subscription, providing a notification in a set of notifications, and providing a sub-set of notifications for display to the user.