Parallel programs are difficult to write, test, and debug. This thesis explores how programmers build mental models about parallel programs, and demonstrates, through user evaluations, that maintenance activities can be improved by incorporating theories based on such models. By doing so, this work aims to increase the reliability and performance of today’s information technology infrastructure by improving the practice of maintaining and testing parallel software. Categories and Subject Descriptors