Skip to main content

Emergent Feature Modularization

  • Chapter
  • First Online:
  • 302 Accesses

Part of the book series: SpringerBriefs in Computer Science ((BRIEFSCOMPUTER))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Notice that this idea fits into ordinary interfaces as well. Changing the interfaces imply changing their clients.

References

  1. Alves, V.: Implementing software product line adoption strategies. Ph.D. thesis, Federal University of Pernambuco (2007)

    Google Scholar 

  2. Baldwin, C.Y., Clark, K.B.: Design Rules, Volume 1: The Power of Modularity. The MIT Press, Cambridge (2000)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Clayberg, E., Rubel, D.: Eclipse: Building Commercial-Quality Plug-ins. Addison-Wesley Professional, Reading (2006)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Article  Google Scholar 

  11. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)

    Book  MATH  Google Scholar 

  12. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. CACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Winther, J.: Experimental Java compiler, January 2012. http://users-cs.au.dk/jwbrics/java

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Márcio Ribeiro .

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics