01.1 - Graduação (Sede)

URI permanente desta comunidadehttps://arandu.ufrpe.br/handle/123456789/2

Navegar

Resultados da Pesquisa

Agora exibindo 1 - 10 de 15
  • Imagem de Miniatura
    Item
    Técnicas de comitês para a estimação de esforço na correção de software
    (2019-12-10) Guimarães, Ariana Lima; Soares, Rodrigo Gabriel Ferreira; http://lattes.cnpq.br/2526739219416964; http://lattes.cnpq.br/2605671850587343
    O planejamento bem definido de um projeto de software, desde os estágios iniciais, é imprescindível para o sucesso do desenvolvimento, seja ele referente à criação ou à manutenção do produto. Em anuência ao ciclo de vida de software, a manutenção é realizada de forma contínua após o produto ter sido construído e entregue, em paralelo à execução de testes por engenheiros e/ou usuários. Nessa etapa, surgem primariamente os documentos de Histórias de Usuário e Relatórios de Problemas, que descrevem, em linguagem natural, especificações de negócio, cenários de erros encontrados, correções esperadas e melhorias para o sistema. Esses documentos visam, dentre outras coisas, o mapeamento das atividades a serem realizadas durante o projeto. Por conseguinte, em consonância com os recursos disponíveis – humanos, financeiros e temporais -, torna-se possível estimar o esforço necessário no desenvolvimento das atividades e gerar informações essenciais a um planejamento eficaz e eficiente. Como esses documentos são escritos em textos naturais, surge a oportunidade de utilizar o Processamento de Linguagem Natural e o Aprendizado de Máquina (AM) para predição automatizada do esforço de software. Na prática, no dia-a-dia das fábricas de software, é comum a utilização da opinião de especialistas e da equipe do projeto para julgar o esforço requisitado por uma atividade durante sessões de Planning Poker. Nessa técnica, normalmente o esforço é medido em Pontos de História que seguem a sequência Fibonacci. Porém, esse modo de planejamento requer o escalonamento de muitos recursos para sua execução. A aplicação do AM acarreta em um sistema, após a fase de treinamento, capaz de apreender a experiência da equipe e replicá-la de forma rápida e automática para estimar o esforço das atividades. Dessa forma, este trabalho atinge a área de AM, propondo uma abordagem de Comitê de PVDM na extração de características de Relatórios de Problemas para estimar Pontos de História, os indicadores de esforço. Comparada a outras duas abordagens de BoW e PV-DM tradicional, a técnica proposta apresentou bons resultados, com f-measure de cerca de 80% em um classificador de SVM com aprendizado supervisionado. Os resultados dos experimentos inspiram um ponto de partida no aprofundamento do estudo da abordagem de Comitê de PV-DM e no seu aprimoramento.
  • Imagem de Miniatura
    Item
    Um guia de boas práticas em desenvolvimento global de software ágil
    (2023-09-15) Guedes, Rodrigo Gonçalves; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/4064431072353330
    O Desenvolvimento Ágil de Software (ASD) desempenha um papel crucial no cenário global de desenvolvimento de software. A pandemia da COVID-19 intensificou a necessidade de adaptação das práticas ágeis para ambientes remotos e distribuídos, enfatizando ainda mais a eficácia na colaboração. Este estudo expande pesquisas anteriores que identificaram 48 práticas ágeis em projetos globais, refletindo um esforço abrangente para analisar e sintetizar essas práticas. Conduzimos uma nova pesquisa (survey) para obter um conjunto mais amplo de respostas e realizamos entrevistas aprofundadas para correlacionar dados com observações construtivas. Como resultado, foram identificadas 13 práticas ágeis que emergiram como as mais aceitas nesse contexto. Essas práticas, como Planejamento, Comunicação e Auto Gerenciamento, provaram ser fundamentais para o sucesso de projetos AGSD. Com base nessas descobertas, desenvolvemos um portfólio abrangente que serve como um guia de referência para profissionais que buscam implementar práticas ágeis em contextos globais. Esta contribuição visa aprimorar o desenvolvimento ágil de software em cenários globais, promovendo resultados e eficiência superiores. À medida que as organizações se adaptam às demandas atuais e futuras, o AGSD se destaca como uma abordagem crucial para o sucesso em um mundo cada vez mais conectado.
  • Imagem de Miniatura
    Item
    Liferay Portal Upgrade: definição de um processo eficiente para upgrade de clientes em versões legadas
    (2022-10-11) Ferreira, Nícolas Moura do Canto; Medeiros, Victor Wanderley Costa de; http://lattes.cnpq.br/7159595141911505
    A Liferay propõe que o setor de engenharia intervenha no processo de migração do Liferay Portal, das versões mais antigas para a mais atual disponível no mercado. Processo anteriormente feito pelo departamento de consultoria, o upgrade é um trabalho que demanda tempo da equipe e acaba sendo repassado em valores altos para os clientes que optam por permanecer em versões desatualizadas. Para atingir suas metas, o time faz uso de tecnologias internas do produto Liferay Portal DXP com arquitetura separada em três camadas de User Interface: core, serviços e opcional. Elas consistem em aplicações DXP web para adicionar portais, sites, páginas, widgets e conteúdos para os diversos produtos. Além de trabalhar com scripts de upgrade de versões para tabelas nos bancos de dados dos clientes e fazer automações para esse processo na ferramenta interna de formatação de código da empresa. A engenharia apresenta assim uma nova proposta para processos de upgrades de clientes visando agilizar o trabalho do time de consultoria. Além de contribuir com documentação interna e automação para migrações futuras. Este trabalho visa discorrer sobre os eventos que circundam este projeto desde sua concepção, à organização do fluxo de trabalho, além da influência da graduação em sistemas de informação pela UFRPE no atual mercado de trabalho.
  • Imagem de Miniatura
    Item
    Sistema de aprendizado de máquina para predição do tempo de esforço de tarefas de desenvolvimento de software
    (2021-12-14) Sitonio, Tiago Pedro da Silva; Monteiro, Cleviton Vinicius Fonsêca; http://lattes.cnpq.br/9362573782715504; http://lattes.cnpq.br/0915757895643807
    A estimativa de esforço é uma das principais métricas para o planejamento e gerenciamento do processo de desenvolvimento de software, pois proporciona auxílio na previsão de custos e prazos para realização de um projeto. Em consideração a isso, este trabalho teve como objetivo realizar uma análise do processo de construção de um modelo de Aprendizado de Máquina com base na metodologia CRISP-DM, utilizando Algoritmo de Aprendizado de Máquina Automatizado (AutoML) para encontrar o melhor algoritmo de regressão como objetivo de encontrar a estimativa de tempo de determinada atividade. Para esta análise, dados de atividades realizadas por 29 empresas foram utilizados. O banco de dados é constituído por diferentes tipos de dados como, por exemplo, dado Numérico em formato de Linguagem Natural para descrever as atividades. Por causa disso foi realizado o processo de Tokenização a fim de transformar em dados totalmente regressivos para execução dos algoritmos. Em conjunto a isto, métodos de análise dos dados, pré-processamento, métodos de afunilamento como Seleção de Feaures, Alteração de Pesos e Combinação de Colunas serão aplicados para realizar análises do banco de dados.Este projeto foi desenvolvido através da linguagem de programação Python com apoio das suas bibliotecas, dentre elas a biblioteca Pandas para manipulação e análise de dados e Scikitlearn para acesso a algoritmos de Aprendizado de Máquina. Os resultados obtidos e avaliados apontam que o tratamento individual para cada empresa com pré-processamento e construção do modelo de algoritmo de previsão devem ser levados em consideração para encontrar os melhores resultados de estimativa de esforço por meio dos algoritmos.
  • Imagem de Miniatura
    Item
    Aplicação de métodos ágeis em desenvolvimento global de software
    (2021-07-22) Alves, Annelyelthon Ferreira; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/8410367808658970
    O Desenvolvimento de Software Global (Global Software Development GSD) Continua crescendo substancialmente e está rapidamente se tornando um padrão, fundamentalmente diferente do desenvolvimento local da Engenharia de Software. Com o desenvolvimento ágil de software (Agile Software Development ASD), tornouse uma escolha atraente para empresas que tentam melhorar seu desempenho, embora seus métodos tenham sido originalmente projetados para equipes pequenas e individuais. A literatura atual não fornece uma imagem coesa de como as práticas ágeis são levadas em consideração na natureza distribuída do desenvolvimento de software: como fazer, quem envolver e o que funciona na prática. Este estudo tem como objetivo destacar como as práticas de ASD são aplicadas no contexto do GSD, a fim de desenvolver um conjunto de técnicas que podem ser relevantes tanto na pesquisa quanto na prática. Para responder à pergunta de pesquisa, “Como as práticas ágeis são adotadas em equipes de desenvolvimento de software ágil global?” Conduzimos uma revisão sistemática da literatura e um survey com engenheiros de software no contexto de ASD e GSD. Uma síntese das soluções encontradas em setenta e seis estudos forneceu 48 práticas distintas que as organizações podem implementar, incluindo “colaboração entre equipes”, “arquitetura ágil”, “coaching”, “demonstração do sistema” e “automação de teste”. Assim, realizamos uma verificação com engenheiros de software e identificamos que essas práticas implementáveis fornecem soluções para gerenciar equipes GSD e assim, abraçar a agilidade.
  • Imagem de Miniatura
    Item
    Verificação eficiente de robôs educacionais
    (2021-03-03) Correia, Lucas Francisco Pereira de Gois; Nogueira, Sidney de Carvalho; http://lattes.cnpq.br/9171224058305522; http://lattes.cnpq.br/1957154709677653
    Robótica educacional é uma área de interesse crescente dentro das instituições de ensino. Devido ao seu baixo custo e facilidade de aquisição, ambientes virtuais de programação para robôs têm sido desenvolvidos para suportar o ensino de conceitos de computação, programação e robótica. A principal ferramenta de depuração disponível nestes ambientes é a simulação do robô dentro de um ambiente virtual. Nestes ambientes, a depuração acontece de forma visual: não é possível analisar de forma automática se um programa vai convergir para um objetivo específico. Soluções para analisar de forma automática programas de robôs virtuais são ferramentas de ensino importantes para a avaliação eficiente e precisa dos programas. O objetivo deste projeto é aperfeiçoar uma abordagem de verificação automática de programas de robô. Esta abordagem traduz programas na linguagem ROBO para a notação formal CSP e utiliza o verificador de modelos FDR para analisar o comportamento do programa. O resultado retornado pelo verificador é utilizado para informar se o programa analisado possui o comportamento esperado. O aperfeiçoamento corresponde a implementação de um tradutor de ROBO para CSP que gera um modelo CSP mais eficiente de ser analisado do que o modelo produzido pelo tradutor atual. Através de avaliação empírica, pode-se observar uma redução significativa no tempo para análise dos modelos CSP obtidos a partir do tradutor desenvolvido neste trabalho. O tempo de análise observado foi praticamente constante para os mapas analisados, enquanto o tempo de análise dos modelos gerados pelo tradutor anterior, produzido antes deste trabalho, apresentou um crescimento exponencial com relação ao tamanho do mapa onde o programa é analisado. Uma contribuição adicional deste trabalho é que o tradutor transforma em CSP programas com qualquer sintaxe da linguagem ROBO, enquanto o tradutor anterior lidava apenas com um subconjunto da sintaxe.
  • Imagem de Miniatura
    Item
    Engenharia de requisitos ágil: extensão de uma revisão sistemática da literatura
    (2021-02-24) Menezes, Renato Vieira de; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/5357825214092807
    A realidade recente do dia a dia dos engenheiros de software é determinada pela prática dos métodos ágeis, motivando questionamentos frequentes na comunidade sobre como adotar uma Engenharia de Requisitos (ER) mais flexível e dinâmica, distinta do modelo tradicional. Os métodos ágeis não apresentam regras estabelecidas para uma definição única de como as atividades de Engenharia de Requisitos devem ser realizadas. Explorar os avanços da ER ágil em ambientes diversos e desafiadores tornase adequado. Portanto, o objetivo deste Trabalho de Conclusão de Curso (TCC) é identificar e compreender o cenário atual da variedade do uso das práticas / técnicas que compõem tais atividades, os importantes desafios e lições aprendidas. Uma extensão de estudo de revisão sistemática da literatura foi conduzida para realização desta análise e as evidências são sintetizadas a partir de fontes publicadas entre 2017 e 2020. Além de verificar, descrever e direcionar a pesquisa a respeito da Engenharia de Requisitos ágil, o trabalho entrega um compilado de práticas, observando os diferentes contextos de projetos e organizações.
  • Imagem de Miniatura
    Item
    Scaling agile methods in global software projects: Is it possible with SAFe?
    (2020-09-03) Figueredo, Rafael da Camara; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/1583800948677235
    A desenvolvimento de software global continua crescendo substancialmente e está rapidamente se tornando uma norma do desenvolvimento de software, sendo fundamentalmente diferente do da engenharia de software local. Embora os métodos ágeis terem sido originalmente construídos para times pequenos, o desenvolvimento ágil de software vem se tornando uma opção atraente para empresas que tentam melhorar sua produtividade em times globais. O uso de práticas ágeis no desenvolvimento de software global tornaram-se a principal opção para executar projetos em ambientes distribuídos devido aos seus benefícios relacionados a uma melhor comunicação, coordenação, produtividade e qualidade do projeto. Entretanto, enquanto empresas continuam crescendo, junto a complexidades e desafios que surgem rapidamente, muitos dos seus projetos vem se tornando globais e de larga escala, o que faz elas buscarem constantemente como adaptar o ágil nesses cenários e consequentemente como escalar o ágil para uma melhor coordenação. A literatura atual não fornece uma imagem coesa de como as práticas ágeis são de fato implementadas em um ambiente distribuído, e também como elas podem ser escaladas em projetos globais de larga escala. Faltam informações sobre como como usar e escalar o ágil em cenários distribuídos, quais práticas ágeis e escaláveis funcionam nas equipes de desenvolvimento de software global, e por fim, quem deve aplicá-las. Com base nessa lacuna da literatura, este estudo tem como objetivo destacar como as práticas ágeis são aplicados no contexto de desenvolvimento de software global, a fim de desenvolver um conjunto de técnicas que possam ser relevantes tanto na pesquisa quanto na prática. Além disso, o estudo visa destacar um conjunto de práticas ágeis usadas pelas equipes de desenvolvimento de software global para escalar o ágil e mapear essas práticas com as práticas do “Scaled Agile Framework” (SAFe). Para responder as duas perguntas de pesquisa, sendo a primeira: “Como as práticas ágeis são adotadas nas equipes de desenvolvimento de software global ágil?” e a segunda: “Quais são as práticas relatadas na literatura de desenvolvimento de software global ágil que adotam práticas do SAFe ao adotar o desenvolvimento ágil escalável?”, foi conduzida uma revisão sistemática da literatura nas áreas de desenvolvimento de software ágil, global e global ágil. Uma síntese das soluções encontradas em setenta e seis estudos forneceu 48 práticas ágeis distintas que empresas podem implementar em ambientes distribuídos globalmente. Além disso, dessas 48 prátias ágeis, foi possível identificar 18 práticas ágeis escaláveis que adotam as práticas do SAFe. Essas práticas implementáveis são úteis para fornecer soluções para gerenciar times globais com agilidade, enquanto as práticas do SAFe vinculadas as práticas ágeis escaláveis fornecem diretrizes para melhor escalar o ágil em projetos globais de larga escala.
  • Imagem de Miniatura
    Item
    QA Metrics: integração das métricas de qualidade de software, em ambiente Docker, para exibição de dashboards Grafana alimentado pelo banco de dados temporal InfluxDB via Newman
    (2022-07-15) Silva, Lucas Ferreira da; Bocanegra, Silvana; Assad, Rodrigo Elia; http://lattes.cnpq.br/3791808485485116; http://lattes.cnpq.br/4596111202208863; http://lattes.cnpq.br/9075508106025707
    As métricas e indicadores de qualidade de software são capazes de auxiliar um testador de software, conhecido como Quality Assurance (QA), a avaliar o que precisa ser realizado para melhorar o desempenho de um projeto de desenvolvimento de software. Além disso, possibilita monitorar o progresso de um projeto a fim de sugerir iniciativas baseadas nos dados coletados. Entretanto, unificar as métricas obtidas de fontes distintas para apresentá-las em tempo real não é uma tarefa fácil para algumas empresas. Apesar disso, com o uso de APIs, é possível coletar os dados, analisar e apresentá-los em dashboards, além de reduzir o tempo de retrabalho dos QAs. Neste trabalho, foi desenvolvido um sistema capaz de coletar dados de três serviços com o intuito de apresentar, em dashboards, as métricas que são essenciais na área de Qualidade de Software. Ademais, a coleta e o armazenamento destas métricas são realizados de forma automatizada e orquestrada através de uma aplicação compacta, rápida, eficiente, segura, portátil e isolada.
  • Imagem de Miniatura
    Item
    Os efeitos da (in)felicidade no processo dedesenvolvimento de software
    (2019) Falcão, Tiago Coutinho; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/8796523691341550
    No processo de desenvolvimento de software o principal ator e responsável por impactar diretamente na produção, é o indivíduo. Com o aumento da literatura e das vivências profissionais, assim como a importância de se estudar o ser humano, estudos recentes envolvendo os aspectos humanos na engenharia de software procuram relacionar fatores psicológicos com ciências exatas. Estudos mostram que emoções como a(in)felicidade num ambiente de desenvolvimento de software estão diretamente ligadas a qualidade do software , afetando o desempenho do desenvolvedor. Compreender a felicidade e a infelicidade é possível elaborar formas que melhorem as condições do ambiente de trabalho,a produtividade e motivação do desenvolvedor.O presente trabalho busca identificar os efeitos da (in)felicidade no desempenho dos desenvolvedores de software atuantes no estado de Pernambuco. Neste trabalho, serão analisados os efeitos e os fatores moderadores que influenciam o desempenho dos desenvolvedores quando estão felizes e infelizes durante o processo de desenvolvimento de software.Baseada em uma revisão bibliográfica e na opinião de envolvidos no desenvolvimento de software, através de um questionário, que contou com a participação de 71 desenvolvedores, foram levantados os fatores moderadores capazes de influenciar emocionalmente o indivíduo acarretando na melhora ou piora do seu desempenho. Dentre eles estão: saúde mental e física influenciando negativamente e a motivação do time como fator moderador positivo. Apesar de algumas empresas terem flexibilidade em diversos sentidos como por exemplo, a vestimenta,coffee breakse espaços de lazer,a atenção ao desenvolvedor muitas vezes não é explorada individualmente. Nesse trabalho, podemos concluir que fatores como a Saúde Mental comprovam que o cuidado com o bem-estar do individuo é de extrema importância para um bom funcionamento do processo de desenvolvimento.