|
ABSTRACT
The FreeBSD operating system more than doubled in size between version 2 and version 4. Many changes to primary modularity are easy to spot at a high-leveL For example, new device drivers account for 38% of the growth. Not surprisingly, changes to crosscutting concerns are more difficult to track. In order to better understand how an aspect-oriented implementation would have fared during this evolution, we introduced several aspects to version 2 code, and then rolled them forward into their subsequent incarnations in versions 3 and 4 respectively. This paper describes the impact evolution had on these concerns, and provides a comparative analysis of the changes required to evolve the tangled versus aspect-oriented implementations.Our results show that for the concerns we chose, the aspect-oriented implementation facilitated evolution in four key ways: (1) changes were better localized, (2) configurability was more explicit, (3) redundancy was reduced, and (4) extensibility aligned with an aspect was more modular. Additionally, we found that the aspect-oriented implementation had negligible impact on performance.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
 |
2
|
|
| |
3
|
AspectC.www.cs.ubc.ca/labs/spl/aspects/aspectc.html.
|
| |
4
|
Luciano Porto Barreto, and Gilles Muller. Bossa: A Language-Based Approach for the Design of Real Time Schedulers, in Proceedings of the 23rd IEEE Real-Time Systems, 2002.
|
 |
5
|
Andy Chou , Junfeng Yang , Benjamin Chelf , Seth Hallem , Dawson Engler, An empirical study of operating systems errors, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
 |
6
|
|
| |
7
|
Marc E. Fiuczynski, and Brian N. Bershad. An Extensible Protocol Architecture for Application-Specific Networking, in Proceedings of the Winter USENIX Conference, 1996.
|
| |
8
|
|
 |
9
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.52-65, October 05-08, 1997, Saint Malo, France
|
| |
10
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
11
|
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming, in Proceedings of the European Conference on Object-Oriented Programming (ECOOP), 1997.
|
| |
12
|
Chris Maeda. Flexible System Software through Service Decomposition, in Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA), 1994.
|
| |
13
|
Dylan McNamee, and Katherine Armstrong. Extending the Mach External Pager Interface to Allow User Level Page Replacement Policies, in Technical Report University of Washington UWCSE 90-09-05, 1990.
|
 |
14
|
Gilles Muller , Charles Consel , Renaud Marlet , Luciano Porto Barreto , Fabrice Mérillon , Laurent Réveillère, Towards robust OSes for appliances: a new approach based on domain-specific languages, Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system, September 17-20, 2000, Kolding, Denmark
[doi> 10.1145/566726.566732]
|
| |
15
|
Paniti Netinant, Constantinos Constantinides, Tzilla Elrad, Mohamed Fayad. Supporting Aspectual Decomposition in the Design of Adaptable Operating Systems Using Aspect-Oriented Frameworks, in Proceedings of the 3rd Workshop on Object-Orientation and Operating Systems (ECOOP-OOOWS), 2000.
|
 |
16
|
|
| |
17
|
|
| |
18
|
Christopher Small, and Margo Seltzer. A Comparison of Os Extension Technologies, in Proceedings of the USENIX Conference, 1996.
|
 |
19
|
|
| |
20
|
|
 |
21
|
W. Wulf , E. Cohen , W. Corwin , A. Jones , R. Levin , C. Pierson , F. Pollack, HYDRA: the kernel of a multiprocessor operating system, Communications of the ACM, v.17 n.6, p.337-345, June 1974
[doi> 10.1145/355616.364017]
|
 |
22
|
Yasuhiko Yokote, The Apertos reflective operating system: the concept and its implementation, conference proceedings on Object-oriented programming systems, languages, and applications, p.414-434, October 18-22, 1992, Vancouver, British Columbia, Canada
|
CITED BY 26
|
|
|
|
|
Aleksandra Tesanovic , Mehdi Amirijoo , Mikael Björk , Jörgen Hansson, Empowering configurable QoS management in real-time systems, Proceedings of the 4th international conference on Aspect-oriented software development, p.39-50, March 14-18, 2005, Chicago, Illinois
|
|
|
Renaud Pawlak , Lionel Seinturier , Laurence Duchien , Gérard Florin , Fabrice Legond-Aubry , Laurent Martelli, JAC: an aspect-based distributed dynamic framework, Software—Practice & Experience, v.34 n.12, p.1119-1148, October 2004
|
|
|
|
|
|
|
|
|
|
|
|
Henrik Stuart , René Rydhof Hansen , Julia L. Lawall , Jesper Andersen , Yoann Padioleau , Gilles Muller, Towards easing the diagnosis of bugs in OS code, Proceedings of the 4th workshop on Programming languages and operating systems, October 18-18, 2007, Stevenson, Washington
|
|
|
|
|
|
|
|
|
Yoann Padioleau , René Rydhof Hansen , Julia L. Lawall , Gilles Muller, Semantic patches for documenting and automating collateral evolutions in Linux device drivers, Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems, p.10-es, October 22-22, 2006, San Jose, California
|
|
|
|
|
|
|
|
|
|
|
|
Marc E. Fiuczynski , Robert Grimm , Yvonne Coady , David Walker, patch (1) considered harmful, Proceedings of the 10th conference on Hot Topics in Operating Systems, p.16-16, June 12-15, 2005, Santa Fe, NM
|
|
|
|
|
|
|
|
|
Daniel Lohmann , Jochen Streicher , Olaf Spinczyk , Wolfgang Schröder-Preikschat, Interrupt synchronization in the CiAO operating system: experiences from implementing low-level system policies by AOP, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.6-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
Daniel Lohmann , Jochen Streicher , Wanja Hofer , Olaf Spinczyk , Wolfgang Schröder-Preikschat, Configurable memory protection by aspects, Proceedings of the 4th workshop on Programming languages and operating systems, October 18-18, 2007, Stevenson, Washington
|
|
|
|
|
|
|
|
|
|
|
|
Bram Adams , Kris De Schutter , Andy Zaidman , Serge Demeyer , Herman Tromp , Wolfgang De Meuter, Using aspect orientation in legacy environments for reverse engineering using dynamic analysis-An industrial experience report, Journal of Systems and Software, v.82 n.4, p.668-684, April, 2009
|
|
|
|
|
|
|
|