Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.

Detalhes bibliográficos
Ano de defesa: 2023
Autor(a) principal: Oliveira, Fernando Luis
Orientador(a): Mattos, Júlio Carlos Balzano de
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso embargado
Idioma: por
Instituição de defesa: Universidade Federal de Pelotas
Programa de Pós-Graduação: Programa de Pós-Graduação em Computação
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: http://guaiaca.ufpel.edu.br/xmlui/handle/prefix/10369
Resumo: O desenvolvimento de software embarcado para a Internet das Coisas (IoT) tem se concentrado predominantemente em linguagens de programação compi ladas, como C e C++, sendo C a mais utilizada. No entanto, a linguagem C tem desvantagens, incluindo falta de orientação a objetos, ausência de tratamento de exceções, sem mecanismo automatizado para alocal e liberar memória (garbage colletor), gerenciamento manual de memória e outros aspectos que podem tornar o desenvolvimento de software desafiador, considerando o aumento da complexidade dos requisitos de software embarcado. Em contrapartida, linguagens interpretadas como Python e JavaScript (JS) surgem como alternativas para melhorar a qualidade do software e o nível de abstração das aplicações. Embora linguagens interpretadas possam trazer vantagens para software embarcado, como flexibilidade e facilidade de uso, seu modelo de execução (interpretação) pode demandar maior consumo de recursos, restringindo seu uso em dispositivos com recursos limitados. Este estudo investiga métodos para melhorar o desempenho do software embarcado para reduzir o consumo de recursos no contexto IoT, com foco em dispositivos com recursos limitados. Em particular, escolhemos o JavaScript como alternativa à linguagem C e realizamos investigações para melhorar seu desempenho. Para fazer isso, começamos com uma revisão sistemática da literatura para entender a relação entre JS e IoT. Em seguida, analisamos a linguagem JavaScript para entender seu impacto em dispositivos restritos e realizamos experimentos usando benchmarks e aplica tivos reais. Como resultado, produzimos um conjunto de diretrizes para melhorar a qualidade do código, uma ferramenta (JSGuide) para detecção de code smells e desenvolvemos uma estrutura baseada em funções assíncronas (JSEVAsync) para ajudar os desenvolvedores a criar melhores soluções embarcadas. Nossas descobertas mostram que o uso de uma linguagem interpretada no desenvolvimento de software embarcado é viável e melhora as métricas de tempo de design, como manutenibilidade, legibilidade e reutilização de código.
id UFPL_0ac604943bd4d477948c2cc8f42975d9
oai_identifier_str oai:guaiaca.ufpel.edu.br:prefix/10369
network_acronym_str UFPL
network_name_str Repositório Institucional da UFPel - Guaiaca
repository_id_str
spelling 2023-10-17T00:53:37Z2025-05-042023-10-17T00:53:37Z2023-05-04OLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Ad visor: Julio Carlos Balzano de Mattos. 2023. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2023.http://guaiaca.ufpel.edu.br/xmlui/handle/prefix/10369O desenvolvimento de software embarcado para a Internet das Coisas (IoT) tem se concentrado predominantemente em linguagens de programação compi ladas, como C e C++, sendo C a mais utilizada. No entanto, a linguagem C tem desvantagens, incluindo falta de orientação a objetos, ausência de tratamento de exceções, sem mecanismo automatizado para alocal e liberar memória (garbage colletor), gerenciamento manual de memória e outros aspectos que podem tornar o desenvolvimento de software desafiador, considerando o aumento da complexidade dos requisitos de software embarcado. Em contrapartida, linguagens interpretadas como Python e JavaScript (JS) surgem como alternativas para melhorar a qualidade do software e o nível de abstração das aplicações. Embora linguagens interpretadas possam trazer vantagens para software embarcado, como flexibilidade e facilidade de uso, seu modelo de execução (interpretação) pode demandar maior consumo de recursos, restringindo seu uso em dispositivos com recursos limitados. Este estudo investiga métodos para melhorar o desempenho do software embarcado para reduzir o consumo de recursos no contexto IoT, com foco em dispositivos com recursos limitados. Em particular, escolhemos o JavaScript como alternativa à linguagem C e realizamos investigações para melhorar seu desempenho. Para fazer isso, começamos com uma revisão sistemática da literatura para entender a relação entre JS e IoT. Em seguida, analisamos a linguagem JavaScript para entender seu impacto em dispositivos restritos e realizamos experimentos usando benchmarks e aplica tivos reais. Como resultado, produzimos um conjunto de diretrizes para melhorar a qualidade do código, uma ferramenta (JSGuide) para detecção de code smells e desenvolvemos uma estrutura baseada em funções assíncronas (JSEVAsync) para ajudar os desenvolvedores a criar melhores soluções embarcadas. Nossas descobertas mostram que o uso de uma linguagem interpretada no desenvolvimento de software embarcado é viável e melhora as métricas de tempo de design, como manutenibilidade, legibilidade e reutilização de código.mbedded software development for the Internet of Things (IoT) has predomi nantly centered on compiled programming languages, such as C and C++, with C being the most widely used. However, the C language has downsides, including lack of object orientation, absence of exception handling, no garbage collection, manual memory management, and other aspects that can make software develop ment challenging, considering the increased complexity of the embedded software requirements. In contrast, interpreted languages like Python and JavaScript (JS) have emerged as alternatives to improve the software quality and abstraction level of applications. Although interpreted languages can bring advantages to embedded software, such as flexibility and ease of use, their execution model (interpretation) can demand higher resource consumption, restricting their use in resource-constrained devices. This study investigates methods to enhance the performance of embedded software to reduce resource consumption in the IoT context, focusing on devices with limited resources. In particular, we chose JavaScript as an alternative to C language and performed investigations to enhance its performance. To do that, we begin with a systematic literature review to understand the relationship between JS and IoT. Then, we analyzed the JavaScript language to understand its impact on constrained devices and performed experiments using benchmarks and real-world applications. As a result, we produced a set of guidelines to improve code quality, a tool (JSGuide) to detect code smells, and developed a framework (JSEVAsync) based on asynchronous functions to help developers build better-embedded solutions. Our findings show that using an interpreted language in embedded software development is feasible and improves design-time metrics, such as maintainability, readability, and code reuse.Sem bolsaporUniversidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilCC BY-NC-SAinfo:eu-repo/semantics/embargoedAccessCIENCIAS EXATAS E DA TERRACIENCIA DA COMPUTACAOEmbedded softwareInterpreted languageInternet of thingsJavaScriptSoftware embarcadoLinguagem interpretadaInternet das coisasEnhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttp://lattes.cnpq.br/5546692436888264Mattos, Júlio Carlos Balzano deOliveira, Fernando Luisreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPELORIGINALTese_Fernando Luis Oliveira.pdfTese_Fernando Luis Oliveira.pdfapplication/pdf4734012http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/1/Tese_Fernando%20Luis%20Oliveira.pdf2292a9370d092ae8ac0e2b26204a5635MD51open accessTEXTTese_Fernando Luis Oliveira.pdf.txtTese_Fernando Luis Oliveira.pdf.txtExtracted texttext/plain243252http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/3/Tese_Fernando%20Luis%20Oliveira.pdf.txt65afd6db77d6d41349c68b8c49935b0dMD53open accessTHUMBNAILTese_Fernando Luis Oliveira.pdf.jpgTese_Fernando Luis Oliveira.pdf.jpgGenerated Thumbnailimage/jpeg1242http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/4/Tese_Fernando%20Luis%20Oliveira.pdf.jpg1f182995a67ed8861eba6bf4e1b628baMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81960http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/2/license.txta963c7f783e32dba7010280c7b5ea154MD52open accessprefix/103692025-06-29 18:55:57.818open accessoai:guaiaca.ufpel.edu.br:prefix/10369TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkkgLSBDb20gYSBhcHJlc2VudGHDp8OjbyBkZXN0YSBsaWNlbsOnYSwgdm9jw6ogKG8ocykgYXV0b3IoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIChSSSkgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgUGVsb3RhcyAoVUZQZWwpIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCB0cmFkdXppciAKKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIHN1YSBwdWJsaWNhw6fDo28gKGluY2x1aW5kbyBvIHJlc3VtbykgcG9yIHRvZG8gbyBtdW5kbyBubyBmb3JtYXRvIGltcHJlc3NvIAplIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIGZvcm1hdG9zIMOhdWRpbyBvdSB2w61kZW87CgpJSSAtIFZvY8OqIGNvbmNvcmRhIHF1ZSBvIFJJIGRhIFVGUGVsIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXDumRvLCB0cmFuc3BvciBhIHN1YSBwdWJsaWNhw6fDo28gcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gCnBhcmEgZmlucyBkZSBwcmVzZXJ2YcOnw6NvOwoKSUlJIC0gVm9jw6ogdGFtYsOpbSBjb25jb3JkYSBxdWUgbyBSSSBkYSBVRlBlbCBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgZGUgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIGZpbnMgZGUgc2VndXJhbsOnYSwgYmFja3VwIAplIHByZXNlcnZhw6fDo287CgpJViAtIFZvY8OqIGRlY2xhcmEgcXVlIGEgc3VhIHB1YmxpY2HDp8OjbyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gClZvY8OqIHRhbWLDqW0gZGVjbGFyYSBxdWUgbyBkZXDDs3NpdG8gZGEgc3VhIHB1YmxpY2HDp8OjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgbsOjbyBpbmZyaW5nZSBkaXJlaXRvcyBhdXRvcmFpcyAKZGUgbmluZ3XDqW07CgpWIC0gQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBSSSBkYSBVRlBlbCBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhOwoKVkkgLSBDQVNPIEEgUFVCTElDQcOHw4NPIE9SQSBERVBPU0lUQURBIFRFTkhBIFNJRE8gUkVTVUxUQURPIERFIFVNIFBBVFJPQ8ONTklPIE9VIEFQT0lPIERFIFVNQSBBR8OKTkNJQSBERSBGT01FTlRPIE9VCk9VVFJBIE9SR0FOSVpBw4fDg08sIFZPQ8OKIERFQ0xBUkEgUVVFIFJFU1BFSVRPVSBUT0RPUyBFIFFVQUlTUVVFUiBESVJFSVRPUyBERSBSRVZJU8ODTyBDT01PIFRBTULDiU0gQVMgREVNQUlTIE9CUklHQcOHw5VFUyAKRVhJR0lEQVMgUE9SIENPTlRSQVRPIE9VIEFDT1JETzsKClZJSSAtIE8gUkkgZGEgVUZQZWwgc2UgY29tcHJvbWV0ZSBhIGlkZW50aWZpY2FyIGNsYXJhbWVudGUgbyBzZXUgbm9tZSBvdSBvKHMpIG5vbWUocykgZG8ocykgZGV0ZW50b3IoZXMpIGRvcyBkaXJlaXRvcyAKYXV0b3JhaXMgZGEgcHVibGljYcOnw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzIGNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==Repositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2025-06-29T21:55:57Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false
dc.title.pt_BR.fl_str_mv Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
title Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
spellingShingle Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
Oliveira, Fernando Luis
CIENCIAS EXATAS E DA TERRA
Embedded software
Interpreted language
Internet of things
JavaScript
Software embarcado
Linguagem interpretada
Internet das coisas
CIENCIA DA COMPUTACAO
title_short Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
title_full Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
title_fullStr Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
title_full_unstemmed Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
title_sort Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices.
author Oliveira, Fernando Luis
author_facet Oliveira, Fernando Luis
author_role author
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/5546692436888264
dc.contributor.advisor1.fl_str_mv Mattos, Júlio Carlos Balzano de
dc.contributor.author.fl_str_mv Oliveira, Fernando Luis
contributor_str_mv Mattos, Júlio Carlos Balzano de
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA
topic CIENCIAS EXATAS E DA TERRA
Embedded software
Interpreted language
Internet of things
JavaScript
Software embarcado
Linguagem interpretada
Internet das coisas
CIENCIA DA COMPUTACAO
dc.subject.por.fl_str_mv Embedded software
Interpreted language
Internet of things
JavaScript
Software embarcado
Linguagem interpretada
Internet das coisas
dc.subject.cnpq1.pt_BR.fl_str_mv CIENCIA DA COMPUTACAO
description O desenvolvimento de software embarcado para a Internet das Coisas (IoT) tem se concentrado predominantemente em linguagens de programação compi ladas, como C e C++, sendo C a mais utilizada. No entanto, a linguagem C tem desvantagens, incluindo falta de orientação a objetos, ausência de tratamento de exceções, sem mecanismo automatizado para alocal e liberar memória (garbage colletor), gerenciamento manual de memória e outros aspectos que podem tornar o desenvolvimento de software desafiador, considerando o aumento da complexidade dos requisitos de software embarcado. Em contrapartida, linguagens interpretadas como Python e JavaScript (JS) surgem como alternativas para melhorar a qualidade do software e o nível de abstração das aplicações. Embora linguagens interpretadas possam trazer vantagens para software embarcado, como flexibilidade e facilidade de uso, seu modelo de execução (interpretação) pode demandar maior consumo de recursos, restringindo seu uso em dispositivos com recursos limitados. Este estudo investiga métodos para melhorar o desempenho do software embarcado para reduzir o consumo de recursos no contexto IoT, com foco em dispositivos com recursos limitados. Em particular, escolhemos o JavaScript como alternativa à linguagem C e realizamos investigações para melhorar seu desempenho. Para fazer isso, começamos com uma revisão sistemática da literatura para entender a relação entre JS e IoT. Em seguida, analisamos a linguagem JavaScript para entender seu impacto em dispositivos restritos e realizamos experimentos usando benchmarks e aplica tivos reais. Como resultado, produzimos um conjunto de diretrizes para melhorar a qualidade do código, uma ferramenta (JSGuide) para detecção de code smells e desenvolvemos uma estrutura baseada em funções assíncronas (JSEVAsync) para ajudar os desenvolvedores a criar melhores soluções embarcadas. Nossas descobertas mostram que o uso de uma linguagem interpretada no desenvolvimento de software embarcado é viável e melhora as métricas de tempo de design, como manutenibilidade, legibilidade e reutilização de código.
publishDate 2023
dc.date.accessioned.fl_str_mv 2023-10-17T00:53:37Z
dc.date.available.fl_str_mv 2023-10-17T00:53:37Z
2025-05-04
dc.date.issued.fl_str_mv 2023-05-04
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv OLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Ad visor: Julio Carlos Balzano de Mattos. 2023. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2023.
dc.identifier.uri.fl_str_mv http://guaiaca.ufpel.edu.br/xmlui/handle/prefix/10369
identifier_str_mv OLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Ad visor: Julio Carlos Balzano de Mattos. 2023. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2023.
url http://guaiaca.ufpel.edu.br/xmlui/handle/prefix/10369
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv CC BY-NC-SA
info:eu-repo/semantics/embargoedAccess
rights_invalid_str_mv CC BY-NC-SA
eu_rights_str_mv embargoedAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pelotas
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Computação
dc.publisher.initials.fl_str_mv UFPel
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Pelotas
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPel - Guaiaca
instname:Universidade Federal de Pelotas (UFPEL)
instacron:UFPEL
instname_str Universidade Federal de Pelotas (UFPEL)
instacron_str UFPEL
institution UFPEL
reponame_str Repositório Institucional da UFPel - Guaiaca
collection Repositório Institucional da UFPel - Guaiaca
bitstream.url.fl_str_mv http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/1/Tese_Fernando%20Luis%20Oliveira.pdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/3/Tese_Fernando%20Luis%20Oliveira.pdf.txt
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/4/Tese_Fernando%20Luis%20Oliveira.pdf.jpg
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/10369/2/license.txt
bitstream.checksum.fl_str_mv 2292a9370d092ae8ac0e2b26204a5635
65afd6db77d6d41349c68b8c49935b0d
1f182995a67ed8861eba6bf4e1b628ba
a963c7f783e32dba7010280c7b5ea154
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)
repository.mail.fl_str_mv rippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.br
_version_ 1856426211206496256