Navegando por Autor "Cacho, Nelio Alessandro Azevedo"
Agora exibindo 1 - 20 de 38
- Resultados por página
- Opções de Ordenação
Dissertação Uma abordagem para a verificação do comportamento excepcional a partir de regras de designe e testes(Universidade Federal do Rio Grande do Norte, 2013-02-01) Sales Junior, Ricardo José; Coelho, Roberta de Souza; ; http://lattes.cnpq.br/9854634275938452; ; http://lattes.cnpq.br/3777469968630302; Lima Filho, Fernando José Castor de; ; http://lattes.cnpq.br/7310046838140771; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649Verificar a conformidade entre a implementação de um sistema e suas regras de design é uma atividade importante para tentar garantir que não ocorra a degradação entre os padrões arquiteturais definidos para o sistema e o que realmente está implementado no código-fonte. Especialmente no caso de sistemas dos quais se exige um alto nível de confiabilidade é importante definir regras de design (design rules) específicas para o comportamento excepcional. Tais regras descrevem como as exceções devem fluir através do sistema, definindo quais são os elementos responsáveis por capturar as exceções lançadas por outros elementos do sistema. Entretanto, as abordagens atuais para verificar automaticamente regras de design não proveem mecanismos adequados para definir e verificar regras de design específicas para a política de tratamento de exceções das aplicações. Este trabalho propõe uma abordagem prática para preservar o comportamento excepcional de uma aplicação ou família de aplicações, baseada na definição e verificação automática em tempo de execução de regras de design de tratamento de exceção para sistemas desenvolvidos em Java ou AspectJ. Para apoiar esta abordagem foi desenvolvida, no contexto deste trabalho, uma ferramenta chamada VITTAE (Verification and Information Tool to Analyze Exceptions) que estende o framework JUnit e permite automatizar atividades do teste de regras de design excepcionais. Foi realizado um estudo de caso preliminar com o objetivo de avaliar a eficácia da abordagem proposta sobre uma linha de produto de software. Além deste, foi realizado um experimento cujo objetivo foi realizar uma análise comparativa entre a abordagem proposta e uma abordagem baseada na ferramenta JUnitE, que também propõe testar o código de tratamento de exceções utilizando testes JUnit. Os resultados mostraram que as regras de design excepcionais evoluem ao longo de diferentes versões de um sistema e que a VITTAE pode auxiliar na detecção de defeitos no código de tratamento de exceçãoDissertação Uma abordagem para o controle de elasticidade dinâmico voltada a sistemas cloud-network definidos por slices(2019-07-31) Lima, Alisson Patrick Medeiros de; Venâncio Neto, Augusto José; ; ; Silva, Liliane Ribeiro da; ; Cacho, Nelio Alessandro Azevedo; ; Pasquini, Rafael; ; Sampaio, Silvio Costa;Nesta última década, operadoras de telecomunicações têm adotado a tecnologia network slicing em seus sistemas, aplicando uma camada de virtualização sobre a infraestrutura física, permitindo fatiá-la em diferentes porções a serem disponibilizadas como serviço aos seus clientes. A softwarização e a cloudificação são tecnologias chave na arquitetura dos sistemas 5G, e habilitadores fundamentais para o aprovisionamento de network slices de forma eficiente. No entanto, a integração dessas tecnologias de forma coordenada sobre uma mesma infraestrutura virtualizada ainda se apresenta como uma tarefa desafiadora. Neste cenário, abordagens recentes visam estender o conceito de network slicing para a nuvem, na perspectiva de permitir que o slicing em infraestruturas de nuvens e redes seja orquestrado de forma coordenada, caracterizando assim os sistemas cloud-network definidos por slices. Neste novo cenário, uma abordagem eficiente para o controle da elasticidade de recursos é um fator fundamental para assegurar a utilização racional e eficiente dos recursos de redes e nuvem, garantindo assim a qualidade dos serviços oferecidos por esses sistemas, além de possibilitar uma sensível redução de gastos capitais (CAPEX) e operacionais (OPEX) desses sistemas. Enquanto o estado da arte no tema apresenta uma maioria de trabalhos que propõem uma abordagem estocástica para o controle e alocação de recursos (ex, largura de banda, CPU, memória, armazenamento em massa, e outros), neste trabalho, introduzimos um mecanismo de controle de elasticidade em sistemas cloudnetwork definidos por slices que apresenta maior eficiência na alocação de recursos em momentos críticos do sistema, principal desvantagem dos modelos estocásticos. Assim, a abordagem SLOTS (elaSticity in cLOud-neTwork Slices) proposta tem como principais características visão fim a fim em ambientes multi-domínios e conhecimento de situações críticas dirigidas por esgotamento de recursos. Um protótipo do SLOTS foi implementado e seus resultados preliminares sugerem que sua abordagem se apresenta como uma solução viável para fornecer a elasticidade de recursos em ambientes definidos por cloud-network slices em condições críticas de recursos e alta demanda.Tese An automated approach for performance deviation analysis of evolving software systems(Universidade Federal do Rio Grande do Norte, 2015-11-18) Pinto, Felipe Alves Pereira; Kulesza, Uira; ; http://lattes.cnpq.br/0189095897739979; ; http://lattes.cnpq.br/6163607072712192; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Batista, Thais Vasconcelos; ; http://lattes.cnpq.br/5521922960404236; Almeida, Eduardo Santana de; ; http://lattes.cnpq.br/8538761803577291; Maia, Marcelo de Almeida; ; http://lattes.cnpq.br/4915659948263445The maintenance and evolution of software systems have become a critical task over the last years due to the diversity and high demand of features, devices and users. The ability to understand and analyze how newly introduced changes impact the quality attributes of the architecture of those software systems is an essential prerequisite for avoiding the deterioration of the engineering quality of them during their evolution. This thesis proposes an automated approach for the deviation analysis of the quality attribute of performance in terms of execution time (response time). It is implemented by a framework that adopts dynamic analysis and mining software repository techniques to provide an automated way to revel potential sources - commits and issues - of performance deviation in scenarios of an evolving software system. The approach defines four phases: (i) preparation - choosing the scenarios and preparing the target releases; (ii) dynamic analysis - determining the performance of scenarios and methods by calculating their execution time; (iii) deviation analysis - processing and comparing the results of the dynamic analysis for different releases; and (iv) repository mining - identifying development issues and commits associated with performance deviation. Several empirical studies have been developed to assess the approach from different perspectives. An initial study shows the feasibility of the approach to support traceability of quality attributes with static analysis. An exploratory study analyzed the usefulness and domain independence of the proposal in automatically identifying source code assets with performance deviation and the changes that have affected them during an evolution. This study was performed using three systems: (i) SIGAA - a web academic management system; (ii) ArgoUML - an UML modeling tool; and (iii) Netty - a network application framework. A third study has performed an evolutionary analysis of applying the approach to multiple releases of Netty, and the web frameworks Wicket and Jetty. It has analyzed twenty-one releases (seven releases of each system) and addressed a total of 57 scenarios. Overall, we have found 14 scenarios with significant performance deviation for Netty, 13 for Wicket, and 9 for Jetty. In addition, the feedback obtained from an online survey with eight developers of Netty, Wicket and Jetty is also discussed. Finally, in our last study, we built a performance regression model in order to indicate the properties of code changes that are more likely to cause performance degradation. We mined a total of 997 commits, of which 103 were retrieved from degraded code assets, 19 from optimized, while 875 had no impact on execution time. Number of days before release and day of week were the most relevant variables of commits that cause performance degradation in our model. The receiver operating characteristic (ROC) area of our regression model is 60%, which means that deciding if a commit will cause performance degradation or not by using the model is 10% better than a random guess.Tese An ensemble online learning-based approach for VNF scaling in the Edge Computing(Universidade Federal do Rio Grande do Norte, 2023-09-15) Silva, Thiago Pereira da; Batista, Thais Vasconcelos; Delicato, Flávia Coimbra; https://orcid.org/0000-0003-3558-1450; http://lattes.cnpq.br/5521922960404236; Lopes, Frederico Araújo da Silva; http://lattes.cnpq.br/9177823996895375; Cacho, Nelio Alessandro Azevedo; Pires, Paulo de FigueiredoRecentemente, foram propostas plataformas de computação de borda (do inglês Edge Computing) para gerenciar aplicações emergentes com alta carga computacional e baixos requisitos de tempo de resposta. De modo a proporcionar mais agilidade e flexibilidade na prestação de serviços e, em simultâneo, reduzir os custos de implantação para os provedores de infraestrutura, tecnologias como a Virtualização das Funções de Rede (NFV, do inglês Network Functions Virtualization) são frequentemente utilizadas em ambientes de produção na borda da rede. NFV promove o desacoplamento de hardware e funções de rede usando tecnologias de virtualização, permitindo que elas funcionem em máquinas virtuais ou contêineres como software. As funções de rede ou mesmo funções de camadas superiores são implementadas como entidades de software chamadas Funções de Rede Virtual (VNFs, do inglês Virtual Network Functions). A integração dos paradigmas de Computação de Borda e NFV, como proposto pelo ETSI MEC, permite a criação de um ecossistema para aplicações 5G. Tal integração permite a criação de cadeias de VNF, representando serviços ponta a ponta para os usuários finais e sua implantação em nós de borda. Uma cadeia de funções de serviço (SFC, do inglês Service Function Chaining) compreende um conjunto de VNFs encadeadas em uma determinada ordem, onde cada VNF pode ser executada em um nó de borda diferente. Os principais desafios neste ambiente dizem respeito ao provisionamento dinâmico e ao desprovisionamento de recursos distribuídos na borda para executar as VNFs e atender às exigências da aplicação, otimizando o custo para o fornecedor da infraestrutura. Este trabalho apresenta uma abordagem híbrida de dimensionamento automático para o dimensionamento dinâmico das VNFs no ambiente de computação de borda. Tal abordagem de autodimensionamento emprega uma técnica de aprendizagem de máquinas em conjunto on-line que consiste no agrupamento de diferentes modelos de aprendizagem de máquinas on-line que preveem a carga de trabalho futura das VNFs. A arquitetura da abordagem proposta segue a abstração do MAPE-K (do inglês Monitor-Analyze-Plan-Execute over a shared Knowledge ) para ajustar dinamicamente o número de recursos em resposta às mudanças de carga de trabalho. Esta abordagem é inovadora porque prevê proativamente a carga de trabalho para antecipar ações de dimensionamento e se comporta de forma reativa quando o modelo de predição não atende a uma qualidade desejada. Além disso, a solução proposta nesse trabalho não requer nenhum conhecimento prévio do comportamento dos dados, o que a torna adequado para uso em diferentes contextos. Esse trabalho também apresenta um algoritmo para dimensionar as instâncias de VNF, utilizando uma estratégia para definir quantos recursos devem ser alocados ou desalocados durante uma ação de dimensionamento. Finalmente, apresentamos uma avaliação do método de aprendizado por agrupamento e do algoritmo proposto, comparando o desempenho das predições e a quantidade de ações de dimensionamentos e violações do Acordo de Nível de Serviço (SLA, do inglês Service Level Agreement).Dissertação Analisando o tratamento de exceções em aplicações android(2016-08-17) Queiroz, Francisco Diogo Oliveira de; Coelho, Roberta de Souza; ; http://lattes.cnpq.br/9854634275938452; ; http://lattes.cnpq.br/4142453806695605; Figueira Filho, Fernando Marques; ; http://lattes.cnpq.br/6874649375434646; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Almeida, Rodrigo Bonifácio de; ; http://lattes.cnpq.br/0368311142108150Com a ascensão da tecnologia móvel nos últimos anos, dispositivos como smartphones e tablets têm se tornado parte integral da vida das pessoas. Como telefones tradicionais, os smartphones podem ser utilizados para realizar chamadas e mandar mensagens de texto, mas é a possibilidade de fornecer variados tipos de aplicações que os tornam tão atrativos para seus usuários. Neste contexto, aplicações Android tem se tornado cada vez mais populares; e no mesmo ritmo em que cresce o número de aplicações disponíveis, também cresce o número de usuários afetados pelos crashes de tais aplicações. Para poder lidar com tais condições excepcionais, o código para lançamento e captura de exceções não é uma parte opcional mas uma parte fundamental de tais aplicações. Porém, o que se tem observado é que o código projetado para tratar estas condições excepcionais pode muitas vezes ser a causa de crashes (e.g., exceções não capturadas). Até o momento nenhum estudo investigou as principais características do código de tratamento de exceções (TE) de aplicações Android. Este trabalho apresenta um conjunto de estudos complementares para melhor entender as características do código de TE de aplicações Android assim como identificar a visão dos desenvolvedores a respeito destas características. Neste trabalho foram realizados três estudos: (i) um estudo exploratório onde foram inspecionados o código de TE de 15 aplicações Android populares (o que no total correspondeu a 3490 blocos try-catch-finally); e (ii) dois estudos qualitativos baseados em técnicas de Teoria Fundamentada em Dados - nestes foram aplicados surveys a 28 desenvolvedores Android e 47 especialistas Android para levantar a opinião dos mesmos sobre boas e más praticas no desenvolvimento do tratamento de exceções no ambiente Android. Durante estes estudos observamos um grande número de exceções sendo silenciadas no código de apps. Também observamos que poucas aplicações enviavam informações as informações sobre as exceções uncaught para servidores de crash report.Dissertação Apoiando a construção de testes de aceitação automatizados a partir da especificação de requisitos(Universidade Federal do Rio Grande do Norte, 2012-07-27) Silva, Carlos Breno Pereira; Leite, Jair Cavalcanti; ; http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4782411P6; ; http://lattes.cnpq.br/3335528003806947; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Coelho, Roberta de Souza; ; http://lattes.cnpq.br/9854634275938452A automatização no processo de teste de software tem se tornado cada vez mais necessária devido ao alto custo e tempo associado a esta atividade. Algumas ferramentas tem sido propostas para automatizar a execução de testes de aceitação em aplicações Web. Contudo, grande parte delas apresenta limitações importantes tais como a forte dependência com a estrutura das páginas HTML e a necessidade de valoração manual dos casos de testes. Neste trabalho, apresentamos uma linguagem para especificação de cenários de Testes de Aceitação em aplicações Web denominada IFL4TCG e uma ferramenta que permite a geração de casos de testes a partir destes cenários. A linguagem proposta dá suporte ao critério Partição em Classes de Equivalência e a ferramenta permite a geração de casos de teste que atendem diferentes estratégias de combinação (i.e., Cada Escolha, Escolha Base e Todas Combinações). Com o objetivo de avaliar a eficácia da solução proposta, utilizamos a linguagem e a ferramenta associada para elaborar e executar testes de Aceitação em um dos módulos do Sistema Unificado de Administração Publica (SUAP) do Instituto Federal do Rio Grande do Norte (IFRN). Participaram da avaliação quatro Analistas de Sistemas e um Técnico em Informática que atuam como desenvolvedores do respectivo sistema. Resultados preliminares mostraram que a IFL4TCG pode, de fato, auxiliar na detecção de defeitos em aplicações WebDissertação AutoWebS: um Ambiente para Modelagem e Geração Automática de ServiçosWeb Semânticos(Universidade Federal do Rio Grande do Norte, 2012-08-06) Silva, Thiago Pereira da; Batista, Thais Vasconcelos; ; http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784543T8; ; http://lattes.cnpq.br/0241704052892662; Delicatto, Flávia Coimbra; ; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Pires, Paulo de Figueiredo; ; http://lattes.cnpq.br/1304174767727101Tipicamente serviços Web contêm apenas informações sintáticas que descrevem suas interfaces e a falta de descrições semânticas torna a composição de serviçosWeb uma tarefa difícil. Para resolver este problema, pode-se usar ontologias para a definição semântica da interface dos serviços, facilitando a automação da descoberta, publicação, mediação, invocação e composição dos serviços. No entanto, linguagens que permitem se descrever semanticamente serviços Web utilizando ontologias, como OWL-S, têm construções que não são fáceis de entender, mesmo para desenvolvedoresWeb, e as ferramentas existentes levam aos usuários muitos detalhes que as tornam difíceis de serem manipuladas. Este trabalho apresenta uma ferramenta chamada AutoWebS (Automatic Generation of Semantic Web Services) para o desenvolvimento de serviços Web semânticos. O AutoWebS usa uma abordagem baseada em perfis UML e transformações entre modelos para a geração automática de serviçosWeb e sua descrição semântica em OWL-S. O AutoWebS disponibiliza um ambiente que oferece recursos para modelar, implementar, compilar e implantar serviços Web semânticosDissertação Avaliando a robustez e manutenibilidade do comportamento excepcional de aplicações C#(Universidade Federal do Rio Grande do Norte, 2014-04-25) Sousa Neto, Eliezio Soares de; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; ; http://lattes.cnpq.br/4774223109614503; Lima Filho, Fernando José Castor de; ; http://lattes.cnpq.br/7310046838140771; Costa, Umberto Souza da; ; http://lattes.cnpq.br/9526809466920084As linguagens de programação convencionais fornecem mecanismos de tratamento de exceções internos a fim de prover implementação de tratamento de exceções em sistemas de software robusto e manutenível. A maioria dessas linguagens modernas, tais como C#, Ruby, Python e muitas outras, frequentemente afirmaram ter mecanismos de tratamento de exceção mais apropriados. Elas reduzem as restrições de programação no tratamento de exceção buscando agilizar mudanças no código fonte. Essas linguagens suportam o que chamamos de mecanismos de tratamento de exceções dirigidos a manutenção. Espera-se que a adoção desses mecanismos aumentem a manutenibilidade dos softwares sem impactar na robustez. Entretanto ainda existe pouco conhecimento empírico acerca do impacto que a adoção desses mecanismos tem na robustez de softwares. Este trabalho busca preencher essa lacuna conduzindo um estudo empírico direcionado ao entendimento da relação entre mudanças em programas C# e sua robustez. Em particular, nós avaliamos como mudanças nos códigos normal e excepcional se relacionam com faltas no tratamento de exceção. Nós aplicamos uma análise de impacto de mudança e uma análise de fluxo de controle em 100 versões de 16 programas escritos em C#. A partir dos dados coletados, este trabalho identificou os elementos do trade-off entre manutenibilidade e robustezDissertação BMMobile: uma linha de produtos para dimensionamento de bombeio mecânico em dispositivos móveis(Universidade Federal do Rio Grande do Norte, 2010-11-18) Sousa, Matheus Alves de; Batista, Thais Vasconcelos; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; ; http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784543T8; ; http://lattes.cnpq.br/4704174970513024; Leite, Jair Cavalcanti; ; http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4782411P6; Santoro, Flávia Maria; ; http://lattes.cnpq.br/5377746284077362Com o aumento da capacidade de processamento, armazenamento e a variedade de tipos de comunicação existentes, como Bluetooth, infravermelho, redes sem fio, etc., os dispositivos móveis deixaram de ser apenas dispositivos com função especifica e passaram a ser ferramentas com diversos tipos de funcionalidade. No campo empresarial os benefícios que estes tipos de dispositivos oferecem são consideráveis, uma vez que a portabilidade permite que tarefas que antes só poderiam ser executadas dentro do ambiente de trabalho, possam ser realizadas em qualquer lugar. No contexto de empresas de exploração de petróleo, aplicações móveis permitem que ações rápidas possam ser tomadas por engenheiros e técnicos de petróleo, usando seus dispositivos móveis, de forma a evitar possíveis catástrofes como a parada de um poço ou quebra de um equipamento importante. Em geral, a configuração de equipamentos para extração de petróleo é realizada no ambiente de trabalho usando sistemas computacionais em plataformas desktop. Após a configuração ser determinada, algum funcionário deve ir ao equipamento a ser configurado e executar as modificações obtidas na utilização do sistema desktop. Este processo de gerenciamento de equipamentos para a extração de petróleo demanda muito tempo e não garante a manutenção em tempo hábil de forma a evitar maiores problemas. Com a utilização de dispositivos móveis, o gerenciamento e manutenção de equipamentos para extração de petróleo pode ser realizada de forma mais ágil, uma vez que permite que o engenheiro ou técnico de petróleo possa realizar essa configuração no momento e local aonde chega a solicitação, por exemplo, próximo ao poço onde está localizado o equipamento. A grande variedade de tipos de dispositivos móveis gera uma grande dificuldade no desenvolvimento de aplicações móveis, uma vez que para que uma aplicação possa funcionar em diversos tipos de dispositivos, a aplicação deve sofrer alterações para cada tipo especifico de aparelho, o que torna o desenvolvimento bastante custoso. Este trabalho define e implementa uma linha de produto de software para dimensionamento de bombeio mecânico em dispositivos móveis. Esta linha de produto de software, denominada BMMobile, tem como objetivo gerar produtos que sejam capazes de realizar cálculos para determinar as configurações possíveis para os equipamentos no dimensionamento de bombeio mecânico, além de gerenciar as variabilidades dos diversos produtos que podem ser gerados. Além disso, esse trabalho realiza duas avaliações. A primeira avaliação permite verificar a consistência dos produtos produzidos pela linha de produto de software. A segunda avaliação permite avaliar o reuso em alguns produtos gerados pela LPS desenvolvidaDissertação Cloud Integrator: uma plataforma para composição de serviços em ambientes de computação em nuvem(Universidade Federal do Rio Grande do Norte, 2013-01-31) Cavalcante, Everton Ranielly de Sousa; Batista, Thais Vasconcelos; ; http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4784543T8; ; http://lattes.cnpq.br/5065548216266121; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Rodriguez, Noemi de La Rocque; ; http://lattes.cnpq.br/4933326132948063Com o avanço do paradigma de Computação em Nuvem, um único serviço oferecido por uma plataforma de nuvem pode não ser suficiente para satisfazer todos os requisitos da aplicação. Para satisfazer tais requisitos, ao invés de um único serviço, pode ser necessária uma composição que agrega serviços providos por diferentes plataformas de nuvem. A fim de gerar valor agregado para o usuário, essa composição de serviços providos por diferentes plataformas de Computação em Nuvem requer uma solução em termos de integração de plataformas, envolvendo a manipulação de um vasto número de APIs e protocolos não interoperáveis de diferentes provedores. Nesse cenário, este trabalho apresenta o Cloud Integrator, uma plataforma de middleware para composição de serviços providos por diferentes plataformas de Computação em Nuvem. Além de prover um ambiente que facilita o desenvolvimento e a execução de aplicações que utilizam tais serviços, o Cloud Integrator funciona como um mediador provendo mecanismos para a construção de aplicações através da composição e seleção de serviços Web semânticos que consideram metadados acerca dos serviços, como QoS (Quality of Service), preços etc. Adicionalmente, a plataforma de middleware proposta provê um mecanismo de adaptação que pode ser disparado em caso de falha ou degradação da qualidade de um ou mais serviços utilizados pela aplicação em questão, a fim de garantir sua a qualidade e disponibilidade. Neste trabalho, através de um estudo de caso que consiste de uma aplicação que utiliza serviços providos por diferentes plataformas de nuvem, o Cloud Integrator é avaliado em termos da eficiência dos processos de composição de serviços, seleção e adaptação realizados, bem como da potencialidade do seu uso em cenários de nuvens computacionais heterogêneasDissertação Controle de mobilidade infraestruturado e orientado à qualidade para maximização de admissões em sistemas WiNeMO: uma abordagem definida por software(Universidade Federal do Rio Grande do Norte, 2015-12-18) Silva, Felipe Sampaio Dantas da; Venâncio Neto, Augusto José; ; http://lattes.cnpq.br/1467664612924239; ; http://lattes.cnpq.br/4095047828103786; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Silva, Flávio de Oliveira;A popularização das redes sem fio e a crescente proliferação de dispositivos móveis requerem o desenvolvimento de mecanismos de controle de mobilidade que suportem as diferentes demandas de tráfego sob características de rede diversas. Um grande obstáculo no desenvolvimento deste tipo de tecnologia é a complexidade envolvida no gerenciamento de todas as informações de mobilidade, principalmente quando se considera um grande número de dispositivos. Além disso é preciso lidar com toda a sobrecarga de sinalização necessária para controlar estes procedimentos na rede de maneira eficiente. Várias iniciativas propostas pela comunidade científica tratam deste assunto de maneira ineficiente, apresentando soluções que dependam da atuação explícita do objeto móvel (Moving Object - MO), responsável por acionar o processo de mobilidade, geralmente guiada exclusivamente por aspectos físicos, tais como RSS (Received Signal Strength) dos pontos de acesso (Point of Attachment - PoA) candidatos. Diante disso, este trabalho tem como objetivo conceber, avaliar e validar uma infraestrutura de comunicação para o gerenciamento de mobilidade em sistemas WiNeMo (Wireless Networking for Moving Objects), fazendo uso da flexibilidade provida pelo paradigma das Redes Definidas por Software (Software Defined Networking - SDN), onde as funções de rede, incluindo o gerenciamento de mobilidade e qualidade de serviço (Quality of Service - QoS), podem ser facilmente estendidas, tais como o software no plano de controle, sem sobrecarga computacional, e atualizações nos dispositivos de rede. Como principais contribuições, destacam-se: (i) predição e controle de mobilidade infraestruturado; (ii) seleção de melhor ponto de acesso e aprovisionamento de recursos com base nos requisitos de QoS das aplicações dos objetos móveis; (iii) balanceamento de carga por mobilidade, em casos de exaustão de recursos no ponto de acesso pretendido; e (iv) setup de handover com base no IEEE 802.21.Dissertação Dados abertos do governo brasileiro: entendendo as perspectivas de fornecedores de dados e desenvolvedores de aplicações ao cidadão(2017-02-21) Araújo, Narallynne Maciel de; Figueira Filho, Fernando Marques; ; http://lattes.cnpq.br/6874649375434646; ; http://lattes.cnpq.br/9221440085527841; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Andrade, Nazareno;Dados Abertos Governamentais (DAGs) são vistos como uma forma de promover transparência, bem como de fornecer informações para a população por meio da abertura de dados relacionados a diversos setores governamentais. Cidadãos, ao fazerem uso de aplicações desenvolvidas com esse tipo de dado, conseguem obter o conhecimento sobre determinada esfera pública; o governo, por sua vez, é capaz de promover a transparência necessária e proporcionar melhorias dos seus órgãos por meio da interação com cidadãos que utilizam tais aplicações. No entanto, a criação e o sucesso de projetos que usam DAGs certamente depende de desenvolvedores capazes de extrair, processar e analisar essas informações, como também da qualidade com que esses dados são disponibilizados pelos seus fornecedores. Esta pesquisa foi dividida em duas fases: a primeira fase, procurou investigar a perspectiva dos desenvolvedores que utilizam DAGs brasileiros para o desenvolvimento de aplicações que objetivam promover maior transparência aos cidadãos; na segunda fase, foram investigadas as perspectivas de cidadãos responsáveis por publicar esses dados em portais de dados abertos, i.e. fornecedores de DAGs. Por meio de vinte e quatro entrevistas semiestruturadas com doze desenvolvedores e doze fornecedores, este trabalho reporta o que os motivam a trabalhar com DAGs, bem como as dificuldades enfrentadas por eles nesse processo. Os resultados indicam que ambos atores buscam promover transparência para a população, mas esbarram na baixa qualidade dos DAGs, barreiras culturais, dentre outroes problemas. Neste trabalho, tais problemas são apresentados e caracterizados qualitativamente. Também são apresentadas recomendações, de acordo com as perspectivas de desenvolvedores e fornecedores de dados, com o objetivo de trazer benefícios ao ecossistema de DAGs brasileiro e aos cidadãos.Dissertação Dashboards para desenvolvimento de aplicações e visualização de dados para plataformas de cidades inteligentes(Universidade Federal do Rio Grande do Norte, 2020-03-04) Rolim, Douglas Arthur de Abreu; Batista, Thais Vasconcelos; ; ; Cavalcante, Everton Ranielly de Sousa; ; Cacho, Nelio Alessandro Azevedo; ; Andrade, Rossana Maria de Castro;As aplicações de cidades inteligentes são inerentemente caracterizadas pela integração de dados de fontes heterogêneas e pela necessidade de considerar informações geográficas que representam o espaço urbano do mundo real. Visando atender tais necessidades, algumas plataformas foram propostas nos últimos anos, oferecendo serviços comuns para facilitar o desenvolvimento de aplicações de cidades inteligentes. No entanto, a maioria das plataformas existentes não oferecem interfaces de alto nível para fornecerem aos desenvolvedores ferramentas adequadas que podem reduzir a complexidade do desenvolvimento de aplicações, nem uma interface para organizar a visualização de dados para os usuários finais. Com o objetivo de lidar com essas limitações, este trabalho propõe dashboards baseados na Web para dar suporte ao desenvolvimento e visualização de dados em aplicações de cidades inteligentes: o primeiro é adaptado para desenvolvedores de aplicações, enquanto o segundo é adequado para usuários visualizarem dados. Este trabalho: (i) propõe uma arquitetura para as interfaces de alto nível da plataforma de cidade inteligente que considera dados georreferenciados; (ii) implementa essa arquitetura no contexto do middleware Smart Geo Layers (SGeoL), incluindo interfaces de dashboard específicas para desenvolvedores de aplicações e usuários interessados em aplicações criados usando a plataforma; (iii) discute como os dashboards definidos nesse trabalho são usados em aplicações reais, no contexto do SGeoL, que é uma plataforma que combina dados georreferenciados, resolve problemas de interoperabilidade e heterogeneidade e atualmente é aplicada no contexto da cidade de Natal. Esse trabalho também apresenta os resultados de um experimento controlado realizado com os usuários visando avaliar os benefícios trazidos pelos dashboards propostos em termos de esforço de desenvolvimento de aplicações e usabilidade.Dissertação ECSFlow: implementação de um modelo de tratamento de exceção para C#(2016-12-12) Pranto Filho, Frederico Nunes do; Cacho, Nelio Alessandro Azevedo; ; ; Medeiros Neto, Francisco Dantas de; ; Coelho, Roberta de Souza;As linguagens de programação convencionais, tais como C#, Ruby, Python e outras, fornecem mecanismos internos de tratamento de exceções a m de prover uma implementação de tratamento de exceções robusta e manutenível em sistemas de software. Essas linguagens suportam o que chamamos de mecanismos de tratamento de exceções dirigidos à manutenção, visto que elas reduzem as restrições de programação no tratamento de exceção buscando agilizar as mudanças no código fonte durante a evolução do software. No entanto, muitos dos problemas que resultam do tratamento de exceção são causados pela forma local na qual as exceções são tratadas. Desta forma, os desenvolvedores devem compreender a origem da exceção, o local onde a exceção será tratada e todo o uxo de controle excepcional entre esses dois pontos. Consequentemente, à medida que o desenvolvimento do software evolui, este uxo torna-se cada vez menos conhecido, prejudicando a manutenção e robustez do sistema. Este trabalho apresenta nova implementação do modelo de tratamento de exceção, chamado ECSFlow, para a linguagem C#, baseada no modelo EFlow. Diferentemente de outros mecanismos de tratamento de exceção, este modelo provê abstrações para descrever o controle do uxo excepcional a partir de uma visão global, permitindo entender o uxo excepcional de uma perspectiva m-a- m, observando somente uma parte do código. Além disso, o modelo permite associar o código excepcional ao código normal de forma mais exível. A implementação proposta foi avaliada qualitativamente e quantitativamente através de um estudo de caso de uma aplicação real.Tese Edge-distributed stream processing for video analytics in smart city applications(Universidade Federal do Rio Grande do Norte, 2021-03-31) Rocha Neto, Aluízio Ferreira da; Batista, Thais Vasconcelos; Delicato, Flávia Coimbra; ; http://lattes.cnpq.br/5386282151810710; ; http://lattes.cnpq.br/5521922960404236; ; http://lattes.cnpq.br/5056619278818251; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; Souza, José Neuman de; ; Pires, Paulo de Figueiredo; ; http://lattes.cnpq.br/1304174767727101Aplicações emergentes de Internet das Coisas (IoT) baseadas em sensores distribuídos e inteligência, especialmente no contexto de cidades inteligentes, apresentam muitos desafios para a infraestrutura de rede e de processamento. Por exemplo, um único sistema com algumas dezenas de câmeras de monitoramento é suficiente para saturar o backbone da cidade. Além disso, tal sistema gera fluxos massivos de dados para aplicações baseadas em eventos que demandam um rápido processamento visando ações imediatas. A busca por uma pessoa desaparecida usando a tecnologia de reconhecimento facial é uma dessas aplicações que requer ação imediata no local onde essa pessoa se encontra, uma vez que esta localização é uma informação perecível. Uma estratégia promissora para dar suporte à demanda computacional de sistemas amplamente distribuídos geograficamente é a integração da computação de borda com inteligência de máquina com o objetivo de interpretar os dados próximos ao sensor e reduzir a latência de ponta a ponta no processamento dos eventos. No entanto, devido à capacidade limitada e heterogeneidade dos dispositivos de borda, tal processamento distribuído não é trivial, especialmente quando as aplicações têm diferentes requisitos de Qualidade de Serviço (QoS). Este trabalho apresenta um arcabouço de sistema distribuído para análise de vídeos com o processamento na borda da rede. Investigamos pesquisas recentes sobre processamento de fluxos de dados massivos, principalmente com foco na divisão desse processamento em vários tipos de tarefas. Em seguida, propomos uma arquitetura para organizar nós de borda e de nuvem para executarem várias destas tarefas em um esquema de colaboração de processamento de fluxos de dados multimídia. Um método de distribuição de carga de trabalho em nós de borda para o processamento baseado em eventos também é proposto, juntamente com um esquema de reutilização dos nós que realizam tarefas do interesse de várias aplicações, tal como uma tarefa de reconhecimento facial, por exemplo. Também desenvolvemos um algoritmo para alocar nós com capacidade de processamento suficiente para processar a demanda dos fluxos enquanto atende aos requisitos de QoS das aplicações. Por fim, as simulações mostraram que a distribuição do processamento em vários nós de borda reduz a latência e o consumo de energia e ainda melhora a disponibilidade em comparação com o processamento centralizado na nuvem.Tese Engineering efficient exception handling for android applications(Universidade Federal do Rio Grande do Norte, 2021-05-31) Oliveira, Juliana de Araújo; Cacho, Nelio Alessandro Azevedo; http://lattes.cnpq.br/4635320220484649; Barbosa, Eiji Adachi Medeiros; http://lattes.cnpq.br/8833409749475821; Lima Filho, Fernando José Castor de; http://lattes.cnpq.br/7310046838140771; Coelho, Roberta de Souza; http://lattes.cnpq.br/9854634275938452; Carvalho, Windson Viana de; http://lattes.cnpq.br/1744732999336375A popularidade da plataforma Android pode ser atribuída à capacidade de executar aplicativos que potencializam os diversos recursos dos dispositivos móveis. Os aplicativos Android são em sua maioria escritos em Java, no entanto, eles são muito diferentes dos aplicativos Java padrão, com diferentes abstrações, vários pontos de entrada e também têm uma forma diferente de comunicação entre os componentes. Estas diferenças na estrutura de aplicações Android têm produzido efeitos negativos na experiência do usuário em termos de baixa robustez. Em termos de robustez, o mecanismo de tratamento de exceções para a plataforma Android tem dois problemas principais: (1) a abordagem “Terminate ALL" e (2) a falta de uma visão holística do comportamento excepcional. O tratamento de exceções está fortemente relacionado à robustez do programa. Além da robustez, o consumo de energia e o desempenho são outros requisitos não funcionais que precisam ser levados em consideração durante o desenvolvimento. Esses três requisitos podem afetar diretamente a qualidade da experiência do usuário e a qualidade do funcionamento dos aplicativos. Neste contexto este trabalho propõe uma metodologia geral para engenharia eficiente de aplicativos Android e um EHM denominado DroidEH para suportar a metodologia e melhorar a robustez de aplicativos Android. Estudos foram realizados para entender o impacto do tratamento de exceções na robustez e no consumo de energia dos aplicativos Android. A avaliação da metodologia mostrou que ela é satisfatória para atingir o objetivo de permitir ao desenvolvedor tomar decisões levando em consideração esses requisitos não funcionais e determinar através do trade-off entre esses requisitos, diferentes modos de operação que podem ser implementados no aplicativo usando o DroidEH. Além disso, foi observado que uso do DroidEH em aplicativos pode aumentar sua robustez.Dissertação Entendendo a relação entre integração contínua e cobertura de testes: um estudo empírico(Universidade Federal do Rio Grande do Norte, 2021-08-13) Rêgo Neto, José Gameleira do; Kulesza, Uirá; http://lattes.cnpq.br/0189095897739979; http://lattes.cnpq.br/1928839875669241; Cirilo, Elder José Reioli; Lopes, Frederico Araújo da Silva; http://lattes.cnpq.br/9177823996895375; Cacho, Nelio Alessandro Azevedo; http://lattes.cnpq.br/4635320220484649A evolução das metodologias e práticas de desenvolvimento vem possibilitando a redução no tempo de entrega de novas funcionalidades e melhorias de um software. Uma das prá- ticas mais populares e utilizadas atualmente que pode contribuir para redução no tempo de entrega do software é a Integração Contínua (Continuous Integration - CI). Ela busca automatizar e integrar o código fonte de uma equipe com uma alta frequência durante o desenvolvimento do software. A adoção de CI ajuda aos desenvolvedores encontrar pro- blemas de integração mais rapidamente, agilizando na sua resolução. Acredita-se também que a prática de CI contribui para a redução de bugs ao longo do ciclo de vida do soft- ware, uma vez que ela também preconiza o uso de testes automatizados para garantir a qualidade do código integrado. Uma das formas para avaliar a qualidade dos testes re- alizados é usando métricas de cobertura de testes. Estudos recentes buscam entender a relação que existe entre a adoção da prática de CI e os testes realizados. Este trabalho apresenta um estudo empírico que investiga a relação entre CI e cobertura dos testes no contexto de projetos open sources. O estudo compara projetos que adotaram a prática de integração contínua (CI) com projetos que não adotaram CI (NOCI), assim como projetos que adotaram CI mas são de repositórios diferentes. Os resultados do estudo sugerem que projetos CI apresentam taxas mais altas e uma maior estabilidade na cobertura de código quando comparado com projetos NOCI.Tese Uma estratégia autonômica para escalabilidade automática de infraestruturas de plataformas para cidades inteligentes(Universidade Federal do Rio Grande do Norte, 2023-11-23) Solino, André Luiz da Silva; Batista, Thais Vasconcelos; Cavalcante, Everton Ranielly de Sousa; https://orcid.org/0000-0002-2475-5075; http://lattes.cnpq.br/5065548216266121; https://orcid.org/0000-0003-3558-1450; http://lattes.cnpq.br/5521922960404236; http://lattes.cnpq.br/7784434236797122; Almeida, André Gustavo Duarte de; Ferraz, Carlos André Guimarães; Cacho, Nelio Alessandro AzevedoPlataformas de desenvolvimento de aplicações para cidades inteligentes recebem, armazenam, processam e exibem grandes volumes de dados de diferentes fontes e possuem diversos usuários, como cidadãos, visitantes, governo e empresas. A infraestrutura computacional subjacente para suportar essas plataformas deve lidar com a carga de trabalho altamente dinâmica das diferentes aplicações, com acesso simultâneo de vários usuários e, às vezes, trabalhando com muitos dispositivos interconectados. Tal infraestrutura normalmente engloba plataformas de nuvem para armazenamento e computação de dados, capazes de aumentar ou diminuir de acordo com as demandas das aplicações. Esta tese propõe uma abordagem autonômica para autoescalar infraestruturas de plataformas de cidades inteligentes. A abordagem segue o loop de controle MAPE-K para ajustar dinamicamente a infraestrutura em resposta às mudanças na carga de trabalho. Ele oferece suporte a cenários em que o número de solicitações de processamento é desconhecido a priori. O desempenho da abordagem foi avaliado no contexto da infraestrutura computacional subjacente ao Smart Geo Layers (SGeoL), uma plataforma para o desenvolvimento de aplicações de cidades inteligentes do mundo real.Dissertação Explorando Throttling para melhoria da disponibilidade em IoT dirigida à energia(Universidade Federal do Rio Grande do Norte, 2025-03-26) Lopes, Paulo Henrique de Queiroz; Aquino Júnior, Gibeon Soares de; http://lattes.cnpq.br/1254338144161360; https://orcid.org/0000-0001-5514-0770; http://lattes.cnpq.br/2808561601422212; Delicato, Flávia Coimbra; Cacho, Nelio Alessandro Azevedo; Immich, Roger KreutzA expansão da Internet das Coisas (IoT) exige o enfrentamento de desafios relacionados ao fornecimento energético, sobretudo em ambientes com recursos limitados. Embora baterias e supercapacitores possam mitigar as flutuações, seu uso contínuo levanta preocupações ambientais. Nesse contexto, sistemas dirigidos à energia propõem uma abordagem adaptativa, em que os dispositivos ajustam seu comportamento conforme as variações de energia disponível, resistindo à escassez e aproveitando a abundância energética. Apesar de avanços anteriores, ainda falta uma abordagem estruturada que considere a implementação do mecanismo de throttling adequando os dispositivos as características energéticas encontradas. Diante disso, este trabalho propõe a exploração do throttling como mecanismo para aumento da disponibilidade dos dispositivos IoT dirigidos à energia, além de definir um conjunto de atividades práticas para sua aplicação. A metodologia foi validada por meio de um estudo experimental com dispositivos simulados, nos quais diferentes estratégias de throttling foram avaliadas com base na taxa de atendimento e na taxa de resposta às operações solicitadas. Os resultados mostraram que, mesmo em cenários energéticos críticos, o throttling contribuiu para preservar a capacidade de resposta dos dispositivos, superando abordagens sem controle. Conclui-se que a implementação do throttling adaptativo, fundamentada em critérios energéticos observáveis, apresenta-se como estratégia promissora para aumentar a disponibilidade de dispositivos IoT em ambientes com restrição energética, enquanto promove uso adequado dos recursos energéticos disponíveis.Dissertação Uma ferramenta de análise de robustez para a melhoria da qualidade de sistemas de software(Universidade Federal do Rio Grande do Norte, 2013-01-31) Garcia, Israel Barbosa; Cacho, Nelio Alessandro Azevedo; ; http://lattes.cnpq.br/4635320220484649; ; http://lattes.cnpq.br/3163406855508859; Ferreira, Luciano; ; Silva, Gilbert Azevedo da; ; http://lattes.cnpq.br/8000184133806404Um produto de software é considerado confiável quando ele consegue entregar suas funcionalidades da forma como elas foram definidas. Robustez é um sub-atributo de confiabilidade e diz respeito à capacidade do software em reagir especificamente a defeitos externos. Os mecanismos de tratamento de exceções deveriam garantir a robustez dos sistemas. Entretanto, na prática é difícil atingir tal objetivo, seja por mau uso dos modelos existentes, seja pela deficiência dos próprios modelos. Além disso, percebe-se que os desenvolvedores que tratam as exceções de maneira adequada acabam tendo problemas sérios de produtividade, ao passo que o seu negligenciamento embora seja mais produtivo, tende a gerar sistemas menos confiáveis e com subseqüente aumento do custo de pós-produção. Alguns desastres reais tiveram relação direta com o negligenciamento do tratamento de exceções, por exemplo: o caso do foguete europeu Ariane 5 que se autodestruiu logo após o lançamento, e do sistema do radar brasileiro X-4000 que foi indicado como uma das causas do acidente aéreo do vôo GOL 1907 em 2006. Nesse contexto, este trabalho apresenta a ferramenta de análise estática do fluxo excepcional eFlowMining, focada na melhoria da robustez de aplicações .NET. Ela permite que o desenvolvedor: visualize métricas coletadas sobre o comportamento excepcional; analise o fluxo excepcional através de uma representação gráfica em forma de árvore; identifique possíveis bugs entre diferentes versões da mesma aplicação; e localize de forma rápida os tipos de exceções lançadas e seus respectivos tratadores. Todas as informações coletadas são armazenadas em bancos de dados a fim de possibilitar consultas e comparações das análises realizadas. A avaliação da ferramenta foi dividida em duas fases. A primeira teve o objetivo de mostrar a compatibilidade e a precisão da ferramenta em relação às diferentes linguagens de programação suportadas pela plataforma .NET. A segunda avaliou como a ferramenta ajudou os desenvolvedores a identificar possíveis defeitos entre diferentes versões do mesmo sistema de software.