Skip to main content
Erschienen in: Empirical Software Engineering 2/2019

19.07.2018

The modular and feature toggle architectures of Google Chrome

verfasst von: Md Tajmilur Rahman, Peter C. Rigby, Emad Shihab

Erschienen in: Empirical Software Engineering | Ausgabe 2/2019

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Software features often span multiple directories and conceptual modules making the extraction of feature architectures difficult. In this work, we extract a feature toggle architectural view and show how features span the conceptual, concrete, and reference architectures. Feature toggles are simple conditional flags that allow developers to turn a feature on or off in a running system. They are commonly used by large web companies, including Google, Netflix and Facebook to selectively enable and disable features. Recently, libraries to help inject and manage toggles have been created for all the major programming languages. We extract the feature toggles from the Google Chrome web browser to illustrate their use in understanding the architecture of a system. Since there is no high-level conceptual and concrete architectures for Chrome, we had to manually derive these representations from available documentation and map them into the source code. These modular representations of a modern web browser allowed us to update the 12 year old research on browser reference architectures with current technologies and browser concepts. Mining the usages of feature toggles in the source code, we were able to map them on to the modular representation to create a feature toggle architectural view of Chrome. We are also able to show which features are contained in a module and which modules a feature spans. Throughout the paper, we show how the feature toggle view can give new perspectives into the feature architecture of a system.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Fußnoten
1
For example, Java has 5 competing toggle libraries http://​featureflags.​io/​java-feature-flags/​accessed May 20, 2018
 
