On the code quality of Android apps

Android is nowadays the most popular operating system in the world, not only in the realm of mobile devices, but also when considering desktop and laptop computers. The wide and rapid adoption of Android-based devices has motivated the usage of Android apps to support a broad range of daily activiti...

Full description

Autores:
Mazuera Rozo, Alejandro
Tipo de recurso:
Doctoral thesis
Fecha de publicación:
2022
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/60121
Acceso en línea:
http://hdl.handle.net/1992/60121
Palabra clave:
Android
Code quality
Software quality
Empirical software engineering
Ingeniería
Rights
openAccess
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UNIANDES2_389b9e4f639515c687f6afa6fc81e16b
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/60121
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.none.fl_str_mv On the code quality of Android apps
title On the code quality of Android apps
spellingShingle On the code quality of Android apps
Android
Code quality
Software quality
Empirical software engineering
Ingeniería
title_short On the code quality of Android apps
title_full On the code quality of Android apps
title_fullStr On the code quality of Android apps
title_full_unstemmed On the code quality of Android apps
title_sort On the code quality of Android apps
dc.creator.fl_str_mv Mazuera Rozo, Alejandro
dc.contributor.advisor.none.fl_str_mv Bavota, Gabriele
Linares Vásquez, Mario
dc.contributor.author.none.fl_str_mv Mazuera Rozo, Alejandro
dc.contributor.jury.none.fl_str_mv Hauswirth, Matthias
Pautasso, Cesare
Cardozo Álvarez, Nicolás
Oliveto, Rocco
dc.subject.keyword.none.fl_str_mv Android
Code quality
Software quality
Empirical software engineering
topic Android
Code quality
Software quality
Empirical software engineering
Ingeniería
dc.subject.themes.es_CO.fl_str_mv Ingeniería
description Android is nowadays the most popular operating system in the world, not only in the realm of mobile devices, but also when considering desktop and laptop computers. The wide and rapid adoption of Android-based devices has motivated the usage of Android apps to support a broad range of daily activities. This also resulted in a highly competitive market for developers, who must meet time-to-market constraints while still pursuing internal (e.g., high-quality code) and external (e.g., compelling features) quality for their apps. This translates in the need for improving developers' productivity, supporting them in development and maintenance activities. In our research, we aim at designing techniques and tools supporting Android developers in identifying code quality issues. First, we run empirical studies aimed at analyzing quality issues affecting the Android ecosystem (i.e., operating system and apps) by focusing on: (i) software vulnerabilities, meaning flaws in the software that could be exploited to violate its security policy, thus eventually causing a disruption of the confidentiality, integrity, or availability of the system in question; (ii) performance bugs, namely issues concerning suboptimal implementation choices that can negatively impact indicators such as resource utilization; and (iii) connectivity issues, particularly in contexts in which the quality of a mobile app, as perceived by users, can be negatively impacted in case of unreliable connections, and offline-first practices are not properly implemented. The empirical knowledge acquired in these investigations can be exploited to build tools able to identify code quality issues widely spread in the Android ecosystem. This led us to the building of two tools named OPIA and CONAN. The former exploits dynamic analysis to identify leaks of sensitive information in mobile apps. The latter is the first approach in the literature able to automatically identify connectivity issues affecting mobile apps.
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-08-25T14:05:19Z
dc.date.available.none.fl_str_mv 2022-08-25T14:05:19Z
dc.date.issued.none.fl_str_mv 2022-06-07
dc.type.es_CO.fl_str_mv Trabajo de grado - Doctorado
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/doctoralThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.coar.none.fl_str_mv http://purl.org/coar/resource_type/c_db06
dc.type.content.es_CO.fl_str_mv Text
dc.type.redcol.none.fl_str_mv https://purl.org/redcol/resource_type/TD
format http://purl.org/coar/resource_type/c_db06
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/1992/60121
dc.identifier.doi.none.fl_str_mv 10.57784/1992/60121
dc.identifier.instname.es_CO.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.es_CO.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.es_CO.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url http://hdl.handle.net/1992/60121
identifier_str_mv 10.57784/1992/60121
instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.es_CO.fl_str_mv eng
language eng
dc.rights.license.spa.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.spa.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.es_CO.fl_str_mv 254 páginas
dc.format.mimetype.es_CO.fl_str_mv application/pdf
dc.publisher.es_CO.fl_str_mv Universidad de los Andes
dc.publisher.program.es_CO.fl_str_mv Doctorado en Ingeniería
dc.publisher.faculty.es_CO.fl_str_mv Facultad de Ingeniería
dc.publisher.department.es_CO.fl_str_mv Departamento de Ingeniería Sistemas y Computación
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/bcd55e05-ab4d-4f20-ba75-6b92b1e2309c/download
https://repositorio.uniandes.edu.co/bitstreams/0afd1c3c-deb9-4afd-8bbf-81b015f6a020/download
https://repositorio.uniandes.edu.co/bitstreams/9399281a-7ec0-4455-8bd9-9bc7bc3b25ac/download
https://repositorio.uniandes.edu.co/bitstreams/4f166546-7952-4f84-aea8-530cb7524f13/download
https://repositorio.uniandes.edu.co/bitstreams/92ab795c-02ac-453b-ae8f-c9499aa51931/download
https://repositorio.uniandes.edu.co/bitstreams/1d7d2855-e285-4296-ba25-d30d09a793e9/download
https://repositorio.uniandes.edu.co/bitstreams/19e57496-64d6-44a4-bf44-7b1765ba10b6/download
https://repositorio.uniandes.edu.co/bitstreams/de6c011b-1577-4fdf-b94f-814ee3c2e911/download
bitstream.checksum.fl_str_mv 4460e5956bc1d1639be9ae6146a50347
e8e9d82a3e22e0282206165194ba1d4e
92f2a260b40fe0c71c8058f58a136353
5cb9014d15052d4f02ebfdd86b9b0703
80deb515dfbb623d53f436e5d85e73fa
5aa5c691a1ffe97abd12c2966efcb8d6
130765e7777d9092619aba2afc6b8590
e6fee653cbac4ccb41eaec45e0ca9582
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio institucional Séneca
repository.mail.fl_str_mv adminrepositorio@uniandes.edu.co
_version_ 1812134050050080768
spelling Attribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Bavota, Gabriele2fa58ae4-9d6f-41f6-bfae-3a238d950c0b600Linares Vásquez, Mariovirtual::15757-1Mazuera Rozo, Alejandroda987190-2663-4d0b-8bdb-465169796603600Hauswirth, MatthiasPautasso, CesareCardozo Álvarez, NicolásOliveto, Rocco2022-08-25T14:05:19Z2022-08-25T14:05:19Z2022-06-07http://hdl.handle.net/1992/6012110.57784/1992/60121instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Android is nowadays the most popular operating system in the world, not only in the realm of mobile devices, but also when considering desktop and laptop computers. The wide and rapid adoption of Android-based devices has motivated the usage of Android apps to support a broad range of daily activities. This also resulted in a highly competitive market for developers, who must meet time-to-market constraints while still pursuing internal (e.g., high-quality code) and external (e.g., compelling features) quality for their apps. This translates in the need for improving developers' productivity, supporting them in development and maintenance activities. In our research, we aim at designing techniques and tools supporting Android developers in identifying code quality issues. First, we run empirical studies aimed at analyzing quality issues affecting the Android ecosystem (i.e., operating system and apps) by focusing on: (i) software vulnerabilities, meaning flaws in the software that could be exploited to violate its security policy, thus eventually causing a disruption of the confidentiality, integrity, or availability of the system in question; (ii) performance bugs, namely issues concerning suboptimal implementation choices that can negatively impact indicators such as resource utilization; and (iii) connectivity issues, particularly in contexts in which the quality of a mobile app, as perceived by users, can be negatively impacted in case of unreliable connections, and offline-first practices are not properly implemented. The empirical knowledge acquired in these investigations can be exploited to build tools able to identify code quality issues widely spread in the Android ecosystem. This led us to the building of two tools named OPIA and CONAN. The former exploits dynamic analysis to identify leaks of sensitive information in mobile apps. The latter is the first approach in the literature able to automatically identify connectivity issues affecting mobile apps.Doctor en IngenieríaDoctorado254 páginasapplication/pdfengUniversidad de los AndesDoctorado en IngenieríaFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónOn the code quality of Android appsTrabajo de grado - Doctoradoinfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_db06Texthttps://purl.org/redcol/resource_type/TDAndroidCode qualitySoftware qualityEmpirical software engineeringIngeniería201610723Publicationhttps://scholar.google.es/citations?user=55fmMcoAAAAJvirtual::15757-10000-0003-0161-2888virtual::15757-10cbe51ff-e35a-4c3a-ad77-609b3cdfc9b2virtual::15757-10cbe51ff-e35a-4c3a-ad77-609b3cdfc9b2virtual::15757-1CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repositorio.uniandes.edu.co/bitstreams/bcd55e05-ab4d-4f20-ba75-6b92b1e2309c/download4460e5956bc1d1639be9ae6146a50347MD52THUMBNAILPhD Thesis Dissertation.pdf.jpgPhD Thesis Dissertation.pdf.jpgIM Thumbnailimage/jpeg12113https://repositorio.uniandes.edu.co/bitstreams/0afd1c3c-deb9-4afd-8bbf-81b015f6a020/downloade8e9d82a3e22e0282206165194ba1d4eMD56solicitud_biblioteca.pdf.jpgsolicitud_biblioteca.pdf.jpgIM Thumbnailimage/jpeg17157https://repositorio.uniandes.edu.co/bitstreams/9399281a-7ec0-4455-8bd9-9bc7bc3b25ac/download92f2a260b40fe0c71c8058f58a136353MD57TEXTPhD Thesis Dissertation.pdf.txtPhD Thesis Dissertation.pdf.txtExtracted texttext/plain615656https://repositorio.uniandes.edu.co/bitstreams/4f166546-7952-4f84-aea8-530cb7524f13/download5cb9014d15052d4f02ebfdd86b9b0703MD55solicitud_biblioteca.pdf.txtsolicitud_biblioteca.pdf.txtExtracted texttext/plain2047https://repositorio.uniandes.edu.co/bitstreams/92ab795c-02ac-453b-ae8f-c9499aa51931/download80deb515dfbb623d53f436e5d85e73faMD58LICENSElicense.txtlicense.txttext/plain; charset=utf-81810https://repositorio.uniandes.edu.co/bitstreams/1d7d2855-e285-4296-ba25-d30d09a793e9/download5aa5c691a1ffe97abd12c2966efcb8d6MD51ORIGINALPhD Thesis Dissertation.pdfPhD Thesis Dissertation.pdfTrabajo de gradoapplication/pdf12099396https://repositorio.uniandes.edu.co/bitstreams/19e57496-64d6-44a4-bf44-7b1765ba10b6/download130765e7777d9092619aba2afc6b8590MD53solicitud_biblioteca.pdfsolicitud_biblioteca.pdfHIDEapplication/pdf199961https://repositorio.uniandes.edu.co/bitstreams/de6c011b-1577-4fdf-b94f-814ee3c2e911/downloade6fee653cbac4ccb41eaec45e0ca9582MD541992/60121oai:repositorio.uniandes.edu.co:1992/601212024-08-26 15:26:40.462http://creativecommons.org/licenses/by-nc-nd/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coWW8sIGVuIG1pIGNhbGlkYWQgZGUgYXV0b3IgZGVsIHRyYWJham8gZGUgdGVzaXMsIG1vbm9ncmFmw61hIG8gdHJhYmFqbyBkZSBncmFkbywgaGFnbyBlbnRyZWdhIGRlbCBlamVtcGxhciByZXNwZWN0aXZvIHkgZGUgc3VzIGFuZXhvcyBkZSBzZXIgZWwgY2FzbywgZW4gZm9ybWF0byBkaWdpdGFsIHkvbyBlbGVjdHLDs25pY28geSBhdXRvcml6byBhIGxhIFVuaXZlcnNpZGFkIGRlIGxvcyBBbmRlcyBwYXJhIHF1ZSByZWFsaWNlIGxhIHB1YmxpY2FjacOzbiBlbiBlbCBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIG8gZW4gY3VhbHF1aWVyIG90cm8gc2lzdGVtYSBvIGJhc2UgZGUgZGF0b3MgcHJvcGlvIG8gYWplbm8gYSBsYSBVbml2ZXJzaWRhZCB5IHBhcmEgcXVlIGVuIGxvcyB0w6lybWlub3MgZXN0YWJsZWNpZG9zIGVuIGxhIExleSAyMyBkZSAxOTgyLCBMZXkgNDQgZGUgMTk5MywgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgRGVjcmV0byA0NjAgZGUgMTk5NSB5IGRlbcOhcyBub3JtYXMgZ2VuZXJhbGVzIHNvYnJlIGxhIG1hdGVyaWEsIHV0aWxpY2UgZW4gdG9kYXMgc3VzIGZvcm1hcywgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSwgdHJhbnNmb3JtYWNpw7NuIHkgZGlzdHJpYnVjacOzbiAoYWxxdWlsZXIsIHByw6lzdGFtbyBww7pibGljbyBlIGltcG9ydGFjacOzbikgcXVlIG1lIGNvcnJlc3BvbmRlbiBjb21vIGNyZWFkb3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50by4gIAoKCkxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgZW1pdGUgZW4gY2FsaWRhZCBkZSBhdXRvciBkZSBsYSBvYnJhIG9iamV0byBkZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgbm8gY29ycmVzcG9uZGUgYSBjZXNpw7NuIGRlIGRlcmVjaG9zLCBzaW5vIGEgbGEgYXV0b3JpemFjacOzbiBkZSB1c28gYWNhZMOpbWljbyBkZSBjb25mb3JtaWRhZCBjb24gbG8gYW50ZXJpb3JtZW50ZSBzZcOxYWxhZG8uIExhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgaGFjZSBleHRlbnNpdmEgbm8gc29sbyBhIGxhcyBmYWN1bHRhZGVzIHkgZGVyZWNob3MgZGUgdXNvIHNvYnJlIGxhIG9icmEgZW4gZm9ybWF0byBvIHNvcG9ydGUgbWF0ZXJpYWwsIHNpbm8gdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGVsZWN0csOzbmljbywgeSBlbiBnZW5lcmFsIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gCgoKRWwgYXV0b3IsIG1hbmlmaWVzdGEgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsYSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcywgcG9yIGxvIHRhbnRvLCBsYSBvYnJhIGVzIGRlIHN1IGV4Y2x1c2l2YSBhdXRvcsOtYSB5IHRpZW5lIGxhIHRpdHVsYXJpZGFkIHNvYnJlIGxhIG1pc21hLiAKCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAKCg==