Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices
| Main Author: | |
|---|---|
| Publication Date: | 2023 |
| Format: | Doctoral thesis |
| Language: | eng |
| Source: | Repositório Institucional da UFPel - Guaiaca |
| Download full: | http://guaiaca.ufpel.edu.br/xmlui/handle/prefix/12903 |
Summary: | Embedded 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. |
| id |
UFPL_bfd281afd0caefde0eef075e2adaf891 |
|---|---|
| oai_identifier_str |
oai:guaiaca.ufpel.edu.br:prefix/12903 |
| network_acronym_str |
UFPL |
| network_name_str |
Repositório Institucional da UFPel - Guaiaca |
| repository_id_str |
|
| spelling |
Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained DevicesEmbedded softwareInterpreted languageInternet of thingsJavaScriptSoftware embarcadoLinguagem interpretadaInternet das CoisasCIENCIAS EXATAS E DA TERRACIENCIA DA COMPUTACAOEmbedded 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 bolsaO 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.Universidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilMattos, Julio Carlos Balzano deOliveira, Fernando Luis2024-05-03T15:56:26Z2024-05-022024-05-03T15:56:26Z2023-05-04info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfOLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Orientador: 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/12903engCC BY-NC-SAinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPEL2025-06-29T21:51:51Zoai:guaiaca.ufpel.edu.br:prefix/12903Repositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2025-06-29T21:51:51Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false |
| dc.title.none.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 Embedded software Interpreted language Internet of things JavaScript Software embarcado Linguagem interpretada Internet das Coisas CIENCIAS EXATAS E DA TERRA 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.none.fl_str_mv |
Mattos, Julio Carlos Balzano de |
| dc.contributor.author.fl_str_mv |
Oliveira, Fernando Luis |
| dc.subject.por.fl_str_mv |
Embedded software Interpreted language Internet of things JavaScript Software embarcado Linguagem interpretada Internet das Coisas CIENCIAS EXATAS E DA TERRA CIENCIA DA COMPUTACAO |
| topic |
Embedded software Interpreted language Internet of things JavaScript Software embarcado Linguagem interpretada Internet das Coisas CIENCIAS EXATAS E DA TERRA CIENCIA DA COMPUTACAO |
| description |
Embedded 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. |
| publishDate |
2023 |
| dc.date.none.fl_str_mv |
2023-05-04 2024-05-03T15:56:26Z 2024-05-02 2024-05-03T15:56:26Z |
| 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.uri.fl_str_mv |
OLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Orientador: 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/12903 |
| identifier_str_mv |
OLIVEIRA, Fernando Luis. Enhancing Embedded Software in the Internet of Things Domain: Exploring JavaScript on Resource-Constrained Devices. Orientador: 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/12903 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
CC BY-NC-SA info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
CC BY-NC-SA |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Pelotas Programa de Pós-Graduação em Computação UFPel Brasil |
| publisher.none.fl_str_mv |
Universidade Federal de Pelotas Programa de Pós-Graduação em Computação UFPel Brasil |
| 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 |
| 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_ |
1845919960003510272 |