IP Library Granted Patent US 11,321,054
Granted Patent B2
US 11,321,054 · App. 16/914,046 · Granted May 3, 2022

System and method for automated software engineering

Inventors: Girish Gaitonde (Saratoga, CA); Bhavesh Ved (Mumbai, IN); Shailesh Pardesi (Pune, IN); Yogesh Sharma (Pune, IN)
Assignee: XORIANT CORPORATION
G06F8/33G06F8/75G06F8/77G06F11/3608G06N20/00
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 11,321,054
App. No.
16/914,046
Granted
May 3, 2022
Kind
B2
Abstract

Systems and methods for automated software engineering are disclosed. A particular embodiment is configured to: establish a data connection with a software code repository; provide a collection of autonomous computer programs or bots configured to automatically perform a specific software development life cycle (SDLC) task; use a first bot of the collection of bots to perform an automatic code review of a software module from the software code repository; use a second bot of the collection of bots to perform automatic unit testing of the software module from the software code repository; and use a third bot of the collection of bots to perform an automatic deployment of the software module from the software code repository. A health engine module can monitor the execution of the other software modules and capture execution metrics. Any of the bots in the bot collection can be machine learning models trained using training data.

Claims (38)

1. A computer-implemented method comprising:

establishing, by use of a data processor and a data network, a data connection with a software code repository;

providing a collection of autonomous computer programs or bots configured to automatically perform a specific software development life cycle (SDLC) task;

using a first bot of the collection of bots to perform an automatic code review of a software module from the software code repository, wherein the first bot is a trainable execution model trained with sample code portions;

using a second bot of the collection of bots to perform automatic unit testing of the software module from the software code repository, wherein the second bot is a trainable execution model trained with sample test data, the first and second bots being trained using training data until the first and second bots produce predicted or desired output based on an evaluation of an output of each of the first and second bots after training; and

using a third bot of the collection of bots to perform an automatic deployment of the software module from the software code repository.

2. The method of claim 1 further including using a fourth bot of the collection of bots to automatically scan a software requirements specification for completeness, consistency, and standards compliance.

3. The method of claim 1 further including using the first bot of the collection of bots to automatically scan the software module for standards compliance, appropriate data definitions, case and branch handing, exception handling, variable or symbol mismatches, parameter range checking, and non-initialized variables.

4. The method of claim 1 further including using the second bot of the collection of bots to automatically generate unit test cases for testing the software module.

5. The method of claim 1 further including using a fifth bot of the collection of bots to automatically generate application programming interface (API) test cases and to perform testing of the API.

6. The method of claim 1 further including using a sixth bot of the collection of bots to automatically create software system builds.

7. The method of claim 1 further including collecting defect information reported by a seventh bot of the collection of bots and to automatically generate action items or task requests using an independent task tracking system.

8. The method of claim 1 including generating status metrics and notifications for on-going software development projects.

9. The method of claim 1 including training the third bot using training data until the third bot produces predicted or desired output.

10. A system comprising:

a data processor;

a network interface, in data communication with the data processor, for communication on a data network; and

an automated software engineering system, executable by the data processor, to:

establish, by use of the data processor and the data network, a data connection with a software code repository;

provide a collection of autonomous computer programs or bots configured to automatically perform a specific software development life cycle (SDLC) task;

use a first bot of the collection of bots to perform an automatic code review of a software module from the software code repository, wherein the first bot is a trainable execution model trained with sample code portions;

use a second bot of the collection of bots to perform automatic unit testing of the software module from the software code repository, wherein the second bot is a trainable execution model trained with sample test data, the first and second bots being trained using training data until the first and second bots produce predicted or desired output based on an evaluation of an output of each of the first and second bots after training; and

use a third bot of the collection of bots to perform an automatic deployment of the software module from the software code repository.

11. The system of claim 10 being further configured to use a fourth bot of the collection of bots to automatically scan a software requirements specification for completeness, consistency, and standards compliance.

12. The system of claim 10 being further configured to use the first bot of the collection of bots to automatically scan the software module for standards compliance, appropriate data definitions, case and branch handing, exception handling, variable or symbol mismatches, parameter range checking, and non-initialized variables.

13. The system of claim 10 being further configured to use the second bot of the collection of bots to automatically generate unit test cases for testing the software module.

14. The system of claim 10 being further configured to use a fifth bot of the collection of bots to automatically generate application programming interface (API) test cases and to perform testing of the API.

15. The system of claim 10 being further configured to use a sixth bot of the collection of bots to automatically create software system builds.

16. The system of claim 10 being further configured to collect defect information reported by a seventh bot of the collection of bots and to automatically generate action items or task requests using an independent task tracking system.

17. The system of claim 10 being further configured to generate status metrics and notifications for on-going software development projects.

18. The system of claim 10 being further configured to train the third bot using training data until the third bot produces predicted or desired output.

19. A non-transitory machine-useable storage medium embodying instructions which, when executed by a machine, cause the machine to:

establish, by use of the data processor and the data network, a data connection with a software code repository;

provide a collection of autonomous computer programs or bots configured to automatically perform a specific software development life cycle (SDLC) task;

use a first bot of the collection of bots to perform an automatic code review of a software module from the software code repository, wherein the first bot is a trainable execution model trained with sample code portions;

use a second bot of the collection of bots to perform automatic unit testing of the software module from the software code repository, wherein the second bot is a trainable execution model trained with sample test data, the first and second bots being trained using training data until the first and second bots produce predicted or desired output based on an evaluation of an output of each of the first and second bots after training; and

use a third bot of the collection of bots to perform an automatic deployment of the software module from the software code repository.

20. The non-transitory machine-useable storage medium of claim 19 wherein the first and second bots are implemented as trained deep neural networks or classifiers.

Assignments (4)
SECURITY INTEREST Recorded Dec 23, 2024
From: XORIANT CORPORATION
To: CERBERUS BUSINESS FINANCE AGENCY, LLC
Reel/Frame 069665/0920 →
RELEASE OF SECURITY INTEREST Recorded Dec 23, 2024
From: BMO BANK N.A.
To: XORIANT CORPORATION
Reel/Frame 069671/0240 →
SECURITY INTEREST Recorded Dec 28, 2022
From: XORIANT CORPORATION
To: BANK OF THE WEST, AS ADMINISTRATIVE AGENT
Reel/Frame 062223/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2020
From: GAITONDE, GIRISH; VED, BHAVESH; PARDESI, SHAILESH; SHARMA, YOGESH
To: XORIANT CORPORATION
Reel/Frame 053710/0768 →
Continuity (1)
Related Publication 20210405976A1 · Dec 30, 2021
Cited By (3)
US 12,321,708 US 12,619,519 US 12,711,140