• DocumentCode
    492636
  • Title

    A study of student strategies for the corrective maintenance of concurrent software

  • Author

    Fleming, Scott D. ; Kraemer, Eileen ; Stirewalt, R.E.K. ; Xie, Shaohua ; Dillon, Laura K.

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Michigan State Univ., East Lansing, MI
  • fYear
    2008
  • fDate
    10-18 May 2008
  • Firstpage
    759
  • Lastpage
    768
  • 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.
  • Keywords
    computer science education; concurrency control; fault diagnosis; multi-threading; program diagnostics; software maintenance; training; action protocols; computer science degree programs; concurrent software; concurrent-programming idiom; corrective maintenance; diagnostic executions; fault diagnosis; multithreaded software systems; program comprehension; software engineering curriculums; student strategies; student training; think-aloud protocols; Computer science; Fault diagnosis; Maintenance engineering; Permission; Protocols; Software engineering; Software maintenance; Software performance; Software systems; Unified modeling language; concurrent programming; software maintenance; think-aloud method;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2008. ICSE '08. ACM/IEEE 30th International Conference on
  • Conference_Location
    Leipzig
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-4486-1
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1145/1368088.1368195
  • Filename
    4814190