Cognitive processes in program comprehension
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Designing documentation to compensate for delocalized plans
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
Industrial experience with design patterns
Proceedings of the 18th international conference on Software engineering
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
A Coding Scheme to Support Systematic Analysis of Software Comprehension
IEEE Transactions on Software Engineering
Maintaining Object-Oriented Software
IEEE Software
Using a behavioral theory of program comprehension in software engineering
ICSE '78 Proceedings of the 3rd international conference on Software engineering
A Review of Experimental Investigations into Object-Oriented Technology
Empirical Software Engineering
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
OO Design Patterns, Design Structure, and Program Changes: An Industrial Case Study
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Improving the quality of business object models using collaboration patterns
Communications of the ACM - Has the Internet become indispensable?
Proceedings of the 27th international conference on Software engineering
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Do Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A Systematic Review of Theory Use in Software Engineering Experiments
IEEE Transactions on Software Engineering
Using Program Families for Maintenance Experiments
ACoM '07 Proceedings of the First International Workshop on Assessment of Contemporary Modularization Techniques
SIGDOC '07 Proceedings of the 25th annual ACM international conference on Design of communication
Information Technology and Management
Comparison of different documentation styles for frameworks of object-oriented code
Behaviour & Information Technology
Experiments on pattern-based ontology design
Proceedings of the fifth international conference on Knowledge capture
Do rules and patterns affect design maintainability?
Journal of Computer Science and Technology
How to compare program comprehension in FOSD empirically: an experience report
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
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
Towards Abstract Interpretation for Recovering Design Information
Electronic Notes in Theoretical Computer Science (ENTCS)
Combating architectural degeneration: a survey
Information and Software Technology
Towards pattern-oriented design of agent-based simulation models
MATES'09 Proceedings of the 7th German conference on Multiagent system technologies
A design science based evaluation framework for patterns
ACM SIGMIS Database
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Faith, hope, and love: an essay on software science's neglect of human factors
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
An empirical investigation on the reusability of design patterns and software packages
Journal of Systems and Software
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
Improving object-oriented micro architectural design through knowledge systematization
ER'05 Proceedings of the 24th international conference on Perspectives in Conceptual Modeling
Assessing the value of architectural information extracted from patterns for architecting
EASE'06 Proceedings of the 10th international conference on Evaluation and Assessment in Software Engineering
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Modeling Design Patterns for Semi-Automatic Reuse in System Design
Journal of Database Management
On the impact of UML analysis models on source-code comprehensibility and modifiability
ACM Transactions on Software Engineering and Methodology (TOSEM)
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
Hi-index | 0.00 |
Using design patterns is claimed to improve programmer productivity and software quality. Such improvements may manifest both at construction time (in faster and better program design) and at maintenance time (in faster and more accurate program comprehension). This paper focuses on the maintenance context and reports on experimental tests of the following question: Does it help the maintainer if the design patterns in the program code are documented explicitly (using source code comments) compared to a well-commented program without explicit reference to design patterns? Subjects performed maintenance tasks on two programs ranging from 360 to 560 LOC including comments. Both programs contained design patterns. The controlled variable was whether the use of design patterns was documented explicitly or not. The experiments thus tested whether pattern comment lines (PCL) help during maintenance if patterns are relevant and sufficient program comments are already present. It turns out that this question is a challenge for the experimental methodology: A setup leading to relevant results is quite difficult to find. We discuss these issues in detail and suggest a general approach to such situations. The experiment was performed with Java by 74 German graduate students and then repeated with C++ by 22 American undergraduate students. A conservative analysis of the results supports the hypothesis that pattern-relevant maintenance tasks were completed faster or with fewer errors if redundant design pattern information was provided. Redundant means that the information carried in pattern comments is also available in different form in other comments. The contribution of this article is twofold: It provides the first controlled experiment results on design pattern usage and it presents a solution approach to an important class of experiment design problems for experiments regarding documentation.