Prerequisite: PhD student in SCS or ECE, or permission of the instructor.
See instructor's course web page for updates: (http://spoke.compose.cs.cmu.edu/shaweb/e/education.htm) Software engineering research suffers from lack of such refined explanations of how we "create knowledge," or contribute to advancing the state of software development practice. This course addresses the problem by studying the body of software engineering research not only for its specific content but also to determine the research strategies that lead us to believe the results. In software engineering, as in other areas, a good research result requires a problem worth solving, a solution of that problem that contributes interesting and useful new knowledge, and an analysis that shows that the solution actually solves the problem. Individual results accumulate over time, refuting or reinforcing each other to give more significant results in which we have more confidence. This course will examine principal research results of software engineering with attention to problem selection, research paradigm, and validation of results. We will pay particular attention to the way results in an area mature. We will see through examples how research paradigm and validation method are chosen to match the problem. Students will analyze current and classical literature for both the content of the work and the research strategy used. Students will complete two projects. One project will examine a software engineering area in depth to show how it has matured and which research strategies have contributed to this maturation. The second project will entail developing research and validation strategies for a specific software engineering research project.