Abstract
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 behaviors that multiple aspects of an application can leverage and use. In order to maximally promote pointcut reuse across applications from a certain problem domain, a pointcut interface should preferably expose stable abstractions in that problem domain.
In this paper, we propose a top-down method for designing such stable pointcut interfaces. The method builds upon state-of-the-art domain analysis techniques and employs systematic re-engineering of use case models to discover stable abstractions that are anchored in the domain model of the application. At architecture creation time, these stable domain abstractions are mapped onto pointcut interfaces.
We provide algorithmic procedures for use case re-engineering and guidelines for architecture creation. This enables further experimentation with the proposed method and its automation, which in turn improves the ease of adoption. The paper enhances the detailed description of the method by applying it in a running example.
We have applied our method in two case studies, where we observe that the resulting pointcut interfaces can be reused for implementing the composition logic of different aspects without requiring modification to their pointcut signatures. In summary, both case studies provide compelling examples that illustrate non-trivial reuse of the pointcut interfaces that have been created using our method.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gudmundson, S., Kiczales, G.: Addressing practical software development issues in aspectj with a pointcut interface. In: Advanced Separation of Concerns (2001)
Sullivan, K.J., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: Wermelinger, M., Gall, H. (eds.) ESEC/SIGSOFT FSE, pp. 166–175. ACM (2005)
Kulesza, U., Alves, V., Garcia, A., de Lucena, C.J.P., Borba, P.: Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming. In: Morisio, M. (ed.) ICSR 2006. LNCS, vol. 4039, pp. 231–245. Springer, Heidelberg (2006)
Sommerville, I.: Software Engineering, 8th edn. Addison Wesley (June 2006)
Van Landuyt, D., Op de beeck, S., Kemper, B., Truyen, E., Joosen, W.: Building a next-generation digital publishing platform using aosd, http://distrinet.cs.kuleuven.be/projects/digitalpublishing/
Van Landuyt, D., Grégoire, J., Michiels, S., Truyen, E., Joosen, W.: Architectural design of a digital publishing system. CW Reports CW465, Department of Computer Science, K.U. Leuven, Leuven, Belgium (October 2006)
Joosen, W., Michiels, S., Truyen, E., Vandebroek, K., Van Landuyt, D.: A comprehensive model for digital publishing. CW Reports CW443, K.U. Leuven, Department of Computer Science (April 2006)
Lagaisse, B., Win, B.D., Joosen, W., Oeyen, J.V.: E-finance case study: analysis and requirements. CW-Report 438, DistriNet, KU Leuven (March 2006)
Van Landuyt, D., Op de beeck, S., Truyen, E., Joosen, W.: An aspect-oriented architecture for the e-finance case study, http://distrinet.cs.kuleuven.be/projects/aoarchitectureefinance/
Van Landuyt, D., Op de beeck, S., Truyen, E., Joosen, W.: Domain-driven discovery of stable abstractions for pointcut interfaces. In: AOSD 2009: Proceedings of the 8th ACM International Conference on Aspect-Oriented Software Development, pp. 75–86. ACM, New York (2009)
Van Landuyt, D., Op de beeck, S., Truyen, E., Joosen, W.: Method for the discovery of stable domain abstractions for reusable pointcut interfaces: proof-of-concept prototype, http://people.cs.kuleuven.be/~dimitri.vanlanduyt/sda/
Kelly, D.: A study of design characteristics in evolving software using stability as a criterion. IEEE Trans. Software Eng. 32(5), 315–329 (2006)
Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley (2004)
Nuseibeh, B.: Weaving together requirements and architectures. IEEE Computer 34(3), 115–117 (2001)
Jacobson, I.: Object-Oriented Software Engineering: A Use Case Driven Approach. Addison Wesley Longman Publishing Co., Inc., Redwood City (2004)
Jacobson, I., Ng, P.W.: Aspect-Oriented Software Development with Use Cases, 1st edn. Addison-Wesley (December 2004)
Araújo, J., Moreira, A.M.D.: An aspectual use-case driven approach. In: Pimentel, E., Brisaboa, N.R., Gómez, J. (eds.) JISBD, pp. 463–468 (2003)
Herrmann, S., Hundt, C., Mehner, K.: Mapping use case level aspects to object teams/java. In: OOPSLA Workshop on Early Aspects (2004)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley (2003)
Pinto, M., Fuentes, L.: AO-ADL: An ADL for Describing Aspect-Oriented Architectures. In: Moreira, A., Grundy, J. (eds.) Early Aspects Workshop 2007 and EACSL 2007. LNCS, vol. 4765, pp. 94–114. Springer, Heidelberg (2007)
Chitchyan, R., Rashid, A., Rayson, P., Waters, R.: Semantics-based composition for aspect-oriented requirements engineering. In: AOSD 2007: Proceedings of the 6th International Conference on Aspect-Oriented Software Development, pp. 36–48. ACM, New York (2007)
Sampaio, A., Rashid, A., Chitchyan, R., Rayson, P.: Ea-miner: Towards automation in aspect-oriented requirements engineering. Transactions on Aspect-Oriented Software Development 3, 4–39 (2007)
Sillito, J., Dutchyn, C., Eisenberg, A.D., De Volder, K.: Use Case Level Pointcuts. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 246–268. Springer, Heidelberg (2004)
SoBeNet: Software Security for Network Applications: IWT research project, http://distrinet.cs.kuleuven.ac.be/research/projects/showProject.do?projectID=SoBeNet
DigiNews: A Digital Newspaper Infrastructure for Mobile E-Paper Terminals: ITEA research project, http://distrinet.cs.kuleuven.ac.be/research/projects/showProject.do?projectID=DigiNews
CoCoMedia: Collaboratieve Community Media: IBBT research project, http://distrinet.cs.kuleuven.ac.be/research/projects/showProject.do?projectID=CoCoMedia
Frakes, W.B., Terry, C.: Software reuse: Metrics and models. ACM Comput. Surv. 28(2), 415–435 (1996)
Kazman, R., Abowd, G., Bass, L., Clements, P.: Scenario-based analysis of software architecture. IEEE Software 13, 47–55 (1996)
Kazman, R., Klein, M., Clements, P., Compton, N.L., Col, L.: Atam: Method for architecture evaluation (2000)
Baniassad, E.L.A., Clements, P.C., Araújo, J., Moreira, A., Rashid, A., Tekinerdogan, B.: Discovering early aspects. IEEE Software 23(1), 61–70 (2006)
Chitchyan, R., Pinto, M., Rashid, A., Fuentes, L.: COMPASS: Composition-Centric Mapping of Aspectual Requirements to Architecture. In: Rashid, A., Aksit, M. (eds.) Transactions on AOSD IV. LNCS, vol. 4640, pp. 3–53. Springer, Heidelberg (2007)
Niu, N., Easterbrook, S.: Analysis of Early Aspects in Requirements Goal Models: A Concept-Driven Approach. In: Rashid, A., Aksit, M. (eds.) Transactions on AOSD III. LNCS, vol. 4620, pp. 40–72. Springer, Heidelberg (2007)
Clarke, S., Baniassad, E.: Aspect-Oriented Analysis and Design: the Theme Approach. Addison-Wesley, Reading (2005)
France, R.B., Ray, I., Georg, G., Ghosh, S.: Aspect-oriented approach to early design modelling. IEEE Proceedings - Software 151(4), 173–186 (2004)
Rashid, A., Moreira, A., Araújo, J.: Modularisation and composition of aspectual requirements. In: AOSD 2003: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 11–20. ACM, New York (2003)
Fuentes, L., Gámez, N., Pinto, M., Valenzuela, J.A.: Using Connectors to Model Crosscutting Influences in Software Architectures. In: Oquendo, F. (ed.) ECSA 2007. LNCS, vol. 4758, pp. 292–295. Springer, Heidelberg (2007)
Yu, Y., do Prado Leite, J.C.S., Mylopoulos, J.: From goals to aspects: Discovering aspects from requirements goal models. In: RE, pp. 38–47. IEEE Computer Society (2004)
Griss, M.L.: Implementing product-line features by composing aspects. In: Donohoe, P. (ed.) SPLC, pp. 271–289. Kluwer (2000)
Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242. IEEE Computer Society (2007)
Katara, M., Katz, S.: Architectural views of aspects. In: AOSD 2003: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 1–10. ACM, New York (2003)
Munoz, F., Baudry, B., Barais, O.: Improving maintenance in aop through an interaction specification framework. In: The Proceedings of the 24th International Conference on Software Maintentance, ICSM 2008, pp. 77–86. IEEE (2008)
Barais, O., Cariou, E., Duchien, L., Pessemier, N., Seinturier, L.: Transat: A framework for the specification of software architecture evolution. In: ECOOP First International Workshop on Coordination and Adaptation Techniques for Software Entities (WCAT 2004), Oslo, Norway (June 2004)
Kulesza, U., Alves, V., Garcia, A., Neto, A.C., Cirilo, E., de Lucena, C.J.P., Borba, P.: Mapping Features to Aspects: A Model-Based Generative Approach. In: Moreira, A., Grundy, J. (eds.) Early Aspects Workshop 2007. LNCS, vol. 4765, pp. 155–174. Springer, Heidelberg (2007)
Araújo, J., Moreira, A., Brito, I., Rashid, A.: Aspect-oriented requirements with UML. In: Kandé, M., Aldawud, O., Booch, G., Harrison, B. (eds.) Workshop on Aspect-Oriented Modeling with UML (2002)
Sousa, G., Soares, S., Borba, P., Castro, J.: Separation of crosscutting concerns from requirements to design: Adapting the use case driven approach. In: Proceedings of the Early Aspects Workshop at AOSD 2004 (2004)
Koppen, C., Stoerzer, M.: Pcdiff:attacking the fragile pointcut problem. In: First European Interactive Workshop on Aspects in Software, EIWAS (2004)
Tourwé, T.: On the existence of the aosd-evolution paradox. In: AOSD Workshop on Software Engineering Properties of Languages for Aspect Technologies (2003)
Aldrich, J.: Open Modules: Modular Reasoning About Advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)
Kellens, A., Mens, K., Brichau, J., Gybels, K.: Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 501–525. Springer, Heidelberg (2006)
Mens, K., Kellens, A., Pluquet, F., Wuyts, R.: Co-evolving code and design with intentional views: A case study. Computer Languages, Systems & Structures 32(2-3), 140–156 (2006)
Meekel, J., Horton, T.B., France, R.B., Mellone, C., Dalvi, S.: From domain models to architecture frameworks. In: SSR 1997: Proceedings of the 1997 Symposium on Software Reusability, pp. 75–80. ACM, New York (1997)
Burke, B., Monson-Haefel, R.: Enterprise JavaBeans 3.0, 5th edn. O’Reilly Media, Inc. (2006)
Tekinerdoğan, B., Aksit, M.: Deriving Design Aspects from Conceptual Models. In: Demeyer, S., Dannenberg, R.B. (eds.) ECOOP 1998 Workshops. LNCS, vol. 1543, pp. 410–413. Springer, Heidelberg (1998)
Tekinerdogan, B., Aksit, M.: Synthesis based software architecture design. In: Software Architectures and Component Technology, pp. 143–173. Kluwer Academic Publishers (2002)
Hoffman, K., Eugster, P.: Towards reusable components with aspects: an empirical study on modularity and obliviousness. In: ICSE 2008: Proceedings of the 30th International Conference on Software Engineering, pp. 91–100. ACM, New York (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Van Landuyt, D., Op de beeck, S., Truyen, E., Joosen, W. (2012). Domain-Driven Discovery of Stable Abstractions for Pointcut Interfaces. In: Leavens, G.T., Chiba, S., Haupt, M., Ostermann, K., Wohlstadter, E. (eds) Transactions on Aspect-Oriented Software Development IX. Lecture Notes in Computer Science, vol 7271. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35551-6_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-35551-6_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35550-9
Online ISBN: 978-3-642-35551-6
eBook Packages: Computer ScienceComputer Science (R0)