Example similarity map    Similar Patents and Articles Toggle Patent Map

Contact The DL Team Contact Us | Switch to tabbed view

top of pageABSTRACT

Systems software uses conditional compilation to manage crosscutting concerns in a very fine-grained and efficient way, but at the expense of tangled and scattered conditional code. Refactoring of conditional compilation into aspects gets rid of these issues, but it is not clear yet for which patterns of conditional compilation aspects make sense and whether or not current aspect technology is able to express these patterns. To investigate these two problems, this paper presents a graphical ``preprocessor blueprint'' model which offers a queryable representation of the syntactical interaction of conditional compilation and the source code. A case study on the Parrot VM shows that preprocessor blueprints are able to express and query for the four commonly known patterns of conditional compilation usage, and that they allow to discover seven additional important patterns. By correlating each pattern's potential for refactoring into advice and each pattern's evolution of the number of occurrences, we show that refactoring into advice in the Parrot VM is a good alternative for three of the eleven patterns, whereas for the other patterns trade-offs have to be considered between robustness and fine-grainedness of the advice.

top of pageAUTHORS



Author image not provided  Bram Adams

No contact information provided yet.

Bibliometrics: publication history
Publication years2006-2017
Publication count109
Citation Count1,139
Available for download46
Downloads (6 Weeks)234
Downloads (12 Months)1,965
Downloads (cumulative)12,536
Average downloads per article272.52
Average citations per article10.45
View colleagues of Bram Adams


Author image not provided  Wolfgang De Meuter

No contact information provided yet.

Bibliometrics: publication history
Publication years2004-2017
Publication count81
Citation Count379
Available for download51
Downloads (6 Weeks)118
Downloads (12 Months)1,092
Downloads (cumulative)8,428
Average downloads per article165.25
Average citations per article4.68
View colleagues of Wolfgang De Meuter


Author image not provided  Herman Tromp

No contact information provided yet.

Bibliometrics: publication history
Publication years2009-2009
Publication count2
Citation Count24
Available for download1
Downloads (6 Weeks)3
Downloads (12 Months)6
Downloads (cumulative)283
Average downloads per article283.00
Average citations per article12.00
View colleagues of Herman Tromp


Author image not provided  Ahmed E. Hassan

No contact information provided yet.

Bibliometrics: publication history
Publication years2000-2017
Publication count192
Citation Count2,164
Available for download74
Downloads (6 Weeks)322
Downloads (12 Months)3,237
Downloads (cumulative)25,559
Average downloads per article345.39
Average citations per article11.27
View colleagues of Ahmed E. Hassan

top of pageREFERENCES

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
B. Adams. Co-evolution of Source Code and the Build System: Impact on the Introduction of AOSD in Legacy Systems. PhD thesis, Ghent University, Ghent, Belgium, March 2008.
2
 
3
 
4
 
5
6
 
7
 
8
cloc. http://cloc.sourceforge.net.
9
 
10
B. Du Bois, B. Van Rompaey, K. Meijfroidt, and E. Suijs. Supporting reengineering scenarios with FETCH: an experience report. In Proc. of the 3rd International ERCIM Workshop on Software Evolution, ICSM, pages 69--82, Paris, France, October 2007.
 
11
M. Eaddy and A. V. Aho. Statement annotations for fine-grained advising. In Proc. of the Workshop on Reflection, AOP, and Meta-Data for Software Evolution (RAM-SE), ECOOP, pages 89--99, Nantes, France, July 2006. Fakultät für Informatik, Universität Magdeburg.
 
12
 
13
 
14
 
15
Fetch. http://lore.cmi.ua.ac.be/fetchWiki/index.php.
16
 
17
18
 
19
 
20
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proc. of the 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241, pages 220---242, Jyväskylä, Finland, 1997. Springer-Verlag.
 
21
G. Kniesel, T. Rho, and S. Hanenberg. Evolvable pattern implementations need generic aspects. In Proc. of the Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE), ECOOP. Springer Verlag, Oslo, Norway, June 2004.
 
22
 
23
 
24
 
25
P. Livadas and D. Small. Understanding code containing preprocessor constructs. Proc. of the IEEE 3d Workshop on Program Comprehension, pages 89--97, November 1994.
26
 
27
 
28
Parrot VM. http://parrotcode.org/.
 
29
Parrot VM design documents. http://www.parrotcode.org/docs/pdd/.
30
31
 
32
H. Spencer and G. Collyer. #ifdef considered harmful or portability experience with C News. In R. Adams, editor, Proc. of the USENIX Conference, pages 185--198, Baltimore, MD, USA, June 1992. USENIX Association.
 
33
 
34
A. Sutton and J. Maletic. How we manage portability and configuration with the C preprocessor. In Proc. of the 23rd International Conference on Software Maintenance (ICSM), Paris, France, October 2007.
 
