Learning to program = learning to construct mechanisms and explanations
Communications of the ACM
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software engineering (5th ed.)
Software engineering (5th ed.)
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
Lightweight extraction of object models from bytecode
Proceedings of the 21st international conference on Software engineering
Cognitive design elements to support the construction of a mental model during software exploration
Journal of Systems and Software
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Program Comprehension as a Learning Process
ICCI '02 Proceedings of the 1st IEEE International Conference on Cognitive Informatics
Nice class diagrams admit good design?
Proceedings of the 2003 ACM symposium on Software visualization
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Using a behavioral theory of program comprehension in software engineering
ICSE '78 Proceedings of the 3rd international conference on Software engineering
Code Reading: The Open Source Perspective, Vol. 1
Code Reading: The Open Source Perspective, Vol. 1
A Comparison of four Reverse Engineering Tools
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
A reverse engineering tool for precise class diagrams
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
On Evaluating the Layout of UML Class Diagrams for Program Comprehension
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Foundations of Empirical Software Engineering: The Legacy of Victor R. Basili
Foundations of Empirical Software Engineering: The Legacy of Victor R. Basili
An eye-tracking methodology for characterizing program comprehension processes
Proceedings of the 2006 symposium on Eye tracking research & applications
Analyzing individual performance of source code review using reviewers' eye movement
Proceedings of the 2006 symposium on Eye tracking research & applications
TAUPE: towards understanding program comprehension
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Assessing the Comprehension of UML Class Diagrams via Eye Tracking
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Impact of the visitor pattern on program comprehension and maintenance
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Evaluation of a low-cost open-source gaze tracker
Proceedings of the 2010 Symposium on Eye-Tracking Research & Applications
Empirical Software Engineering
An Eye Tracking Study on camelCase and under_score Identifier Styles
ICPC '10 Proceedings of the 2010 IEEE 18th International Conference on Program Comprehension
An eye tracking study on the effects of layout in understanding the role of design patterns
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
The emergent structure of development tasks
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Representational correspondence as a basic principle of diagram design
Knowledge and Information Visualization
Guest editors' introduction to the 4th issue of Experimental Software and Toolkits (EST-4)
Science of Computer Programming
Hi-index | 0.00 |
Program comprehension is an essential part of any maintenance activity. It allows developers to build mental models of the program before undertaking any change. It has been studied by the research community for many years with the aim to devise models and tools to understand and ease this activity. Recently, researchers have introduced the use of eye-tracking devices to gather and analyze data about the developers' cognitive processes during program comprehension. However, eye-tracking devices are not completely reliable and, thus, recorded data sometimes must be processed, filtered, or corrected. Moreover, the analysis software tools packaged with eye-tracking devices are not open-source and do not always provide extension points to seamlessly integrate new sophisticated analyses. Consequently, we develop the Taupe software system to help researchers visualize, analyze, and edit the data recorded by eye-tracking devices. The two main objectives of Taupe are compatibility and extensibility so that researchers can easily: (1) apply the system on any eye-tracking data and (2) extend the system with their own analyses. To meet our objectives, we base the development of Taupe: (1) on well-known good practices, such as design patterns and a plug-in architecture using reflection, (2) on a thorough documentation, validation, and verification process, and (3) on lessons learned from existing analysis software systems. This paper describes the context of development of Taupe, the architectural and design choices made during its development, and its documentation, validation and verification process. It also illustrates the application of Taupe in three experiments on the use of design patterns by developers during program comprehension.