IP Library Granted Patent US 12,475,023
Granted Patent B2
US 12,475,023 · App. 17/732,003 · Granted Nov 18, 2025

Continuous development and delivery system

Inventor: Mohamed Badreddine Aouad (San Jose, CA)
Assignee: Business Objects Software Ltd.
G06F11/3616G06F8/65G06F8/71G06F11/3688G06F11/3692
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,475,023
App. No.
17/732,003
Granted
Nov 18, 2025
Kind
B2
Abstract

Disclosed are systems, methods, and non-transitory computer-readable media for a continuous software development and delivery system. Currently, the software development and delivery process is complicated and time consuming. The process requires multiple checkpoints and human intervention to ensure that software updates do not cause errors in the existing software when implemented. Coordination throughout the development process is also problematic as developers may be using varying development environment that are different than the environment used to test and produce the software. The continuous development and delivery system of the present disclosure remedies these issues by providing a consistent development environment throughout the development process. This reduces issues that may arise from use of inconsistent development environments and allows for automation of previously manual portions of the software development and delivery process.

Claims (52)

1 . A method comprising:

using one or more listeners to detect when a developer client device has saved, in a source code data storage, an updated version of a source code for a software application for which an original version of the source code was previously created, the updated version of the source code having been created on the developer client device using a first software container, the first software container running a first container image selected from a central container image repository, the first container image defining a first developer environment, the first developer environment containing tools to code and test the source code;

in response to the detecting, generating, by one or more computer processors, a second software container running the first container image selected from the central container image repository, the second software container providing the first developer environment defined by the first container image;

running, by the one or more computer processors, a first set of tests on the updated version of the source code for the software application within the second software container;

in response to the updated version of the source code satisfying the first set of tests, providing the updated version of the source code to a corporate production system for production and delivery;

after the updated version of the source code satisfying the first set of tests, generating a third software container running the first container image selected from the central container image repository, the third software container providing the first developer environment defined by the first container image; and

running a second set of tests on the updated version of the source code for the software application within the third software container, wherein the updated version of the source code is provided to the corporate production system for production and delivery in response to the updated version of the source code satisfying both the first set of tests and the second set of tests.

2 . The method of claim 1 , further comprising:

creating a temporary branch of the software application, the temporary branch of the software application used to perform the first set of tests on the updated version of the source code.

3 . The method of claim 2 , further comprising:

in response to the updated version of the source code satisfying the first set of tests, merging the temporary branch of the software application into a master branch of the software application and running the second set of tests on the updated version of the source code.

4 . The method of claim 1 , further comprising:

determining that a previous updated version of the software application did not satisfy the first set of tests; and

providing a report indicating results of the first set of tests to the developer client device.

5 . The method of claim 1 , further comprising:

determining that a previous updated version of the software application did not satisfy the second set of tests; and

providing a report indicating results of the second set of tests to the developer client device.

6 . The method of claim 1 , wherein the second set of tests includes at least one test included in the first set of tests.

7 . The method of claim 1 , wherein an amount of time to perform the second set of tests is greater than an amount of time to perform the first set of tests.

8 . A system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the system to perform operations comprising:

using one or more listeners to detect when a developer client device has saved, in a source code data storage, an updated version of a source code for a software application for which an original version of the source code was previously created, the updated version of the source code having been created on the developer client device using a first software container, the first software container running a first container image selected from a central container image repository, the first container image defining a first developer environment, the first developer environment containing tools to code and test the source code;

in response to the detecting, generating, by one or more computer processors, a second software container running the first container image selected from the central container image repository, the second software container providing the first developer environment defined by the first container image;

running, by the one or more computer processors, a first set of tests on the updated version of the source code for the software application within the second software container;

in response to the updated version of the source code satisfying the first set of tests, providing the updated version of the source code to a corporate production system for production and delivery;

after the updated version of the source code satisfying the first set of tests, generating a third software container running the first container image selected from the central container image repository, the third software container providing the first developer environment defined by the first container image; and

running a second set of tests on the updated version of the source code for the software application within the third software container, wherein the updated version of the source code is provided to the corporate production system for production and delivery in response to the updated version of the source code satisfying both the first set of tests and the second set of tests.

9 . The system of claim 8 , the operations further comprising:

creating a temporary branch of the software application, the temporary branch of the software application used to perform the first set of tests on the updated version of the source code.

10 . The system of claim 9 , the operations further comprising:

in response to the updated version of the source code satisfying the first set of tests, merging the temporary branch of the software application into a master branch of the software application and running the second set of tests on the updated version of the source code.

11 . The system of claim 8 , the operations further comprising:

determining that a previous updated version of the software application did not satisfy the first set of tests; and

providing a report indicating results of the first set of tests to the developer client device.

12 . The system of claim 8 , the operations further comprising:

determining that a previous updated version of the software application did not satisfy the second set of tests; and