Literatur
Zurück zum Zitat Adams B, McIntosh S (2016) Modern release engineering in a nutshell–why researchers should care. In: 2016 IEEE 23rd International conference on software analysis, evolution, and reengineering (SANER), vol 5. IEEE, pp 78–90 Adams B, McIntosh S (2016) Modern release engineering in a nutshell–why researchers should care. In: 2016 IEEE 23rd International conference on software analysis, evolution, and reengineering (SANER), vol 5. IEEE, pp 78–90
Zurück zum Zitat Antoniol G, Canfora G, Casazza G, De Lucia A, Merlo E (2002) Recovering traceability links between code and documentation. IEEE Trans Softw Eng 28(10):970–983CrossRef Antoniol G, Canfora G, Casazza G, De Lucia A, Merlo E (2002) Recovering traceability links between code and documentation. IEEE Trans Softw Eng 28(10):970–983CrossRef
Zurück zum Zitat Batory D, Liu J, Sarvela JN (2003) Refinements and multi-dimensional separation of concerns. In: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on foundations of software engineering ESEC/FSE-11. ACM, New York, pp 48–57, https://doi.org/10.1145/940071.940079 Batory D, Liu J, Sarvela JN (2003) Refinements and multi-dimensional separation of concerns. In: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on foundations of software engineering ESEC/FSE-11. ACM, New York, pp 48–57, https://​doi.​org/​10.​1145/​940071.​940079
Zurück zum Zitat Benavides D, Trinidad P, Ruiz-Cortés A (2005) Automated reasoning on feature models. In: Proceedings of the 17th international conference on advanced information systems engineering CAiSE’05. Springer, Berlin, pp 491–503, https://doi.org/10.1007/11431855_34 Benavides D, Trinidad P, Ruiz-Cortés A (2005) Automated reasoning on feature models. In: Proceedings of the 17th international conference on advanced information systems engineering CAiSE’05. Springer, Berlin, pp 491–503, https://​doi.​org/​10.​1007/​11431855_​34
Zurück zum Zitat Corazza A, Di Martino S, Scanniello G (2010) A probabilistic based approach towards software system clustering. In: Proceedings of the 2010 14th European conference on software maintenance and reengineering CSMR ’10. IEEE Computer Society, Washington, DC, pp 88–96. https://doi.org/10.1109/CSMR.2010.36 Corazza A, Di Martino S, Scanniello G (2010) A probabilistic based approach towards software system clustering. In: Proceedings of the 2010 14th European conference on software maintenance and reengineering CSMR ’10. IEEE Computer Society, Washington, DC, pp 88–96. https://​doi.​org/​10.​1109/​CSMR.​2010.​36
Zurück zum Zitat Corazza A, Martino SD, Maggio V, Scanniello G (2011) Investigating the use of lexical information for software system clustering. In: Proceedings of the 2011 15th European conference on software maintenance and reengineering CSMR ’11. IEEE Computer Society, Washington, DC, pp 35–44. https://doi.org/10.1109/CSMR.2011.8 Corazza A, Martino SD, Maggio V, Scanniello G (2011) Investigating the use of lexical information for software system clustering. In: Proceedings of the 2011 15th European conference on software maintenance and reengineering CSMR ’11. IEEE Computer Society, Washington, DC, pp 35–44. https://​doi.​org/​10.​1109/​CSMR.​2011.​8
Zurück zum Zitat Czarnecki K, Helsen S, Eisenecker U (2004) Staged configuration using feature models. Springer, Berlin, pp 266–283 Czarnecki K, Helsen S, Eisenecker U (2004) Staged configuration using feature models. Springer, Berlin, pp 266–283
Zurück zum Zitat Dagenais B, Robillard MP (2012) Recovering traceability links between an API and its learning resources. In: Proceedings of the 34th ACM/IEEE international conference on software engineering, pp 47 –57 Dagenais B, Robillard MP (2012) Recovering traceability links between an API and its learning resources. In: Proceedings of the 34th ACM/IEEE international conference on software engineering, pp 47 –57
Zurück zum Zitat Dit B, Revelle M, Gethers M, Poshyvanyk D (2013) Feature location in source code: a taxonomy and survey. J Softw Evol Process 25(1):53–95CrossRef Dit B, Revelle M, Gethers M, Poshyvanyk D (2013) Feature location in source code: a taxonomy and survey. J Softw Evol Process 25(1):53–95CrossRef
Zurück zum Zitat Dixon E, Enos E, Brodmerkle S (2011) A/b testing of a webpage. US Patent 7,975,000 Dixon E, Enos E, Brodmerkle S (2011) A/b testing of a webpage. US Patent 7,975,000
Zurück zum Zitat Dubinsky Y, Rubin J, Berger T, Duszynski S, Becker M, Czarnecki K (2013) An exploratory study of cloning in industrial software product lines. In: Proceedings of the 2013 17th European conference on software maintenance and reengineering CSMR ’13. IEEE Computer Society, Washington, DC, pp 25–34, https://doi.org/10.1109/CSMR.2013.13 Dubinsky Y, Rubin J, Berger T, Duszynski S, Becker M, Czarnecki K (2013) An exploratory study of cloning in industrial software product lines. In: Proceedings of the 2013 17th European conference on software maintenance and reengineering CSMR ’13. IEEE Computer Society, Washington, DC, pp 25–34, https://​doi.​org/​10.​1109/​CSMR.​2013.​13
Zurück zum Zitat Garcia J, Popescu D, Mattmann C, Medvidovic N, Cai Y (2011) Enhancing architectural recovery using concerns. In: Proceedings of the 2011 26th IEEE/ACM international conference on automated software engineering ASE ’11. IEEE Computer Society, Washington, DC, pp 552–555. https://doi.org/10.1109/ASE.2011.6100123 Garcia J, Popescu D, Mattmann C, Medvidovic N, Cai Y (2011) Enhancing architectural recovery using concerns. In: Proceedings of the 2011 26th IEEE/ACM international conference on automated software engineering ASE ’11. IEEE Computer Society, Washington, DC, pp 552–555. https://​doi.​org/​10.​1109/​ASE.​2011.​6100123
Zurück zum Zitat Garcia J, Ivkovic I, Medvidovic N (2013) A comparative analysis of software architecture recovery techniques. In: Proceedings of the 28th IEEE/ACM international conference on automated software engineering ASE’13. IEEE Press, Piscataway, pp 486–496, https://doi.org/10.1109/ASE.2013.6693106 Garcia J, Ivkovic I, Medvidovic N (2013) A comparative analysis of software architecture recovery techniques. In: Proceedings of the 28th IEEE/ACM international conference on automated software engineering ASE’13. IEEE Press, Piscataway, pp 486–496, https://​doi.​org/​10.​1109/​ASE.​2013.​6693106
Zurück zum Zitat Jansen A, Bosch J (2005) Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP conference on software architecture WICSA ’05. IEEE Computer Society, Washington, DC, pp 109–120, https://doi.org/10.1109/WICSA.2005.61 Jansen A, Bosch J (2005) Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP conference on software architecture WICSA ’05. IEEE Computer Society, Washington, DC, pp 109–120, https://​doi.​org/​10.​1109/​WICSA.​2005.​61
Zurück zum Zitat Kang K, Cohen S, Hess J, Novak W, Peterson S (1990) Feature–oriented domain analysis (FODA) feasibility study. Tech. Rep CMU/SEI-90-TR-21. Software Engineering Institute, Carnegie Mellon University Kang K, Cohen S, Hess J, Novak W, Peterson S (1990) Feature–oriented domain analysis (FODA) feasibility study. Tech. Rep CMU/SEI-90-TR-21. Software Engineering Institute, Carnegie Mellon University
Zurück zum Zitat Kellens A, Mens K, Tonella P (2007) A survey of automated code-level aspect mining techniques. Transactions on aspect-oriented software development IV, 143–162 Kellens A, Mens K, Tonella P (2007) A survey of automated code-level aspect mining techniques. Transactions on aspect-oriented software development IV, 143–162
Zurück zum Zitat Kobayashi K, Kamimura M, Kato K, Yano K, Matsuo A (2012) Feature-gathering dependency-based software clustering using dedication and modularity. In: Proceedings of the 2012 IEEE international conference on software maintenance (ICSM) ICSM ’12. IEEE Computer Society, Washington, DC, pp 462–471, https://doi.org/10.1109/ICSM.2012.6405308 Kobayashi K, Kamimura M, Kato K, Yano K, Matsuo A (2012) Feature-gathering dependency-based software clustering using dedication and modularity. In: Proceedings of the 2012 IEEE international conference on software maintenance (ICSM) ICSM ’12. IEEE Computer Society, Washington, DC, pp 462–471, https://​doi.​org/​10.​1109/​ICSM.​2012.​6405308
Zurück zum Zitat Krikhaar RL (1999) Software architecture reconstruction. Philips Electronics Krikhaar RL (1999) Software architecture reconstruction. Philips Electronics
Zurück zum Zitat Kruchten P (1995) Architecture Blueprints&Mdash;the&Ldquo;4 + 1&Rdquo; view model of software architecture. TRI-Ada ’95. ACM, New York Kruchten P (1995) Architecture Blueprints&Mdash;the&Ldquo;4 + 1&Rdquo; view model of software architecture. TRI-Ada ’95. ACM, New York
Zurück zum Zitat Mancoridis S, Mitchell BS, Chen Y, Gansner ER (1999) Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings of the IEEE international conference on software maintenance ICSM ’99. IEEE Computer Society, Washington, DC, pp 50–. http://dl.acm.org/citation.cfm?id=519621.853406 Mancoridis S, Mitchell BS, Chen Y, Gansner ER (1999) Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings of the IEEE international conference on software maintenance ICSM ’99. IEEE Computer Society, Washington, DC, pp 50–. http://​dl.​acm.​org/​citation.​cfm?​id=​519621.​853406
Zurück zum Zitat Maqbool O, Babri HA (2004) The weighted combined algorithm: a linkage algorithm for software clustering. In: Proceedings of the Eighth Euromicro working conference on software maintenance and reengineering (CSMR’04) CSMR ’04. IEEE Computer Society, Washington, DC, pp 15–. http://dl.acm.org/citation.cfm?id=977397.977725 Maqbool O, Babri HA (2004) The weighted combined algorithm: a linkage algorithm for software clustering. In: Proceedings of the Eighth Euromicro working conference on software maintenance and reengineering (CSMR’04) CSMR ’04. IEEE Computer Society, Washington, DC, pp 15–. http://​dl.​acm.​org/​citation.​cfm?​id=​977397.​977725
Zurück zum Zitat Marcus A, Maletic J (2003) Recovering documentation-to-source-code traceability links using latent semantic indexing. In: Proceedings of the 25th ACM/IEEE International conference on software engineering, pp 125–135 Marcus A, Maletic J (2003) Recovering documentation-to-source-code traceability links using latent semantic indexing. In: Proceedings of the 25th ACM/IEEE International conference on software engineering, pp 125–135
Zurück zum Zitat Mirakhorli M, Cleland-Huang J (2011) Transforming trace information in architectural documents into re-usable and effective traceability links. In: Proceedings of the 6th International workshop on SHAring and reusing architectural knowledge SHARK ’11. ACM, New York, pp 45–52. https://doi.org/10.1145/1988676.1988685 Mirakhorli M, Cleland-Huang J (2011) Transforming trace information in architectural documents into re-usable and effective traceability links. In: Proceedings of the 6th International workshop on SHAring and reusing architectural knowledge SHARK ’11. ACM, New York, pp 45–52. https://​doi.​org/​10.​1145/​1988676.​1988685
Zurück zum Zitat Naseem R, Maqbool O, Muhammad S (2011) Improved similarity measures for software clustering. In: Proceedings of the 2011 15th European conference on software maintenance and reengineering CSMR ’11. IEEE Computer Society, Washington, DC, pp 45–54, https://doi.org/10.1109/CSMR.2011.9 Naseem R, Maqbool O, Muhammad S (2011) Improved similarity measures for software clustering. In: Proceedings of the 2011 15th European conference on software maintenance and reengineering CSMR ’11. IEEE Computer Society, Washington, DC, pp 45–54, https://​doi.​org/​10.​1109/​CSMR.​2011.​9
Zurück zum Zitat Rahman MT, Querel LP, Rigby PC, Adams B (2016) Feature toggles: practitioner practices and a case study. In: Proceedings of the 13th international conference on mining software repositories MSR ’16. ACM, New York, pp 201–211, https://doi.org/10.1145/2901739.2901745 Rahman MT, Querel LP, Rigby PC, Adams B (2016) Feature toggles: practitioner practices and a case study. In: Proceedings of the 13th international conference on mining software repositories MSR ’16. ACM, New York, pp 201–211, https://​doi.​org/​10.​1145/​2901739.​2901745
Zurück zum Zitat Rigby PC, Robillard MP (2013) Discovering essential code elements in informal documentation. In: Proceedings of the 2013 International conference on software engineering, ICSE ’13, pp 832–841 Rigby PC, Robillard MP (2013) Discovering essential code elements in informal documentation. In: Proceedings of the 2013 International conference on software engineering, ICSE ’13, pp 832–841
Zurück zum Zitat Sochos P, Philippow I, Riebisch M (2004) Feature-oriented development of software product lines: mapping feature models to the architecture. In: Object-Oriented and internet-based technologies: 5th annual international conference on object-oriented and internet-based technologies, concepts, and applications for a networked world, Net. ObjectDays 2004 Erfurt, Germany, September 27–30, 2004 Proceedings, vol 3263. Springer, pp 138 Sochos P, Philippow I, Riebisch M (2004) Feature-oriented development of software product lines: mapping feature models to the architecture. In: Object-Oriented and internet-based technologies: 5th annual international conference on object-oriented and internet-based technologies, concepts, and applications for a networked world, Net. ObjectDays 2004 Erfurt, Germany, September 27–30, 2004 Proceedings, vol 3263. Springer, pp 138
Zurück zum Zitat Wu J, Hassan AE, Holt RC (2005) Comparison of clustering algorithms in the context of software evolution. In: Proceedings of the 21st IEEE international conference on software maintenance ICSM ’05. IEEE Computer Society, Washington, DC, pp 525–535, https://doi.org/10.1109/ICSM.2005.31 Wu J, Hassan AE, Holt RC (2005) Comparison of clustering algorithms in the context of software evolution. In: Proceedings of the 21st IEEE international conference on software maintenance ICSM ’05. IEEE Computer Society, Washington, DC, pp 525–535, https://​doi.​org/​10.​1109/​ICSM.​2005.​31
Metadaten
Titel
The modular and feature toggle architectures of Google Chrome
verfasst von
Md Tajmilur Rahman
Peter C. Rigby
Emad Shihab
Publikationsdatum
19.07.2018
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 2/2019
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-018-9639-0

Weitere Artikel der Ausgabe 2/2019

Empirical Software Engineering 2/2019 Zur Ausgabe