35
Uncrustify. http://uncrustify.sourceforge.net/.
 
36
 
37
 
38
D. A. Wheeler. Sloccount. http://www.dwheeler.com/sloccount/.

top of pageCITED BY

23 Citations

 
 
 
 
 
 
 
 
 
 

top of pageINDEX TERMS

The ACM Computing Classification System (CCS rev.2012)

Note: Larger/Darker text within each node indicates a higher relevance of the materials to the taxonomic classification.

top of pagePUBLICATION

Title AOSD '09 Proceedings of the 8th ACM international conference on Aspect-oriented software development table of contents
General Chairs Kevin Sullivan University of Virginia, USA
Organizing Chairs Jeff Gray Univ. of Alabama at Birmingham, USA
Program Chairs Ana Moreira Universidade Nova de Lisboa, Portugal
Christa Schwanninger Siemens AG, Germany
Robert Baillargeon Panasonic Automotive Systems, USA
Mark Grechanik Accenture, USA
Pages 243-254
Publication Date2009-03-02 (yyyy-mm-dd)
Sponsors SIGPLAN ACM Special Interest Group on Programming Languages
SIGSOFT ACM Special Interest Group on Software Engineering
ACM Association for Computing Machinery
PublisherACM New York, NY, USA ©2009
ISBN: 978-1-60558-442-3 doi>10.1145/1509239.1509274
Conference MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD) MODULARITY logo
Paper Acceptance Rate 19 of 86 submissions, 22%
Overall Acceptance Rate 178 of 718 submissions, 25%
Year Submitted Accepted Rate
AOSD '06 96 23 24%
AOSD '07 107 19 18%
AOSD '08 79 17 22%
AOSD '09 86 19 22%
AOSD '10 62 18 29%
AOSD '11 95 23 24%
AOSD '12 79 20 25%
AOSD '13 54 18 33%
MODULARITY '14 60 21 35%
Overall 718 178 25%

APPEARS IN
Performance
Software

top of pageREVIEWS


Reviews are not available for this item
Computing Reviews logo

top of pageCOMMENTS

Be the first to comment To Post a comment please sign in or create a free Web account

top of pageTable of Contents

Proceedings of the 8th ACM international conference on Aspect-oriented software development
Table of Contents
SESSION: Keynote
Session details: Keynote
Mark Grechani
doi>10.1145/3247277
The future of software architectures for large-scalebusiness solutions: modularity, scalability, andseparation of concerns
Paul R. Daugherty
Pages: 1-2
doi>10.1145/1509239.1509241
Full text: PDFPDF

Modern software projects are of large scale, often involving years of development, tens of thousands of days of work effort, and millions of lines of code. This complexity is aggravated by the fact that development is often distributed over several geographic ...
expand
SESSION: Programming languages
Session details: Programming languages
Mehmet Aksit
doi>10.1145/3247278
Dependent advice: a general approach to optimizing history-based aspects
Eric Bodden, Feng Chen, Grigore Rosu
Pages: 3-14
doi>10.1145/1509239.1509243
Full text: PDFPDF

Many aspects for runtime monitoring are history-based: they contain pieces of advice that execute conditionally, based on the observed execution history. History-based aspects are notorious for causing high runtime overhead. Compilers can apply powerful ...
expand
The dataflow pointcut: a formal and practical framework
Dima Alhadidi, Amine Boukhtouta, Nadia Belblidia, Mourad Debbabi, Prabir Bhattacharya
Pages: 15-26
doi>10.1145/1509239.1509244
Full text: PDFPDF

Some security concerns are sensitive to flow of information in a program execution. The dataflow pointcut has been proposed by Masuhara and Kawauchi in order to easily implement such security concerns in aspect-oriented programming (AOP) languages. The ...
expand
Expressive scoping of distributed aspects
Éric Tanter, Johan Fabry, Rémi Douence, Jacques Noyé, Mario Südholt
Pages: 27-38
doi>10.1145/1509239.1509245
Full text: PDFPDF

Dynamic deployment of aspects brings greater flexibility and reuse potential, but requires proper means for scoping aspects. Scoping issues are particularly crucial in a distributed context: adequate treatment of distributed scoping is necessary to enable ...
expand
SESSION: Aspect interference
Session details: Aspect interference
Hridesh Rajan
doi>10.1145/3247279
A graph-transformation-based simulation approach for analysing aspect interference on shared join points
Mehmet Aksit, Arend Rensink, Tom Staijen
Pages: 39-50
doi>10.1145/1509239.1509247
Full text: PDFPDF

Aspects that in isolation behave correctly, may interact when being combined. When interaction changes an aspect's behaviour or disables an aspect, we call this interference. One particular type of interference occurs when aspects are applied to shared ...
expand
The art of the meta-aspect protocol
Tom Dinkelaker, Mira Mezini, Christoph Bockisch
Pages: 51-62
doi>10.1145/1509239.1509248
Full text: PDFPDF

