Bacharelado em Ciência da Computação (Sede)

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


Siglas das Coleções:

APP - Artigo Publicado em Periódico
TAE - Trabalho Apresentado em Evento
TCC - Trabalho de Conclusão de Curso

Navegar

Resultados da Pesquisa

Agora exibindo 1 - 9 de 9
  • Imagem de Miniatura
    Item
    Diversidade de gênero no setor de tecnologia: barreiras encontradas e percepção de sucesso das mulheres do Porto Digital
    (2021-12-09) Silva, Lizandra Lígia Soares Bezerra; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/6600757641977555
    Com o passar dos anos, é notável que mulheres vem conquistando cada vez mais seu espaço na sociedade, adquirindo direitos e atuando no mercado de trabalho. Entretanto, a desigualdade de gênero e ausência de mulheres em determinados papéis ainda é um problema que persiste, especialmente quando se trata de mulheres atuando na área de tecnologia. Nesse contexto, o objetivo deste trabalho é analisar o motivo do baixo número de mulheres atuando na área de desenvolvimento de software, e se as barreiras identificadas podem ser superadas a partir da percepção de sucesso. Baseado em uma revisão bibliográfica, foi elaborado um questionário online, que foi aplicado com mulheres do ecossistema do Porto Digital em Recife, obtendo um total de 83 respostas. Para dar suporte a análise dos resultados, além da revisão da literatura, foi utilizada a ferramenta PSPP para a realização de cálculos estatísticos. Foi possível identificar que barreiras do âmbito pessoal e organizacional foram encontradas, como por exemplo, autocobrança, problemas de liderança e assédio. Um ambiente de trabalho positivo foi indicado como aspecto de sucesso em projetos, podendo ser também uma solução para superar os problemas.
  • Imagem de Miniatura
    Item
    Refatoração de arquiteturas monolíticas em microserviços no contexto de desenvolvimento de software global
    (2019) Gomes, Thiago Henrique Ferreira; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/2527989443347018
    Nos últimos anos, o Desenvolvimento de Software Global tem sido adotado por diversas empresas, de modo que possam se beneficiar das vantagens atreladas ao uso da prática supracitada, que vão desde redução de custos à redução tempo necessário para um produto chegar ao mercado. Porém essa técnica também trás diversos desafios aos times que a utilizam. Este trabalho tem como objetivo mapear as estratégias de refatoração em aplicações alinhadas com as características arquiteturais exigidas por um ambiente de desenvolvimento de software distribuído. Para isso, foi utilizado os benefícios provenientes do uso de uma arquitetura de software moderna, a arquitetura baseada em micro serviços. Também analisamos, que tipo de práticas podemos usar para evoluir as aplicações atuais que utilizam uma arquitetura ultrapassada, a arquitetura monolítica, para essa arquitetura baseada em micro serviços. Adotamos, como método de pesquisa, dois mapeamentos sistemáticos, com o objetivo de analisar o estado da arte em relação a arquitetura de software no contexto de desenvolvimento de software global e refatoração de aplicações monolíticas em micro serviço. Por fim,realizamos uma análise dos dados obtidos nos mapeamentos sistemáticos, com objetivo de identificar que práticas de refatoração e benefícios do uso de arquitetura em micro serviços podem contribuir para o sucesso de um projeto no ambiente de desenvolvimento de software global. Com isso, conseguimos concluir que todas as práticas encontradas durante esse trabalho tem algum impacto positivo dentro do ambiente GSD e relacionamos as necessidades do ambiente GSD com os benefícios oferecidos pelo uso da arquitetura em micro serviços.
  • Imagem de Miniatura
    Item
    Gamificação aplicada na gestão de incertezas em projetos de software
    (2018) Duarte, Thiago Augusto Costa; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/5077077457690723
    O mercado de software sofre constantes mudanças e novas tecnologias são desenvolvidas com frequência, o que estimula a concorrência entre as empresas de software. Este ambiente traz um notável índice de falhas e incertezas que podem levar ao fracasso. Diante do exposto, destaca-se a relevância de uma gestão de que considera a importância da gestão das incertezas,que podem afetar diretamente o sucesso do projeto. O objetivo deste trabalho é propor uma abordagem de gestão das incertezas gamificada,de modo a motivar o uso da gestão de incertezas de forma contínua e,assim,aumentaras vantagens competitivas das organizações.A gamificação é a aplicação de elementos de jogos em processos no mundo real, tentando alcançar objetivos específicos de negócio, por meio da modificação do comportamento das pessoas.Sendo assim, por meio da revisão da literatura, buscou-se identificar práticas, técnicas e estratégias de suporte à gestão das incertezas. Em seguida,foi elaborado um frame work de gamificação,sendo mapeando em cada orientação do framework, as práticas, técnicas e estratégias de gestão de incertezas que podem ser exploradas. Por fim,foi proposta a abordagem de gestão de incertezas gamificada. Desta forma, espera-se incentivar o uso continuo da gestão de incertezas nas organizações com o uso da gamificação.
  • Imagem de Miniatura
    Item
    A Diagnoses Instrument for Software Engineers’ Soft Skills
    (2019) Bastos, Thiago Alves; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/9312633017399857
    O uso de Metodologias Ágeis em meio aos Projetos de Desenvolvimento de Software têm crescido nos últimos anos. Essas metodologias tem um conjunto de valores e princípios que são centrado nas pessoas, aumentando a importância dos fatores humanos para o sucesso dos projetos que utilizam Metodologias Ágeis. Entretanto, esses fatores nem sempre são completamente entendidos pelos profissionais que trabalham dentro de times ágeis. Essa realidade levou ao surgimento de um ”gap” entre o que as empresas esperam dos Engenheiros de Software e o que eles realmente têm, em termos de Soft Skills, especialmente em seus primeiros empregos. Por isso, baseado em uma Revisão da Literatura e na opinião dos Engenheiros de Software que trabalham em times ágeis dentro do Porto Digital de Recife, esse trabalho desenvolveu um MVP de um instrumento capaz de fazer uma auto avaliação das 8Soft Skills mais importantes para um Engenheiro de Software que trabalha em um ambiente Ágil. Elevando a atenção para a relevância das Soft Skills para carreira de um Engenheiro de Software,destacando quais são as Soft Skills mais importantes para eles e também reduzindo o ”gap” existente no mercado de TI. Além disso, durante esse estudo foi criado um Catálogo de Soft Skills contendo os seus sinôimos e suas definições encontradas na Literatura. Por fim, pode-se perceber que as Soft Skills são muito importantes para os Engenheiros de Software, sendo Liderança e Negociação as menos relevantes e Comunicação a mais relevante, e o MVP do instrumento desenvolvido se mostrou de extrema relevância, principalmente para engenheiros de Software no começo da carreira. Além disso, também foi possível perceber que não existem atividades suficientes dentro das empresas para melhorar as Soft Skills dos Engenheiros de Softwaer e as atividades existentes não estão alinhadas com as expectativas deles.
  • Imagem de Miniatura
    Item
    Guidelines para análise de viabilidade de projetos de automação de teste
    (2019) Silva, Tamires Pereira da; Furtado, Ana Paula Carvalho Cavalcanti; http://lattes.cnpq.br/5862330768739698; http://lattes.cnpq.br/4997802496764016
    Contexto: realizar testes é uma atividade imprescindível no desenvolvimento de software. Apesar disso algumas, empresas negligenciam sua execução, com a justificativa de que o esforço e custo empreendidos não seriam válidos no projeto. Com isso a automação de testes surgiu como uma alternativa para diminuir esses problemas a longo prazo no desenvolvimento. Mas apesar de ser uma possível solução, a automação,se mal aplicada, pode inviabilizar um projeto, trazendo mais problemas do que soluções. Uma forma de se tentar evitar essa situação é analisando a viabilidade de se implantar testes automatizados antes de sua implantação em um projeto de software.Objetivo: este trabalho, portanto, tem como objetivo propor uma forma de analisar a viabilidade de um projeto de automação, inicialmente levantando-se os principais problemas encontrados na execução da atividade. A partir dos dados encontrados propõe uma forma de realizar a análise da viabilidade da automação dentro de um projeto de software.Método: esta proposta foi elaborada a partir da realização de um levantamento na bibliografia, para assim conseguir averiguar os pontos de interesse na análise da viabilidade, após essa etapa foram realizadas entrevistas com especialistas na área, com a finalidade de comparar os dados encontrados com resultados da primeira etapa de pesquisa. Os resultados destas fases foram organizados em forma de guidelines, validados a partir da execução de um estudo de caso.Resultados: a proposta foi composta pela criação de guidelines, que consistem em pontos que devem ser considerados antes de iniciar a automação. A proposta foi validada com um estudo de casos aplicado no contexto de três projetos reais. Em cada projeto foram aplicados check lists a fim de se avaliar a possibilidade do uso da automação.Conclusão: com base nos resultados da pesquisa foi possível notar que os problemas causados por uma aplicação incorreta da automação podem prejudicar o projeto como um todo, a análise da viabilidade, portanto, representa uma forma de minimizar esses problemas.A proposta dos guidelines pôde ser usado através do estudo de caso como forma de validar os guidelines.
  • Imagem de Miniatura
    Item
    Verificação de refinamento em diagramas de sequência com estruturas de controle
    (2019) Araújo, Daniel José Freire de; Lima, Lucas Albertins de; http://lattes.cnpq.br/0465071050875729; http://lattes.cnpq.br/5219541109924367
    A linguagem UML oferece diversos tipos de diagramas para modelagem de sistemas,entre os principais diagramas comportamentais está o diagrama de sequência. O diagrama de sequência pode ser utilizado para modelar casos de uso de sistemas deforma simples e visual. Contudo, a linguagem UML como um todo apresenta modelos informais que possuem verificações baseadas em experiência humana. Este trabalho é a continuação de um linha de pesquisa que tem o objetivo de formalizar diagramas de sequência UML e realizar verificações de refinamento entre diagramas. Aqui é proposta a versão inicial de uma ferramenta capaz de traduzir diagramas de sequência UML para uma especificação formal CSP e realizar a verificação de refinamentos através do verificador FDR4. O ponto diferencial deste trabalho é o processo de formalização de fragmentos combinados que representam estruturas de controle no contexto de diagramas de sequência, aqui serão abordados os fragmentos option, alternative, parallel e loop.
  • Imagem de Miniatura
    Item
    Políticas para desenvolvimento de software seguro em times ágeis
    (2019) Bezerra, Carlos Magnum Matias; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/9077153013471246
    Os valores e princípios das metodologias ágeis visam entregar valor ao negócio deforma rápida, sendo essa agilidade, um dos fatores críticos para o sucesso dessas abordagens. Sucesso esse, crucial para atender uma demanda crescente por software, gerada pela necessidade de digitalização dos negócios. Atualmente, outra preocupação,também advinda dessa necessidade, vem ganhando mais visibilidade, a segurança ci-bernética. Muitos negócios que migraram para o mundo digital não tiveram a devida preocupação com as ameaças presentes nesse novo cenário. Como consequência, muitos problemas de segurança vem sendo expostos nos últimos anos, tais problemas,muitas vezes, acarretam em prejuízos de natureza financeira e social. Sendosoft-ware um dos ativos computacionais mais expostos a ameaças de segurança, a busca por desenvolvê-los de forma segura, torna-se uma demanda, cada vez mais evidente.Neste cenário, surge a necessidade de incluir práticas de segurança no cotidiano dos times de ágeis. Com o intuito de contribuir para a resolução desses desafios,este trabalho tem como objetivo: estabelecer políticas de desenvolvimento seguro,agregando práticas destinadas a inclusão de atributos de segurança em projetos de software, a serem desenvolvidos por times ágeis. Para tanto, se fez necessário, realizar uma pesquisa exploratória por meio de um levantamento bibliográfico, a fim de se obter uma compreensão inicial do problema e das principais abordagens utilizadas para tratá-lo. A partir da bibliografia encontrada, foram consideradas as pesquisas que apresentavam práticas para a inclusão de atividades de segurança em projetos de software. Com base em critérios predefinidos, foi conduzida uma filtragem inicialdas práticas levantadas. O sub-conjunto resultante, foi avaliado por um time ágil de desenvolvimento, com experiência em segurança. O resultado dessa avaliação,evidenciou as 14 (catorze) práticas mais relevantes e as etapas do processo de desenvolvimento, ao qual elas pertenciam. A partir das práticas selecionadas, 5 (cinco)políticas foram estruturadas e organizadas, em seguida avaliadas por especialistas,através de entrevistas, para julgar, seus benefícios para segurança e aplicabilidade em times ágeis. Por meio do resultado dessa avaliação, foi possível concluir, que 3(três) das políticas, eram suficientemente aplicáveis a times ágeis e contribuíam para segurança do projeto. Já 2 (duas) delas, apesar dos benefícios para segurança, ainda necessitam de ajustes para que a incorporação seja viável, no mundo ágil.
  • Imagem de Miniatura
    Item
    Uma abordagem para tradução de uma linguagem de programação de robôs para um modelo formal
    (2018) Pereira, Iverson Luís; Nogueira, Sidney de Carvalho; http://lattes.cnpq.br/9171224058305522; http://lattes.cnpq.br/1186672408246777
    O interesse por ambientes de programação de robôs virtuais para fins educacionais tem crescido nos últimos anos. Estes ambientes são uma alternativa para o uso de robôs reais que possuem um alto custo de aquisição. No entanto, não existem ambientes gratuitos que oferecem mecanismos automatizados para verificação dos programas de robôs virtuais, o que impossibilita que alunos e professores tenham um feedback rápidoeautomáticosobreofuncionamentodosprogramas.Estetrabalhopropõe umaabordagemdeverificaçãoautomáticadeprogramasderobôsvirtuaisescritosna linguagemeducacionalROBO.DesenvolvemosumcompiladorquelêprogramasescritosemROBOetraduzosprogramasparaumanotaçãoformalchamadaCSP(Communicating Sequential Processes), que é a entrada para uma ferramenta de verificação automática de modelos chamada FDR (Failures-Divergences Refinement). As fases da compilação foram implementadas usando a plataforma Spoofax, onde definimos a gramática da linguagem ROBO e especificamos regras de tradução de ROBO para CSP. Estetrabalhoremoveumalimitaçãodanossaabordagemanteriordeverificação que não permite a análise de programas ROBO contendo variáveis e procedimentos. Uma importante contribuição deste trabalho é a extensão da abordagem de verificação para permitir a análise automática de programas ROBO com variáveis e procedimentos. A extensão consiste na modificação da gramática do compilador pela inclusão de variáveis e procedimentos e na inclusão de novas regras de tradução que definem a semântica formal para os elementos adicionados na gramática. O trabalho propõe uma ferramenta que torna transparente o processo de tradução de ROBO para CSP e a verificação automática usando FDR. Validamos a abordagem utilizando a ferramenta proposta para verificar o comportamento de um programa ROBO com variáveis e procedimentos.
  • Imagem de Miniatura
    Item
    Aplicação do processo de design no desenvolvimento de um produto de software para suporte à inovação social
    (2018) Santos, Juliana Ferreira dos; Souza, Ricardo André Cavalcante de; http://lattes.cnpq.br/7101881357139219; http://lattes.cnpq.br/8780029383567585
    Inovaçãopodeserdescritacomoumaboaideiadesoluçãodeumproblemarelevante implementada. Já a Inovação Social é uma inovação que ao mesmo tempo atende uma necessidade social e cria novas relações ou colaborações sociais. As inovações sociais de grande impacto e alta escalabilidade são geralmente auxiliadas por TIC(Tecnologia da Informação e Comunicação).Diante deste contexto,este trabalho apresenta a aplicação do Processo de Design para concepção, design e implementação de um produto de software para dar suporte a uma Inovação Social. Para tanto, foi necessário alinhar o Processo de Design a um Modelo de Inovação Social. A Inovação Social tratadanestetrabalhoconsisteemfomentarumaredesocialdepluviometria(medição da água de chuva) para apoiar diversas áreas (agricultura, pecuária, mobilidade, etc.) que utilizam informações climatológicas na tomada de decisão.O produto de software desenvolvido mantém o registro e visualização das informações pluviométricas compartilhadas pelas pessoas e consiste na primeira capacidade implementada de uma Rede de Colaboração Tempo e Clima (RecTec).