Markets for interchangeable components exert pressure on manufacturers to improve their products. This is especially true if the market comes with fast dissemination of information about the quality of the components. But existing markets for software components lack quality assurance mechanisms. In this exploratory project, the PIs will study the relationship between software markets, quality assurance, and design. The PIs conjecture that if a market for software components is equipped with a uniformly enforced quality control mechanism, it will force software producers to continuously overhaul their product designs. To test this hypothesis, the PIs will conduct experiments with small controllable component markets, in which products come with explicit software contracts and the underlying software platforms monitor these contracts and publicly report violations. Producers may choose to react to these reports with technical contributions (test cases, improved contracts, etc). In this context, the PIs will validate their conjecture by conducting code inspections and interviews with producers. The outcomes of this exploratory investigation will help others construct similar markets and mechanisms; some may even directly benefit from the software developed as part of the project.
Broader Impacts: This project has the potential to change the way software components are produced and the way software reuse is taught. If the PIs' conjecture about markets is confirmed, it will provide arguments to the promoters of both public markets and markets that are internal to organizations. The very creation of a market with quality assurance mechanisms is bound to make the production of software more efficient, and to improve the quality of the components that are traded on the market. Independently of the outcome of the experiments, the idea of using a market for courses may help instructors deal with the teaching of software reuse in classes. They can use the PIs' experience and possibly their software as well to create course-focused markets; and they can use these markets to demonstrate the value of software reuse.