A method to identify toggle debt in a project from its source code.
ilustraciones, diagramas, tablas
- Autores:
-
Hoyos Rentería, Juan David
- Tipo de recurso:
- Fecha de publicación:
- 2021
- Institución:
- Universidad Nacional de Colombia
- Repositorio:
- Universidad Nacional de Colombia
- Idioma:
- eng
- OAI Identifier:
- oai:repositorio.unal.edu.co:unal/80530
- Palabra clave:
- 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Software engineering
Ingeniería de software
Software quality
Continuous delivery
Feature toggles
Technical debt
Calidad de software
Entrega continua
Deuda técnica
- Rights
- openAccess
- License
- Reconocimiento 4.0 Internacional
id |
UNACIONAL2_f08f90c0f68cf3a712cac9db2f650e95 |
---|---|
oai_identifier_str |
oai:repositorio.unal.edu.co:unal/80530 |
network_acronym_str |
UNACIONAL2 |
network_name_str |
Universidad Nacional de Colombia |
repository_id_str |
|
dc.title.eng.fl_str_mv |
A method to identify toggle debt in a project from its source code. |
dc.title.translated.spa.fl_str_mv |
Un método para identificar toggle debt en un proyecto a partir de su código fuente. |
title |
A method to identify toggle debt in a project from its source code. |
spellingShingle |
A method to identify toggle debt in a project from its source code. 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación Software engineering Ingeniería de software Software quality Continuous delivery Feature toggles Technical debt Calidad de software Entrega continua Deuda técnica |
title_short |
A method to identify toggle debt in a project from its source code. |
title_full |
A method to identify toggle debt in a project from its source code. |
title_fullStr |
A method to identify toggle debt in a project from its source code. |
title_full_unstemmed |
A method to identify toggle debt in a project from its source code. |
title_sort |
A method to identify toggle debt in a project from its source code. |
dc.creator.fl_str_mv |
Hoyos Rentería, Juan David |
dc.contributor.advisor.none.fl_str_mv |
Espinosa Bedoya, Albeiro |
dc.contributor.author.none.fl_str_mv |
Hoyos Rentería, Juan David |
dc.contributor.researchgroup.spa.fl_str_mv |
Calidad de Software |
dc.subject.ddc.spa.fl_str_mv |
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación |
topic |
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación Software engineering Ingeniería de software Software quality Continuous delivery Feature toggles Technical debt Calidad de software Entrega continua Deuda técnica |
dc.subject.lemb.eng.fl_str_mv |
Software engineering |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería de software |
dc.subject.proposal.eng.fl_str_mv |
Software quality Continuous delivery Feature toggles Technical debt |
dc.subject.proposal.spa.fl_str_mv |
Calidad de software Entrega continua Deuda técnica |
description |
ilustraciones, diagramas, tablas |
publishDate |
2021 |
dc.date.accessioned.none.fl_str_mv |
2021-10-13T14:06:05Z |
dc.date.available.none.fl_str_mv |
2021-10-13T14:06:05Z |
dc.date.issued.none.fl_str_mv |
2021 |
dc.type.spa.fl_str_mv |
Trabajo de grado - Maestría |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/masterThesis |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
http://purl.org/redcol/resource_type/TM |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.unal.edu.co/handle/unal/80530 |
dc.identifier.instname.spa.fl_str_mv |
Universidad Nacional de Colombia |
dc.identifier.reponame.spa.fl_str_mv |
Repositorio Institucional Universidad Nacional de Colombia |
dc.identifier.repourl.spa.fl_str_mv |
https://repositorio.unal.edu.co/ |
url |
https://repositorio.unal.edu.co/handle/unal/80530 https://repositorio.unal.edu.co/ |
identifier_str_mv |
Universidad Nacional de Colombia Repositorio Institucional Universidad Nacional de Colombia |
dc.language.iso.spa.fl_str_mv |
eng |
language |
eng |
dc.relation.references.spa.fl_str_mv |
[Dja, 2018a] (2018a). Django Packages: Feature Flipping. https://djangopackages.org/grids/g/feature-flip/. Accessed 2018-11-05. [Dja, 2018b] (2018b). The Web framework for perfectionists with deadlines — Django. https://www.djangoproject.com/. Accessed 2019-03-05. [OSF, 2019] (2019). Center for Open Science. https://github.com/CenterForOpenScience/osf.io. Accessed 2019-01-09. [Waf, 2019] (2019). Django Waffle — django-waffle 0.14.0 documentation. https://waffle.readthedocs.io/en/stable/. Accessed 2019-01-11. [Adams and McIntosh, 2016] Adams, B. and McIntosh, S. (2016). Modern release engineering in a nutshell – why researchers should care. In Leaders of Tomorrow: Future of Software Engineering, Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 78–90, Osaka, Japan. [Alfayez et al., 2020] Alfayez, R., Alwehaibi, W., Winn, R., Venson, E., and Boehm, B. (2020). A systematic literature review of technical debt prioritization. In Proceedings of the 3rd International Conference on Technical Debt, pages 1–10. [Alves et al., 2014] Alves, N. S., Ribeiro, L. F., Caires, V., Mendes, T. S., and Spinola, R. O. (2014). Towards an ontology of terms on technical debt. pages 1–7. IEEE. [Arif and Rana, 2020] Arif, A. and Rana, Z. (2020). Refactoring of code to remove technical debt and reduce maintenance effort. [Asthagiri, 2018] Asthagiri, N. (2018). OEP-17: Feature Toggles. https:// open-edx-proposals.readthedocs.io/en/latest/oep-0017-bp-feature-toggles.html. Accessed 2020-01-10. [Avgeriou et al., 2016] Avgeriou, P., Kruchten, P., Ozkaya, I., and Seaman, C. (2016). Managing technical debt in software engineering. http://drops.dagstuhl.de/opus/volltexte/2016/6693/. [Chen, 2015] Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54. [Claps et al., 2015] Claps, G. G., Berntsson Svensson, R., and Aurum, A. A. (2015). On the journey to continuous deployment: Technical and social challenges along the way. Information and Software Technology, 57(1):21–31. [Cunningham, 1993] Cunningham, W. (1993). The wycash portfolio management system. Proc. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’92) (Addendum), 4:29–30. [edX, 2019] edX (2019). edx-platform. https://github.com/edx/edx-platform. Accessed 2019-01-09. [edX, 2021a] edX (2021a). 5.3. Code Quality — Open edX Developer’s Guide documentation. https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/testing/code-quality.html#code-quality. Accessed 2021-01-01. [edX, 2021b] edX (2021b). edx/ecommerce: Service for managing edX’s product catalog and handling orders for those products. https://github.com/edx/ecommerce. Accessed 2021-01-01. [edX, 2021c] edX (2021c). Gating E-Commerce Service Features. https://edx-ecommerce.readthedocs.io/en/latest/additional_features/gate_ecommerce.html. Accessed 2021-01-01. [edX, 2021d] edX (2021d). Projects - JIRA. https://openedx.atlassian.net/projects. Accessed 2021-01-01. [Feitelson et al., 2013] Feitelson, D. G., Frachtenberg, E., and Beck, K. L. (2013). Development and deployment at facebook. IEEE Internet Computing, 17(4):8–17. [Fowler, 2009] Fowler, M. (2009). Technicaldebtquadrant. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html. Accessed 2017-01-04. [Hodgson, 2017] Hodgson, P. (2017). Feature Toggles. https://martinfowler.com/articles/feature-toggles.html. Accessed 2017-08-30. [Hoyos et al., 2020] Hoyos, J., Abdalkareem, R., Mujahid, S., Shihab, E., and Espinosa Bedoya, A. (2020). On the Removal of Feature Toggles: A Study of Python Projects and Practitioners Motivations. Submitted to Empirical Software Engineering. [Humble and Farley, 2010] Humble, J. and Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment. [Jabangwe et al., 2015] Jabangwe, R., B ̈orstler, J., Sˇmite, D., and Wohlin, C. (2015). Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empirical Software Engineering, 20(3):640–693. [Kasting, 2015] Kasting, P. (2015). Announcing base::feature api - chromium-dev mailing list. https://groups.google.com/a/chromium.org/g/chromium-dev/c/Esavy4-JTHY/m/CJ_zXzBQAAAJ. Accessed 2020-11-22. [Khomyakov et al., 2020] Khomyakov, I., Makhmutov, Z., Mirgalimova, R., and Sillitti, A. (2020). An analysis of automated technical debt measurement. volume 378 LNBIP. [Kruchten et al., 2019] Kruchten, P., Nord, R., and Ozkaya, I. (2019). Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley Professional. [LaunchDarkly, 2018] LaunchDarkly (2018). Feature Flags - Feature Flags, Toggles, Controls. http://featureflags.io/feature-flags/. Accessed 2018-11-03. [Leite et al., 2019] Leite, L., Rocha, C., Kon, F., Milojicic, D., and Meirelles, P. (2019). A survey of devops concepts and challenges. ACM Computing Surveys (CSUR), 52(6):1–35. [Lenarduzzi et al., 2020] Lenarduzzi, V., Besker, T., Taibi, D., Martini, A., and Fontana, F. A. (2020). A systematic literature review on technical debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software, 171:110827. [Leon-Sigg et al., 2020] Leon-Sigg, M. D., Vazquez-Reyes, S., and Rodriguez-Avila, D. (2020). Towards the use of a framework to make technical debt visible. pages 86–92. [Li et al., 2015] Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220. [Mahdavi-Hezaveh et al., 2019] Mahdavi-Hezaveh, R., Dremann, J., and Williams, L. (2019). Software development with feature toggles: Practices used by practitioners. [Marinescu, 2012] Marinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56:9:1–9:13. [McConnell, 2007] McConnell, S. (2007). Technical debt. http://www.construx.com/10x_Software_Development/Technical_Debt/. Accessed 2017-01-04. [Meinicke et al., 2020a] Meinicke, J., Hoyos, J., Vasilescu, B., and K ̈astner, C. (2020a). Capture the feature flag: Detecting feature flags in open-source. In International Conference on Mining Software Repositories. [Meinicke et al., 2020b] Meinicke, J., Wong, C.-P., Vasilescu, B., and K ̈astner, C. (2020b). Exploring differences and commonalities between feature flags and configuration options. In Proc. Int’l Conf. Software Engineering–Software Engineering in Practice (ICSE-SEIP). ACM. [Molnar and Motogna, 2020] Molnar, A.-J. and Motogna, S. (2020). Long-term evaluation of technical debt in open-source software. [Mozilla, 2019] Mozilla (2019). Bedrock configurator. https://www-config.readthedocs.io/. Accessed 2019-02-21. [Neely and Stolt, 2013] Neely, S. and Stolt, S. (2013). Continuous delivery? Easy! Just change everything (well, maybe it is not that easy). Proceedings - AGILE 2013, pages 121–128. [Osherove, 2018] Osherove, R. (2018). Feature Toggles – Enterprise DevOps. http://enterprisedevops.org/feature-toggle-frameworks-list/. Accessed 2018-12-11. [Pecorelli et al., 2020] Pecorelli, F., Nucci, D. D., Roover, C. D., and Lucia, A. D. (2020). A large empirical assessment of the role of data balancing in machine-learning-based code smell detection. Journal of Systems and Software, 169. [Poppendieck and Poppendieck, 2006] Poppendieck, M. and Poppendieck, T. (2006). Implementing lean software development : from concept to cash. Addison-Wesley. [Potdar and Shihab, 2014] Potdar, A. and Shihab, E. (2014). An exploratory study on self-admitted technical debt. [Rahman et al., 2015] Rahman, A. A. U., Helms, E., Williams, L., and Parnin, C. (2015). Synthesizing Continuous Deployment Practices Used in Software Development. 2015 Agile Conference, pages 1–10. [Rahman et al., 2016] Rahman, M. T., Querel, L.-P., Rigby, P. C., and Adams, B. (2016). Feature toggles: Practitioner practices and a case study. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ’16, pages 201–211, New York, NY, USA. ACM. [Rahman et al., 2018] Rahman, M. T., Rigby, P. C., and Shihab, E. (2018). The modular and feature toggle architectures of google chrome. Empirical Software Engineering, pages 1–28. [Rajalakshmi et al., 2021] Rajalakshmi, V., Sendhilkumar, S., and Mahalakshmi, G. S. (2021). Classification of technical debts in software development using text analytics. pages 313–323. Springer International Publishing. [Ramanathan et al., 2020] Ramanathan, M. K., Clapp, L., Barik, R., and Sridharan, M. (2020). Piranha: reducing feature flag debt at uber. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, pages 221–230. [Ramasubbu and Kemerer, 2019] Ramasubbu, N. and Kemerer, C. (2019). Integrating technical debt management and software quality management processes: A normative framework and field tests. IEEE Transactions on Software Engineering, 45:285–300. [Rodríguez et al., 2017] Rodríguez, P., Haghighatkhah, A., Lwakatare, L. E., Teppola, S., Suomalainen, T., Eskeli, J., Karvonen, T., Kuvaja, P., Verner, J. M., and Oivo, M. (2017). Continuous deployment of software intensive products and services: A systematic mapping study. Journal of Systems and Software, 123:263–291. [Rios et al., 2018] Rios, N., de Mendonça Neto, M. G., and Spínola, R. O. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102:117–145. [Alves et al., 2016] Alves, N. S., Mendes, T. S., de Mendonç̧a, M. G., Spínola, R. O., Shull, F., and Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70:100–121. [Sayagh et al., 2018] Sayagh, M., Kerzazi, N., Adams, B., and Petrillo, F. (2018). Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Transactions on Software Engineering. [Schermann et al., 2016] Schermann, G., Cito, J., Leitner, P., Zdun, U., and Gall, H. (2016). An empirical study on principles and practices of continuous delivery and deployment. PeerJ Preprints, 4:e1889v1. [Securities and Commission, 2013] Securities and Commission, E. (2013). Administrative and cease-and-desist proceedings against Knight Capital Americas LLC. https://www.sec.gov/litigation/admin/2013/34-70694.pdf. Accessed 2019-01-19. [Sowa and Loh, 2010] Sowa, E. C. and Loh, R. Y. (2010). Feature bits: Enabling flow within and across teams. [Viswanathan, 2018] Viswanathan, S. (2018). Dynamic configuration at Twitter. https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/dynamic-configuration-at-twitter.html. Accessed 2019-03-25. [Yli-Huumo et al., 2015] Yli-Huumo, J., Maglyas, A., and Smolander, K. (2015). The benefits and consequences of workarounds in software development projects. volume 210. [Zazworka et al., 2014] Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., and Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22:403–426. |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.license.spa.fl_str_mv |
Reconocimiento 4.0 Internacional |
dc.rights.uri.spa.fl_str_mv |
http://creativecommons.org/licenses/by/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Reconocimiento 4.0 Internacional http://creativecommons.org/licenses/by/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.spa.fl_str_mv |
xiii, 60 páginas |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad Nacional de Colombia |
dc.publisher.program.spa.fl_str_mv |
Medellín - Minas - Maestría en Ingeniería - Ingeniería de Sistemas |
dc.publisher.department.spa.fl_str_mv |
Departamento de la Computación y la Decisión |
dc.publisher.faculty.spa.fl_str_mv |
Facultad de Minas |
dc.publisher.place.spa.fl_str_mv |
Medellín, Colombia |
dc.publisher.branch.spa.fl_str_mv |
Universidad Nacional de Colombia - Sede Medellín |
institution |
Universidad Nacional de Colombia |
bitstream.url.fl_str_mv |
https://repositorio.unal.edu.co/bitstream/unal/80530/3/license.txt https://repositorio.unal.edu.co/bitstream/unal/80530/4/71360425.2021.pdf https://repositorio.unal.edu.co/bitstream/unal/80530/5/71360425.2021.pdf.jpg |
bitstream.checksum.fl_str_mv |
cccfe52f796b7c63423298c2d3365fc6 e75edeee533697f24f2d4fa45a870bce 79a0805f4f7ec4500ce2a14701634f54 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Nacional de Colombia |
repository.mail.fl_str_mv |
repositorio_nal@unal.edu.co |
_version_ |
1814090208646266880 |
spelling |
Reconocimiento 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Espinosa Bedoya, Albeiro16b6474a3fac0cc52f9d2217afeaafff600Hoyos Rentería, Juan David539dd06f89e9b1c526f38d75eda6c41bCalidad de Software2021-10-13T14:06:05Z2021-10-13T14:06:05Z2021https://repositorio.unal.edu.co/handle/unal/80530Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustraciones, diagramas, tablasContinuous Delivery has benefited companies such as IBM, Google and Microsoft after the adoption of practices to deliver friction-less value. These lean and agile practices help teams to adjust to implicit variability when developing software and to provide non-stop features and enhancements. Practitioners that use feature toggles in their source code can control the execution of features with a high degree of precision. As this execution control effectively decouples the feature implementation from its release, feature toggles help practitioners move valuable software artifacts closer to the user. However, there is evidence of unwanted risks and negative consequences that impact the quality of a software project when, for example, a feature hidden under a toggle remains in the source code longer than expected. Although practitioners of feature toggles have crafted mechanisms to keep their feature toggles inventory in check, little is known about the automated identification of feature toggles and their associated technical debt. This thesis focuses on the proposal of a method to identify source code where both feature toggles and technical debt coincide in the repository of a project. This method is based on two complementary empirical explorations. First, we identified areas of code containing feature toggles in 72 open source projects that use toggling libraries. And second, we selected one of the toggled projects and identified technical debt that intersects with the previously identified feature toggles. The proposed method uncovers the presence of toggle debt in the early stages of the development process. These results demonstrate the feasibility of a systematic approach to find toggle debt from a software repository, and advise practitioners on the importance for automated, reliable and up-to-date quality measurement tools.La Entrega Continua de software ha beneficiado a compañías como IBM, Google y Microsoft luego de haber adoptado prácticas para generar valor sin fricción. Estas prácticas limpias y ágiles ayudan a los equipos de desarrollo a ajustarse a la variabilidad implícita, y a proveer funcionalidades y mejoras sin parar. Quienes usan feature toggles en su código fuente pueden controlar la ejecución de funcionalidades con un alto grado de precisión. A la vez que este control efectivamente desacopla la etapa de implementación de la del lanzamiento de una funcionalidad, los feature toggles ayudan a los equipos de desarrollo a enfocarse en el valor de uso de sus implementaciones. Sin embargo, existe evidencia de riesgos no esperados y de consecuencias negativas que impactan la calidad del proyecto de software cuando, por ejemplo, una funcionalidad bajo la guarda de un toggle permanece escondida en el código fuente por más tiempo de lo esperado. A pesar que las personas que usan feature toggles han creado mecanismos para mantener controlado el inventario de feature toggles, poco se conoce sobre la identificación automatizada de feature toggles y su technical debt asociado. Esta tesis se enfoca en proponer un método para identificar código fuente donde los feature toggles y el technical debt coinciden en el repositorio de un proyecto. Este método se basa en dos exploraciones empíricas complementarias. Primero, identificamos áreas de código que contienen feature toggles en 72 proyectos de código abierto que usan librerías de toggling. Y segundo, seleccionamos uno de los proyectos que usa toggles e identificamos la deuda técnica que se cruza con los feature toggles previamente identificados. El método propuesto descubre la presencia de toggle debt en las primeras etapas del proceso de desarrollo. Estos resultados demuestran la viabilidad de un acercamiento sistemático para encontrar toggle debt en un repositorio de software y advierte a los practicantes sobre la importancia de usar herramientas automatizadas, confiables y actualizadas para medir la calidad. (Texto tomado de la fuente)MaestríaMagíster en Ingeniería - Ingeniería de SistemasInteligencia de softwarexiii, 60 páginasapplication/pdfengUniversidad Nacional de ColombiaMedellín - Minas - Maestría en Ingeniería - Ingeniería de SistemasDepartamento de la Computación y la DecisiónFacultad de MinasMedellín, ColombiaUniversidad Nacional de Colombia - Sede Medellín620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computaciónSoftware engineeringIngeniería de softwareSoftware qualityContinuous deliveryFeature togglesTechnical debtCalidad de softwareEntrega continuaDeuda técnicaA method to identify toggle debt in a project from its source code.Un método para identificar toggle debt en un proyecto a partir de su código fuente.Trabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TM[Dja, 2018a] (2018a). Django Packages: Feature Flipping. https://djangopackages.org/grids/g/feature-flip/. Accessed 2018-11-05.[Dja, 2018b] (2018b). The Web framework for perfectionists with deadlines — Django. https://www.djangoproject.com/. Accessed 2019-03-05.[OSF, 2019] (2019). Center for Open Science. https://github.com/CenterForOpenScience/osf.io. Accessed 2019-01-09.[Waf, 2019] (2019). Django Waffle — django-waffle 0.14.0 documentation. https://waffle.readthedocs.io/en/stable/. Accessed 2019-01-11.[Adams and McIntosh, 2016] Adams, B. and McIntosh, S. (2016). Modern release engineering in a nutshell – why researchers should care. In Leaders of Tomorrow: Future of Software Engineering, Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 78–90, Osaka, Japan.[Alfayez et al., 2020] Alfayez, R., Alwehaibi, W., Winn, R., Venson, E., and Boehm, B. (2020). A systematic literature review of technical debt prioritization. In Proceedings of the 3rd International Conference on Technical Debt, pages 1–10.[Alves et al., 2014] Alves, N. S., Ribeiro, L. F., Caires, V., Mendes, T. S., and Spinola, R. O. (2014). Towards an ontology of terms on technical debt. pages 1–7. IEEE.[Arif and Rana, 2020] Arif, A. and Rana, Z. (2020). Refactoring of code to remove technical debt and reduce maintenance effort.[Asthagiri, 2018] Asthagiri, N. (2018). OEP-17: Feature Toggles. https:// open-edx-proposals.readthedocs.io/en/latest/oep-0017-bp-feature-toggles.html. Accessed 2020-01-10.[Avgeriou et al., 2016] Avgeriou, P., Kruchten, P., Ozkaya, I., and Seaman, C. (2016). Managing technical debt in software engineering. http://drops.dagstuhl.de/opus/volltexte/2016/6693/.[Chen, 2015] Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.[Claps et al., 2015] Claps, G. G., Berntsson Svensson, R., and Aurum, A. A. (2015). On the journey to continuous deployment: Technical and social challenges along the way. Information and Software Technology, 57(1):21–31.[Cunningham, 1993] Cunningham, W. (1993). The wycash portfolio management system. Proc. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’92) (Addendum), 4:29–30.[edX, 2019] edX (2019). edx-platform. https://github.com/edx/edx-platform. Accessed 2019-01-09.[edX, 2021a] edX (2021a). 5.3. Code Quality — Open edX Developer’s Guide documentation. https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/testing/code-quality.html#code-quality. Accessed 2021-01-01.[edX, 2021b] edX (2021b). edx/ecommerce: Service for managing edX’s product catalog and handling orders for those products. https://github.com/edx/ecommerce. Accessed 2021-01-01.[edX, 2021c] edX (2021c). Gating E-Commerce Service Features. https://edx-ecommerce.readthedocs.io/en/latest/additional_features/gate_ecommerce.html. Accessed 2021-01-01.[edX, 2021d] edX (2021d). Projects - JIRA. https://openedx.atlassian.net/projects. Accessed 2021-01-01.[Feitelson et al., 2013] Feitelson, D. G., Frachtenberg, E., and Beck, K. L. (2013). Development and deployment at facebook. IEEE Internet Computing, 17(4):8–17.[Fowler, 2009] Fowler, M. (2009). Technicaldebtquadrant. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html. Accessed 2017-01-04.[Hodgson, 2017] Hodgson, P. (2017). Feature Toggles. https://martinfowler.com/articles/feature-toggles.html. Accessed 2017-08-30.[Hoyos et al., 2020] Hoyos, J., Abdalkareem, R., Mujahid, S., Shihab, E., and Espinosa Bedoya, A. (2020). On the Removal of Feature Toggles: A Study of Python Projects and Practitioners Motivations. Submitted to Empirical Software Engineering.[Humble and Farley, 2010] Humble, J. and Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment.[Jabangwe et al., 2015] Jabangwe, R., B ̈orstler, J., Sˇmite, D., and Wohlin, C. (2015). Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empirical Software Engineering, 20(3):640–693.[Kasting, 2015] Kasting, P. (2015). Announcing base::feature api - chromium-dev mailing list. https://groups.google.com/a/chromium.org/g/chromium-dev/c/Esavy4-JTHY/m/CJ_zXzBQAAAJ. Accessed 2020-11-22.[Khomyakov et al., 2020] Khomyakov, I., Makhmutov, Z., Mirgalimova, R., and Sillitti, A. (2020). An analysis of automated technical debt measurement. volume 378 LNBIP.[Kruchten et al., 2019] Kruchten, P., Nord, R., and Ozkaya, I. (2019). Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley Professional.[LaunchDarkly, 2018] LaunchDarkly (2018). Feature Flags - Feature Flags, Toggles, Controls. http://featureflags.io/feature-flags/. Accessed 2018-11-03.[Leite et al., 2019] Leite, L., Rocha, C., Kon, F., Milojicic, D., and Meirelles, P. (2019). A survey of devops concepts and challenges. ACM Computing Surveys (CSUR), 52(6):1–35.[Lenarduzzi et al., 2020] Lenarduzzi, V., Besker, T., Taibi, D., Martini, A., and Fontana, F. A. (2020). A systematic literature review on technical debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software, 171:110827.[Leon-Sigg et al., 2020] Leon-Sigg, M. D., Vazquez-Reyes, S., and Rodriguez-Avila, D. (2020). Towards the use of a framework to make technical debt visible. pages 86–92.[Li et al., 2015] Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.[Mahdavi-Hezaveh et al., 2019] Mahdavi-Hezaveh, R., Dremann, J., and Williams, L. (2019). Software development with feature toggles: Practices used by practitioners.[Marinescu, 2012] Marinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56:9:1–9:13.[McConnell, 2007] McConnell, S. (2007). Technical debt. http://www.construx.com/10x_Software_Development/Technical_Debt/. Accessed 2017-01-04.[Meinicke et al., 2020a] Meinicke, J., Hoyos, J., Vasilescu, B., and K ̈astner, C. (2020a). Capture the feature flag: Detecting feature flags in open-source. In International Conference on Mining Software Repositories.[Meinicke et al., 2020b] Meinicke, J., Wong, C.-P., Vasilescu, B., and K ̈astner, C. (2020b). Exploring differences and commonalities between feature flags and configuration options. In Proc. Int’l Conf. Software Engineering–Software Engineering in Practice (ICSE-SEIP). ACM.[Molnar and Motogna, 2020] Molnar, A.-J. and Motogna, S. (2020). Long-term evaluation of technical debt in open-source software.[Mozilla, 2019] Mozilla (2019). Bedrock configurator. https://www-config.readthedocs.io/. Accessed 2019-02-21.[Neely and Stolt, 2013] Neely, S. and Stolt, S. (2013). Continuous delivery? Easy! Just change everything (well, maybe it is not that easy). Proceedings - AGILE 2013, pages 121–128.[Osherove, 2018] Osherove, R. (2018). Feature Toggles – Enterprise DevOps. http://enterprisedevops.org/feature-toggle-frameworks-list/. Accessed 2018-12-11.[Pecorelli et al., 2020] Pecorelli, F., Nucci, D. D., Roover, C. D., and Lucia, A. D. (2020). A large empirical assessment of the role of data balancing in machine-learning-based code smell detection. Journal of Systems and Software, 169.[Poppendieck and Poppendieck, 2006] Poppendieck, M. and Poppendieck, T. (2006). Implementing lean software development : from concept to cash. Addison-Wesley.[Potdar and Shihab, 2014] Potdar, A. and Shihab, E. (2014). An exploratory study on self-admitted technical debt.[Rahman et al., 2015] Rahman, A. A. U., Helms, E., Williams, L., and Parnin, C. (2015). Synthesizing Continuous Deployment Practices Used in Software Development. 2015 Agile Conference, pages 1–10.[Rahman et al., 2016] Rahman, M. T., Querel, L.-P., Rigby, P. C., and Adams, B. (2016). Feature toggles: Practitioner practices and a case study. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ’16, pages 201–211, New York, NY, USA. ACM.[Rahman et al., 2018] Rahman, M. T., Rigby, P. C., and Shihab, E. (2018). The modular and feature toggle architectures of google chrome. Empirical Software Engineering, pages 1–28.[Rajalakshmi et al., 2021] Rajalakshmi, V., Sendhilkumar, S., and Mahalakshmi, G. S. (2021). Classification of technical debts in software development using text analytics. pages 313–323. Springer International Publishing.[Ramanathan et al., 2020] Ramanathan, M. K., Clapp, L., Barik, R., and Sridharan, M. (2020). Piranha: reducing feature flag debt at uber. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, pages 221–230.[Ramasubbu and Kemerer, 2019] Ramasubbu, N. and Kemerer, C. (2019). Integrating technical debt management and software quality management processes: A normative framework and field tests. IEEE Transactions on Software Engineering, 45:285–300.[Rodríguez et al., 2017] Rodríguez, P., Haghighatkhah, A., Lwakatare, L. E., Teppola, S., Suomalainen, T., Eskeli, J., Karvonen, T., Kuvaja, P., Verner, J. M., and Oivo, M. (2017). Continuous deployment of software intensive products and services: A systematic mapping study. Journal of Systems and Software, 123:263–291.[Rios et al., 2018] Rios, N., de Mendonça Neto, M. G., and Spínola, R. O. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102:117–145.[Alves et al., 2016] Alves, N. S., Mendes, T. S., de Mendonç̧a, M. G., Spínola, R. O., Shull, F., and Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70:100–121.[Sayagh et al., 2018] Sayagh, M., Kerzazi, N., Adams, B., and Petrillo, F. (2018). Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Transactions on Software Engineering.[Schermann et al., 2016] Schermann, G., Cito, J., Leitner, P., Zdun, U., and Gall, H. (2016). An empirical study on principles and practices of continuous delivery and deployment. PeerJ Preprints, 4:e1889v1.[Securities and Commission, 2013] Securities and Commission, E. (2013). Administrative and cease-and-desist proceedings against Knight Capital Americas LLC. https://www.sec.gov/litigation/admin/2013/34-70694.pdf. Accessed 2019-01-19.[Sowa and Loh, 2010] Sowa, E. C. and Loh, R. Y. (2010). Feature bits: Enabling flow within and across teams.[Viswanathan, 2018] Viswanathan, S. (2018). Dynamic configuration at Twitter. https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/dynamic-configuration-at-twitter.html. Accessed 2019-03-25.[Yli-Huumo et al., 2015] Yli-Huumo, J., Maglyas, A., and Smolander, K. (2015). The benefits and consequences of workarounds in software development projects. volume 210.[Zazworka et al., 2014] Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., and Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22:403–426.EstudiantesInvestigadoresLICENSElicense.txtlicense.txttext/plain; charset=utf-83964https://repositorio.unal.edu.co/bitstream/unal/80530/3/license.txtcccfe52f796b7c63423298c2d3365fc6MD53ORIGINAL71360425.2021.pdf71360425.2021.pdfTesis de Maestría en Ingeniería - Ingeniería de Sistemasapplication/pdf1018252https://repositorio.unal.edu.co/bitstream/unal/80530/4/71360425.2021.pdfe75edeee533697f24f2d4fa45a870bceMD54THUMBNAIL71360425.2021.pdf.jpg71360425.2021.pdf.jpgGenerated Thumbnailimage/jpeg4244https://repositorio.unal.edu.co/bitstream/unal/80530/5/71360425.2021.pdf.jpg79a0805f4f7ec4500ce2a14701634f54MD55unal/80530oai:repositorio.unal.edu.co:unal/805302023-10-25 09:06:07.254Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUExBTlRJTExBIERFUMOTU0lUTwoKQ29tbyBlZGl0b3IgZGUgZXN0ZSDDrXRlbSwgdXN0ZWQgcHVlZGUgbW92ZXJsbyBhIHJldmlzacOzbiBzaW4gYW50ZXMgcmVzb2x2ZXIgbG9zIHByb2JsZW1hcyBpZGVudGlmaWNhZG9zLCBkZSBsbyBjb250cmFyaW8sIGhhZ2EgY2xpYyBlbiBHdWFyZGFyIHBhcmEgZ3VhcmRhciBlbCDDrXRlbSB5IHNvbHVjaW9uYXIgZXN0b3MgcHJvYmxlbWFzIG1hcyB0YXJkZS4KCk5PVEFTOgoqU0kgTEEgVEVTSVMgQSBQVUJMSUNBUiBBRFFVSVJJw5MgQ09NUFJPTUlTT1MgREUgQ09ORklERU5DSUFMSURBRCBFTiBFTCBERVNBUlJPTExPIE8gUEFSVEVTIERFTCBET0NVTUVOVE8uIFNJR0EgTEEgRElSRUNUUklaIERFIExBIFJFU09MVUNJw5NOIDAyMyBERSAyMDE1LCBQT1IgTEEgQ1VBTCBTRSBFU1RBQkxFQ0UgRUwgUFJPQ0VESU1JRU5UTyBQQVJBIExBIFBVQkxJQ0FDScOTTiBERSBURVNJUyBERSBNQUVTVFLDjUEgWSBET0NUT1JBRE8gREUgTE9TIEVTVFVESUFOVEVTIERFIExBIFVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU4sIEVYUEVESURBIFBPUiBMQSBTRUNSRVRBUsONQSBHRU5FUkFMLgoqTEEgVEVTSVMgQSBQVUJMSUNBUiBERUJFIFNFUiBMQSBWRVJTScOTTiBGSU5BTCBBUFJPQkFEQS4KUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igc3UgcHJvcGlvIGF1dG9yOiBBbCBhdXRvYXJjaGl2YXIgZXN0ZSBncnVwbyBkZSBhcmNoaXZvcyBkaWdpdGFsZXMgeSBzdXMgbWV0YWRhdG9zLCBZbyBnYXJhbnRpem8gYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVTiBlbCBkZXJlY2hvIGEgYWxtYWNlbmFybG9zIHkgbWFudGVuZXJsb3MgZGlzcG9uaWJsZXMgZW4gbMOtbmVhIGRlIG1hbmVyYSBncmF0dWl0YS4gRGVjbGFybyBxdWUgZGljaG8gbWF0ZXJpYWwgZXMgZGUgbWkgcHJvcGllZGFkIGludGVsZWN0dWFsIHkgcXVlIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgVU4gbm8gYXN1bWUgbmluZ3VuYSByZXNwb25zYWJpbGlkYWQgc2kgaGF5IGFsZ3VuYSB2aW9sYWNpw7NuIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGFsIGRpc3RyaWJ1aXIgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuIChTZSByZWNvbWllbmRhIGEgdG9kb3MgbG9zIGF1dG9yZXMgYSBpbmRpY2FyIHN1cyBkZXJlY2hvcyBkZSBhdXRvciBlbiBsYSBww6FnaW5hIGRlIHTDrXR1bG8gZGUgc3UgZG9jdW1lbnRvLikgRGUgbGEgbWlzbWEgbWFuZXJhLCBhY2VwdG8gbG9zIHTDqXJtaW5vcyBkZSBsYSBzaWd1aWVudGUgbGljZW5jaWE6IExvcyBhdXRvcmVzIG8gdGl0dWxhcmVzIGRlbCBkZXJlY2hvIGRlIGF1dG9yIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gY29uZmllcmVuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgdW5hIGxpY2VuY2lhIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBzZSBpbnRlZ3JhIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHF1ZSBzZSBhanVzdGEgYSBsYXMgc2lndWllbnRlcyBjYXJhY3RlcsOtc3RpY2FzOiBhKSBFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWUgZW4gZWwgcmVwb3NpdG9yaW8sIHF1ZSBzZXLDoW4gcHJvcnJvZ2FibGVzIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gcGF0cmltb25pYWwgZGVsIGF1dG9yLiBFbCBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgbGljZW5jaWEgc29saWNpdMOhbmRvbG8gYSBsYSBVbml2ZXJzaWRhZC4gYikgTG9zIGF1dG9yZXMgYXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBwdWJsaWNhciBsYSBvYnJhIGVuIGVsIGZvcm1hdG8gcXVlIGVsIHJlcG9zaXRvcmlvIGxvIHJlcXVpZXJhIChpbXByZXNvLCBkaWdpdGFsLCBlbGVjdHLDs25pY28gbyBjdWFscXVpZXIgb3RybyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSB5IGNvbm9jZW4gcXVlIGRhZG8gcXVlIHNlIHB1YmxpY2EgZW4gSW50ZXJuZXQgcG9yIGVzdGUgaGVjaG8gY2lyY3VsYSBjb24gdW4gYWxjYW5jZSBtdW5kaWFsLiBjKSBMb3MgYXV0b3JlcyBhY2VwdGFuIHF1ZSBsYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIHJlbnVuY2lhbiBhIHJlY2liaXIgZW1vbHVtZW50byBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBjb24gcXVlIHNlIHB1YmxpY2EuIGQpIExvcyBhdXRvcmVzIG1hbmlmaWVzdGFuIHF1ZSBzZSB0cmF0YSBkZSB1bmEgb2JyYSBvcmlnaW5hbCBzb2JyZSBsYSBxdWUgdGllbmVuIGxvcyBkZXJlY2hvcyBxdWUgYXV0b3JpemFuIHkgcXVlIHNvbiBlbGxvcyBxdWllbmVzIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uIGUpIExvcyBhdXRvcmVzIGF1dG9yaXphbiBhIGxhIFVuaXZlcnNpZGFkIHBhcmEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIHByb21vdmVyIHN1IGRpZnVzacOzbi4gZikgTG9zIGF1dG9yZXMgYWNlcHRhbiBxdWUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcHVlZGEgY29udmVydGlyIGVsIGRvY3VtZW50byBhIGN1YWxxdWllciBtZWRpbyBvIGZvcm1hdG8gcGFyYSBwcm9ww7NzaXRvcyBkZSBwcmVzZXJ2YWNpw7NuIGRpZ2l0YWwuIFNJIEVMIERPQ1VNRU5UTyBTRSBCQVNBIEVOIFVOIFRSQUJBSk8gUVVFIEhBIFNJRE8gUEFUUk9DSU5BRE8gTyBBUE9ZQURPIFBPUiBVTkEgQUdFTkNJQSBPIFVOQSBPUkdBTklaQUNJw5NOLCBDT04gRVhDRVBDScOTTiBERSBMQSBVTklWRVJTSURBRCBOQUNJT05BTCBERSBDT0xPTUJJQSwgTE9TIEFVVE9SRVMgR0FSQU5USVpBTiBRVUUgU0UgSEEgQ1VNUExJRE8gQ09OIExPUyBERVJFQ0hPUyBZIE9CTElHQUNJT05FUyBSRVFVRVJJRE9TIFBPUiBFTCBSRVNQRUNUSVZPIENPTlRSQVRPIE8gQUNVRVJETy4KUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igb3RyYXMgcGVyc29uYXMgZGlzdGludGFzIGEgc3UgYXV0b3I6IERlY2xhcm8gcXVlIGVsIGdydXBvIGRlIGFyY2hpdm9zIGRpZ2l0YWxlcyB5IG1ldGFkYXRvcyBhc29jaWFkb3MgcXVlIGVzdG95IGFyY2hpdmFuZG8gZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVTikgZXMgZGUgZG9taW5pbyBww7pibGljby4gU2kgbm8gZnVlc2UgZWwgY2FzbywgYWNlcHRvIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHBvciBjdWFscXVpZXIgaW5mcmFjY2nDs24gZGUgZGVyZWNob3MgZGUgYXV0b3IgcXVlIGNvbmxsZXZlIGxhIGRpc3RyaWJ1Y2nDs24gZGUgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuCkFsIGhhY2VyIGNsaWMgZW4gZWwgc2lndWllbnRlIGJvdMOzbiwgdXN0ZWQgaW5kaWNhIHF1ZSBlc3TDoSBkZSBhY3VlcmRvIGNvbiBlc3RvcyB0w6lybWlub3MuCgpVTklWRVJTSURBRCBOQUNJT05BTCBERSBDT0xPTUJJQSAtIMOabHRpbWEgbW9kaWZpY2FjacOzbiAyNy8yMC8yMDIwCg== |