providing a report indicating results of the second set of tests to the developer client device.

13 . The system of claim 8 , wherein the second set of tests includes at least one test included in the first set of tests.

14 . The system of claim 8 , wherein an amount of time to perform the second set of tests is greater than an amount of time to perform the first set of tests.

15 . A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a computing system, cause the computing system to perform operations comprising:

using one or more listeners to detect when a developer client device has saved, in a source code data storage, an updated version of a source code for a software application for which an original version of the source code was previously created, the updated version of the source code having been created on the developer client device using a first software container, the first software container running a first container image selected from a central container image repository, the first container image defining a first developer environment, the first developer environment containing tools to code and test the source code;

in response to the detecting, generating, by one or more computer processors, a second software container running the first container image selected from the central container image repository, the second software container providing the first developer environment defined by the first container image;

running, by the one or more computer processors, a first set of tests on the updated version of the source code for the software application within the second software container;

in response to the updated version of the source code satisfying the first set of tests, providing the updated version of the source code to a corporate production system for production and delivery;

after the updated version of the source code satisfying the first set of tests, generating a third software container running the first container image selected from the central container image repository, the third software container providing the first developer environment defined by the first container image; and

running a second set of tests on the updated version of the source code for the software application within the third software container, wherein the updated version of the source code is provided to the corporate production system for production and delivery in response to the updated version of the source code satisfying both the first set of tests and the second set of tests.

16 . The non-transitory computer-readable medium of claim 15 , the operations further comprising:

creating a temporary branch of the software application, the temporary branch of the software application used to perform the first set of tests on the updated version of the source code.

17 . The non-transitory computer-readable medium of claim 16 , the operations further comprising:

in response to the updated version of the source code satisfying the first set of tests, merging the temporary branch of the software application into a master branch of the software application and running the second set of tests on the updated version of the source code.

18 . The method of claim 1 , wherein the second software container is running an exact copy of the first container image that the first software container is running.

Assignments (2)
CHANGE OF NAME Recorded Jan 26, 2026
From: BUSINESS OBJECTS SOFTWARE LIMITED
To: SAP IRELAND LIMITED
Reel/Frame 074510/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2022
From: AOUAD, MOHAMED BADREDDINE
To: BUSINESS OBJECTS SOFTWARE LTD.
Reel/Frame 060027/0379 →
Continuity (2)
Continuation 16421075 · May 23, 2019
Related Publication 20220261333A1 · Aug 18, 2022
References Cited (31)
US 20080250392A1 · Petri · 2008 [cited by examiner]
US 20100269094A1 · Levenshteyn · 2010 [cited by examiner]
US 20180095869A1 · Peer · 2018 [cited by examiner]
US 20190097942A1 · Gao · 2019 [cited by examiner]
US 20190179720A1 · Chen · 2019 [cited by examiner]
US 20200004519A1 · Ryall · 2020 [cited by examiner]
US 20200073649A1 · Viana · 2020 [cited by examiner]
US 20200097662A1 · Hufsmith · 2020 [cited by examiner]
US 20200125344A1 · Varghese · 2020 [cited by examiner]
US 20200125485A1 · Wiener · 2020 [cited by examiner]
US 20200183766A1 · Kumar-Mayernik · 2020 [cited by examiner]
US 20200202006A1 · Shah · 2020 [cited by examiner]
US 20200250074A1 · Zhang · 2020 [cited by examiner]
US 20200371898A1 · Aouad · 2020 [cited by applicant]
“U.S. Appl. No. 16/421,075, Advisory Action mailed Oct. 8, 2021”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Examiner Interview Summary mailed Jan. 24, 2022”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Examiner Interview Summary mailed Feb. 5, 2021”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Examiner Interview Summary mailed Jun. 23, 2021”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Examiner Interview Summary mailed Aug. 19, 2021”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Examiner Interview Summary mailed Oct. 14, 2020”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Final Office Action mailed Aug. 3, 2021”, 21 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Final Office Action mailed Dec. 30, 2020”, 20 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Non Final Office Action mailed Apr. 26, 2021”, 19 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Non Final Office Action mailed Sep. 15, 2020”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Non Final Office Action mailed Dec. 6, 2021”, 22 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Notice of Allowance mailed Apr. 19, 2022”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Response filed Jan. 20, 2022 to Non Final Office Action mailed Dec. 6, 2021”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Response filed Mar. 11, 2021 to Final Office Action mailed Dec. 30, 2020”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Response filed Jun. 29, 2021 to Non Final Office Action mailed Apr. 26, 2021”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Response filed Sep. 3, 2021 to Final Office Action mailed Aug. 3, 2021”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 16/421,075, Response filed Oct. 13, 2020 to Non Final Office Action mailed Sep. 15, 2020”, 10 pgs. [cited by applicant]
Cited By (1)
US 12,606,204