ACM Home Page
Please provide us with feedback. Feedback
Multiple concerns in aspect-oriented language design: a language engineering approach to balancing benefits, with examples
Full text PdfPdf (174 KB)
Source Aspect-oriented software development; Vol. 217 archive
Proceedings of the 5th workshop on Software engineering properties of languages and aspect technologies table of contents
Vancouver, British Columbia, Canada
Article No. 6  
Year of Publication: 2007
ISBN:1-59593-656-1
Authors
Gary T. Leavens  Iowa State University, Ames, IA
Curtis Clifton  Rose-Hulman Institute of Technology, Terre Haute, IN
Sponsor
AOSD-Europe : European Network of Excellent on Aspect-oriented Software Development
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 59,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1233843.1233849
What is a DOI?

ABSTRACT

Some in the aspect-oriented community view a programming language as aspect-oriented only if it allows programmers to perfectly eliminate scattering and tangling. That is, languages that do not allow programmers to have maximal quantification and perfect obliviousness are not viewed as aspect-oriented. On the other hand, some detractors of aspect-oriented software development view maximal quantification and perfect obliviousness as causing problems, such as difficulties in reasoning or maintenance.

Both views ignore good language design and engineering practice, which suggests trying to simultaneously optimize for several goals. That is, designers of aspect-oriented languages that are intended for wide use should be prepared to compromise quantification and obliviousness to some (small) extent, if doing so helps programmers solve other problems. Indeed, balancing competing requirements is an essential part of engineering. Simultaneously optimizing for several language design goals becomes possible when one views these goals, such as minimizing scattering and tangling, not as all-or-nothing predicates, but as measures on a continuous scale. Since most language design goals will only be partially met, it seems best to call them "concerns."


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
J. Aldrich. Open modules: Modular reasoning about advice. In A. P. Black, editor, ECOOP 2005 -- Object-Oriented Programming 19th European Conference, Glasgow, UK, volume 3586 of Lecture Notes in Computer Science, pages 144--168. Springer-Verlag, Berlin, July 2005.
 
2
AspectJ Team. The AspectJ programming guide. Version 1.5.3., Available from http://eclipse.org/aspectj, 2006.
3
 
4
L. Bergmans and M. Aksit. Principles and design rationale of Composition Filters. In R. Filman, T. Elrad, S. Clarke, and M. Aksit, editors, Aspect-Oriented Software Development. Addison-Wesley, 2004.
 
5
C. Clifton. A design discipline and language features for modular reasoning in aspect-oriented programs. Technical Report 05--15, Department of Computer Science, Iowa State University, 226 Atanasoff Hall, Ames, Iowa 50011, July 2005.
 
6
C. Clifton and G. T. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. In G. T. Leavens and R. Cytron, editors, FOAL 2002 Proceedings: Foundations of Aspect-Oriented Languages Workshop at AOSD 2002, number 02--06 in Technical Reports, pages 33--44. Department of Computer Science, Iowa State University, Apr. 2002.
 
7
C. Clifton and G. T. Leavens. Spectators and assistants: Enabling modular aspect-oriented reasoning. Technical Report 02--10, Iowa State University, Department of Computer Science, Oct. 2002.
 
8
C. Clifton and G. T. Leavens. A design discipline and language features for formal modular reasoning in aspect-oriented programs. Technical Report 05-23, Dept. of Computer Science, Iowa State University, Ames, IA, 50011, Jan. 2005.
 
9
C. Clifton, G. T. Leavens, and J. Noble. Ownership and effects for more effective reasoning about aspects. Technical Report 06--35, Dept. of Computer Science, Iowa State University, Ames, IA, 50011, Dec. 2006. To appear in ECOOP 2007.
10
 
11
R. E. Filman and D. P. Friedman. Aspect-oriented programming is quantification and obliviousness. In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, MN, Oct. 2000.
 
12
R. E. Filman and D. P. Friedman. Aspect-oriented programming is quantification and obliviousness. In M. Akşit, S. Clarke, T. Elrad, and R. E. Filman, editors, Aspect-Oriented Software Development. Addison-Wesley, Reading, MA, 2004.
 
13
R. E. Filman and K. Havelund. The effect of AOP on software engineering, with particular attention to OIF and event quantification. In SPLAT '03, Mar. 2003. http://tinyurl.com/2euk95.
14
15
 
16
 
17
S. Gudmundson and G. Kiczales. Addressing practical software development issues in AspectJ with a pointcut interface. In ECOOP 2001 Workshop on Advanced Separation of Concerns, 2001.
 
18
19
20
 
21
R. Laddad. AspectJ in Action. Manning Publications Co., Grennwich, Conn., 2003.
 
22
D. Larochelle, K. Scheidt, K. Sullivan, Y. Wei, J. Winstead, and A. Wood. Join point encapsulation. In SPLAT '03, Mar. 2003. http://tinyur1.com/26on14.
 
23
B. H. Liskov and A. Snyder. Exception handling in CLU. IEEE Transactions on Software Engineering, SE-5(6):546--558, Nov. 1979.
 
24
R. E. Lopez-Herrejon and D. Batory. Improving incremental development in AspectJ by bounding quantification. In SPLAT '05, Mar. 2005. http://tinyurl.com/25shp3.
 
25
R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17(3):348--375, Dec. 1978.
 
26
H. Ossher. Confirmed join points. In SPLAT '05, Mar. 2005. http://tinyurl.com/2xzffu.
27
28
29
30


Collaborative Colleagues:
Gary T. Leavens: colleagues
Curtis Clifton: colleagues