IP Library Granted Patent US 8,856,724
Granted Patent B2
US 8,856,724 · App. 13/164,410 · Granted Oct 7, 2014

Systems and methods for incremental software development

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 8,856,724
App. No.
13/164,410
Granted
Oct 7, 2014
Kind
B2
Abstract

Methods and systems for facilitating incremental software development are disclosed. For example, a method can include receiving a plurality of binary software libraries sufficient for building a software project. A request from a user to modify source code for at least one of the plurality of binary libraries is received. In response to receiving the request, the source code for the at least one of the plurality of binary libraries is retrieved. The source code for the at least one of the plurality of binary libraries is presented to the user. Modified source code for the at least one of the plurality of binary libraries is received. The modified source code is compiled to produce compiled modified code. A revised version of the software project is built using the compiled modified code and the plurality of binary libraries.

Claims (74)

1. A method, comprising:

receiving a plurality of binary libraries sufficient for building a software project without receiving source code for the plurality of binary libraries;

receiving a request from a user to modify source code for a first library of the plurality of binary libraries;

in response to receiving the request, retrieving the source code for the first library;

presenting the source code for the first library to the user;

receiving modified source code for the first library;

determining, by a processor, that the modified source code necessitates a modification to a second library of the plurality of binary libraries;

notifying the user that the modified source code necessitates the modification to the second library, the notifying of the user occurring while the user is modifying the source code;

in response to the determination, retrieving source code for the second library;

compiling the modified source code to produce compiled modified code;

building a revised version of the software project using the compiled modified code and the plurality of binary libraries;

testing the revised version of the software project;

if the testing identifies a failure, informing the user of the failure; and

if the testing does not identify a failure, identifying the plurality of binary libraries and the compiled modified code with a code version identifier associated with the revised version of the software project.

2. The method of claim 1 , further comprising retrieving dependency information identifying the plurality of binary libraries from among a second plurality of binary libraries comprising the plurality of binary libraries; and wherein

the receiving of the plurality of libraries comprises identifying the plurality of libraries based on the dependency information.

3. The method of claim 1 , further comprising receiving a request to retrieve binary libraries associated with a code version identifier; and wherein

the receiving of the plurality of binary libraries comprises identifying the plurality of binary libraries based on the code version identifier.

4. The method of claim 1 , further comprising:

if the testing does not identify a failure, producing at least one revised binary library for the revised version of the software project;

storing the at least one revised binary library in a repository; and

associating the at least one revised binary library with the code version identifier.

5. The method of claim 1 , further comprising:

sending a request for dependency metadata for the software project;

responsive to the request, receiving the dependency metadata for the software project; and wherein

the receiving of the plurality of binary libraries sufficient for building the software project is based on the dependency metadata for the software project.

6. A system comprising at least one processor and a plurality of modules providing instructions to be executed by the at least one processor, the modules comprising:

a repository to provide access to a plurality of binary libraries sufficient for building a software project;

a source control system to provide access to source code for the plurality of binary libraries; and

a development environment to:

retrieve the plurality of binary libraries from the repository without retrieving source code for the plurality of binary libraries,

receive a request from a user to modify source code for a first library of the plurality of binary libraries,

retrieve the source code for the first library from the source control system in response to the request,

present the source code for the first library to the user,

modify the source code for the first library in response to instructions from the user,

determine that the modified source code necessitates a modification to a second library of the plurality of binary libraries,

notify the user that the modified source code necessitates the modification to the second library, the notifying of the user occurring while the user is modifying the source code,

in response to the determination, retrieve source code for the second library, compile the modified source code to produce compiled modified code,

build a revised version of the software project using the compiled modified code and the plurality of binary libraries,

test the revised version of the software project,

if the test identifies a failure, inform the user of the failure, and

if the test does not identify a failure, identify the plurality of binary libraries and the compiled modified code with a code version identifier associated with the revised version of the software product.

7. The system of claim 6 , wherein

the repository is to provide access to other binary libraries in addition to the plurality of binary libraries; and

the development environment is to:

generate dependency information identifying the plurality of binary libraries, and

retrieve the plurality of binary libraries based on the dependency information.

8. The system of claim 6 , wherein the development environment is to:

receive a request to retrieve binary libraries associated with a code version identifier, and

retrieve the plurality of binary libraries by identifying the plurality of binary libraries via the repository based on the code version identifier.

9. The system of claim 6 , wherein the development environment is to:

produce at least one revised binary library for the revised version of the software project if the testing does not identify a failure,

store the at least one revised binary library via the repository, and

associate the at least one revised binary library with the code version identifier.

10. The system of claim 9 , wherein the development environment is to store the at least one revised binary library via the repository by associating each of the at least one revised binary libraries with each software project in which the associated at least one revised binary library is employed.

11. A non-transitory machine-readable storage medium having instructions encoded thereon which, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a plurality of binary libraries sufficient for building a software project without receiving source code for the plurality of binary libraries;

receiving a request from a user to modify source code for a first library of the plurality of binary libraries;

in response to receiving the request, retrieving the source code for the first library;

presenting the source code for the first library to the user;

receiving modified source code for the first library;

determining that the modified source code necessitates a modification to a second library of the plurality of binary libraries;

notifying the user that the modified source code necessitates the modification to the second library, the notifying of the user occurring while the user is modifying the source code;

in response to the determination, retrieving source code for the second library;

compiling the modified source code to produce compiled modified code;

building a revised version of the software project using the compiled modified code and the plurality of binary libraries;

testing the revised version of the software project;

if the testing identifies a failure, informing the user of the failure; and

if the testing does not identify a failure, identifying the plurality of binary libraries and the compiled modified code with a code version identifier associated with the revised version of the software project.

12. The non-transitory machine-readable storage medium of claim 11 , wherein the operations further comprise receiving a request to retrieve binary libraries associated with a code version identifier, and retrieving the plurality of binary libraries by identifying the plurality of binary libraries from a repository based on the code version identifier.

13. The non-transitory machine-readable storage medium of claim 11 , wherein the operations further comprise:

if the testing does not identify a failure, producing at least one revised binary library for the revised version of the software project;

storing the at least one revised binary library in a repository; and

associating the at least one revised binary library with the code version identifier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2015
From: EBAY INC.
To: PAYPAL, INC.
Reel/Frame 036169/0774 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2011
From: SOMANI, MAHESH K.; RETHINAKALEESWARAN, KUMAR; SAHA, DEBASHIS; DODD, DAVID WILLIAM; MATHEW, SURESH
To: EBAY INC.
Reel/Frame 027281/0848 →