3. A computer-implemented system for computer software development, comprising: a server for storing computer executable instructions thereon that, when executed, implement: a requirements design subsystem for viewing and commenting on requirement specifications for software designs to identify requirements for software to be developed; a competition development subsystem for developing software by conducting a first competition for creation of a design for software using the software design requirements generated with the requirements design subsystem and for conducting a second competition for development of software implementing a design submission that is a winner of the first competition, the software comprising a functional software module that is reusable as a building block of an application; and a software catalog comprising a repository for storing reusable modules developed by conducting the competitions using the competition development subsystem and for providing a directory of information to potential purchasers and licensees about the reusable modules in the repository.
3. A computer-implemented system for computer software development, comprising: a server for storing computer executable instructions thereon that, when executed, implement: a requirements design subsystem for viewing and commenting on requirement specifications for software designs to identify requirements for software to be developed; a competition development subsystem for developing software by conducting a first competition for creation of a design for software using the software design requirements generated with the requirements design subsystem and for conducting a second competition for development of software implementing a design submission that is a winner of the first competition, the software comprising a functional software module that is reusable as a building block of an application; and a software catalog comprising a repository for storing reusable modules developed by conducting the competitions using the competition development subsystem and for providing a directory of information to potential purchasers and licensees about the reusable modules in the repository. 5. The system of claim 3 , further comprising a component incubator module for communicating suggestions for modifications to software.