Abstract
This chapter illustrates our proposal named Emergent Interfaces. To better illustrate how our interfaces work, we revisit the problematic scenarios of Chap. 3. Then, we show the general idea and how we compute dependencies. Afterwards, we explain our proposal to compute dependencies based on dataflow analyses, making such analyses feature sensitive. Then, we show how to use feature-sensitive analyses to compute Emergent Interfaces and the tool support named Emergo. Last but not least, we improve the expressiveness of Emergent Interfaces by using contracts and then illustrate how we can apply Emergent Interfaces in other mechanisms apart from preprocessors.
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.
Notice that this idea fits into ordinary interfaces as well. Changing the interfaces imply changing their clients.
References
Alves, V.: Implementing software product line adoption strategies. Ph.D. thesis, Federal University of Pernambuco (2007)
Baldwin, C.Y., Clark, K.B.: Design Rules, Volume 1: The Power of Modularity. The MIT Press, Cambridge (2000)
Brabrand, C., Ribeiro, M., Tolêdo, T., Borba, P.: Intraprocedural dataflow analysis for software product lines. In: Proceedings of the 11th International Conference on Aspect-Oriented Software Development (AOSD), pp. 13–24. ACM (2012)
Brabrand, C., Ribeiro, M., Tolêdo, T., Winther, J., Borba, P.: Intraprocedural dataflow analysis for software product lines. In: Lecture Notes in Computer Science: Transactions on Aspect-Oriented Software Development I, pp. 73–108. Springer (2012)
Clayberg, E., Rubel, D.: Eclipse: Building Commercial-Quality Plug-ins. Addison-Wesley Professional, Reading (2006)
Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Filho, F., Dantas, F.: Evolving software product lines with aspects: an empirical study on design stability. In: Proceedings of the 30th International Conference on Software Engineering (ICSE), pp. 261–270. ACM (2008)
Kawakami, L., Knabben, A., Rechia, D., Bastos, D., Pereira, O., Silva, R., Santos, L.: An object-oriented framework for improving software reuse on automated testing of mobile phones. In: Proceedings of Testing of Software and Communicating Systems—19th IFIP TC6/WG6.1 International Conference (TestCom), 7th International Workshop (FATES), pp. 199–211. Springer (2007)
Kawakami, L., Knabben, A., Rechia, D., Bastos, D., Pereira,O., Silva, R., Santos, L.: A test automation framework for mobile phones. In: Proceedings of the 8th IEEE Latin American Test Workshop. IEEE Computer Society (2007)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Proceedings of European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science, pp. 220–242 (1997)
Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: a behavioral interface specification language for Java. SIGSOFT Softw. Eng. Not. 31(3), 1–38 (2006)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. CACM 15(12), 1053–1058 (1972)
Ribeiro, M., Borba, P., Kästner, C.: Feature maintenance with emergent interfaces. In: Proceedings of the International Conference on Software Engineering (ICSE), pp. 989–1000. ACM (2014)
Ribeiro, M., Borba, P.: Towards feature modularization. In: Doctoral Symposium of the International Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA), pp. 225–226. ACM (2010)
Ribeiro, M., Pacheco, H., Teixeira, L., Borba, P.: Emergent feature modularization. In: Onward!, Affiliated with International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), pp. 11–18. ACM (2010)
Ribeiro, M., Toledo, T., Borba, P., Brabrand, C.: A tool for improving maintainabiliy of preprocessor-based product lines. In: Tools Session of the 2nd Brazilian Congress on Software (CBSoft) (2011)
Ribeiro, M., Toledo, T., Winther, J., Brabrand, C., Borba, P.: Emergo: a tool for improving maintainabiliy of preprocessor-based product lines. In: Proceedings of the 11th International Conference on Aspect-Oriented Software Development (AOSD), Companion, Demo Track, pp. 23–26. ACM (2012)
Winther, J.: Experimental Java compiler, January 2012. http://users-cs.au.dk/jwbrics/java
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2014 The Author(s)
About this chapter
Cite this chapter
Ribeiro, M., Borba, P., Brabrand, C. (2014). Emergent Feature Modularization. In: Emergent Interfaces for Feature Modularization. SpringerBriefs in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-11493-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-11493-4_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11492-7
Online ISBN: 978-3-319-11493-4
eBook Packages: Computer ScienceComputer Science (R0)