Abstract
Aspect-oriented software development (AOSD) and software product line engineering (SPLE) are two approaches for software reuse, which promote model-driven development and variability management. While AOSD supports developing crosscutting concerns separately from traditional units and weaving them to different software products, software product line engineering (SPLE) handles the development and maintenance of families of software products utilizing different domain and application engineering techniques. In this chapter, we review the existing points of synergy between these two approaches and, in particular, the complementary and aggregative use of these approaches. Furthermore, we present a method that uses aspect-oriented principles for horizontal reuse and domain engineering guidelines for vertical reuse. We term this kind of use dimensional synergy. The presented method supports defining families of aspects and their weaving rules applied to families of software products, potentially increasing the reuse throughout the entire development life cycle. We exemplify the method on a Check-In check-Out product line and a family of security aspects, utilizing UML 2 class and sequence diagrams.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
A few methods can be classified as both, e.g., [21]. However, these methods usually focus on one of these paradigms and extend the methods towards the other.
- 2.
ADOM actually includes a sixth stereotype, «reuse», which is out of the scope of this chapter.
- 3.
We assume that the name spaces of the concern specification and the match pattern of the same aspect are distinctive, otherwise adding the model (package) name to the element names is required.
References
Aldawud, O., Bader, A., Elrad, T.: Weaving with statecharts. Workshop on Aspect-Oriented Modeling with UML. Ensehede, The Netherlands (2002)
Aldawud, O., Elrad, T., Bader, A.: A UML profile for aspect oriented modeling. Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa Bay (2001)
Alves de Oliveira, E., Gimenes, I.M.S., Huzita, E.H.M., Maldonado, J.C.: A variability management process for software products lines. In: The 2005 Conference of the Centre for Advanced Studies on Collaborative Research, Toranto, pp. 225–241. IBM (2005)
Anastasopoulos, M., Muthig, D.: An evaluation of aspect-oriented programming as a product line implementation technology. Software reuse: methods, techniques, and tools. LNCS 3107, 141–156 (2004)
AspectJ. http://www.eclipse.org/aspectj/, Access date: 21/4/2013
AspectWerkz. http://aspectwerkz.codehaus.org/
Bachmann, F., Clements, P.C.: Variability in software product lines. Technical Report CMU/SEI-2005-TR-012. http://www.sei.cmu.edu/library/abstracts/reports/05tr012.cfm (2005)
Barth, B., Butler, G., Czarnecki, K., Eisenecker, U.: Generative programming. In: ECOOP 2001 Workshops, Panels and Posters, Budapest. Lecture Notes in Computer Science, vol. 2323, pp. 135–149. Springer, Berlin (2002)
Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework. The Eclipse Series. Addison-Wesley, Reading (2003)
Chen, L., Babar, M.A.: A systematic review of evaluation of variability management approaches in software product lines. Inf. Software Technol. 53, 344–362 (2011)
Chitchyan, R., Rashid, A., Sawyer, P., Garcia, A., Alarcon, M.P., Bakker, J., Tekinerdogan, B., Jackson, A., Clarke, S.: Survey of aspect oriented analysis and design approaches. AOSD-Europe Network of Excellence. http://www.aosd-europe.net/ (2005)
Clarke, S.: Extending standard UML with model composition semantics. Sci. Comput. Program. 44(1), 71–100 (2002). http://www.cs.tcd.ie/people/Siobhan.Clarke/papers/SoCP2001.pdf
Clauß, M.: Generic modeling using UML extensions for variability. In: OOPSLA 2001 Workshop on Domain Specific Visual Languages, pp. 11–18 (2001)
Clauß, M.: Modeling variability with UML. In: GCSE 2001 Young Researchers Workshop (2001)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2002)
Coriat, M., Jourdan, J., Fabien, B.: The SPLIT method: building product lines for software-intensive systems. In: The 1st Conference on Software Product Lines: Experience and Research Directions, pp. 147–166 (2000)
Baniassad, E., Clements, P., Araujo, J., Moreira, A., Rashid, A., Tekinerdogan, B.: Discovering early aspects. IEEE Softw. 23(1), 61–70 (2006)
Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming: introduction. Commun. ACM 44(10), 29–32 (2001)
Frakes, W.B., Kang, K.: Software Reuse research: status and future. IEEE Trans. Software. Eng. 31(7), 529–536 (2005)
Fuentes, L., Sànchez, P.: Designing and Weaving Aspect-Oriented Executable UML models. J. Object. Technol. 6(7), 109–136. (2007) Special Issue: Aspect-Oriented Modeling, http://www.jot.fm/issues/issue_2007_08/article5
Gomaa, H.: Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures. Addison-Wesley Professional, Boston (2004)
Griss, M.L.: Implementing product-line features by composing aspects. In: Proceedings of the First Conference on Software Product Lines: Experience and Research Directions (SPLC), Kluwer, Norwell, pp. 271–288 (2000)
Griss, M., Favaro, J., d’Alessandro, M.: Integrating feature modeling with the RSEB. In: The 5th International Conference on Software Reuse (ICSR), pp. 76–85. IEEE Computer Society, Washington, DC (1998)
Groher, I., Voelter, M.: XWeave—models and aspects in concert. In: Proceedings of the 10th International Workshop on Aspect-Oriented Modeling, pp. 35–40. ACM, New York (2007)
Groher, I., Baumgarth, T.: Aspect-orientation from design to code. Workshop on Aspect-Oriented Requirements Engineering and Architecture Design, Lancaster (2004)
Groher, I., Schulze, S.: Generating aspect code from UML models. Workshop on Aspect-Oriented Modelling with UML (held with AOSD 2003), Boston (2003)
Halmans, G., Pohl, K., Sikora, E.: Documenting application-specific adaptations in software product line engineering. In: The 20th International Conference on Advanced Information Systems Engineering (CAiSE'2008), LNSC, vol. 5074, pp. 109–123. Springer, Berlin (2008)
Halmans, G., Pohl, K.: Communicating the variability of a software-product family to customers. Softw. Syst. Model. 2(1), 15–36 (2003)
Herrmann, S.: Composable designs with UFA. Workshop on Aspect-oriented Modelling, Enschede, The Netherlands (2002)
Kande, M.M.: A concern-oriented approach to software architecture. Computer Science PhD, Swiss Federal Institute of Technology (EPFL), Lausanne (2003)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University (1990)
Katara, M., Katz, S.: A concern architecture view for aspect-oriented software design. Software. Syst. Model. (2006) doi: 10.1007/s10270-006-0032-x, Springer
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP), LNCS, vol. 1241, pp. 220–242. Springer, Berlin (1997)
Kim, D., France, R., Ghosh, S.: A UML-based language for specifying domain-specific patterns. J. Vis. Lang. Comput. 15(3–4), 265–289 (2004)
Klein, J., Fleurey F., Jézéquel, J.: Weaving multiple aspects in sequence diagrams. In: Transactions on Aspect Oriented Software Development, LNCS vol. 4620, pp. 167–199. Springer, Berlin (2007)
Kulesza, U., Garcia, A., Lucena, C.: Generating aspect-oriented agent architectures. In: Workshop on Early Aspects, pp. 42–49 (2004)
Kulesza, U., Garcia, A., Bleasby, F., Lucena, C.: Instantiating and customizing product line architectures using aspects and crosscutting feature models. In: Workshop on Early Aspects OOPSLA (2005)
Lee, K., Kang, K.C., Kim, M., Park, S.: Combining feature-oriented analysis and aspect-oriented programming for product line asset development. In: Proceedings of the 10th International on Software Product Line Conference (SPLC), Baltimore, pp. 103–112. IEEE Computer Society, Washington, DC (2006)
Lopez-Herrejon, R., Batory, D.: From crosscutting concerns to product lines: a function composition approach. Technical Report TR-06-24, University of Texas, Austin (2006)
Loughran, N., Sampaio, A., Rashid, A., Bruel, J.M.: From requirements documents to feature models for aspect oriented product line implementation. In: Satellite Events at the MoDELS 2005 Conference. Heidelberg, LNCS, vol. 3844, pp. 262–271. Springer, Berlin (2006)
Morin, B., Barais, O., Jézéquel, J.M.: Weaving aspect configurations for managing system variability. In: 2nd International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), pp. 53–62. ICB Research Report No. 22 (2008)
Morisio, M., Travassos, G., Stark, M.: Extending UML to support domain analysis. In: The 15th IEEE International Conference on Automated Software Engineering, pp. 321–324. IEEE Computer Society, Washington, DC (2000)
OMG: Unified Modeling Language: Superstructure, Version 2.4.1. http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/ (2011). Access 21 Apr 2013
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)
Reddy, Y.R., Ghosh, S., France, R., Straw, G., Bieman, J., McEachen, N., Song, E., Georg, G.: Directives for composing aspect-oriented design class models. Transactions on aspect-oriented software development. LNCS 3880, 75–105 (2006)
Reinhartz-Berger, I., Sturm, A.: Enhancing UML models: a domain analysis approach. J. Database Manag. 19(1), 74–94 (2008)
Reinhartz-Berger, I., Sturm, A.: Utilizing domain models for application design and validation. Inf. Software. Technol. 51(8), 1275–1289 (2009)
Reinhartz-Berger, I., Tsoury, A.: Experimenting with the comprehension of feature-oriented and UML-based core assets. In: Halpin, T. et al. (eds.) BPMDS 2011 and EMMSAD 2011, Lecture Notes in Business Information Processing (LNBIP) vol. 81, pp. 468–482 Springer, Berlin (2011)
Riebisch, M., Böllert, K., Streitferdt, D., Franczyk, B.: Extending the UML to model system families. In: Fifth International Conference on Integrated Design and Process Technology (IDPT), Dallas, 4–8 June 2000
Robak, S., Franczyk, B., Politowicz, K.: Extending the UML for modeling variability for system families. Int. J. Appl. Math. Comput. Sci. 12(2), 285–298 (2002)
Schauerhuber, A., Schwinger, W., Kapsammer, E., Retschitzegger, W., Wimmer M., Kappel, G.: A survey on aspect-oriented modeling approaches. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.141.7562. Accessed 21 April 2013
Sinnema, M., Deelstraa, S.: Classifying variability modeling techniques. Inf. Software. Technol. 49(7), 717–739 (2007)
Soffer, P., Reinhartz-Berger, I., Sturm, A.: Facilitating reuse by specialization of reference models for business process design. CAiSE'07 Workshop Proceedings, Tapir Academic Press, pp. 339–347 (2007)
Crawford, D.: Special issue on aspect-oriented programming. Commun. ACM 44(10) (2001)
Stein, D., Hanenberg, S., Unland, R.: Expressing different conceptual models of join point selections in aspect-oriented design. In: Proceedings of the 5th International Conference on Aspect-Oriented Software Development (AOSD), ACM, pp. 15–26 (2006)
Stein, D., Hanenberg, S., Unland, R.: A UML-based aspect-oriented design notation for AspectJ. In: Proceeding of the 1st International Conference on Aspect-Oriented Software Development, ACM, pp. 106–112 (2002)
Stoiber, R., Meier, S., Glinz, M.: Visualizing product line domain variability by aspect-oriented modeling. In: Proceedings of the 2nd International Workshop on Requirements Engineering Visualization (REV), pp. 8–13. IEEE Computer Society, Washington, DC (2007)
Svahnberg, M., Van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques. Software. Pract. Experience 35(8), 705–754 (2005)
Webber, D., Gomaa, H.: Modeling variability in software product lines with variation point model. Sci. Comput. Program. 53, 305–331 (2004)
Wikipedia: Security engineering. http://en.wikipedia.org/wiki/Security_engineering (2007). Accessed 21 Apr 2013
Yu, Y., Leite, J.C.S.d.P., Mylopoulos, J.: From goals to aspects: discovering aspects from requirements goal model. In: International Conference on Requirements Engineering, Kyoto (2004)
Ziadi, T., Hélouët, L., Jézéquel, J.M.: Towards a UML profile for software product lines. Software product-family engineering (PFE'2004). LNCS 3014, 129–139 (2004)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix: The Woven Model for Secured CICO Applications
Appendix: The Woven Model for Secured CICO Applications
Figures 13, 14 present the woven model resulted after weaving the security (domain) aspect into the CICO (domain) base model. In these figures, the elements that belong only to the base model appear in white, the base model elements that are combined with aspect elements appear in bold and gray, and the elements that are added due to the aspect model, or more accurately due to the merge guidance, appear in gray.
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Reinhartz-Berger, I. (2013). When Aspect-Orientation Meets Software Product Line Engineering. In: Reinhartz-Berger, I., Sturm, A., Clark, T., Cohen, S., Bettin, J. (eds) Domain Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36654-3_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-36654-3_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36653-6
Online ISBN: 978-3-642-36654-3
eBook Packages: Computer ScienceComputer Science (R0)