Alternative semantics for aspect-oriented abstractions can be defined by language designers using extensible aspect compiler frameworks. However, application developers are prevented from tailoring the language semantics in an application-specific manner. ...
expand
Flexible calling context reification for aspect-oriented programming
Alex Villazon, Walter Binder, Philippe Moret
Pages: 63-74
doi>10.1145/1509239.1509249
Full text: PDFPDF

Aspect-oriented programming (AOP) eases the development of profilers, debuggers, and reverse engineering tools. Such tools frequently rely on calling context information. However, current AOP technology, such as AspectJ, does not offer dedicated support ...
expand
SESSION: Software architecture and modelling
Session details: Software architecture and modelling
Mira Mezini
doi>10.1145/3247280
Domain-driven discovery of stable abstractions for pointcut interfaces
Dimitri Van Landuyt, Steven Op de beeck, Eddy Truyen, Wouter Joosen
Pages: 75-86
doi>10.1145/1509239.1509251
Full text: PDFPDF

The benefits of defining explicit pointcut interfaces in aspect-oriented applications have been advocated by many. A pointcut interface exposes a set of crosscutting abstract behaviours (as named pointcut signatures) that multiple aspects in the application ...
expand
Aspect-oriented multi-view modeling
Jörg Kienzle, Wisam Al Abed, Jacques Klein
Pages: 87-98
doi>10.1145/1509239.1509252
Full text: PDFPDF

Multi-view modeling allows a developer to describe a software system from multiple points of view, e.g. structural and behavioral, using different modeling notations. Aspect-oriented modeling techniques have been proposed to address the scalability problem ...
expand
From sequence diagrams to Java-stairs aspects
Jon Oldevik, Øystein Haugen
Pages: 99-110
doi>10.1145/1509239.1509253
Full text: PDFPDF

Execution traces are naturally represented at the design level with UML sequence diagrams. During a system execution, trace-based aspects can be used to monitor behavioral patterns and protocols and may e.g. provide mitigation strategies for unwanted ...
expand
Composing architectural aspects based on style semantics
Christina Chavez, Alessandro Garcia, Thais Batista, Marcel Oliveira, Claudio Sant'Anna, Awais Rashid
Pages: 111-122
doi>10.1145/1509239.1509254
Full text: PDFPDF

The lack of architecturally-significant mechanisms for aspectual composition might artificially hinder the specification of stable and reusable design aspects. Current aspect-oriented approaches at the architecture-level tend to mimic programming language ...
expand
SESSION: Keynote
Session details: Keynote
Jeff Gray
doi>10.1145/3247281
Cyber physical systems: aspects as a basis for robustness and openness
John A. Stankovic
Pages: 123-124
doi>10.1145/1509239.1509256
Full text: PDFPDF

As discussed in a recent report for which I was a co-author, "as computers and communication bandwidth become faster and cheaper, computing and communication capabilities will be embedded in all types of objects and structures in the physical environment. ...
expand
SESSION: Aspect-oriented requirements engineering
Session details: Aspect-oriented requirements engineering
Betty Cheng
doi>10.1145/3247282
Modeling scenario variability as crosscutting mechanisms
Rodrigo Bonifácio, Paulo Borba
Pages: 125-136
doi>10.1145/1509239.1509258
Full text: PDFPDF

