Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1512475.1512489acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

Addressing common crosscutting problems with Arcum

Published: 09 November 2008 Publication History

Abstract

Crosscutting is an inherent part of software development and can typically be managed through modularization: A module's stable properties are defined in an interface while its likely-to-change properties are encapsulated within the module [19]. The crosscutting of the stable properties, such as class and method names, can be mitigated with automated refactoring tools that allow, for example, the interface's elements to be renamed [9, 18]. However, often the crosscutting from design idioms (such as design patterns and coding styles) are so specific to the program's domain that their crosscutting would not likely have been anticipated by the developers of an automated refactoring system.
The Arcum plug-in for Eclipse enables programmers to describe the implementation of a crosscutting design idiom as a set of syntactic patterns and semantic constraints. Arcum can process declarations of related implementations and infer the refactoring steps necessary to transform a program from using one implementation to its alternatives. As a result, automating refactoring for domain-specific crosscutting design idioms can be easy and practical. This paper presents a case study of how Arcum was used to mitigate four classic software engineering problems that are exacerbated by crosscutting: library migration, debugging, programmer-defined semantic checking, and architectural enforcement.

References

[1]
I. Balaban, F. Tip, and R. Fuhrer. Refactoring support for class library migration. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 265--279, New York, NY, USA, 2005. ACM Press.
[2]
I. D. Baxter, C. Pidgeon, and M. Mehlich. Dms: Program transformations for practical scalable software evolution. In ICSE '04: Proceedings of the 26th International Conference on Software Engineering, pages 625--634, Washington, DC, USA, 2004. IEEE Computer Society.
[3]
M. Boshernitsan. Program manipulation via interactive transformations. PhD thesis, University of California at Berkeley, Berkeley, CA, USA, 2006. Adviser-Susan L. Graham.
[4]
M. Boshernitsan and S. L. Graham. ixj: interactive source-to-source transformations for java. In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 212--213, New York, NY, USA, 2004. ACM.
[5]
A. Bryant, A. Catton, K. D. Volder, and G. C. Murphy. Explicit programming. In AOSD '02: Proceedings of the 1st international conference on Aspect-oriented software development, pages 10--18, New York, NY, USA, 2002. ACM.
[6]
A. D. Eisenberg and G. Kiczales. Expressive programs through presentation extension. In AOSD '07: Proceedings of the 6th international conference on Aspect-oriented software development, pages 73--84, New York, NY, USA, 2007. ACM Press.
[7]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[8]
Google. Google collections library 0.5 (alpha). http://code.google.com/p/google-collections/, October 2007.
[9]
W. G. Griswold. Program Restructuring as an Aid to Software Maintenance. PhD thesis, Department of Computer Science and Engineering, University of Washington, July 1991.
[10]
J. Hannemann and G. Kiczales. Design pattern implementation in java and aspectj. In OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 161--173, New York, NY, USA, 2002. ACM Press.
[11]
J. Hannemann, G. C. Murphy, and G. Kiczales. Role-based refactoring of crosscutting concerns. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 135--146, New York, NY, USA, 2005. ACM Press.
[12]
D. Hovemeyer and W. Pugh. Finding bugs is easy. SIGPLAN Not., 39(12):92--106, 2004.
[13]
G. Kotik and L. Markosian. Automating software analysis and testing using a program transformation system. In TAV3: Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification, pages 75--84, New York, NY, USA, 1989. ACM Press.
[14]
W. Kozaczynski, J. Ning, and A. Engberts. Program concept recognition and transformation. IEEE Trans. Softw. Eng., 18(12):1065--1075, 1992.
[15]
J. Liu, D. Batory, and C. Lengauer. Feature oriented refactoring of legacy applications. In ICSE '06: Proceeding of the 28th international conference on Software engineering, pages 112--121, New York, NY, USA, 2006. ACM Press.
[16]
M. Martin, B. Livshits, and M. S. Lam. Finding application errors and security flaws using pql: a program query language. SIGPLAN Not., 40(10):365--383, 2005.
[17]
O. d. Moor, M. Verbaere, E. Hajiyev, P. Avgustinov, T. Ekman, N. Ongkingco, D. Sereni, and J. Tibble. Keynote address: ql for source code analysis. Source Code Analysis and Manipulation, 2007. SCAM 2007. Seventh IEEE International Working Conference on, pages 3--16, 2007.
[18]
W. F. Opdyke. Refactoring object-oriented frameworks. PhD thesis, University of Illinois at Urbana-Champaign, Champaign, IL, USA, 1992.
[19]
D. L. Parnas. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15(12):1053--1058, 1972.
[20]
N. Rutar, C. B. Almazan, and J. S. Foster. A comparison of bug finding tools for java. In ISSRE '04: Proceedings of the 15th International Symposium on Software Reliability Engineering (ISSRE'04), pages 245--256, Washington, DC, USA, 2004. IEEE Computer Society.
[21]
M. Shonle, W. G. Griswold, and S. Lerner. Beyond refactoring: a framework for modular maintenance of crosscutting design idioms. In ESEC-FSE '07: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, pages 175--184, New York, NY, USA, 2007. ACM.
[22]
C. Simonyi. The death of computer languages, the birth of intentional programming, 1995.
[23]
E. Tilevich and G. Back. "Program, enhance thyself!" -- demand-driven pattern-oriented program enhancement,". In AOSD '08: Proceedings of the 7th international conference on Aspect-oriented software development, April 2008.
[24]
F. Tip, A. Kiezun, and D. Bäumer. Refactoring for generalization using type constraints. In OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pages 13--26, New York, NY, USA, 2003. ACM.
[25]
M. Verbaere, R. Ettinger, and O. de Moor. Jungl: a scripting language for refactoring. In ICSE '06: Proceedings of the 28th international conference on Software engineering, pages 172--181, New York, NY, USA, 2006. ACM.
[26]
D. von Dincklage. Making patterns explicit with metaprogramming. In GPCE '03: Proceedings of the 2nd international conference on Generative programming and component engineering, pages 287--306, New York, NY, USA, 2003. Springer-Verlag New York, Inc.

Cited By

View all
  • (2012)A framework for the checking and refactoring of crosscutting conceptsACM Transactions on Software Engineering and Methodology10.1145/2211616.221161821:3(1-47)Online publication date: 3-Jul-2012
  • (2011)Using metaphors from natural discussion to improve the design of arcumProceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools10.1145/2089155.2089165(39-44)Online publication date: 24-Oct-2011

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PASTE '08: Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
November 2008
92 pages
ISBN:9781605583822
DOI:10.1145/1512475
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 November 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. design patterns
  3. refactoring

Qualifiers

  • Research-article

Funding Sources

Conference

PASTE08

Acceptance Rates

Overall Acceptance Rate 57 of 159 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2012)A framework for the checking and refactoring of crosscutting conceptsACM Transactions on Software Engineering and Methodology10.1145/2211616.221161821:3(1-47)Online publication date: 3-Jul-2012
  • (2011)Using metaphors from natural discussion to improve the design of arcumProceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools10.1145/2089155.2089165(39-44)Online publication date: 24-Oct-2011

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media