archives

Multiple Concerns in Aspect-Oriented Language Design: Balancing Benefits is the Essence of Language Engineering


Home 

About 

Browse 

Search 

Register 

Subscriptions 

Deposit Papers 

Help
    

Leavens, Gary T. and Clifton, Curtis (2007) Multiple Concerns in Aspect-Oriented Language Design: Balancing Benefits is the Essence of Language Engineering. Technical Report 07-01, Computer Science, Iowa State University.

Full text available as:Adobe PDF
Postscript

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 perfect quantification and obliviousness are not viewed as aspect-oriented. On the other hand, some detractors of aspect-oriented software development view perfect quantification and 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.''

Keywords:aspect-oriented programming language design, concerns, goals, quantification, obliviousness, scattering, tangling, ease of reasoning, ease of maintenance, compromise, tradeoff, balance.
Subjects:Software: PROGRAMMING TECHNIQUES (E): Object-oriented Programming
Software: SOFTWARE ENGINEERING (K.6.3)
Software: SOFTWARE ENGINEERING (K.6.3): Design Tools and Techniques
Software: PROGRAMMING LANGUAGES: General
Software: PROGRAMMING LANGUAGES: Language Constructs and Features (E.2)
ID code:00000510
Deposited by:Gary T. Leavens on 05 February 2007
Alternative Locations:ftp://ftp.cs.iastate.edu/pub/techreports/TR07-01/TR.pdf ftp://ftp.cs.iastate.edu/pub/techreports/TR07-01/TR.ps.gz



Contact site administrator at: ssg@cs.iastate.edu