Variability management is a common challenge for Software Product Line (SPL) adoption, since developers need suitable mechanisms for specifying and implementing variability that occurs at different SPL artifacts (requirements, design, implementation, ...
expand
Concept analysis for product line requirements
Nan Niu, Steve Easterbrook
Pages: 137-148
doi>10.1145/1509239.1509259
Full text: PDFPDF

Traditional methods characterize a software product line's requirements using either functional or quality criteria. This appears to be inadequate to assess modularity, detect interferences, and analyze trade-offs. We take advantage of both symmetric ...
expand
Semantic vs. syntactic compositions in aspect-oriented requirements engineering: an empirical study
Ruzanna Chitchyan, Phil Greenwood, Americo Sampaio, Awais Rashid, Alessandro Garcia, Lyrene Fernandes da Silva
Pages: 149-160
doi>10.1145/1509239.1509260
Full text: PDFPDF

Most current aspect composition mechanisms rely on syntactic references to the base modules or wildcard mechanisms quantifying over such syntactic references in pointcut expressions. This leads to the well-known problem of pointcut fragility. Semantics-based ...
expand
SESSION: Testing and verification
Session details: Testing and verification
Shmuel Katz
doi>10.1145/3247283
Modular verification of dynamically adaptive systems
Ji Zhang, Heather J. Goldsby, Betty H.C. Cheng
Pages: 161-172
doi>10.1145/1509239.1509262
Full text: PDFPDF

Cyber-physical systems increasingly rely on dynamically adaptive programs to respond to changes in their physical environment; examples include ecosystem monitoring and disaster relief systems. These systems are considered high-assurance since errors ...
expand
A generic and reflective debugging architecture to support runtime visibility and traceability of aspects
Wouter De Borger, Bert Lagaisse, Wouter Joosen
Pages: 173-184
doi>10.1145/1509239.1509263
Full text: PDFPDF

In this paper we present a generic, mirror-based debugging architecture that supports runtime visibility and traceability of aspect oriented (AO) software systems. Runtime visibility supports inspection of an executing AO-system in terms of AO programming ...
expand
Automated test data generation for aspect-oriented programs
Mark Harman, Fayezin Islam, Tao Xie, Stefan Wappler
Pages: 185-196
doi>10.1145/1509239.1509264
Full text: PDFPDF

Despite the upsurge of interest in the Aspect-Oriented Programming (AOP) paradigm, there remain few results on test data generation techniques for AOP. Furthermore, there is no work on search-based optimization for test data generation, an approach that ...
expand
SESSION: Industry session: aspects in industry
Session details: Industry session: aspects in industry
Robert Baillargeon
doi>10.1145/3247284
Enabling the adoption of aspects - testing aspects: a risk model, fault model and patterns
Nikhil Kumar, Dinakar Sosale, Sadhana Nivedita Konuganti, Ajay Rathi
Pages: 197-206
doi>10.1145/1509239.1509266
Full text: PDFPDF

Aspect oriented programming (AOP) has started to achieve industry adoption for custom programs and some adoption in frameworks such as the Spring framework. Aspect oriented programming provides many benefits -- it can increase the scope of concerns that ...
expand
Modelling hardware verification concerns specified in the e language: an experience report
Darren Galpin, Cormac Driver, Siobhán Clarke
Pages: 207-212
doi>10.1145/1509239.1509267
Full text: PDFPDF

e is an aspect-oriented hardware verification language that is widely used to verify the design of electronic circuits through the development and execution of testbenches. In recent years, the continued growth of the testbenches developed at ...
expand
Using aspect-orientation in industrial projects: appreciated or damned?
Uwe D.C. Hohenstein, Michael C. Jäger
Pages: 213-222
doi>10.1145/1509239.1509268
Full text: PDFPDF

Aspect-orientation (AO) is a recent technology for handling crosscutting concerns in a structured and modular manner. In spite of being considered useful, researchers often complain that industry is not widely adopting AO concepts and technologies in ...
expand
Aspect oriented programming with hidden markov models to verify design use cases
German Florez-Larrahondo, Walker Haddock
Pages: 223-228
doi>10.1145/1509239.1509269
Full text: PDFPDF

The goal of this research is to formulate a framework to determine whether the usage of an application in production environments is consistent with the test cases used to verify it before the application was released. Aspect-Oriented Programming (AOP) ...
expand
SESSION: Keynote
Session details: Keynote
Christine Schwanninger
doi>10.1145/3247285
Everyday aspects
Gail C. Murphy
Pages: 229-230
doi>10.1145/1509239.1509271
Full text: PDFPDF

Everyday, programmers perform software evolution tasks that require accessing information from, and often making changes to, multiple modules comprising the target software system. For some of these tasks, aspect-oriented programming languages provide ...
expand
SESSION: DSAL and applications
Session details: DSAL and applications
Alessandro Garcia
doi>10.1145/3247286
Metaproperty aspects
Clayton G. Myers, Elisa L.A. Baniassad
Pages: 231-242
doi>10.1145/1509239.1509273
Full text: PDFPDF

Currently, it is possible to use Aspect-Oriented languages to attach behavior to code based on semantic or syntactic properties of that code. There is no language, however, that allows developers to attach behavior based on static metaproperties of code. ...
expand
Can we refactor conditional compilation into aspects?
Bram Adams, Wolfgang De Meuter, Herman Tromp, Ahmed E. Hassan
Pages: 243-254
doi>10.1145/1509239.1509274
Full text: PDFPDF

Systems software uses conditional compilation to manage crosscutting concerns in a very fine-grained and efficient way, but at the expense of tangled and scattered conditional code. Refactoring of conditional compilation into aspects gets rid of these ...
expand
Enforcing security for desktop clients using authority aspects
Brett Cannon, Eric Wohlstadter
Pages: 255-266
doi>10.1145/1509239.1509275
Full text: PDFPDF

Desktop client applications interact with both local and remote resources. This is both a benefit in terms of the rich features desktop clients can provide, but also a security risk. Due to their high connectivity, desktop clients can leave a user's ...
expand

Powered by The ACM Guide to Computing Literature


The ACM Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Terms of Usage   Privacy Policy   Code of Ethics   Contact Us