ACM Computing Surveys (CSUR)
A system for teaching concurrent programming
SIGCSE '91 Proceedings of the twenty-second SIGCSE technical symposium on Computer science education
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A study of common pitfalls in simple multi-threaded programs
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Concurrency: state models & Java programs
Concurrency: state models & Java programs
Concurrent reading and writing
Communications of the ACM
The Unified Modeling Language: Technical Aspects and Applications
The Unified Modeling Language: Technical Aspects and Applications
Graph drawing aesthetics and the comprehension of UML class diagrams: an empirical study
APVis '01 Proceedings of the 2001 Asia-Pacific symposium on Information visualisation - Volume 9
On the Concurrent Object Model of UML
Euro-Par '99 Proceedings of the 5th International Euro-Par Conference on Parallel Processing
JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs
Revised Lectures on Software Visualization, International Seminar
Visualizing the Synchronization of Java-Threads with UML
VL '00 Proceedings of the 2000 IEEE International Symposium on Visual Languages (VL'00)
Proceedings of the 21st annual international conference on Documentation
JACOT: a tool to dynamically visualise the execution of concurrent Java programs
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
ThreadMentor: a pedagogical tool for multithreaded programming
Journal on Educational Resources in Computing (JERIC)
Learning concurrency: evolution of students' understanding of synchronization
International Journal of Human-Computer Studies
Unified Modeling Language Reference Manual, The (2nd Edition)
Unified Modeling Language Reference Manual, The (2nd Edition)
An Empirical Study on Using Stereotypes to Improve Understanding of UML Models
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Empirical Assessment of UML Static Object Diagrams
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
Is abstraction the key to computing?
Communications of the ACM
The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation
IEEE Transactions on Software Engineering
Design and Evaluation of a Diagrammatic Notation to Aid in the Understanding of Concurrency Concepts
ICSE '07 Proceedings of the 29th international conference on Software Engineering
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Assessing the benefits of synchronization-adorned sequence diagrams: two controlled experiments
Proceedings of the 4th ACM symposium on Software visualization
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Understanding complex multithreaded software systems by using trace visualization
Proceedings of the 5th international symposium on Software visualization
Hi-index | 0.00 |
Learning about concurrency and synchronization is difficult for novices. Our research seeks to support and improve the teaching and learning of concurrency concepts and to improve comprehension of the intricacies of multiple thread interactions. This paper describes a series of empirical studies in the first phase of our research. We began by conducting a comparative study to empirically evaluate the usability by novices of the existing variants of the UML sequence diagram notation in solving comprehension tasks involving multiple thread interactions. The results implied that a deliberately designed variant of this notation may provide better support for reasoning about concurrent behavior. We then investigated the factors that complicate learning, with the idea that the same complexities would also complicate comprehension tasks. In order to understand the practical difficulties novices encounter in learning about concurrency, we conducted an instructor interview and an observational study. These investigations guided us in determining the desirable properties of a new notation. We then designed synchronization-adorned UM (saUML) sequence diagrams, which extend UML sequence diagrams with those properties. Finally, we performed four empirical studies to evaluate the usability and efficacy of saUML. Through these empirical studies, we were able to validate the benefits of saUML in enhancing novices' understanding of programs with different levels of synchronization complexity.