Cognitive processes in program comprehension
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
The C programming language
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Specifying subject-oriented composition
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
Comprehension processes during large scale maintenance
ICSE '94 Proceedings of the 16th international conference on Software engineering
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
An initial assessment of aspect-oriented programming
Proceedings of the 21st international conference on Software engineering
A study on exception detection and handling using aspect-oriented programming
Proceedings of the 22nd international conference on Software engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Abstracting Process-to-Function Relations in Concurrency Object-Oriented Applications
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
ECOOP '98 Workshop ion on Object-Oriented Technology
Studying Software Engineers: Data Collection Techniques for Software Field Studies
Empirical Software Engineering
Empirical Studies of Programming Knowledge
IEEE Transactions on Software Engineering
Supporting software evolution with intentional software views
Proceedings of the International Workshop on Principles of Software Evolution
A representation for describing and analyzing concerns in source code
Proceedings of the 24th International Conference on Software Engineering
Refactoring the Aspectizable Interfaces: An Empirical Assessment
IEEE Transactions on Software Engineering
Distribution and persistence as aspects
Software—Practice & Experience - Research Articles
Replaying development history to assess the effectiveness of change propagation tools
Empirical Software Engineering
Approaches to aspect oriented design: a study
ACM SIGSOFT Software Engineering Notes
IEEE Transactions on Software Engineering
Towards reusable components with aspects: an empirical study on modularity and obliviousness
Proceedings of the 30th international conference on Software engineering
2nd workshop on assessment of contemporary modularization techniques (ACoM 2008)
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
ECSA'11 Proceedings of the 5th European conference on Software architecture
Sustainable system infrastructure and big bang evolution: can aspects keep pace?
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Trading obliviousness for modularity with cooperative aspect-oriented programming
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
Hi-index | 0.00 |
Code is modularized, for many reasons, including making it easier to understand, change, and verify. Aspect-oriented programming approaches extend the kind of code that can be modularized, enabling the modularization of crosscutting code. We conducted an inquisitive study to better understand the kinds of crosscutting code that software developers encounter and to better understand how the developers manage this code. We tracked eight participants: four from industry and four from academia. Each participant was currently evolving a non-trivial software system. We interviewed these participants three times about crosscutting concerns they had encountered and the strategies they used to deal with the concerns. We found that crosscutting concerns tended to emerge as obstacles that the developer had to consider to make the desired change. The strategy used by the developer to manage the concern depended on the form of the obstacle code. The results of this study provide empirical evidence to support the problems identified by the aspect-oriented programming community, and provide a basis on which to further assess aspect-oriented programming.