Programa de Pós-graduação em Engenharia de Software
URI Permanente desta comunidadehttps://repositorio.ufrn.br/handle/123456789/20949
Navegar
Navegando Programa de Pós-graduação em Engenharia de Software por Título
Agora exibindo 1 - 20 de 38
- Resultados por página
- Opções de Ordenação
Dissertação Uma abordagem metaheurística para o problema de alocação de horário escolar no IFRN(2018-12-11) Dantas, Lucas Hiago de Azevêdo; Bezerra, Leonardo César Teonacio; Cavalcante, Everton Ranielly de Sousa; ; ; ; Madeira, Charles Andrye Galvão; ; Cabral, Lucídio dos Anjos Formiga; ; Andrade, Romerito Campos de;AA cada novo período letivo, instituições de ensino se deparam com a necessidade de realizar a alocação dos seus horários de aulas. O desafio reside na capacidade de alocar aulas conciliando requisitos pedagógicos, limitações de recursos organizacionais e preferências pessoais. Motivado pelo alto grau de complexidade proveniente da combinação de disponibilidades de professores, alunos, salas de aula e necessidade de satisfação de variadas restrições, o problema de alocação de horários escolares, também conhecido como high school timetabling problem, há tempos é objeto de estudo pela comunidade acadêmica, que tem buscado o auxílio de métodos (meta)heurísticos para a consecução de soluções satisfatórias em um espaço de tempo viável. Com o objetivo de auxiliar a montagem de grades de horários dos cursos técnicos ofertados pelo Instituto Federal de Educação Ciência e Tecnologia do Rio Grande do Norte (IFRN), assegurando o atendimento dos diferentes requisitos institucionais, o presente trabalho apresenta uma solução baseada na metaheurística greedy randomized adaptative search procedure (GRASP). Para a validação da solução, foram desenvolvidas instâncias a partir de dados reais coletados de diferentes unidades da referida instituição. Os resultados obtidos apontam um desempenho satisfatório para o método utilizado, evidenciados a partir da geração de grades de horários que atendem a todas as restrições de viabilidade inicialmente impostas, como também pelo elevado grau de qualidade apresentado.Dissertação Uma abordagem para sistema de firewall distribuído auto-adaptativo(2017-08-25) Costa Júnior, Edmilson Pereira da; Silva, Carlos Eduardo da; Pinheiro, Marcos Cesar Madruga Alves; http://lattes.cnpq.br/1682925222063297; http://lattes.cnpq.br/9195117150002829; Kulesza, Raoni; http://lattes.cnpq.br/6272616721722861; Sampaio, Silvio Costa; http://lattes.cnpq.br/3526197867529103O firewall de borda desempenha um papel fundamental para segurança das redes corporativas, agindo como primeira barreira de defesa ao delimitar um perímetro seguro. Entretanto, a cultura do Bring Your Own Device dificulta a noção de domínio seguro, contribuindo para a criação de vetores de ataques dentro do perímetro seguro. Os sistemas de firewall distribuído surgiram com a proposta de prover proteção de hosts individuais a ataques originados na própria rede interna. Em tais sistemas, as regras são criadas de modo centralizado e então distribuídas e aplicadas em todos os servidores que compõem o firewall, restringindo quais serviços devem estar disponíveis. Não obstante, vulnerabilidades em software podem tornar os serviços de rede vulneráveis a ataques, uma vez que firewalls usualmente não analisam os protocolos de aplicação. Neste sentido, a partir da descoberta da vulnerabilidade até a publicação e aplicação dos patches de correção existe uma janela de exposição que deve ser reduzida. Dado este cenário, o presente trabalho apresenta uma proposta de um sistema de firewall distribuído auto-adaptativo. Esta proposta é baseada no monitoramento de hosts e no uso de um sistema de avaliação de vulnerabilidades para detectar serviços vulneráveis, integrado com componentes capazes de decidir e aplicar regras de firewall nos hosts afetados. Desse modo, esta abordagem é capaz de responder a vulnerabilidades descobertas nesses hosts, contribuindo para mitigar o risco de exploração da vulnerabilidade. Nosso sistema foi avaliado no contexto de um estudo de caso que simula um ambiente de rede corporativa, onde os resultados alcançados demonstram sua viabilidade.Dissertação Arquitetura de comunicação entre AVAs e objetos de aprendizagem dinâmicos utilizando a especificação IMS LTI(2017-08-17) Rufino, Saulo; Dantas, Rummenigge Rudson; http://lattes.cnpq.br/1868960602254610; http://lattes.cnpq.br/5529105476719984; Madeira, Charles Andrye Galvão; https://orcid.org/0000-0002-4460-2877; http://lattes.cnpq.br/2381782879955327; Ribeiro, Cláudia Maria Fernandes Araújo; http://lattes.cnpq.br/4724141474353962Os Objetos de Aprendizagem (OAs) são recursos modulares reutilizáveis importantes para a Educação a Distância (EaD) e integram os Ambientes Virtuais de Aprendizagem (AVAs), compondo o leque de opções que podem ser utilizadas pelos professores em seu projeto de ensino. Os OAs podem ficar diretamente hospedados em um AVA ou armazenados em um Repositório de Objetos de Aprendizagem (ROA), que são próprios para hospedá-los de forma centralizada, descrevendo suas características e utilizando metadados padronizados com mecanismo de busca eficiente para encontrar o objeto solicitado. Para que os objetos sejam acessados e utilizados em mais de um AVA, é necessário a existência de mecanismos que os tornem interoperáveis. Este artigo trata da proposta de uma arquitetura e interface para integração dos objetos de um repositório com o AVA Moodle utilizando a especificação LTI.Dissertação Auto-gerenciamento de recursos em infraestruturas baseada em contêineres para Desktop-as-a-service: um estudo de caso nos laboratórios de informática da ECT/UFRN(2017-06-22) Bandeira, Geomerez Raduan de Oliveira; Silva, Carlos Eduardo da; http://lattes.cnpq.br/9544047483816492; Pinheiro, Marcos César Madruga Alves; http://lattes.cnpq.br/1682925222063297; Maia, Paulo Henrique Mendes; http://lattes.cnpq.br/7227955029154651Uma alternativa viável para instituições que possuem múltiplos usuários com necessidade de acessar aplicações desktops é o Desktop-as-a-Service (DaaS), que caracteriza-se pela entrega de um ambiente desktop que executa remotamente. A virtualização de recursos em conjunto com o balanceamento de carga são amplamente utilizados em infraestruturas que hospedam serviços com demandas sazonais, replicando instâncias e distribuindo as requisições entre elas para alcançar elasticidade. Entretanto o balanceamento de carga não é a solução mais adequada para o DaaS, uma vez que sessões nesse serviço são de longa duração e não são migradas para um novo servidor que seja adicionado ao balanceador, permanecendo a lentidão percebida pelos usuários já conectados a um servidor sobrecarregado. Neste contexto, o redimensionamento dinâmico de recursos em uma instância virtual se mostra como a abordagem mais apropriada. Contudo, soluções tradicionais de virtualização exigem a reinicialização do servidor afetado, e consequentemente, finalizando as sessões DaaS com seus respectivos usuários. Por outro lado, virtualização baseada em contêineres permitem tal redimensionamento, porém exige intervenções manuais do administrador para ajustar a quantidade de recursos mediante à demanda. Este trabalho apresenta o ConManager, um controlador autoadaptativo para ambientes baseados em contêineres, que tem como propósito o redimensionamento dinâmico de recursos virtualizados para lidar com sobrecargas sazonais. A proposta foi aplicada como estudo de caso nos laboratórios de informática da Escola de Ciências e Tecnologia da Universidade Federal do Rio Grande do Norte. O ConManager monitora a utilização de recursos nos laboratórios, detectando cenários de sobrecarga, e propondo planos de adaptação que são aplicados na infraestrutura de suporte ao serviço DaaS, efetivamente redistribuindo recursos de contêineres subutilizados para os sobrecarregados. A ferramenta se encontra em uso e isso trouxe ganhos perceptíveis como diminuição do tempo de adaptação de recursos e a simplificação do gerenciamento do ambiente, beneficiando a equipe de tecnologia da informação da instituição, responsável por manter o serviço e à comunidade acadêmica que desfruta de um ambiente computacional mais estável.Dissertação Avaliação arquitetural do Sistema SUAP: uma análise sistematizada sobre desempenho(2018-12-07) Casadei, Tarso Latorraca; Silva, Carlos Eduardo da; ; ; Almeida, André Gustavo Duarte de; ; Barbosa, Eiji Adachi Medeiros;Sistemas de informação têm se tornado cada vez mais robustos, trabalhando com altos volumes de dados, objetos e, consequentemente, processos. No contexto do Instituto Federal do Rio Grande do Norte (IFRN), foi desenvolvido um sistema próprio para atender a todas as atividades administrativas e acadêmicas da instituição: o SUAP, Sistema Unificado de Administração Pública. Ao longo de 11 anos, a aplicação evoluiu de apenas um módulo para mais de 40, além do crescimento vertiginoso de usuários – que hoje permeia o número de 35 mil. Esses aspectos muitas vezes impactam diretamente no desempenho de sistemas, levando os arquitetos de software a buscarem alternativas para melhor escalar suas aplicações. No caso do IFRN, mesmo após altos investimentos realizados em infraestrutura, os problemas de desempenho do SUAP persistem. Buscando um melhor aproveitamento da estrutura de hardware disponível, faz-se necessário compreender as razões destes problemas de desempenho, a fim de que estes recursos computacionais sejam utilizados de forma dinâmica e crescente, geridos de forma mais eficiente e capazes de suportar cargas excedentes sem prejuízo de desempenho da aplicação. Surge, assim, a necessidade de se avaliar aspectos mais abrangentes da arquitetura atual da aplicação, para que possam ser conhecidos elementos que prejudiquem seu desempenho. Este trabalho tem o objetivo de realizar uma análise sistematizada de desempenho do SUAP através da aplicação do método de avaliação arquitetural ATAM (Architecture Trade-off Analysis Method) e da execução de um conjunto de testes de desempenho que possibilitem a identificação de seus principais pontos de lentidão. Com isso, espera-se contribuir para a definição de uma estratégia para testes de desempenho que possam ser incorporados ao processo de desenvolvimento do SUAP.Dissertação Avaliação da capacidade antioxidante do óleo vegetal oriundo da extração de astaxantina a partir da farinha e do resíduo de camarão (Litopenaeus Vannamei)(2016-12-12) Silva, Denise Maria de Lima e; Assis, Cristiane Fernandes de; ; http://lattes.cnpq.br/0034694007210837; ; http://lattes.cnpq.br/0862884051325167; Passos, Thais Souza; ; http://lattes.cnpq.br/9685790797554876; Andrade, Samara Alvachian Cardoso; ; http://lattes.cnpq.br/7326960816119539A astaxantina é encontrada naturalmente em resíduos de camarão e pode ser extraída de diversas formas, dentre elas tem-se a extração com óleo vegetal, o qual contribui para a estabilidade, retardando a oxidação. O óleo de soja por sua vez apresenta como vantagens a excelente otimização de extração e o baixo custo. Objetivou-se com esse estudo, avaliar as características físicas e físico-químicas e a capacidade antioxidante de óleos vegetais pigmentados, oriundos da extração da astaxantina a partir do resíduo de camarão (Litopenaeus vannamei). Os óleos pigmentados do resíduo de camarão (OR) e da farinha do resíduo de camarão (OF) obtidos foram avaliados quanto ao teor de astaxantina, características físicas e físico-químicas e capacidade antioxidante. As amostras de OR e OF apresentaram um teor de astaxantina respectivamente de 70,9 e 264,7 μg/g, sendo a desidratação a responsável por esse aumento de 3,7 vezes. Do mesmo modo, seu poder antioxidante está diretamente associado com o teor de astaxantina. No teste da Capacidade de Absorção de Radicais de Oxigênio (ORAC), OR e OF exibiram uma atividade antioxidante de 0,4957 e 0,4840 μmol eq trolox/g, respectivamente. Entretanto, algumas caraterísticas físicas e físico-químicas de OF apresentaram alterações. Diante do exposto, os óleos pigmentados oriundo dos resíduos de camarão apresentam um significativo potencial para uso em alimentos como um antioxidante natural devido ao poder antioxidante, e ao baixo custo de obtenção.Dissertação Beehiveior - Sistema de monitoramento e controle de colmeias de produção apícola(2016-08-08) Dutra, Thiago Fernandes Silva; Dantas, Rummenigge Rudson; ; http://lattes.cnpq.br/1868960602254610; ; http://lattes.cnpq.br/4192101532117582; Aroca, Rafael Vidal; ; http://lattes.cnpq.br/9262228584082064; Medeiros, Sergio Queiroz de; ; http://lattes.cnpq.br/0310395336626784As abelhas são animais de grande importância para manter o ecossistema global, principalmente pelo seu papel ativo no processo de polinização de diversas plantas no planeta. A apicultura, definida atualmente como a criação racional de abelhas, é uma importante atividade econômica mundial que movimenta anualmente um mercado milionário. O desenvolvimento eficiente da atividade apícola envolve inúmeros desafios de diversas áreas de atuação e conhecimento, que vai desde operações cotidianas de manutenção do apiário até o monitoramento comportamental das abelhas e do ambiente no qual o apiário esta inserido. A UEPA-EAJ (Unidade de Extração de Produtos Apícolas, da Escola Agrícola de Jundiaí) é um centro de atividades, estudos e pesquisas apícolas do RN. Esse trabalho propôs então o desenvolvimento de uma ferramenta com recursos computacionais de automação e controle com os objetivos de auxiliar e dar um maior embasamento aos estudos e pesquisas realizadas pela UEPA-EAJ, bem como o de facilitar atividades cotidianas presentes no manejo do apiário dessa unidade. A ferramenta concebida, denominada Beehiveior, foi dividida em dois módulos independentes: uma central de automação e controle, responsável pela coleta e envio de dados das colmeias, e um aplicativo Web, com a função de processar, armazenar e exibir os dados coletados. Foi utilizado hardware de baixo custo, reciclado e/ou de fácil obtenção para construção da central. O projeto possui como resultados o aplicativo Web, os códigos-fontes e esquemas de automação, o relato dos experimentos realizados e um comparativo do Beehiveior com os trabalhos relacionados. Atualmente a ferramenta é capaz de monitorar variáveis da colmeia (ex.: temperatura e umidade), enviar os dados coletados via rede cabeada Ethernet ou através da transferência dos dados armazenados localmente em cartão de memória e exibir esses valores, na forma de gráficos e tabela, no aplicativo Web.Dissertação CodeTrack: uma ferramenta para análise contínua de conflitos indiretos de software(2017-08-31) Oliveira Neto, João Victor de; Lima, Gleydson de Azevedo Ferreira; Kulesza, Uira; http://lattes.cnpq.br/0189095897739979; http://lattes.cnpq.br/4986614168117334; http://lattes.cnpq.br/5736903367841961; Medeiros, Sérgio Queiroz de; http://lattes.cnpq.br/0310395336626784; Pinto, Felipe Alves Pereira; http://lattes.cnpq.br/6163607072712192A necessidade de evolução nos softwares tornou-se cada vez mais frequente e a engenharia de software precisou se adaptar para entregar produtos de qualidade em prazos cada vez menores. Para que o software continue sendo útil ao longo do tempo, para o propósito ao qual foi desenvolvido, é necessário que sejam realizadas mudanças ou incluídas novas funcionalidades para que este acompanhe as mudanças no contexto do negócio. Com essas mudanças, é inevitável que o software passe a aumentar de tamanho e, consequentemente, em complexidade. Essa expansão do software cria relacionamentos de dependência entre componentes do código-fonte e essas dependências se propagam em uma cadeia de dependências à medida que a aplicação cresce. Reescrever o mesmo trecho de código é uma prática não recomendada no desenvolvimento de software, pois implica em replicar código de forma distribuída e desordenada. Ao fazer o reuso, o mesmo trecho já escrito é referenciado em diferentes funcionalidades do sistema através da cadeia de dependência e chamadas de métodos, fazendo com que diferentes partes do código que estejam associadas a diferentes funcionalidades passem a depender de um mesmo componente. Alterações de trechos de código que possuem relação direta ou indireta com diferentes casos de uso podem levar a falhas imprevistas da aplicação, pois dependendo do número de artefatos envolvidos e da extensão da cadeia de dependências relacionada ao código alterado, uma mudança pode impactar um outro caso de uso que aparentemente não tem relação com o trecho de código modificado. Prever impactos decorrentes de alterações em um artefato é uma tarefa que exige tempo para análise, profundo conhecimento do código-fonte e esforço de teste. Este trabalho apresenta uma abordagem para automatizar a identificação de possíveis conflitos indiretos através de uma ferramenta, capaz de determinar quais casos de uso possuem maior probabilidade de serem impactados por mudanças no código-fonte, podendo assim direcionar os esforços de testes de forma mais eficaz. Foi elaborado um estudo para avaliar um projeto real de dimensão extensa que não possui uma suíte de testes automatizados e a ferramenta desenvolvida mostrou-se eficiente para detectar conflitos indiretos em diferentes cenários e também provou, através de um experimento empírico, que a maior parte das falhas decorrentes de conflitos indiretos teriam sido evitadas caso a ferramenta tivesse sido utilizada ainda na fase de desenvolvimento.Dissertação Comparação entre métodos de avaliação de IHC durante o projeto de um sistema jurídico para smartphone(2016-08-08) Santos, Rafael Dias; Silva, Bruno Santana da; ; ; Nunes, Isabel Dillmann; ; Zaina, Luciana Aparecida Martinez; ; Bim, Silvia Amélia;Qualidade e tempo são fatores importantes no processo de desenvolvimento de software, pois se espera entregar um produto de qualidade com custo e prazo aceitáveis. Esses fatores são ainda mais relevantes em um ambiente de inovação e de pequenas empresas, como em startups. Muitas empresas ainda não desenvolvem atividades para melhorar a qualidade de uso dos softwares que desenvolvem. O desconhecimento sobre métodos de avaliação e a expectativa de grande aumento no custo e nos prazos têm sido argumentos para manter a cultura atual em algumas empresas. Este trabalho compara três métodos de avaliação de interface bem difundidos na literatura: método de avaliação heurística, método de avaliação de comunicabilidade e teste de usabilidade. Buscou-se compreender como eles contribuem para o trabalho do designer durante a concepção da solução de interação e interface com usuário. Comparou-se as atividades realizadas, o tempo de execução, os materiais utilizados, perfil e quantidade de avaliadores e usuários envolvidos, os resultados e as dificuldades do avaliador durante a execução dos métodos. Tal comparação foi realizada por um designer, como parte do projeto do sistema jurídico da SoftUrbano para smartphone. Os resultados dessa comparação podem informar melhor os profissionais sobre a prática de avaliação de interface com usuário e contribuir para mudar a cultura de desenvolvimento de software em muitas empresas, principalmente pequenas e startups.Dissertação Derivação e implantação semiautomática de produtos de software no contexto da Secretaria de Estado da Agricultura, da Pecuária e da Pesca do RN(2019-01-31) Canuto, Jackson Meires Dantas; Lopes, Frederico Araújo da Silva; Kulesza, Uira; ; ; ; Barbosa, Eiji Adachi Medeiros; ; Cirilo, Elder;A engenharia de Linhas de Produto de Software (LPS), possui em uma de suas áreas a derivação de produtos, que utiliza a estratégia de implementação de produtos a partir de uma determinada seleção de features. Os seus artefatos desenvolvidos, podem ter sido gerados ou compostos durante a etapa de implementação do domínio. Apesar de sua importância, a atividade de derivação de produtos continua sendo cara e propensa a erros, que ainda é difícil de automatizar e ter suporte por meio de ferramentas. Além disso, poucos trabalhos têm sido dedicados ao processo de derivação de produtos e a aplicação de estratégias no contexto prático. Há uma falta de relatórios empíricos descrevendo a derivação de produtos em ambientes industriais e, em geral. Este trabalho de dissertação de mestrado, propõe a sistematização do processo de distribuição e implantação de sistemas em aplicações Web clonadas, através da derivação semiautomática de produtos de softwares existentes, refatorados para uma LPS. Bem como a utilização do apoio ferramental para realizar a implantação de uma instância do sistema configurado, fazendo com que o produto de software fique disponível e pronto para uso em um servidor. Além disso, foi realizado um estudo empírico para analisar quantitativamente o processo de derivação de produtos, antes e depois da utilização desta abordagem com e sem o apoio ferramental. Esta abordagem especifica um conjunto de atividades sistemáticas e bem definidas, que auxiliam aos analistas de sistemas e programadores a derivarem os produtos que foram refatorados para LPS, a partir de sistemas existentes. Através do uso desta abordagem com o apoio ferramental, será possível gerenciar os produtos e suas features, deixando-os preparados para serem produtos configuráveis de forma semiautomática, e prontos para serem derivados e implantados. O estudo realizado, fornece informações acerca dos conceitos e ações explorados na literatura, tais como: derivação de produtos de software, implantação de software, clonagem de LPS, reengenharia de software para LPS, refatoração de LPS e geração de códigos-fonte. Profissionais podem utilizar este trabalho como base para definir, adaptar ou avaliar suas próprias abordagens de derivação com implantação de produtos. Enquanto os pesquisadores podem usar este trabalho como ponto de partida para novos relatórios industriais, apresentando suas experiências com a derivação de produtos. Os resultados obtidos neste estudo mostraram que ao usar a abordagem proposta, foi possível contribuir com a derivação e implantação de produtos de software de forma mais ágil, produtiva e satisfatória. Mesmo em situações em que o usuário tenha poucas experiências com derivação e implantação de softwares, as ações realizadas para tal, ocorrerão em menos tempo e com uma boa corretude durante este processo.Dissertação Desenvolvimento de uma ferramenta de apoio a prática docente voltada ao ensino baseado em competências: uma abordagem centrada no usuário(2017-02-03) Alencar, Emerson Moura de; Campos, André Mauricio Cunha; ; http://lattes.cnpq.br/7154508093406987; ; http://lattes.cnpq.br/2299582336524499; Figueira Filho, Fernando Marques; ; http://lattes.cnpq.br/6874649375434646; Nunes, Isabel Dillmann; ; http://lattes.cnpq.br/2087785677186785; Martins, Ana Isabel;A metodologia com base em competência visa a formação do profissional com foco nas habilidades em realizar tarefas relativas à sua ocupação no mercado de trabalho. Porém, esta nova proposta trouxe desafios às equipes pedagógicas e docentes, em especial nas tarefas de planejamento. O ato de planejar tem sido uma tarefa árdua, tendo em vista a mudança de paradigma, bem como tantos processos e informações que o docente precisa compreender e desenvolver. Devido a isso, este trabalho propõe simplificar a tarefa de planejamento por meio de uma ferramenta computacional cuja usabilidade será avaliada de forma que minimize os problemas enfrentados e ofereça recursos que facilitem a compreensão de uma metodologia de ensino com base em competências. Para isso, foi desenvolvida uma pesquisa exploratória com o objetivo de encontrar padrões de dificuldades, através de formulários online e grupo focal foram coletados, com docentes das escolas do SENAI-DR/RN, dados relevantes à formulação de uma proposta de solução. O sistema, denominado MEP - Metodologia de Ensino Profissional, foi elaborado e desenvolvido em várias etapas, seguindo uma abordagem centrado no usuário, ou seja, envolvendo docentes e pedagogos durante o processo de concepção e desenvolvimento da ferramenta. Para verificar a facilidade do uso do sistema e a diminuição das barreiras que impeçam o usuário de atingir seus objetivos foi aplicado testes de usabilidade denominado teste de protótipo, onde foi possível aferir os pontos que foram facilitador e barreias no uso da ferramenta. O presente trabalho apresenta o processo de elaboração, desenvolvimento da ferramenta e os resultados de testes de usabilidade.Dissertação Detecção de problemas de design em aplicações Model-Template-View(2018-12-10) Correia, Renieri Rayron da Silva; Barbosa, Eiji Adachi Medeiros; ; ; Kulesza, Uira; ; Medeiros Neto, Francisco Dantas de;A arquitetura de software retrata um conjunto de decisões de design, geralmente tomadas antes da implementação do sistema, com o objetivo de alcançar níveis desejados de atributos de qualidade de software. Um padrão arquitetural fornece um conjunto de decisões de design específicas que são aplicáveis a problemas de design recorrentes. A quebra dessas decisões, além de impactar negativamente nos atributos de qualidade de software, podem levar o sistema a iniciar um processo de degradação arquitetural. O padrão arquitetural Model-Template-View (MTV), implementado pelo framework Django, contém um conjunto de decisões tomadas para incentivar o baixo acoplamento e a separação rigorosa entre as partes da aplicação. No entanto, no processo de evolução da aplicação, decisões de design podem ser quebradas. Nesse sentido, investigamos a detecção de problemas de design relacionados ao padrão arquitetural MTV com o objetivo de manter os níveis desejados de qualidade de aplicações MTV. As principais contribuições deste trabalho foram a elaboração de um catálogo de problemas de design específicos do padrão arquitetural MTV e a construção de uma ferramenta para detecção automatizada destes problemas através da análise estática. O catálogo e a ferramenta de detecção foram validados no contexto do Sistema Unificado de Administração Pública (SUAP) desenvolvido pelo Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte – IFRN.Dissertação Do monolito aos microsserviços: um relato de migração de sistemas legados da Secretaria de Estado da Tributação do Rio Grande do Norte(2018-08-07) Justino, Yan de Lima; Silva, Carlos Eduardo da; ; ; Barbosa, Eiji Adachi Medeiros; ; Mendonça, Nabor das Chagas;A Orientação a Serviço fornece um paradigma de projeto baseado em um conjunto de metas estratégicas para o alinhamento entre tecnologia da informação (TI) e negócios, promovendo eficiência, agilidade e produtividade. Nesse contexto, a reengenharia de sistemas legados para uma arquitetura orientada a serviços (SOA) pode ser justificada para resolver problemas como a demanda por interoperabilidade e a necessidade de fornecer uma interface robusta de serviço de alta disponibilidade. No entanto, a implantação de SOA em um ambiente corporativo é uma tarefa desafiadora, pois pode envolver o uso de diferentes técnicas, como a modernização de sistemas com alto endividamento técnico e altos custos de manutenção. Para isso, é necessário um processo que forneça um conjunto apropriado de técnicas que minimizem os riscos e, ao mesmo tempo, garantam a qualidade dos sistemas durante o processo de migração. Neste sentido, este trabalho apresenta a aplicação de um processo de reengenharia de sistemas legados para suportar a implementação de um projeto SOA. O SPReaD (Service-oriented process for Reengineering and Devops) é uma instanciação da Mainstream SOA Methodology, com foco na reengenharia de sistemas legados, integrando os aspectos de DevOps para o direcionamento de SOA. Esse processo foi criado durante um projeto real de reengenharia de software para evolução de sistemas legados de uma Secretaria de Estado de Tributação. O uso do SPReaD tem apresentado resultados significativos em relação à conquista de importantes metas de qualidade como a padronização de contratos de serviços para efeitos de interoperabilidade; a gestão da dívida técnica, tendo em vista uma melhor manutenibilidade e portabilidade de componentes; uma maior escalabilidade e melhora no desempenho como um todo para suportar uma grande carga de requisições.Dissertação Domótica de baixo custo usando princípios de IoT(2016-08-11) Souza, Marcelo Varela de; Campos, André Mauricio Cunha; Silva, João Moreno Vilas Boas de Souza; ; ; ; Signoretti, Alberto; ; Silva, Ivanovitch Medeiros Dantas da;A procura por soluções domésticas abriu caminho para a automação residencial por meio de sistemas que se propõe a melhorar a qualidade de vida e economizar recursos. O presente trabalho faz um breve estudo sobre domótica e os componentes eletrônicos necessários para sua aplicação. Descreve ainda o método para o desenvolvimento de um projeto de automação residencial usando conceitos de IoT e a plataforma Arduino. O sistema proposto possui, além do baixo custo, uma interface de fácil utilização, e é composto por uma aplicação para smartphones e sensores de controle para equipamentos domésticos, como lâmpadas e condicionadores de ar. O desenvolvimento deste sistema se deu através da utilização de emissores e receptores infravermelhos, módulos de radiofrequência XBee e plataformas microcontroladas Arduino, nas versões Mega e Uno e microcontroladores ESP8266.Dissertação Escalonando uma aplicação paralela com demanda variável em ambiente de nuvem(Universidade Federal do Rio Grande do Norte, 2016-01-20) Sousa Júnior, Emmanoel Monteiro de; Lopes, Frederico Araújo da Silva; Martins, Idalmis Milian Sardina; ; ; http://lattes.cnpq.br/9177823996895375; ; http://lattes.cnpq.br/5242638322246265; Sampaio, Américo Tadeu Falcone; ; http://lattes.cnpq.br/7958359176708584; Silva, Carlos Eduardo da;Este trabalho propõe uma arquitetura de software responsável pelo escalonamento para processamento de dados com demanda variável em ambientes de nuvem. O sistema construído observa variáveis específicas ao contexto de negócio de uma empresa incubada no Instituto Metropole Digital da UFRN. Tal sistema gera uma estratégia de identificação e utilização de modelos de máquinas disponíveis em um ambiente de nuvem, focando no desempenho do processamento, utilizando-se de estratégias de balanceamento de carga de dados e paralelismo de atividades no fluxo de execução do software. O objetivo é atender a demanda sazonal dentro de um limite padrão de tempo definido pela empresa, controlando os custos operacionais com a utilização de serviços de nuvem na camada de IaaS.Dissertação Um estudo de avaliação e documentação de arquiteturas de software na indústria(2016-08-25) Silva, Júlio César Leôncio da; Kulesza, Uira; Pinto, Felipe Alves Pereira; ; http://lattes.cnpq.br/6163607072712192; ; http://lattes.cnpq.br/0189095897739979; ; http://lattes.cnpq.br/6687140805305537; Guerra, Eduardo Martins; ; http://lattes.cnpq.br/3413978291577451; Figueira Filho, Fernando Marques; ; http://lattes.cnpq.br/6874649375434646Muitas vezes o arquiteto de software responsável pela definição e avaliação da arquitetura de software não consegue estabelecer quais requisitos não-funcionais devem ser priorizados no desenvolvimento de seus sistemas. Com isso, falhas podem ocorrer durante a execução do sistema demandando mais tempo e recursos para que seja corrigido. Em muitos casos, com a inexperiência dos arquitetos ou a necessidade de disponibilização rápida de um sistema, os requisitos não-funcionais não são considerados durante a definição da arquitetura de software e também não é feita a devida documentação da arquitetura, tornando difícil o acesso e entendimento da arquitetura pelos demais integrantes da equipe e dificultando a manutenção de componentes/módulos da arquitetura e respectivos relacionamentos. Este trabalho buscou levantar junto às empresas de software, públicas e privadas, quais as principais estratégias utilizadas na definição e avaliação da arquitetura, principalmente na obtenção e cumprimento dos requisitos não-funcionais, e documentação arquitetural. Nosso estudo contou com a participação de 17 arquitetos de software para responder o questionário proposto. Com a realização do questionário identificamos que os requisitos não-funcionais de desempenho e confiabilidade são os mais importantes a serem atendidos pela arquitetura e que mesmo com a existência de algumas abordagens para a avaliação de arquiteturas, elas não parecem estar bem difundidas e/ou utilizadas entre os arquitetos. Ao tratar especificamente o requisito de desempenho, os arquitetos julgaram que em uma análise de desempenho de um sistema de software a informação mais importante a ser exibida deve ser o tempo de resposta das requisições a um determinado cenário, acompanhado do tempo de execução dos métodos que fazem parte desse cenário. Em relação à documentação arquitetural, a maioria dos entrevistados afirmaram utilizar, no mínimo, algum tipo de documentação no momento de criação de um sistema de software, destacando-se a utilização de diagramas de classe e de componentes como as formas mais comuns de documentação utilizadas pelos arquitetos. Além disso, o trabalho propõe a utilização de um guia que busca auxiliar arquitetos de software na atividade de avaliação do cumprimento dos requisitos não-funcionais pela arquitetura durante a evolução do sistema, priorizando o requisito não-funcional de desempenho. Ao avaliar a aplicação do guia, os entrevistados apontaram a abordagem de análise de logs para identificar os cenários prioritários numa avaliação de desempenho como uma das principais contribuições do guia e que poderia facilitar na identificação e comparação das versões dos seus sistemas.Dissertação Estudo exploratório da atividade de testes num sistema de acompanhamento de obras(2016-08-04) Sousa, Luciano Antônio Cordeiro de; Silva, Bruno Santana da; ; http://lattes.cnpq.br/7239490390098173; ; http://lattes.cnpq.br/4849762361895891; Ribeiro, Cláudia Maria Fernandes Araújo; ; http://lattes.cnpq.br/4724141474353962; Figueira Filho, Fernando Marques; ; http://lattes.cnpq.br/6874649375434646Apesar da área de testes de software estar bem estabelecida na academia, algumas equipes de desenvolvimento de software no mercado acabam não dando atenção necessária a esta atividade. Este trabalho apresenta um estudo de caso sobre chamados e testes ao longo de 3 anos de um sistema de controle de obras de uma empresa de energia. Buscou-se identificar relações entre chamados dos usuários, funcionalidades, testes automatizados e modificações no código-fonte, para compreender algumas consequências de decisões tomadas e identificar oportunidades de melhorias no processo de desenvolvimento do sistema analisado.Dissertação FASTSF: uma ferramenta de geração de código para o incremento da produtividade no desenvolvimento de sistemas de informação web(2017-08-29) Martins Filho, Dinarte Alves; Lima, Gleydson de Azevedo Ferreira; Xavier Júnior, João Carlos; ; ; ; Burlamaqui, Aquiles Medeiros Filgueira; ; Mendes Neto, Francisco Milton; ; Kulesza, Uira;O desenvolvimento de software envolve um complexo processo de produção, incluindo a gestão das variáveis tempo, custo e pessoal. A evolução da tecnologia e a competitividade da indústria tem elevado, cada vez mais, a necessidade por maior produtividade, combinada com eficiência e qualidade. Neste cenário, há uma tendência crescente do uso de técnicas, padrões e ferramentas que possam tornar o desenvolvimento mais rápido e consequentemente mais barato. Além do uso de frameworks, ferramentas e padrões de projetos, gerar automaticamente partes do código é uma forma de retirar do desenvolvedor o trabalho de codificações repetitivas, além de dinamizar e aumentar a produtividade na implementação do software. Esta prática vem evoluindo e se difundindo nos últimos anos, com a sua popularização em diversos frameworks de desenvolvimento de aplicações, principalmente voltados para desenvolvimento web. Este trabalho apresenta uma ferramenta de geração de código chamada FASTSF e o estudo dos impactos obtidos na capacidade produtiva dos desenvolvedores. A FASTSF tem por objetivo o incremento de produtividade no desenvolvimento de sistemas de informações web, concentrando o foco da equipe na codificação de problemas mais complexos.Dissertação GoldBI: uma solução de Business Intelligence como serviço(2016-08-26) Silva Neto, Arlindo Rodrigues da; Lima, Gleydson de Azevedo Ferreira; ; http://lattes.cnpq.br/4986614168117334; ; http://lattes.cnpq.br/6469524509136271; Lopes, Frederico Araújo da Silva; ; http://lattes.cnpq.br/9177823996895375; Medeiros Neto, Francisco Dantas de; ; http://lattes.cnpq.br/5525562330158282Este trabalho consiste em criar uma ferramenta de BI (Business Intelligence) disponível em nuvem (cloud computing) através de SaaS (Software as Service) utilizando técnicas de ETL (Extract, Transform, Load) e tecnologias de Big Data, com a intenção de facilitar a extração descentralizada e o processamento de dados em grande quantidade. Atualmente, constata-se que é praticamente inviável realizar uma análise consistente sem o auxílio de um software para geração de relatórios e estatísticas. Para tais fins, a obtenção de resultados concretos com a tomada de decisão exige estratégias de análise de dados e variáveis consolidadas. Partindo dessa visão, enfatiza-se neste estudo o Business Intelligence (BI) com o objetivo de simplificar a análise de informações gerenciais e estatísticas para propiciar indicadores através de gráficos ou listagens dinâmicas de dados gerenciais. Assim, é possível inferir que, com o crescimento exponencial dos dados torna-se cada vez mais difícil a obtenção de resultados de forma rápida e consistente, tornando necessário atuar com novas técnicas e ferramentas para tratamentos de dados em larga escala. Este trabalho é de natureza técnica de criação de um produto de Engenharia de Software, fundamentado a partir do estudo da arte da área, e de um comparativo com as principais ferramentas existentes no mercado, evidenciando vantagens e desvantagens da solução criada.Dissertação Guardião Cloud - plataforma de apoio para internet das coisas(2016-04-27) Cantanhede, Romulo Fagundes; Silva, Carlos Eduardo da; ; ; Xavier Júnior, João Carlos; ; Ferraz, Carlos André Guimarães;A IoT (Internet of Things) propõe que sistemas computacionais sejam formados por diversos dispositivos produtores e/ou consumidores de informação, permitindo o desenvolvimento de diversas soluções baseadas na coleta e análise de dados. Porém, além da coleta e análise de dados, é necessário também tomar decisões e agir com base nas mesmas. Nossa proposta é de desenvolver uma plataforma de suporte para aplicações de IoT permitindo não somente a coleta e análise de dados, mas também seu uso para a tomada de decisão e ação. A plataforma permite que qualquer dispositivo com acesso à Internet possa enviar informações em formato variado, suportando o acompanhamento em tempo real dos dados coletados, assim como a definição de mecanismos de tomada de decisão, como a ativação de um determinado dispositivo ou a geração de alertas. Como estudo de caso, a plataforma foi aplicada para monitorar um ambiente hospitalar. Alguns experimentos controlados foram realizados com o objetivo de avaliar a plataforma, permitindo a definição de alguns parâmetros de dimensionamento para sua implantação.