Title
A study of student strategies for the corrective maintenance of concurrent software
Abstract
Graduates of computer science degree programs are increasingly being asked to maintain large, multi-threaded software systems; however, the maintenance of such systems is typically not well-covered by software engineering texts or curricula. We conducted a think-aloud study with 15 students in a graduate-level computer science class to discover the strategies that students apply, and to what effect, in performing corrective maintenance on concurrent software. We collected think-aloud and action protocols, and annotated the protocols for a number of behavioral attributes and maintenance strategies. We divided the protocols into groups based on the success of the participant in both diagnosing and correcting the failure. We evaluated these groups for statistically significant differences in these attributes and strategies. In this paper, we report a number of interesting observations that came from this study. All participants performed diagnostic executions of the program to aid program comprehension; however, the participants that used this as their predominant strategy for diagnosing the fault were all unsuccessful. Among the participants that successfully diagnosed the fault and displayed high confidence in their diagnosis, we found two commonalities. They all recognized that the fault involved the violation of a concurrent-programming idiom. And, they all constructed detailed behavioral models (similar to UML sequence diagrams) of execution scenarios. We present detailed analyses to explain the attributes that correlated with success or lack of success. Based on these analyses, we make recommendations for improving software engineering curriculums by better training students how to apply these strategies effectively.
Year
DOI
Venue
2008
10.1145/1368088.1368195
ICSE
Keywords
Field
DocType
detailed analysis,maintenance strategy,student strategy,computer science degree program,software engineering text,behavioral attribute,concurrent software,detailed behavioral model,software engineering curriculum,multi-threaded software system,corrective maintenance,protocols,computer science,maintenance engineering,multi threading,statistical significance,concurrency control,unified modeling language,behavior modeling,uml sequence diagram,encoding,software systems,concurrent programming,software maintenance,synchronization,computer science education,software engineering,software performance,servers
Software engineering,Unified Modeling Language,Concurrency control,Computer science,Real-time computing,Software system,Software,Software maintenance,Corrective maintenance,Program comprehension,Maintenance engineering
Conference
Citations 
PageRank 
References 
14
0.72
19
Authors
5
Name
Order
Citations
PageRank
Scott D. Fleming124211.77
Eileen Kraemer255065.47
R. E. K. Stirewalt3897.29
Shaohua Xie4454.70
Laura K. Dillon549770.70