skip to main content
research-article

Modular aspect-oriented design with XPIs

Published: 08 September 2010 Publication History

Abstract

The emergence of aspect-oriented programming (AOP) languages has provided software designers with new mechanisms and strategies for decomposing programs into modules and composing modules into systems. What we do not yet fully understand is how best to use such mechanisms consistent with common modularization objectives such as the comprehensibility of programming code, its parallel development, dependability, and ease of change. The main contribution of this work is a new form of information-hiding interface for AOP that we call the crosscut programming interface, or XPI. XPIs abstract crosscutting behaviors and make these abstractions explicit. XPIs can be used, albeit with limited enforcement of interface rules, with existing AOP languages, such as AspectJ. To evaluate our notion of XPIs, we have applied our XPI-based design methodology to a medium-sized network overlay application called Hypercast. A qualitative and quantitative analysis of existing AO design methods and XPI-based design method shows that our approach produces improvements in program comprehensibility, in opportunities for parallel development, and in the ease when code can be developed and changed.

References

[1]
Aldrich, J. 2005. Open modules: Modular reasoning about advice. In Open Modules: Modular Reasoning About Advice. Lecture Notes in Computer Science, vol. 3586, Springer, Berlin, 144--168.
[2]
Altman, R., Cyment, A., and Kicillof, N. 2005. On the need for Setpoints. In European Interactive Workshop on Aspects in Software. http://www.eclipse.org/aspectj/. AspectJ project.
[3]
Baldwin, C. Y. and Clark, K. B. 2000. Design Rules: The Power of Modularity. MIT Press, Cambridge, MA.
[4]
Beck, K. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading, MA.
[5]
Bonér, J. 2004. What are the key issues for commercial AOP use: How does AspectWerkz address them? In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD). 5--6.
[6]
Clifton, C., Leavens, G. T., and Noble, J. 2007. MAO: Ownership and effects for more effective reasoning about aspects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'07). Lecture Notes in Computer Science, vol. 4609, Springer, Berlin, 451--475.
[7]
Clifton, C. and Leavens, G. T. 2003. Obliviousness, modular reasoning, and the behavioral subtyping analogy. In SPLAT: Software Engineering Properties of Languages for Aspect Technologies, L. Bergmans et al. Eds.
[8]
Clifton, C. and Leavens, G. T. 2002. Observers and assistants: A proposal for modular aspect-oriented reasoning. In Proceedings of the Foundations of Aspect-Oriented Languages Workshop (FOAL'02). 33--44.
[9]
Colyer, A. and Clement, A. 2004. Large-scale AOSD for middleware. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04). ACM Press, New York, 56--65.
[10]
Colyer, A., Clement, A., Harley, G., and Webster, M. 2005. Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools. Pearson Education.
[11]
Colyer, A., Harrop, R., Johnson, R., Vasseur, A., Beuche, D., and Beust, C. 2006. Point: AOP will see widespread adoption/counterpoint: AOP has yet to prove its value. IEEE Softw. 23, 1, 72--75.
[12]
Dantas, D. S. and Walker, D. 2003. Aspects, information hiding and modularity. Tech. rep. TR-696-04, Princeton University.
[13]
Dantas, D. S. and Walker, D. 2006. Harmless advice. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 383--396.
[14]
Douence, R., Fradet, P., and Südholt, M. 2004. Composition, reuse and interaction analysis of stateful aspects. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04). ACM Press, New York, 141--150.
[15]
Elrad, T., Filman, R. E., and Bader, A. 2001. Aspect-oriented programming. Comm. ACM 44, 10, 29--32.
[16]
Filman, R. E. and Friedman, D. P. 2005a. Aspect-oriented programming is quantification and obliviousness. In Aspect-Oriented Software Development, Addison-Wesley, Reading, MA. 21--35.
[17]
Filman, R. E. and Friedman, D. P. 2005b. Aspect-Oriented Programming is Quantification and Obliviousness. Addison-Wesley, Reading, MA, 21--35.
[18]
Gamma, E., Helm, R., Vlissides, J., and Johnson, R. E. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA.
[19]
Gradecki, J. D. and Lesiecki, N. 2003. Mastering AspectJ: Aspect-Oriented Programming in Java. Wiley, New York.
[20]
Griswold, W. G. 2001. Coping with crosscutting software changes using information transparency. In Proceedings of the 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection'01). 250--265.
[21]
Griswold, W. G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., and Rajan, H. 2006. Modular software design with crosscutting interfaces. IEEE Softw. 23, 1, 51--60.
[22]
Guttag, J. V. and Horning, J. J. 1993. Larch: Languages and Tools for Formal Specification. Springer, Berlin.
[23]
Guttag, J. V., Horning, J. J., and Wing, J. M. 1985. The Larch family of specification languages. IEEE Softw. 2, 5, 24--36.
[24]
Hoffman, K. and Eugster, P. 2007. Bridging Java and AspectJ through explicit join points. In Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java (PPPJ'07). ACM, New York, 63--72.
[25]
HyperCast. HyperCast project. http://www.cs.virginia.edu/~mngroup/hypercast/.
[26]
Jacobson, I. and Ng, P.-W. 2005. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, Reading, MA.
[27]
Kellens, A., Mens, K., Brichau, J., and Gybels, K. 2006. Managing the evolution of aspect-oriented software with model-based pointcuts. In Proceedings of the European Conference on Object-oriented Programming. 501--525.
[28]
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. 2001a. Getting started with AspectJ. Comm. ACM 44, 10, 59--65.
[29]
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. 2001b. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01). 327--353.
[30]
Kiczales, G. and Mezini, M. 2005. Aspect-oriented programming and modular reasoning. In Proceedings of the 27th International Conference on Software Engineering (ICSE'05).
[31]
Kiselev, I. 2002. Aspect-Oriented Programming with AspectJ. Sams. Indianapolis, IN.
[32]
Krishnamurthi, S., Fisler, K., and Greenberg, M. 2004. Verifying aspect advice modularly. SIGSOFT Softw. Engin. Notes 29, 6, 137--146.
[33]
Larochelle, D., Scheidt, K., Sullivan, K., Wei, Y., Winstead, J., and Wood, A. 2003. Join point encapsulation. In Proceedings of the Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT) at AOSD'03.
[34]
Laddad, R. 2003. AspectJ in Action: Practical Aspect-Oriented Programming. Manning.
[35]
Leavens, G.T., Baker, A.L., and Ruby, C. 2006. Preliminary design of JML: A behavioral interface specification language for Java. Preliminary design of JML. ACM SIGSOFT Softw. Engin. Notes 31, 3, 1--38.
[36]
Lesiecki, N. 2005. Applying AspectJ to J2EE application development. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05). ACM Press, New York.
[37]
Liebeherr, J. and Beam, T. K. 1999. Hypercast: A protocol for maintaining multicast group members in a logical hypercube topology. In Networked Group Communication, 72--89.
[38]
Liebeherr, J., Nahas, M., and Si, W. 2002. Application-layer multicasting with Delaunay triangulation overlays. EEE J. Select. Areas Comm. 20, 8.
[39]
Liebeherr, J., Wang, J., and Zhang, G. 2003. Programming overlay networks with overlay sockets. In Group Communications and Charges. Lecture Notes in Computer Science, vol. 2816, Springer, Berlin, 242--253.
[40]
Lopes, C. V. and Bajracharya, S. K. 2005. An analysis of modularity in aspect oriented design. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05). ACM, New York, 15--26.
[41]
Meyer, B. 1988. Eiffel: A language and environment for software engineering. J. Syst. Softw. 8, 3, 199--246.
[42]
Meyer, B. 1992. Eiffel: The Language. Object-Oriented Series. Prentice Hall, Englewood Cliffs, NJ.
[43]
Morgan, C., Volder, K. D., and Wohlstadter, E. 2007. A static aspect language for checking design rules. In Proceedings of the 6th International Conference on Aspect-Oriented Software Development (AOSD). 63--72.
[44]
Ongkingco, N., Avgustinov, P., Tibble, J., Hendren, L., De Moor, O., and Sittampalam, G. 2006. Adding open modules to AspectJ. In Proceedings of the International Conference on Aspect-Oriented Software Development. 39--50.
[45]
Ostermann, K. 2008. Reasoning about aspects with common sense. In Proceedings of the 7th International Conference on Aspect-Oriented Software Development (AOSD'08). ACM, New York, 48--59.
[46]
Parnas, D. L. 1972. On the criteria to be used in decomposing systems into modules. Comm. ACM 15, 12, 1053--1058.
[47]
Pawlak, R., Retaillé, J.-P., and Seinturier, L. 2005. Foundations of AOP for J2EE Development. Apress.
[48]
Rajan, H. and Leavens, G. T. 2008. Ptolemy: A language with quantified, typed events. In Proceedings of the 22nd European Conference on Object-Oriented Programming (ECOOP'08).
[49]
Rajan, H. and Sullivan, K. J. 2005. Classpects: Unifying aspect- and object-oriented language design. In Proceedings of the 27th International Conference on Software Engineering (ICSE'05). ACM Press, New York, 59--68.
[50]
Rashid, A. 2004. Aspect-Oriented Database Systems. Springer, Berlin.
[51]
Rho, T., Kneisl, G., and Appeltauer, M. 2006. Fine-grained generic aspects. In Proceedings of the Foundations of Object-Oriented Language Workshop (FOAL).
[52]
Rosenblum, D. S. 1995. A practical approach to programming with assertions. IEEE Trans. Softw. Engin. 21, 1,19--31.
[53]
Sabbah, D. 2004. Aspects: From promise to reality. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD). ACM, New York, 1--2.
[54]
Sakurai, K. and Masuhara, H. 2007. Test-based pointcuts: A robust pointcut mechanism based on unit test cases for software evolution. In Proceedings of the 3rd Workshop on Linking Aspect Technology and Evolution. ACM, New York.
[55]
Steele, G. 1990. Common LISP: The Language 2nd Ed. Digital Press.
[56]
Steimann, F. 2006. The paradoxical success of aspect-oriented programming. In Proceedings of the OOPSLA Conference. ACM, New York, 481--497.
[57]
Steward, D. V. 1981. The design structure system: A method for managing the design of complex systems. IEEE Trans. Engin. Manage. 28, 71--74.
[58]
Sullivan, K. J., Griswold, W. G., Cai, Y., and Hallen, B. 2001. The structure and value of modularity in software design. In Proceedings of the 8th European Software Engineering Conference. (Held jointly with the 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering). ACM, New York, 99--108.
[59]
Sullivan, K. J., Griswold, W. G., Song, Y., Cai, Y., Shonle, M., Tewari, N., and Rajan, H. 2005. Information hiding interfaces for aspect-oriented design. ACM SIGSOFT Softw. Engin. Notes 30, 5, 166--175.
[60]
Tarr, P., Ossher, H., Harrison, W., and Sutton, S. M. 1999. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings of the International Conference on Software Engineering. 107--119.
[61]
Teitelman, W. 1966. Pilot: A step toward man-computer symbiosis. Ph.D. dissertation, AITR-221, MIT.
[62]
Thomas, D. 2005. Transitioning AOSD from research park to main street. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05). ACM, New York.
[63]
Tourwé, T., Brichau, J., and Gybels, K. 2003. On the existence of the AOSD-evolution paradox. In AOSD Workshop on Software-Engineering Properties of Languages for Aspect Technologies.

Cited By

View all

Index Terms

  1. Modular aspect-oriented design with XPIs

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Software Engineering and Methodology
    ACM Transactions on Software Engineering and Methodology  Volume 20, Issue 2
    August 2010
    139 pages
    ISSN:1049-331X
    EISSN:1557-7392
    DOI:10.1145/1824760
    Issue’s Table of Contents
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 September 2010
    Accepted: 01 April 2009
    Revised: 01 February 2009
    Received: 01 June 2008
    Published in TOSEM Volume 20, Issue 2

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Aspect-oriented programming
    2. design rules
    3. options

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 22 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    Full Access

    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