A structured experiment of test-driven development
Foundations for the study of software architecture