Systems and methods for software development
First Claim
1. A computerized method for developing software programs, the method comprising:
- communicating a specification for the design of a software program to a first plurality of developers;
receiving, from each of a subset of the first plurality of software developers, in response to the communicated specification, a design for the software program;
facilitating a design review process for scoring each of the received designs;
selecting one design from the received designs based at least in part on its score in the design review process;
communicating the selected design to a second plurality of software developers;
receiving, from each of a subset of the second plurality of software developers, in response to the communicated design, a software program;
facilitating a software review process for scoring each of the received programs; and
selecting one program from the received programs based at least in part on its score in the software review process.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention relates to methods and a system for developing software. In one embodiment, a method for developing software includes communicating a specification for the design of a software program to a first plurality of developers, in response to the specification, receiving a design from a subset of the developers to a subset of the developers, facilitating a design review process for scoring the designs, selecting one design based on its score, communicating the selected design to a second plurality of software developers, in response to the design, receiving software programs from a subset of the second plurality of developers, facilitating a software review process for scoring the programs, and selecting one program based on its score. In another embodiment, a method for the distributed development of software includes providing a software development system to a distributed community of developers, the system including software development software that utilizes a structured development methodology, a communication server, and a review board for determining the quality of submitted software; accepting a request to create a software program; and facilitating the development of the program by a subset of the distributed community of developers using the software development system.
221 Citations
61 Claims
-
1. A computerized method for developing software programs, the method comprising:
-
communicating a specification for the design of a software program to a first plurality of developers;
receiving, from each of a subset of the first plurality of software developers, in response to the communicated specification, a design for the software program;
facilitating a design review process for scoring each of the received designs;
selecting one design from the received designs based at least in part on its score in the design review process;
communicating the selected design to a second plurality of software developers;
receiving, from each of a subset of the second plurality of software developers, in response to the communicated design, a software program;
facilitating a software review process for scoring each of the received programs; and
selecting one program from the received programs based at least in part on its score in the software review process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of distributed software development comprising:
-
providing a software development system to a distributed community of software developers, the system comprising;
software development software facilitating the development and testing of software programs using a structured development methodology;
a communication server communicating with the software for delivering the software development software to a distributed community of software developers; and
a review board comprising one or more programmers capable of determining the quality of software developed by the distributed community of software developers;
accepting a request to create a software program from an entity; and
facilitating the development of the software program using the software development system by at least a subset of the community of software developers. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A computerized method of evaluating software programs comprising the steps of:
-
communicating requirements for the development of a software program to a population of software developers;
in response to the communicated requirements, receiving from each of a subset of the population of software developers a candidate software program and one or more test cases for testing the received candidate software program;
testing each of the received software programs using test cases received from two or more of the subset of the population of software developers; and
scoring the received candidate software programs based at least in part on the results of the testing step. - View Dependent Claims (53, 54, 55, 56)
-
-
57. A computerized system for evaluating the functionality of software programs comprising:
-
a communications server for communicating requirements for the development of a software program to a population of software developers and, in response to the communicated requirements, receiving from each of a subset of the population of software developers a candidate software program and one or more test cases for testing the received candidate software program;
a testing server for testing each of the received software programs using test cases received from two or more of the subset of the population of software developers; and
a scoring server in communication with the testing server for scoring the received candidate software programs based at least in part on test results received from the testing server. - View Dependent Claims (58, 59, 60, 61)
-
Specification