Universidade Federal de Pernambuco (UFPE)
Centro de Informática (CIn)
Graduação em Ciência da Computação, Engenharia da Computação, e Sistemas de
Informação
Ciência da Computação
Responsável: Prof. Juliano Iyoda (jmi@cin.ufpe.br)
Código da disciplina no Google Sala de Aula: mbt13e
A
tecnologia evolui rapidamente, a quantidade de dispositivos e aplicações usadas
pelas pessoas tendem a aumentar com o passar do tempo. Devido ao avanço
tecnológico, o uso da internet se torna cada vez mais essencial na vida das
pessoas. O aumento do uso da internet e de novas tecnologias faz com que cada
vez mais pessoas realizem operações envolvendo informações sensíveis, como o
uso de cartões ou senhas de contas bancárias, logo mais dados estarão em
tráfego na internet. Invasores que possam estar monitorando a rede, podem
utilizar essa massa de dados gerados pelas pessoas para realizar crimes
cibernéticos, extorquindo, comprometendo pessoas e ambientes corporativos,
divulgando informações confidenciais, comprometendo a máquina com o intuito de
identificar todo tráfego ou dado trafegado pela máquina, fazendo
redirecionamento para páginas falsas e infiltração de dados. Este trabalho de
graduação apresentará algumas dessas técnicas e formas utilizadas para roubo de
informação.
Apresentação: dia: 28/06/2019, hora:
16:00, local: E121
Desde
o início da década de oitenta, com a diminuição dos custos de produção de
circuitos integrados e o aumento da capacidade computacional destes, o número
de dispositivos móveis começou a crescer exponencialmente. Cada vez mais
ouve-se falar de dispositivos menores que estão presentes em nosso dia a dia,
facilitando e promovendo comodidade para os usuários. Em 2017 havia estimativas
de que 7.22 bilhões de dispositivos móveis existiam ao redor do planeta [1].
Esse número tende a crescer ainda mais com o barateamento e evolução de
dispositivos eletrônicos, além do crescimento do número de dispositivos e
automação destes, o que deu origem ao termo "Internet das Coisas".
Diante disso, novas linguagens de programação foram inventadas para ser
utilizadas na programação desses dispositivos. Algumas outras, passaram por
mudanças para se adaptar à crescente mudança de paradigma. Java é a linguagem
de programação mais utilizada para programação de aplicações para dispositivos
móveis que utilizam Android como Sistema Operacional
(SO). O maior benefício da linguagem é o fato de poder-se escrever um só
programa e ser executado em diferentes tipos de dispositivos, daí que veio o
termo write once, run anywhere [2]. Atualmente,
Java está presente em smartphones, smartwatches, smart TVs, entre outros dispositivos utilizados no
cotidiano da maior parte da população. A necessidade de adaptação da linguagem
com os dias atuais levou à criação de uma nova linguagem, chamada Kotlin. Kotlin é uma linguagem multiplataforma, assim como Java, mas que possui sintaxe
mais concisa e menos verbosa, além de dar suporte a diferentes paradigmas de
programação como, por exemplo, o paradigma funcional. Foi adotada pela Google,
desenvolvedora do Android, como a linguagem oficial
para o desenvolvimento na plataforma.
Apresentação: dia: 08/07/2019, hora:
14:00, local: E121
Dispositivos
móveis estão evoluindo rapidamente e se tornaram populares. Os novos aparelhos
permitem diversos tipos de conexões e uma troca de dados intensa. Para defender
os dados dos dispositivos móveis contra acessos indevidos, algumas técnicas são
utilizadas. Por meio de pesquisas realizadas, este trabalho apresentará algumas
dessas técnicas, e também abordará algumas formas utilizadas pelos invasores
para roubos de informação. Durante o desenvolvimento da pesquisa, será
apresentada uma análise sobre o panorama da segurança da informação em
dispositivos móveis. Ao final serão apresentadas algumas sugestões de medidas
de segurança para dispositivos móveis com base na análise feita anteriormente.
Apresentação: dia: 04/07/2019, hora:
14:00, local: E122
Geralmente
ao se desenvolver um jogo, é necessário incluir desafios e obstáculos para o
jogador para que o mesmo possa superá-los ao jogar. Esses obstáculos podem
existir na forma de mapas, inimigos, restrições de recursos, regras adicionais,
bem como combinações desses elementos citados. A inclusão desses conteúdos no
jogo deve ser planejada por um game designer, que elabora os obstáculos, onde e
quando eles serão utilizados. Por ser um processo manual, o desenvolvimento das
fases do jogo é limitado pela velocidade com que o game designer consegue
pensar e testar suas ideias. Uma alternativa a esse processo manual é a geração
procedural de conteúdo. Neste caso, as fases do jogo são produzidas por algoritmos,
que geram ou combinam aleatoriamente assets do jogo.
Além de ser um processo mais rápido, ele pode ser executado durante a sessão de
jogo, o que fortalece o replay value do mesmo ao
gerar desafios inéditos para o jogador continuamente. Apesar disso, a
automatização da geração de conteúdo tem suas limitações. O processo manual
permite o planejamento não só de cada obstáculo e da recompensa por superá-lo individualmente mas também da relação deles como um todo. Ao
longo do jogo, o jogador possuirá diferentes níveis de habilidade, acesso a
recursos e a mecânicas do mesmo. Esses fatores são levados em consideração pelo
game designer, que ajusta os desafios em resposta a eles, mantendo a
dificuldade do jogo alta o bastante para torná-lo desafiador, mas não o
bastante para torná-lo frustrante. Dada a importância desse equilíbrio para o
prazer fornecido pelo jogo, é interessante que os envolvidos na produção do
jogo mantenham um controle sobre a dificuldade em cada ponto dele. Um algoritmo
completamente aleatório, por outro lado, não é capaz de prever o nível de
habilidade do jogador ou quais recursos estão disponíveis ao mesmo, o que o
torna menos eficiente em manter esse equilíbrio na dificuldade do jogo. O
objetivo deste trabalho de graduação é desenvolver uma ferramenta de geração de
conteúdo que seja capaz de gerar novas fases aleatoriamente, mas que ainda
consiga aplicar o conhecimento do game designer e a sua visão geral do jogo,
beneficiando-se dos pontos positivos de ambas as abordagens. Essa ferramenta
será aplicada no desenvolvimento das fases do jogo Shooter,
da Manifesto Game Studio. É esperado que a ferramenta desenvolvida consiga
tanto gerar fases com certo nível de aleatoriedade para tornar cada partida
diferente uma da outra, como também que ela possa ser ajustável pelo game
designer de forma que o mesmo seja capaz de controlar a experiência geral do
jogo.
Apresentação: dia: 01/07/2019
, hora: 10:00, local: E113
Com
a popularização da web e a criação de redes sociais a,
quantidade de dados trafegados cresceu exponencialmente. Essas
informações podem ser encontrar de forma estruturadas, semi-estruturadas
e não estruturadas. Dados estruturados têm um boa organização,
algo que permite que as informações relacionadas a eles sejam recuperadas de
forma rápida. Podemos citar, como exemplo, os dados de bancos de dados
relacionais, como os bancos SQL e algumas linguagens de marcação, como o XML. Dados
não-estruturados se encontram na forma de linguagem natural. São textos que não
apresentam nenhuma marcação que identifique a que os dados se referem. Podemos
citar como exemplo, artigos da web, artigos acadêmicos e tweets.
Dados semi-estruturados são aqueles que embora se
encontrem em forma de linguagem natural apresentam algum tipo de identificação
de seu conteúdo. Por exemplo, tabelas com especificação de um produto em sites
de venda. O modo mais prático de fazer análises de dados é utilizando base de
dados estruturadas, porém nem sempre existe uma base dados estruturada
disponível. E possível transformar base dados não estruturadas ou semi-estruturadas em bases estruturadas através de
processos que envolvem utilização de recuperação da informação e técnicas de
processamento de linguagem natural. Visto que muitos dados de domínios
específicos ou muito restritos estão disponíveis na internet, porém não de
forma estruturada, muitos profissionais de diversas áreas das ciências
biológica tem tirado grande proveito de criação de bases de dados utilizando
essas técnicas[1]. O objetivo deste estudo consiste em criar uma base dados
estruturada sobre amostras de DNA extraídas a partir do Gene Expression Omnibus (GEO), uma base dados semi-estruturada que hospeda um grande número de
experimentos de arrays de DNAm.
Visto que a anotação manual de amostras de DNAm
requer um especialista humano e é inviável para uma grande quantidade de dados
não rotulados. Este projeto propõe o uso de abordagens de aprendizado de máquina
para reduzir o esforço de anotar dados de DNAm. Para
isso, investigaremos o uso de técnicas de mineração de texto para extração de
informação, que examina padrões dentro e ao redor dos atributos da amostra nos
dados para construir um modelo para extração.
Apresentação: dia: 03/07/2019,
hora: 14:00, local: E203
A
perda involuntária de urina representa um problema social e higiênico para uma
parte significativa da população mundial, em especial mulheres com mais de 40
anos [1]. Entre os fatores que afetam a qualidade de vida dessas pessoas estão
a baixa autoestima, ansiedade e embaraço. A maioria, no entanto, não procura
orientação médica, muitas vezes por vergonha ou desconhecimento do próprio
corpo. Dentre os tipos de incontinência urinária estão a de esforço, urgência e
mista. No primeiro caso ocorre uma pequena perda de líquido, geralmente
decorrente de tosse, espirro, soerguimento de objetos pesados, ou algo que venha
a tensionar a musculatura abdominal. Seu tratamento é
feito mediante o fortalecimento da musculatura do períneo, localizado no
assoalho pélvico. Essa região, quando devidamente tonificada, atua no suporte à
bexiga, evitando a perda involuntária de urina. Alguns fatores que dificultam
esse processo são o stress, alteração hormonal, obesidade, obstipação e
gravidez [2]. O tratamento da incontinência urinária de esforço pode ser
realizado através de diferentes técnicas, entre elas o biofeedback,
a eletroestimulação e o treinamento da musculatura pélvica. Na primeira, como o
nome sugere, são apresentadas informações, através de respostas táteis,
auditivas ou visuais, com o objetivo de conscientizar o paciente sobre a região
fragilizada. Na eletroestimulação, sucessivos estímulos são emitidos para
contrair e relaxar a região a fim de tonificá-la. Já os exercícios perineais
propostos pelo ginecologista Arnold Kegel [3], em
1948, têm se mostrado bastante efetivos ao longo dos anos, podendo facilmente
ser realizado em diversos ambientes. O tratamento, no entanto, a depender do
caso, pode durar meses. O objetivo principal deste trabalho é o desenvolvimento
de um aplicativo Android para auxiliar mulheres no
tratamento da incontinência urinária de esforço através de exercícios simples,
que possam ser praticados em qualquer local, reduzindo a dependência do
profissional de saúde. Para tal, alguns pré-requisitos são fundamentais: a
conscientização do problema por parte das pacientes, uma vez que boa parte não
conhece o próprio corpo nem sabe identificar distúrbios miccionais, e o
acompanhamento da frequência dos exercícios por um profissional.
Apresentação: dia:
, hora: , local:
Identificar
potenciais erros no desenvolvimento de softwares é uma atividade que possui
grande relevância no mercado, pois possuir a capacidade de prever quais módulos
do projeto têm mais chances de falhar pode ser determinante para o
desenvolvimento das ferramentas, principalmente nos momentos de alocação e
gerenciamento de recursos [1]. Utilizar técnicas de aprendizagem de máquina, em
que o computador “aprende” a tomar decisões baseado em dados passados, é a
melhor forma de tentar detectar falhas nos sistemas com antecedência, já que
essa é uma atividade de alta complexidade para ser realizada apenas por
humanos. Existem diversas técnicas de aprendizado que servem para realizar
predições, cada uma se comportando de maneira diferente[2]. Considerando que
software é um termo muito amplo, existem muitos projetos com características
bem distintas, então utilizar apenas uma técnica de aprendizado para realizar a
predição de erros costuma ter resultados que funcionam bem para um determinado
grupo de sistemas, mas que não possuem boa capacidade de generalização[3]. Para
se obter resultados melhores, pode-se tentar utilizar múltiplas técnicas para
que os problemas possam ser atacados de maneira especializada, visando alcançar
um bom desempenho para todos os tipos de softwares. Existem algumas formas
diferentes de se utilizar múltiplos algoritmos para fazer a predição. Uma delas
é escolher previamente uma técnica de acordo com as características específicas
de cada sistema a ser testado. Com um conjunto de dados de treinamento em mãos,
primeiro procura-se agrupar os módulos dos projetos de acordo com seus
atributos, para que módulos similares compartilhem do mesmo grupo. Entendendo
que os grupos possuem alto índice de similaridade, possivelmente as técnicas de
aprendizado vão ter uma decisão parecida para cada componente de um grupo,
dessa forma pode-se definir qual abordagem possui o melhor desempenho para cada
um dos agrupamentos. No momento em que um módulo desconhecido vier a ser
testado para a predição, com base em suas características, determina-se a qual
grupo ele pertence e se escolhe o algoritmo de aprendizagem que possui os
melhores resultados dentro daquele grupo, com isso obtém-se o modelo que
provavelmente dará a resposta mais próxima da ideal para esse módulo de teste.
Um estudo recente propôs essa seleção dinâmica de técnicas para realizar a
regressão do número de falhas nos softwares, que determina a quantidade
potencial de problemas[3]. No estudo é citado que essa área de regressão em
predição de falhas é pouco explorada e que a abordagem utilizada por eles é bem
particular. A proposta desse trabalho de graduação é alcançar os resultados
obtidos em [3] e propor melhorias na fase de treinamento para que os resultados
obtidos possam ser ainda melhores e com mais poder de generalização. O
principal objetivo desse trabalho de graduação é propor uma nova abordagem de
seleção dinâmica de técnicas de aprendizagem de máquina para prever a
quantidade de falhas em sistemas de softwares, de forma a obter resultados
robustos para diferentes tipos de modelos.
Apresentação: dia: 02/07/2019, hora:
10:00, local: E201
Com
o amplo uso da internet na atualidade, a quantidade de dados gerados
diariamente na Web é enorme, principalmente, de dados não estruturados e
semiestruturados. Do ponto de vista computacional, esses tipos de dados não são
tão úteis quanto os estruturados, que podem ser usados em várias aplicações
como, por exemplo, em bases de conhecimento e Big Data. Para atender a essa
demanda por informação estruturada a área de extração de informação se utiliza
de técnicas de processamento de linguagem natural que buscam extrair
automaticamente esse tipo de elemento de textos gerados por pessoas. Uma das
questões que a extração de informação tenta solucionar é o problema de dados
faltantes em bases de conhecimento, onde se tem parte dos dados organizados de
forma estruturada e a parte que falta para completude das informações pode ser
extraída de dados não estruturados. Esse problema pode ser observado em Infoboxes de entidades da Wikipedia
que muitas vezes têm atributos faltantes que poderiam ser extraídos do próprio
artigo[1]. Esse problema também ocorre no contexto de anúncios de imóveis. Um
hábito recorrente de usuários desse serviço é não preencher campos específicos
dos anúncios. A ausência desses campos onde os dados são estruturados acabam
dificultando a localização do anúncio por possíveis compradores ao filtrar o
portal, além de impossibilitar análise dos dados, como predição de preços
baseado em atributos por exemplo. Algo que poderia ser contornado se os dados
faltantes fossem extraídos da descrição em texto livre do imóvel. Neste
trabalho, pretendemos utilizar técnicas de extração de informação e distant supervision para a partir
do texto dos anúncios de imóveis, extrair seus atributos como área, número de
quartos, etc. Este trabalho se propõe a utilizar e avaliar soluções existentes
para preencher atributos faltosos em entidades no domínio de anúncios de
imóveis. Em um primeiro momento, será executada a coleta e o pré-processamento
de dados de anúncios. Em seguida, será realizada a adaptação e a aplicação
sobre esse novo corpus com a análise de métricas, buscando validar o uso das
soluções.
Apresentação: dia: 02/07/2019,
hora: 14:00, local: E203
No
processo de busca pela qualidade e excelência de um determinado software é
indispensável o uso de testes para validar o sistema ou encontrar possíveis
bugs. Teste de software é um processo ou uma série de processos feitos para
garantir tanto que o código faça o que foi proposto bem como que não faça nada inesperado
[1]. No contexto de dispositivos móveis, em especial os dispositivos Android, essa escalada se torna aparente. De acordo com
dados da Google Play, a loja de aplicativos oficial do sistema operacional,
estão disponíveis cerca de 3 milhões de aplicações Android,
cobrindo mais de 30 categorias, que vão desde o entretenimento e personalização
até aplicativos educacionais e financeiros[2]. Tal quantidade de aplicativos
exige que o software esteja preparado para suportar diversas circunstˆancias sem trazer nenhum tipo de prejuízo para o
usuário final. Uma das categorias que pode ser usada para se testar e validar
um software é o teste de interface gráfica. O teste de interface gráfica
consiste em reproduzir sequências de ações que poderiam ser realizadas por um
usuário final, a fim de encontrar bugs no software durante a execução. Hoje em
dia na literatura existem várias técnicas que tem como objetivo a busca por
falhas através de testes de interface gráfica [3]–[5]. Contudo, não existem
estudos para medir a eficácia dessas ferramentas, pois a noção de eficácia pode
variar dependendo do objetivo dos testes. Por exemplo, com certas aplicações
não importa a quantidade de casos de teste criados, mas sim a cobertura e o
tempo de execução destes testes [4]. O objetivo deste estudo consiste em fazer
uma análise comparativa das ferramentas de teste de interface gráfica (GUI) em
dispositivos móveis, a fim de: − Mostrar qual das ferramentas estudadas
apresenta os melhores resultados, utilizando parˆametros
pré-definidos. − Identificar as ferramentas mais adequadas a serem usadas em
contextos específicos, onde os parˆametros
pré-definidos passam a ter pesos distintos.
Apresentação: dia:
, hora: , local:
Um
problema algorı́tmico básico consiste em procurar
ocorrências aproximadas de um padrão P num texto T (ou coleção de textos) de
muito maior tamanho. Quando o texto é fixo, um ı́ndice
I(T) é construı́do de forma
a permitir que ocorrências de padrões sejam nele encontradas sem a necessidade
de se percorrê-lo por completo. Diversos ı́ndices
foram propostos na literatura, com relações diversas entre espaço de memória e
tempo de busca. Em aplicações com grandes volumes de dados, como em Biologia
Computacional, ı́ndices completos tradicionais como
árvores de sufixos ou vetores de sufixos, que representam todas as subcadeias do texto, podem requerer um espaço proibitivo.
Alternativamente, alguns ı́ndices parciais
recentemente propostos representam apenas um subconjunto de subcadeias
de tamanho fixo k, chamados minimisers. Esses ı́ndices são combinados a heurı́sticas
de busca que permitem localizar ocorrências aproximadas de um padrão a partir
de extensões de ocorrências exatas de subcadeias de
tamanho fixo. Em geral, temos como caracterı́sticas
conflitantes o tamanho do ı́ndice, sua relação entre
sensibilidade e especificidade, e o tempo da busca. Esses fatores são diretamente
influenciados pela escolha de quais, quantos e de que tamanho serão os minimisers indexados, e de como serão combinados para a
busca. O objetivo deste trabalho é estudar a relação entre esses fatores e
propor algoritmos e estruturas de dados que permitam uma parametrização flexı́vel para uma busca eficiente e com espaço reduzido.
Apresentação: dia: 05/07/2019, hora:
08:30, local: D003
Um
problema algorítmico recorrente em areas diversas
como Engenharia de Software ou Biologia Computacional, é o de encontrar o
ancestral comum mais profundo (Lowest Common Ancestor — LCA) em arvores e/ou grafos dirigidos. As principais
soluções existentes consistem em pré-processar a
árvore para facilitar a consulta, e portanto, são
avaliadas em termos do tempo e espaço de pré-processamento e de consulta. O
objetivo desse trabalho é propor uma solução simples para consultas de LCAs (queries) sucessivas e avaliar o seu desempenho em
termos teóricos e práticos com respeito ao tempo de pre-processamento,
consulta e uso de memória, em comparação a algumas soluções consagradas
encontradas na literatura.
Apresentação: dia: 04/07/2019, hora:
10:00, local: D004
Sistemas
de recomendação baseados em filtragem colaborativa são usados para sugerir itens
para um determinado usuário a partir da opinião de outros usuários parecidos.
Esta opinião pode ser coletada de forma implícita ou explícita e, apesar do
feedback implícito ser mais comum na prática, o explícito ainda é mais comum na
literatura. O objetivo deste trabalho é implementar e analisar técnicas de
filtragem colaborativa em um conjunto de dados de feedback implícito.
Apresentação: dia: 03/07/2019, hora:
14:30, local: E203
Todo
o mercado de software da atualidade se limita por uma premissa de grande
relevância: programas de computador somente podem ser escritos por
profissionais qualificados. Apesar de essa ser a realidade em que vivemos, nada
impede de mapearmos o problema de fazer um programa como um problema a ser
resolvido por um programa já existente. Quando definimos a geração de código
dessa maneira, podemos criar especificações de um comportamento esperado para
um programa e usar um método para gerar um código que atenda a essas
especificações. Existe um conjunto de métodos que seguem a ideia de que toda
especificação deve ser completa. Em outras palavras, toda especificação deve
conter todos os casos de testes ou uma definição formal que possa testar todas
as entradas e saídas. Essa abordagem costuma ser bastante limitante: a maioria
dos programas a serem sintetizados tem um conjunto não finito de entradas
possíveis, além de esses métodos necessitarem de forte contexto matemático [1].
Esses métodos são chamados de programação dedutiva. Em contrapartida, existem
os métodos de programação indutiva e programação genética, que assumem que a
especificação não cobre todos os casos possíveis. Ambos são fortemente
influenciados por correntes modernas do aprendizado de máquinas. A programação
genética, em específico, trata tarefas de geração de programas como instâncias
de problemas de otimização, vendo as especificações como uma função de fit para o programa a ser gerado [1]. Mesmo com essa
diversidade de soluções que tentam seguir caminhos complementares, o estado da
arte ainda é muito limitado quanto a capacidade de gerar código
automaticamente. Por não existir uma solução muito escalável, métodos formais
ainda são empregados para a produção de códigos críticos, como o assistente de
provas Coq [1]. O objetivo dese
trabalho é definir um conjunto de métricas para avaliar métodos de síntese de
código e usá-las para comparar 2 métodos distintos, sendo um de programação
genética [2] e um de programação indutiva [3].
Apresentação: dia: 05/07/2019, hora:
10:00, local: Auditório
A
Lei no 8248 de 1991, conhecida desde então como “Lei de Informática”, é
responsável por grandes avanços no setor de Tecnologias da Informação e
Comunicação (TICs) no Brasil. Criada para estimular a
competitividade e capacitação técnica das empresas no País, a Lei de
Informática concede uma série de benefícios fiscais em contrapartida à
investimentos locais em Pesquisa e Desenvolvimento (P&D), e atendimento ao
Processo Produtivo Básico (PPB). Ao longo dos anos, os grandes players do setor
de TICs passaram a atuar no Brasil e as empresas
beneficiadas pela Lei 8248/91 não apenas estabeleceram parcerias com Instituições
de Ciência e Tecnologia (ICTs), e Universidades, mas
também instalaram seus próprios centros de P&D. Esses investimentos são
responsáveis pelo surgimento de centros de excelência e, consequentemente,
formação de capital humano de qualidade para o país. É importante destacar que
a legislação determina também que parte dos recursos destinados a P&D sejam
em ICTs das regiões Norte e Nordeste. Contudo, em
2014, o Tribunal de Contas da União divulgou um relatório intitulado “Auditoria
na Lei de Informática” com o objetivo de “examinar as condições disponíveis
para que os gestores públicos avaliem os resultados da Lei 8248/1991”. A
fiscalização do TCU encontrou graves falhas e ausências na gestão da Lei de
Informática e nos processos de monitoramento e avaliação dos dispositivos de
P&D e do PPB. A partir de 2015, após contenciosos contra o Brasil
registrados pela União Européia e Japão, a
Organização Mundial do Comércio (OMC) considerou as políticas brasileiras de
incentivos fiscais concedidos aos setores de informática, telecomunicações e
automotivo discriminatórias. Com essa decisão, o Governo Federal anunciou que a
Lei de Informática deverá ser revista. A última alteração na Lei de Informática
ocorreu em 2014 e prorrogou sua validade até 2029. Tais mudanças completam e
atualizam a legislação que trouxe muitos avanços para o país, e são necessárias
para acompanhar o dinamismo do setor de TICs.
Espera-se que a próxima revisão na Lei de Informática vá além das objeções
levantadas pela OMC e seja adequada aos novos tempos, incluindo etapas de
produção de maior valor agregado, áreas de software e empreendedorismo digital.
O objetivo central do trabalho de graduação proposto é investigar os impactos
gerados ao longo dos anos pela “Lei de Informática” no País e, a partir de um
contexto atual, analisar suas conquistas, limitações e principais desafios,
examinando potenciais cenários futuros para a lei.
Apresentação: dia: 05/07/2019, hora:
09:00, local: E121
Offloading computacional em computação em nuvem
móvel, ou Mobile Cloud Computing
(MCC), tem atraído muita atenção pelos seus benefícios em economia de energia e
melhorias de desempenho. No entanto, o offloading
computacional estático apresenta um baixo desempenho por ignorar informações
contextuais. Estudos recentes destacam o uso de informações contextuais para o
melhoramento da decisão de offloading, porém ainda há
desafios sobre o ambiente dinâmico de MCC. Várias soluções oferecem uma única
técnica de decisão ou não consideram algoritmos de classificação mais recentes
e robustos. Além disso, os trabalhos atuais, em geral, não levam em conta que o
sistema precisa ser realimentado via retreinamento e
que sem isso, em ambientes do mundo real, podem haver decisões incorretas
baixando o desempenho do sistema como um todo. Então, esse trabalho propõe um
sistema de offloading sensível ao contexto, que tira
proveito de várias técnicas de classificação binária para tomar decisões sobre
a realização ou não do offloading computacional, retreinando o modelo do algoritmo.
Apresentação: dia: 01/07/2019,
hora: 15:00, local: E124
Qualidade
de software é o quão bem o software foi projetado e quão bem ele está de acordo
com o uso pretendido e o se está satisfazendo todas as características de
qualidade e de acordo com a satisfação do usuário (1). O processo de executar
esse software num ambiente controlado o objetivo de avaliar se ele se comporta
conforme o especificado é o que chamamos de Teste de software (2). Com o
objetivo de auxiliar na identificação, avaliação e melhoria de processos de
software foram criados modelos de maturidade como o CMM (Capability
Maturity Model) em 1991,
CMMI (Capability Maturity Model Integration) em 2000 e o
MPS.Br (Melhoria do Processo de Software Brasileiro) proposto em 2003 (3). Com
o crescimento e valorização da área de testes, novos modelos como o TMM (Test Maturity Model), TMMi (Test Maturity Model Integration) e MPT.Br
(Melhoria do Processo de Testes Brasileiro) foram criados de forma a dar
suporte especificamente a processos de teste de software com objetivo de
garantir a qualidade do produto (3). Além destes modelos, temos também os
métodos ágeis promovem a interação contínua entre desenvolvedor e testador, o
que contribui na melhoria da qualidade de entrega, correção rápida de defeitos
(4). As organizações podem optar por adotar um modelo híbrido, juntando dois
modelos de maturidade ou um modelo de maturidade e uma metodologia ágil,
dependendo das características da própria organização. Este trabalho tem como
objetivo geral mapear e analisar os processos de testes de software numa
organização e, a partir desta análise, identificar pontos de melhoria baseado
em modelos de maturidade e/ou metodologias de desenvolvimento de software.
Apresentação: dia:
, hora: , local:
Nos
últimos anos, houve um notável crescimento na inserção de Recursos de Energia
Distribuídos no setor de energia. Em 2017 o World Energy Council
indicou que no período entre 2017 e 2025, vários países devem passar por uma
transição dos sistemas clássicos centralizados de distribuição de energia para
sistemas híbridos. Esse crescimento e as próprias características inerentes à
definição de Recursos de Energia Distribuídos denotam um potencial alto de
transformação nos Sistemas de Distribuição de Energia Centralizados
predominantes hoje em dia. Tal transformação deve mudar a direção do fluxo de
energia nos Sistemas de Distribuição de Energia, bem como aumentar a
complexidade dos sistemas atuais. Essas transformações no setor de energia
criam uma demanda pela correta e eficiente implantação de tecnologias
pertencentes ao setor de Tecnologia da Informação para o eficiente planejamento
e operação das Malhas Energéticas. Os domicílios ou empresas, que no setor de
energia participam sempre como consumidor, agora tomam um papel mais ativo na
malha energética podendo contribuir ativamente para a geração e armazenamento
de energia. Desse modo, se torna necessário o auxílio de técnicas de Big Data e
a correta implantação de estratégias de Internet das Coisas para que se possa
mensurar os reais benefícios da implantação de Recursos de Energia
Distribuídos, bem como suas limitações. A introdução de Recursos de Energia
Distribuídos tem impacto direto na distribuição, transmissão e geração de energia.
Se essa introdução é otimizada, vantagens como o descongestionamento de linhas
de fluxo energético, correta priorização dos investimentos, e correta
mensuração da capacidade de geração podem ser alcançadas. A
otimização da implantação de Recursos de Energia Distribuídos requerem a
coleta e processamento de grandes volumes de dados relacionados à geração,
transmissão, armazenamento, consumo e tarifação, em larga escala e com acesso
imediato. A instalação de smart meters
(medidores inteligentes) é uma das condições primordiais para que o setor seja
mais informatizado proporcionando a coleta desse volume de informações. O
conceito de Big Data e o avanço da Internet das Coisas devem moldar o processo
de implantação dos Recursos de Energia Distribuídos, aumentando a conectividade
dos geradores distribuídos, veículos e construções. O trabalho proposto tem por
objetivo destacar a importância da Tecnologia da Informação, na correta
mensuração e manutenção do sistema elétrico distribuído. Os desafios inerentes
da implantação de técnicas da área de Big Data e Internet das Coisas nesse
contexto, assim como a necessidade da correta implantação de coletores de dados
na infraestrutura de transmissão e armazenamento dos recursos elétricos
distribuídos, em larga escala e com acesso imediato.
Apresentação: dia:
, hora: , local:
Esse
trabalho dará continuidade no desenvolvimento do framework CEPSwift
com a extensão da mesma adicionando novos operadores já implementados em
linguagens reativas e não utilizados em CEP voltado para swift,
correções de alguns operadores que não atendem casos mais específicos mantendo
a confiabilidade e independência dos operadores. As técnicas implementadas no
projeto serão utilizadas para o desenvolvimento de um aplicativo iOS onde de forma didática pretendo comparar CEPSwift com RXSwift.
Apresentação: dia: 02/07/2019, hora:
10:00, local: E121
In October of 2008,
Nathan Blecharczyk, Brian Chesky
and Joe Gebbia designed a website that would allow
anyone, anywhere, to make a spare sofa or guest room available to travelers. In
exchange, the company—now dubbed Air Bed & Breakfast (Airbnb)—would simple
take a slice of the rental fee. Today, Airbnb is a giant enterprise active in
119 countries, where it lists over 500,000 properties ranging from studio
apartments to actual castles and has served over ten million guests. In its
last round of investment funding (April 2014), the company was valued at more
than $10 billion—a level surpassed by only a handful of the world’s greatest
hotel chains. In less than a decade, Airbnb has siphoned off a growing segment
of customers from the traditional hospitality industry—all without owning a
single hotel room of its own. How can a major business segment be invaded and conquered in a matter of months by an upstart with
none of the resources traditionally deemed essential for survival, let alone
market dominance? And why is this happening
today in one industry after another? The answer is the power of the platform—a
new business model that uses technology to connect people, organizations, and
resources in an interactive ecosystem in which amazing amounts of value can be created and exchanged. Airbnb, Uber, Alibaba, and
Facebook are just four examples from a list of disruptive platforms that
includes Amazon, YouTube, eBay, Wikipedia, iPhone, Upwork,
Twitter, KAYAK, Instagram, Pinterest, and dozens more. Each is unique and
focused on a distinctive industry and market. And each
has harnessed the power of the platform to transform a swath of the global
economy. Many more comparable transformations are on
the horizon [1]. Present in more than 400 cities and more than 70 countries,
Uber foresees a $120 billion evaluation for 2019—more than the evaluations of
Ford, General Motors and Fiat together, some of the most successful brands in
the world. All without owning a single car of its own. And
today, at least 20% of its rides over the entire world are coming from UberPOOL, an alternate service released by the company
years later to complement the traditional UberX. Just
as Uber, new products and services are emerging everyday on platform companies.
Airbnb has evolved to selling not only rooms, but also experiences. Apple has an suite of products and services that overlaps and Facebook
is managing to create a living ecosystem of apps. A range of
companies are now interested in establishing its own ecosystems seeking
the many advantages that comes with this approach. Soaring innovation and attractivity to new users as consequence, reduced time to
market, an increase in business opportunities and collaboration between
ecosystem actors [2]. And while some companies design their ecosystems from
scratch, it’s much more common companies emerge ecosystems from existing
products because that allows the company to enhance the values of its core
services through continuous integration with new and external products and
services. As the examples of Airbnb and Uber both demonstrate, the successful
introduction of ecosystems can rapidly undermine apparently unassailable
positions in seemingly matured and settled industries. With the continuous
diffusion of ICT technologies across industry sectors and the associated spread
in the use of ‘platform strategies’, managerial attention is increasingly
focusing on ‘business ecosystems’ or ‘innovation ecosystems’. Reflecting this
uptake in managerial attention, research attention also seems to be increasing.
GOALS Thus far, most of the ecosystem literature has focused on understanding
the structure and dynamics of already existing innovation ecosystems, with
research attention focused on issues such as value co-creation and value
appropriation in ecosystem contexts. Much less
attention has been attached to the creation of ecosystems, however [3].
Although the early ecosystem literature proposes a four stage
model of an ecosystem lifecycle [4] and more recently [5] suggests an
evolutionary typology of platform leadership, neither specifically examines the
processes underlying ecosystem emergence. Two literatures appear to offer
useful insight to address this issue. The industrial economics literature
offers insights into participant adoption strategies in multi-sided market
contexts, and the alliance formation literature offers insights into the social
context of prior alliances and interdependence. However, although these
literatures provide valuable insight, they do not specifically consider the
creation processes of ecosystems. The lack of research on ecosystem emergence
represents an important gap, given that many organizations, particularly in ICT
sectors, today explicitly seek to create ecosystems and drive these to their
advantage. As value creation processes become increasingly intertwined in
today’s highly specialized industrial landscape, it is important to start
considering how ecosystems are created in the first
place, what activities and dynamics characterize ecosystem emergence and
evolution, and under which conditions could ecosystem innovators stand a
realistic prospect of achieving success [6]. The goal of this work is to
conduct a case study with a brazilian
software company—In Loco—that fits platform profile and is building a living
ecosystem on the last few years. It aims on understanding how organizational,
strategic or technological traits influence the emergence of new products and
can originate a broader platform to foment innovation and collaboration with
many companies and actors in the ecosystem. By the end of the
study, we hope to: ● Have a better understanding of ecosystem emergence key
contributors ● Gather insights on how to classify in which phase of ecosystem
growth a company is found to be ● Know which technological, strategic and
business decisions are key to take a company ecosystem to the next level
Investigating In Loco’s path and perspective of decisions that led to positive,
as well as negative growth will help researchers have a more clear vision of
the process of ecosystem creation and ultimately contribute to build a
comprehensive framework on how to grow a successful software ecosystem.
Apresentação: dia: 04/07/2019, hora:
10:20, local: E101
No
desenvolvimento de software, arquivos README (leia-me, em português) são
utilizados para introduzir outros desenvolvedores a repositórios de
código-fonte. No maior portal de hospedagem de código, o GitHub, estes arquivos
são renderizados e apresentados em destaque na página
inicial dos projetos. Trabalhos recentes buscaram entender o conteúdo dos READMEs gerais e de plataformas específicas, porém ainda
não temos ferramentas que auxiliem o desenvolvedor na escrita destes arquivos
levando em consideração como os repositórios populares similares o fazem. Este
trabalho tem como objetivo o desenvolvimento e teste da eficácia de uma ferramenta
de auxílio à escrita de READMEs que se baseia em
dados dos repositórios mais populares do Github para
sugerir estrutura e conteúdo relevantes ao projeto sendo documentado.
Apresentação: dia: 04/07/2019, hora:
10:00, local: E122
Um estudo de Berbel (2011) destaca a recorrente constatação de
estudiosos de Educação de que nas últimas décadas, os crescentes avanços
tecnológicos e mudanças nas interações escolares diante do cotidiano mais ativo
dos estudantes na sociedade, estão demandando a busca por metodologias de
ensino que sejam mais adequadas às habilidades requeridas aos estudantes nos
dias de hoje. Tais mudanças afetam os diversos aspectos relacionadas ao
interesse e desempenho dos estudantes em tarefas realizadas dentro e fora de
sala de aula. Segundo Reeve (2009), metodologias ativas de ensino, aquelas onde
o estudante é protagonista do processo de aprendizagem, tem causado melhorias
significativas em aspectos como motivação, engajamento, desenvolvimento pessoal
e aumento no desempenho, ao mesmo tempo que permitem ao estudante se perceber
autônomo nas suas interações escolares. Neste trabalho, daremos destaque à
metodologia ativa de ensino conhecida com Aprendizado Baseado em Problemas ou Problem Based Learning (PBL).
Como a metodologia PBL é baseada na aprendizagem colaborativa, é de grande importantância para o desempenho dos membros do grupo que a
coesão entre eles seja alta. Um grupo é tido como coeso se, entre outros
fatores, existe a oportunidade de todos participarem das decisões, o que
acarreta na necessidade de os membros estarem participando ativamente das
reuniões do grupo. Desse modo, é necessário que os membros tenham horários
disponíveis em comum. Quando os membros do grupo precisam conciliar uma rotina
de trabalho e estudo, o que se verifica sem estudantes de faixa etária mais
alta, se torna ainda mais necessário contar com uma ferramenta para gerir os
horários livres e potencializar a realização de reuniões presenciais ou online,
mesmo em situações mais difíceis, tais como dentro de transportes coletivos,
durante o intervalo de trabalho, entre outras situações onde inicialmente não
se acredita ser possível de realizar uma reunião com os membros do grupo. Este
trabalho se propõe a criar uma aplicação Android,
juntamente com toda a infraestrutura auxiliar que lhe confira todas as suas
funcionalidades, responsável pelo monitoramento automático da localização dos
estudantes e dos horários disponíveis dos membros de um grupo, a fim de sugerir
oportunidades de reuniões e materiais de estudo. Os membros de um grupo, receberão,
através da aplicação Android aqui proposta,
notificações push sinalizando uma oportunidade de
reunião em grupo. Tal ferramenta servirá como apoio na aplicação da metodologia
BPL, uma vez que permite aos estudantes terem maior coesão dentro de seus grupos.
Este trabalho também se propõe a realizar testes com estudantes da instituição
de ensino IFPE - Campus Jaboatão, a fim de se identificar os efeitos da
aplicação Android na coesão de grupos, especialmente
aqueles formados por estudantes que precisam conciliar uma rotina de trabalho e
estudo.
Apresentação: dia: 04/07/2019,
hora: 10:20, local: E101
Testes
de software consistem em executar um programa com o intuito de encontrar erros.
[1] Os testes exercem, portanto, papel central na
melhora na qualidade do produto final de software, já que as falhas são
detectadas e corrigidas pela equipe durante o desenvolvimento, diminuindo assim
o retrabalho por conta de erros detectados tardiamente durante o uso do
programa. Há ferramentas de automação de testes para diversas plataformas,
inclusive a Web, caracterizada por imensa diversidade de frameworks de
desenvolvimento de aplicações e de dispositivos clientes. A série ISO (International Standards Organization)
25000 [2] é uma série de normas técnicas voltadas para a especificação e
avaliação de qualidade de produto de software, também chamada Modelo SQuaRE. Desenvolvida pelo grupo de trabalho WG6 do
Subcomitê de Sistemas e Software (SC7) da ISO, trata-se de uma evolução das
normas ISO 9126 e ISO 14598 [3], que definiam, respectivamente, modelo e
processo de avaliação de qualidade de produto de software. O Modelo SQuaRE pode ser utilizado para avaliar software de qualquer
finalidade, incluindo ferramentas voltadas para desenvolvedores, como as
ferramentas de automação de testes de software. Este trabalho tem como objetivo
avaliar a qualidade de ferramentas de automação de testes de unidade para
aplicações web e estabelecer a mais satisfatória de forma geral, além de
apontar se determinadas ferramentas são mais apropriadas para cenários
diversos. Para isso fixaremos os seguintes objetivos específicos: Realizar
revisão da literatura pertinente, abordando os tópicos correspondentes de
Automação de Testes de Software, Aplicações Web e de Qualidade de Software;
Estabelecer e configurar o ambiente de desenvolvimento e testes, a ser
detalhado no trabalho; Estabelecer a metodologia de avaliação de acordo com o
Modelo SQuaRE, também a ser descrita ao longo do
trabalho; Avaliar a qualidade de cada ferramenta, fazendo considerações sobre
as mesmas, e definindo as escolhas mais apropriadas tanto de maneira geral
quanto em situações específicas.
Apresentação: dia:
, hora: , local:
Pedalar
é um grande desafio para quem vive em grandes cidades, em que se constata
ausência de estrutura cicloviária, educação e
fiscalização dos motoristas. Diante desse problema, alguns projetos, seja offline ou online, tentam ajudar a experiência do ciclista
no meio urbano. Com a finalidade de dar uma maior segurança para os ciclistas,
foi criado o Biciflow, aplicativo que facilita a
criação de grupos para que as pessoas pedalem em conjunto e se ajudem. Um
desafio do projeto é conseguir um maior engajamento dos usuários, facilitando o
encontro dos ciclistas nas rotas. Este trabalho tem como objetivo analisar,
através de testes A/B, como podemos superar esse desafio e ter um aplicativo
que seja fácil e estimulante de se usar
Apresentação: dia:
, hora: , local:
Atualmente
vivemos em uma época onde big data, um termo relativamente novo, é bastante
comentado, sendo relacionados a grandes volumes de dados estruturados ou não,
que pode ser originado de diversas fontes [2]. Uma tarefa bastante comum com
todo esse volume de dados é tentar extrair alguma informação relevante, como
padrões e comportamentos. Existem várias abordagens para trabalhar com muitos
dados, como por exemplo deep learning
(uma abordagem de aprendizado de máquina) e também sistemas com arquitetura
orientada a eventos ou do inglês (Event-Driven Architecture, EDA), um evento é um acontecimento notável
que é disseminado a todas as partes interessadas imediatamente, que podem
avaliar e realizar ações como a execução de um serviço, processamento entre
outras coisas [3]. Ainda dentro do contexto da arquitetura baseada em eventos,
existe a abordagem de Processamento de Eventos Complexos do inglês (Complex Event Processing,
CEP), que busca combinar várias fontes de eventos simples a fim de detectar
padrões mais complexos. Existem várias situações em que sistemas e software
podem se beneficiar com o uso do CEP, como por exemplo, a indústria dos jogos
que com o crescente aumento de smartphones no mercado o custo
deles baixaram permitindo que tecnologia como sensores já virem
embarcados. Os jogos evoluíram muito em termos de gráficos e sofisticação,
alguns recentes exploram novas formas de jogabilidade
como o uso dos sensores do celular que é o caso do acelerômetro que percebe a
inclinação e serve como um tipo de controle usado em jogos de carros e corridas
infinitas [4]. Com essas novas formas de jogabilidade,
fica fácil relacionar o smartphone como um gerador de dados que podem ser aplicado a CEP. Na última década, os celulares sofreram
grandes evoluções, passando de aparelhos destinados apenas a realizar ligações
e receber dados simples a partir de um teclado físico, para um ecossistema com
vários sensores e modos diferentes de interação, dando origem aos tão
conhecidos smartphones. O avanço enfrentado possibilitou que os aparelhos se
tornassem uma ótima fonte para fluxo de dados, e partindo de tal fato surgiu o
interesse em trabalhar com jogos, tendo em vista que é um dos softwares que
mais se utiliza desses dados. Mais especificamente, o presente trabalho,
tratará sobre CEP aplicado a jogo 2D, onde esses dados são fornecidos pelo
próprio usuário para realizar ações de uma forma orgânica e intuitiva.
Utilizando a biblioteca CEPSwift desenvolvida por
[1], este trabalho pretende avaliar em um primeiro momento a usabilidade de
trocar comandos diretos por um stream das ações do
jogador, como também tratamento de colisão dos objetos na cena entre outros
eventos.
Apresentação: dia:
, hora: , local:
Segundo
Martin Fowler, Entrega Contínua ou Continuous
Delivery (CD) é uma maneira de construir software de forma que este possa ser
entregue a qualquer momento [1]. E para que isso seja possível, é necessário
que o time de desenvolvimento de software se muna de algumas ferramentas. Uma
dessas ferramentas é a Integração Contínua ou Continuous
Integration (CI). Esta é uma prática que visa
múltiplas integrações do software a ser construído diariamente. Cada integração
é verificada por uma build automatizada, incluindo
seus testes para a detecção de erros rapidamente, diz Martin Fowler [2]. Essa
ferramenta, facilita a junção de códigos feitos por diferentes pessoas
desenvolvedoras, e, no melhor cenário todo código integrado seria um código entregável. Em um time, ao ser estabelecida uma metodologia
ágil como Scrum, algumas práticas são utilizadas para
receber feedback de forma rápida dos stakeholders
envolvidos no desenvolvimento do software: Product Owner (PO), usuários, clientes, entre outros. Muitas vezes,
é responsabilidade da PO representar o usuário, decidindo se será feita a
liberação do software (release) de uma funcionalidade que o time construiu.
"A pessoa PO deve continuamente engajar os usuários e stakeholders
para garantir que o time está construindo o produto certo, e
portanto, entregando o ROI* esperado. A PO tem a oportunidade de conduzir o
time em direções diferentes no final de cada Sprint, e precisa estar preparada
para fazê-lo se necessário.[3]" O conceito de CI
foi construído desprendido de modelos de branches ou
controle de versionamento, contudo, a intenção original é que as múltiplas
integrações sejam feitas em um ponto único, remetendo e casando quase que
perfeitamente com o desenvolvimento baseado em trunks
[4]. Ao utilizar-se desse modelo de branch, o time de
desenvolvimento encontra alguns desafios relacionados a release e a PO. Um
cenário que deixa claro um dos desafios é: dado um conjunto de
cartões/funcionalidades apresentadas a PO apenas um subconjunto destas são
aceitas como feature que podem entrar na release da nova versão do software. De fato, este momento
é um ponto crítico para um time Ágil. No contexto, em que a PO aprova um
subconjunto das funcionalidades que foram demonstradas e o time está
construindo o software praticando Continuous Integration usando como modelo de branch
Trunk-Based, em que existe uma branch
principal onde diferentes funcionalidades são aplicadas a mesma, é preciso
haver uma forma de separar o código que foi aceito pela PO do código que foi
rejeitado e/ou precisa de algum ajuste. É nesta situação, em que a abordagem Feature Toggle toma forma, sendo
uma ferramenta que de maneira simplista introduz condicionais dentro do código
já feito; podendo assim, definir se um determinado trecho de código será
executado ou não. "A ideia básica é ter um documento de configuração que
define toggles para várias funcionalidades pendentes.
A execução da aplicação usa as toggles para decidir
mostrar ou não a nova funcionalidade[5]" Voltando a visão para o
desenvolvimento móvel (mobile), mais precisamente para o desenvolvimento iOS -
sistema operacional móvel da Apple, nota-se uma falta de suporte quando se
trata do desenvolvimento de aplicativos (apps) usando
Swift - uma das linguagens de programação desenvolvidas pela Apple. No cenário
de desenvolvimento utilizando da CD e CI é necessário um levantamento sobre o
contexto atual da área, analisando o status quo, os frameworks em evidência que
possibilitam o uso de Feature Toggle.
Este trabalho tem como objetivo principal a criação de um framework iOS,
construído em Swift, que possibilite a implementação de Feature
Toggles de maneira fácil e intuitiva. Faz-se
necessário enfatizar que Swift é uma linguagem de código aberto que vem sendo
atualizada e melhorada de acordo com as contribuições da comunidade. Como
objetivos específicos, quer-se: (i) Levantar
frameworks que possibilitam a implementação de Feature
Toggle; (ii) Implementar e
demonstrar um caso de uso do framework, através de uma aplicação prática; (iii) Comparar o framework criado com os frameworks
levantados; (iv) Disponibilizar o código desenvolvido
como código aberto para a comunidade, estimulando a contribuição; (v)
Disponibilizar a ferramenta em gerenciadores de dependência existentes - Carthage, CocoaPods, etc.
Apresentação: dia:
, hora: , local:
Com
o surgimento do e-commerce, foi possível aumentar muito a quantidades e
variedade de produtos vendidos no mesmo e-commerce. Com essa grande variedade
de produtos no e-commerce e sem um contato físico para saber qual produto
oferecer para o cliente, começa a ter uma perda de venda muito grande, pois
mesmo no e-commerce tendo o produto que o cliente quer comprar muitas vezes ele
não consegue encontrá-lo, assim juntamente com a inteligência artificial (IA)
surge a recomendação de produtos no e-commerce, para conseguir vender mais para
aqueles clientes que não conseguia encontrar os produtos que quer comprar. Com
o surgimento e expansão das redes sociais o anúncio de produtos do e-commerce
começou a ser divulgado nas redes sociais. Como essas redes sociais tem várias
informações sobre os gostos dos usuários elas conseguem ter uma recomendação de
produtos muito boa, só que essas informações sobre o usuário
não existe no e-commerce, assim quando o usuário clica no anúncio e vai
para o e-commerce, o e-commerce não consegue ter boas recomendações para ele.
Neste trabalho vamos analisar as interações dos usuários com a rede social até
a compra do produto para propor uma solução que melhore a qualidade da
recomendação para esses usuários, assim aumentando a quantidade de vendas no
e-commerce.
Apresentação: dia:
, hora: , local:
Os
programas de bug bounty são programas criados por
algumas empresas de tecnologia – gigantes como Microsoft, Google e Facebook são exemplos – com o objetivo de incentivar
pesquisadores de segurança a realizarem testes de penetração em seus sistemas,
premiando os mesmos com dinheiro e/ou reconhecimento [1]. Valores dos prêmios
normalmente variam de acordo com o impacto da(s)
vulnerabilidade(s) encontrada(s). Tais programas permitem que os
desenvolvedores da(s) aplicação(es) descubram falhas
(algumas potencialmente críticas) antes delas virem a conhecimento público,
evitando exploração da(s) vulnerabilidade(s) e abusos por outros hackers,
crackers e script kiddies. Ao incentivar
pesquisadores a procurar vulnerabilidades em seus serviços, sob oferta de
premiá-los, empresas acabam tendo uma série de analistas – muitos deles world class – realizando testes em seus produtos
"gratuitamente". Não somente empresas, porém, têm usado de programas
de bug bounty. O Pentágono (órgão do governo dos EUA)
também implementou o programa e obteve bons resultados com ele [4]. Enquanto pro lado das empresas, na maioria das vezes o resultado
compensa – custos para implementar um programa de bug bounty
são geralmente menores que o de manter exclusivamente uma equipe de segurança
–, pros analistas a história não é bem assim. Há certa insatisfação [3] nos
analistas que dedicam a vida a essas tarefas. Há incertezas de se achar falhas
impactantes o suficiente e, em alguns casos, há empresas que dão prêmios de não
muito valor - como camisas e mochilas [5]. O objetivo deste trabalho é estudar
os programas bug bounty: como são implementados,
custos associados, o custo/benefício quando comparado a outras metodologias
(tais como consultoria ou equipe própria de segurança). Além disso, o trabalho
irá estudar e fornecer um background quanto às principais técnicas e
conhecimentos que devem existir no repertório de um analista interessado em
descobrir falhas em busca de prêmios. Finalmente, o trabalho irá cobrir e
discutir alguns casos bastante impactantes em empresas gigantes que foram
poupadas de ter falhas críticas divulgadas ao público geral graças a
implementação de tais programas.
Apresentação: dia: 05/07/2019
, hora: 14:00, local: E124
Hackathons estão cada vez mais populares, já que
eles podem ser vistos como uma forma de aprendizado rápido e socialização,
unindo pessoas de diferentes áreas com um desafio em comum: criar uma aplicação
que resolve um problema no curto espaço de tempo. Porém, a falta de diversidade
neste ambiente - especialmente a falta de mulheres - ainda é um desafio a ser
resolvido. Esse trabalho busca fazer um estudo de caso, inserindo-as num
ambiente competitivo majoritariamente feminino para observar se há um estímulo
a participação de hackathons numa forma geral,
realizando pesquisa e entrevistas antes e depois do evento.
Apresentação: dia: 25/06/2019, hora:
10:00, local: E121
Apesar
do progresso acelerado ocorrido na área de Aprendizagem de Máquina ao longo dos
últimos anos, o problema de se encontrar dados que representem competentemente
a realidade de um certo problema ainda persiste. Existem várias complicações
que podem dificultar a construção de um conjunto de dados que realmente reflita
o domínio de aplicação de um sistema - dados corretamente etiquetados podem não
ser muitos numerosos; dados disponíveis podem ser muito enviesados a um subset do domínio maior; a coleta pode ser demorada e os
dados talvez precisem de validação manual; nosso conjunto de dados pode estar
desatualizado; entre outros. Em muito dos casos, dados de domínios semelhantes
são mais acessíveis, e seria interessante aproveitá-los para um novo problema,
para não dedicar muito tempo a um caminho que essencialmente já foi percorrido.
Porém, uma aplicação direta destes sistemas em outros contextos prejudica a
qualidade das previsões. A área de Transfer Learning
trata exatamente desta possível diferença entre os domínios de treinamento e
aplicação - isto é, o problema de Dataset Shift.
Técnicas de Transfer Learning tentam compensar a
falta de dados etiquetados - e evitar todas as dificuldades existentes na
criação de um novo conjunto de dados que representa fielmente um novo domínio
alvo - utilizando informações de domínios semelhantes com dados mais numerosos,
e bancos de dados e classificadores mais poderosos. Este trabalho realizará um
estudo sobre a área de Transfer Learning para
entender seus conceitos, e também apresenta uma técnica desta área. O projeto
entrará em detalhes no funcionamento e implementação desta técnica, e aplicará
a mesma em cima de toy datasets
controlados por parâmetros - para entender como peculiaridades do domínio podem
afetar a qualidade do algoritmo.
Apresentação: dia: 02/07/2019, hora:
13:00, local: E203
Buscando
inovar, aumentar margem de lucro e aprimorar a qualidade de seus produtos e
serviços, muitas empresas tem apostado em diversificar o perfil de seus
funcionários. Estudos indicam que embora as diferenças possam causar conflitos,
em contrapartida há um ganho de performance de grupos diversos sobre grupos "uniformes".
Este trabalho vem então propor um estudo do momento de transformação no qual
algumas empresas de T.I. se encontram em relação a adoção de políticas
inclusivas e cultura de diversidade, especialmente no que diz respeito a
questões de gênero e orientação sexual.
Apresentação: dia: 04/07/2019, hora:
09:00, local: E121
O
jogo de xadrez é o domínio mais amplamente estudado na história da inteligência
artificial. Os programas mais fortes baseiam-se em uma combinação de
sofisticadas técnicas de busca, adaptações específicas de domínio e funções de
avaliação artesanais que foram refinadas por especialistas humanos ao longo de
várias décadas. Em contraste, o programa AlphaGo Zero
recentemente alcançou desempenho sobre-humano no jogo de Go, através do
aprendizado de reforço de tabula rasa a partir de jogos de auto-jogo.
A partir de jogadas aleatórias, e sem conhecimento de domínio, exceto as regras
do jogo, AlphaZero alcançou em 24 horas um nível
sobre-humano de jogo nos jogos de xadrez e shogi
(xadrez japonês), bem como em Go, Muitos sistemas de
pôquer, criados com heurística ou aprendizado de máquina, contam com a
probabilidade de ganhar como uma entrada chave. No entanto, calcular a
probabilidade precisa usando a combinatória é um problema intratável, então, ao
invés disso, a aproximamos. A simulação de Monte Carlo é uma técnica eficaz que
pode ser usada para aproximar a probabilidade de um jogador ganhar e / ou
empatar uma mão. No entanto, sem o uso de uma tabela de pesquisa intensiva de
memória ou de um supercomputador, torna-se inviável rodar milhões de vezes ao
treinar um agente com auto-reprodução. Usando o
aprendizado profundo para aproximar as probabilidades obtidas da simulação de
Monte Carlo com alta precisão, o modelo aprendido mostra-se uma alternativa
leve à simulação de Monte Carlo, o que, em última análise, nos permite usar as
probabilidades como entradas durante a auto-reprodução
de forma eficiente.
Apresentação: dia:
, hora: , local:
Realizar
o reconhecimento de formas e padrões é parte fundamental para diversos sistemas
na área de visão computacional, sendo importante para execução de tarefas que
possam ser automatizadas, como atividades repetitivas, complexas e/ou que
trazem perigo para o homem. A visão computacional pode ser aplicada em
problemas como reconhecimento de placas de veículos, rostos em multidão e
detecção de doenças em imagens para diagnósticos médicos. Para o reconhecimento
e classificação de objetos em cena, vários fatores devem ser considerados, como
luminosidade, sombra, ruídos e deformação por perspectiva. Um tipo de distorção
projetiva, a perspectividade, é comum em situações reais, onde imagens são
capturadas a partir de diversos pontos de vista com diferentes graus de
deformação projetiva. Ainda são poucos os descritores de objetos planares, como
símbolos e logomarcas, que sejam robustos a perpectividade,
pois a maioria dos descritores de imagem atualmente não se propõe a lidar com
transformações projetivas apesar de serem robustos a transformações geométricas
de outras naturezas. Para realizar a classificação de objetos em imagens[MN12],
estas tem que passar por uma série de etapas e
tratamentos como a aquisição da imagem, pré-processamento e segmentação[GW]. A
segmentação de uma imagem pode ser condiderada como o
particionamento da imagem em regiões de propriedades
semelhares, detectando-as por agrupamento de pixels semelhantes ou por bordas
de regiões de interesse[Erp04]. O trabalho proposto terá como foco a
segmentação de imagens para uso em descritores de formas planares com robustez
a deformações por perspectiva. O objetivo deste trabalho é gerar uma base de
formas de interesse segmentadas a partir de imagens reais para uso no processo
de reconhecimento de objetos planares em um descritor robusto a perpectividade. O interesse do trabalho é em formas
planares como símbolos, caracteres, sinalização de trânsito e logomarcas. Após
a segmentação, visa-se avaliar a acurácia de descritores de imagens usando o
banco de formas planares segmentadas nesse trabalho.
Apresentação: dia:
, hora: , local:
Com
a expansão do mercado de jogos digitais no mundo, há um aumento no interesse de
soluções tecnológicas que auxiliam na experiência como, por exemplo, uso de
inteligência artificial como parte do jogo ou como uma ferramenta de treinamento.
Em um jogo, um personagem controlado pelo computador pode ser considerado como
um agente, visto que necessita apresentar algumas características específicas
como: (i) Percepção de ações e atualizações do ambiente do jogo; (ii) Raciocinar sobre o estado do
atual; (iii) Capacidade de atuar, no mais baixo
nível, sobre o ambiente. De acordo com a complexidade do jogo, é possível
mapear as diferentes funções e objetivos como diferentes agentes, que se
comunicam direta ou indiretamente, trabalhando de forma coordenada, visando um
alcançar um grande objetivo final. O StarCraft II,
disponibiliza o protocolo utilizado para transmitir as ações do jogador, sendo
assim, é possível desenvolver um sistema inteligente que utiliza todas as
funcionalidades que um jogador tem acesso. Devido a
alta complexidade do jogo, é possível desenvolver um sistema multiagente, no qual as funções dos agentes podem ser
claramente especificadas, auxiliando na compreensão da coordenação e
comunicação dos agentes. Este trabalho tem como objetivo fazer um relato da
experiência da disciplina de Agentes Autônomos, ministrada na UFPE no primeiro
semestre de 2018, assim como propor possíveis melhorias para a utilização do StarCraft II como plataforma de aprendizado para sistemas multiagentes. Com a utilização de uma API escrita em python, será desenvolvido um sistema multiagentes
capaz de jogar uma partida por inteiro e será montada a infraestrutura para o
confronto de diferentes sistemas, de uma forma que possa organizar um torneio.
Apresentação: dia:
, hora: , local:
Pretende-se
neste trabalho primariamente estudar os desafios que envolvem as etapas da
operação de um jogo online multi-jogador para
computador. Eles serão avaliados, podendo algum problema em específico ser
isolado e aprofundado, havendo a proposição de uma solução para ele, envolvendo
novos e melhores processos e/ou com o auxílio de uma nova ferramenta
desenvolvida. Será estudado o caso da RaidHut, empresa
que publica jogos online e possui um jogo ativo em operação no momento.
Apresentação: dia:
, hora: , local:
Em
engenharia de software, a análise de repositórios tem ajudado pesquisadores a
obter um melhor conhecimento sobre o processo de desenvolvimento de um
software. Esta análise consiste em extrair dados para que gerentes e
engenheiros de software possam melhorar os processos de tomada de decisão e
desenvolvimento de software. Através desse processo de análise é possível
identificar possíveis erros na metodologia utilizada, corrigir e dessa forma
criar uma nova metodologia de desenvolvimento. Este trabalho é um estudo do stackoverflow sobre perguntas e soluções para a migração de
sistemas monolíticos para microsserviços, cujos
objetivos são compreender quais as maiores dificuldades em realizar a migração
entre sistemas, analisar as soluções propostas pela comunidade e por fim
estabelecer uma relação entre essas soluções propostas pela comunidade com as
soluções propostas pela literatura. Para a engenharia de software, microsserviços é um novo estilo arquitetônico que visa
construir softwares como pequenos serviços. Com isso corrigir possíveis erros
nas metodologias utilizadas anteriormente. Esse estudo visa mostrar as
dificuldades em mudar para essa nova metodologia e junto com elas apresentar
potenciais soluções para minimizar essas adversidades. Esse trabalho tem como
objetivo a extração de dados indexados no StackOverflow
para buscar conteúdos relacionados a migração de sistemas monolíticos para microsserviços: Coleta de dados relacionados a migração de
sistemas, Limpeza e pré-processamento dos dados obtidos, Análise e exibição dos
resultados obtidos.
Apresentação: dia: 08/07/2019,
hora: 16:30, local: E102
Prancha
de Comunicação Alternativa é uma tecnologia assistiva
que usa imagens com legendas para auxiliar pessoas sem fala funcional a se
comunicar. O aBoard
(https://play.google.com/store/apps/details?id=assistive.aboard) é o aplicativo
nacional para Comunicação Alternativa que tem a melhor avaliação (4,5 estrelas)
e a maior quantidade de downloads (perto de 10.000) na loja da Google Play.
Apesar do seu sucesso, este aplicativo foi desenvolvido usando uma tecnologia
que está desatualizada e que apenas gera aplicativos para plataforma android. Além disso, dado algumas resenhas postadas na loja
da google, sabe-se que o aBoard
tem alguns problemas de interface. Neste contexto, o presente trabalho visa
fazer o redesign da interface do aplicativo, bem como
implementá-la usando uma tecnologia cross-plataforma.
O objetivo geral deste trabalho é fazer o redesign da
interface do aplicativo aBoard e implementá-la usando
uma tecnologia que permita gerar aplicativos tanto para Android
quanto para IOS. De modo a realizar este objetivo geral, tem-se os seguintes
objetivos específicos: (i) Identificar as principais
fragilidades da interface do aBoard; (ii) fazer o redesign da interface
e (iii) implementar a nova interface usando uma
tecnologia cross-plataforma para desenvolvimento de
aplicativos.
Apresentação: dia:
, hora: , local:
Por
conta da grande quantidade de dados e informações existentes na web, foi-se
necessário a criação de ferramentas de filtro e busca desses dados. Foi assim
que surgiram os tão famosos engenhos de busca, como por exemplo o Google, Yahoo
e Bing. Engenhos de busca são ferramentas práticas de recuperação de informação
em coleções de texto. Essas ferramentas podem ser usadas de diversas formas,
como por exemplo pesquisas na web e buscas por arquivos dentro do computador.
Para um engenho de busca funcionar, ele precisa passar por uma série de
procedimentos. Usando busca na web como exemplo, a ferramenta teria que acessar
os sites (conhecido como 'web crawl'), baixar seus conteúdos, e colocá-los numa
base de conhecimento, um índice - uma estrutura de dados que aprimora a
velocidade da consulta. Com o índice formado, a ferramenta está pronta para ser
utilizada. O engenho de busca, então, recebe os dados da busca do usuário
(query), busca essas informações no índice, e então os dados recebidos são
ranqueados por similaridade em relação às informações fornecidas pelo usuário.
Uma grande fonte de documentos e informações é o Wikipedia,
a maior enciclopédia online do mundo. Sendo uma coleção de entidades, que
identifica unicamente lugares, pessoas, organizações, etc., pode-se encontrar
artigos falando sobre quase tudo existente no planeta. Por ele ser uma ótima
fonte de informações e conhecimento, existem muitas ferramentas computacionais
que trabalham em cima desses dados e informações. O DBpedia
é uma delas. Como definido no próprio Wikipédia. DBpedia
é um projeto cujo objetivo é extrair conteúdo estruturado das informações da
Wikipédia. Permitindo aos usuários realizar consultas sobre o conteúdo da
Wikipédia de forma similar a consultas de banco de dados. [2] O objetivo do
trabalho é criar uma ferramenta de busca por entidades em cima dos artigos do wikipedia. Para isso usaremos como base de conhecimento os infoboxes das entidades do Wikipedia.
A ferramenta permitirá que o usuário inicialmente escolha um domínio para a
busca, e em seguida faça consultas a partir dos atributos das entidades
pertencentes ao domínio escolhido.
Apresentação: dia: 03/07/2019,
hora: 09:30, local: E203
Empresas
mundialmente bem sucedidas, como Apple, Google, Netflix e Amazon estão
localizadas em ambientes como Vale do Silício e Boston. Porém, ao longo do
tempo, houve o nascimento de vários outros ecossistemas nos EUA e no mundo: New
York, Chicago, Índia, Austrália, Alemanha, Espanha, Malásia, etc. Novos
ecossistemas se deram por vários motivos, e um dos mais defendidos e difundidos
vem do modelo de relações “hélice quádrupla” formado pela combinação de
Universidade-Indústria-Governo-Sociedade. Este conceito refere-se a um conjunto
de interações entre academia, indústria, governos e sociedade, para promover o
desenvolvimento econômico e social. Essas interações deram origem a
instituições intermediárias, como escritórios de transferência de tecnologia e
parques científicos, como o próprio Porto Digital. O ecossistema empreendedor
se presta à política de empreendedorismo, onde programas direcionados podem ser
desenvolvidos para preencher as lacunas do ecossistema. Neste trabalho vamos
aprofundar em como diferentes políticas atuaram em diferentes ecossistemas e
quais foram os resultados produzidos em termos desenvolvimento de tecnologia de
ponta e geração de riqueza/empregos.
Apresentação: dia:
, hora: , local:
Engenharia
da Computação
Responsável: Prof. Renato Mariz de Moraes (renatomdm@cin.ufpe.br)
Site: http://www.cin.ufpe.br/~renatomdm/tg
O
documento de requisitos é um dos principais documentos relevantes ao processo
de desenvolvimento de um sistema; onde o escopo das funcionalidades, atributos
de qualidade e restrições são descritas. Enquanto isso, a modelagem de requisitos
apresenta o que foi descrito na documentação de forma visual para facilitar a
sua compreensão. Levando em consideração a importância da documentação de
requisitos e as utilidades da modelagem, este trabalho propõe a documentação da
ferramenta piStar Tool e sua extensão para a
modelagem de requisitos não-funcionais usando NFR Framework. A piStar Tool é uma ferramenta web-based
que faz modelagem orientada a objetivo utilizando a linguagem i* 2.0 e permite
extensões com a linguagem JavaScript.
Apresentação: dia: 03/07, hora:
10:00h, local: Anfiteatro do CIn
Sistemas de controle de versão, como Git, são amplamente utilizados atualmente e são ferramentas
essenciais para o desenvolvimento em equipe de qualquer software. Essas
ferramentas utilizam uma técnica chamada merge não estruturado que se baseia
apenas em uma comparação textual em uma mesma área de código entre duas
versões. Uma nova técnica, chamada merge semiestruturado, propõe uma melhor
utilização da estrutura do programa para realizar uma integração com maior
precisão e diminuir o esforço manual na resolução de conflitos. Ferramentas já
existentes utilizam essa nova técnica, porém existem melhorias a serem feitas
para justificar a utilização na indústria. Neste trabalho é proposta uma dessas
melhorias para a ferramenta s3m para projetos em Java, lidando melhor com
conflitos em blocos de inicialização.
Apresentação: dia: 27/06, hora: 14h,
local: sala E113
O conjunto das áreas de Ciência, Tecnologia,
Engenharia e Matemática (Science, Technology, Engineering
and Math - STEM) apresenta
um número de representantes femininas muito inferior ao valor representado por
homens. Apesar da maioria das meninas terem um desempenho geral superior aos
meninos durante o Ensino Fundamental, o número de meninos que ingressam nas
áreas de STEM é bem superior ao delas. Sendo assim, o objetivo deste trabalho
consiste em compreender os fatores motivacionais e desafiadores para o ingresso
e a permanência de mulheres na área de Tecnologia. Para isto, será realizado um
estudo de caso no Centro de Informática da UFPE, baseado na execução de um survey
entre participantes, sendo estas alunas e/ou professoras do centro. Além disso,
será feita uma análise comparativa entre a quantidade de estudantes
matriculados e concluintes dos últimos 2 anos, de acordo com os gêneros
feminino e masculino.
Apresentação: dia: 04/07, hora:
9:40, local: Sala E101
Uma Arquitetura Extensível é aquela que permite
que qualquer um, além do autor original da aplicação, possa adicionar
funcionalidades sem a necessidade de acesso ao código fonte. Ela está presente
em vários tipos softwares hoje em dia e é uma escolha bem popular para uso no
desenvolvimento de browsers e IDE's (Integrated Development Environment). No caso da
ferramenta piStar Tool, há necessidade de expansão,
tanto para dar suporte a novas extensões da linguagem i* quanto para suportar a
criação de diagramas de outras linguagens. O uso de um tipo de Arquitetura
Extensível pode aumentar a capacidade e velocidade de expansão dessa
ferramenta. Este trabalho tem o objetivo
de definir e implementar uma arquitetura extensível para a ferramenta piStar Tool. Isso será alcançado através de uma análise comparativa da arquitetura
de ferramentas populares que já se utilizam da abordagem extensível. Além disso
será documentado o atual estado da arquitetura da ferramenta piStar Tool, para que sejam apontados
as características a serem modificadas para adequá-la a abordagem extensível. Como
resultado teremos a definição da nova arquitetura a ser adotada pela ferramenta
assim como a implementação dela, permitindo a instalação de novas extensões
através da interface gráfica.
Apresentação: dia: 03/07, hora: 11h,
local: Anfiteatro do CIn
A arquitetura de microsserviços
baseada em contêineres vem ganhando importância recentemente por diversas razões:
menor custo comparado à máquinas virtuais, maior
portabilidade que servidores monolíticos, maior facilidade de desenvolvimento e
manutenção. Em função disto, contêineres vem se tornando um padrão no
desenvolvimento de aplicações baseadas em microsserviços.
Para organizar os recursos e réplicas desses contêineres utilizam-se
orquestradores como Kubernetes [2] e Docker Swarm [3]. Porém, as
táticas padrões que esses orquestradores usam para escalar serviços são
reativas e funcionam horizontal ou verticalmente, nunca nas duas direções.
Neste trabalho, nós propomos um conjunto de comandos que operados por um
previsor de carga otimiza o uso de recursos mantendo a aplicação funcionando
corretamente.
Apresentação: dia: 26/06, hora: 13h,
local: E121
Sabe-se que, quanto mais tarde uma falha for
encontrada durante o ciclo de vida de um software, maior será o custo de
correção desta. Além disto, falhas percebidas somente após a implantação do
software levam a usuários descontentes, baixa de credibilidade e possíveis
ações judiciais, acarretando em prejuízos ainda maiores. A depender da comple- xidade do sistema, adotar
uma estratégia manual de criação e execução de testes pode não ser viável.
Neste contexto, técnicas de geração e execução automática de testes, em parti- cular aquelas baseadas em modelos (model-based
testing – MBT), ganham forte atenção da indústria de
software. Contudo, surge outra preocupação em relação à qualidade da ferramenta
de automação em si, visto que esta é também um software. A geração ou a exe- cução incorreta de um teste
por uma ferramenta automática pode causar falso-positivos ou falso-negativos.
Isto motiva a proposição de abordagens formais de MBT, onde a estra- tégia de testes é formalizada e provada correta. Este
trabalho utiliza o provador interativo de teoremas Coq
para desenvolver um ambiente único que permita definir diferentes estra- tégias formais de MBT. Em particular, tem-se como primeiro
foco a estratégia de testes baseada na relação de conformidade ioco.
Apresentação: dia: 03/07, hora:
16:00h, local: Auditório do CIn
O trabalho de conclusão de curso proposto neste
documento irá relatar o uso do processo de Feature Engineering como uma etapa
prévia à de construção de um modelo de Machine Learning. O problema escolhido
para análise foi o de roubo e furto de veículos, onde uma seguradora deve
ressarcir o cliente com o valor de um veículo novo, problema esse com mais de
90 milhões de registros pelas seguradoras no Brasil em 2016 [01]. Nesse
cenário, um dos objetivos das seguradoras antes de precificar o seguro é saber
a probabilidade de um dado cliente ter seu automóvel roubado ou furtado durante
a vigência do seguro (12 meses).
As variáveis construídas na etapa de Feature Engineering serão criadas
a partir de dados públicos disponíveis na internet. Esses dados públicos
utilizados serão informações geolocalizadas
referentes ao ambiente ao redor do local indicado como estacionamento do
cliente.
Apresentação: dia: 03/07, hora: 11h,
local: sala E121
Criptoeconomia e suas tecnologias,
como o Blockchain e as criptomoedas,
se tornaram um assunto empolgante, pois fazem parte de uma era revolucionária
na economia mundial. Um exemplo é a nova versão do dinheiro eletrônico, o Bitcoin, puramente peer-to-peer,
que permite que transações sejam processadas e enviadas diretamente de uma
parte para outra sem passar por uma instituição financeira ou terceiros
confiáveis. Um ponto importante a ser considerado é que as transações de criptomoedas baseadas em blockchain
são priorizadas baseadas em taxas, criando um mercado único de taxas (fee market). Este trabalho de
graduação introduz a criptoeconomia e seus
benefícios, e examina um problema atrelado ao mercado de taxas, o qual falhou
ao não conseguir produzir um equilíbrio estável com preços previsíveis para os
níveis de serviço desejados. É possível que isso se deva à ausência de uma
estratégia dominante equilibrada no atual mecanismo de taxas. Analisaremos,
assim, como possível solução, um mecanismo alternativo de tarifas fixas,
inspirado em leilões generalizados de segundo preço.
Apresentação: dia: 28/06, hora: 9h,
local:
A localização em ambientes outdoor é
predominantemente feita por sistemas de posicionamento global (GPS). Porém, em
certas condições climáticas e em ambientes densamente urbanos, o desempenho do
GPS é degradado. Nesses cenários, é possível utilizar a infra estrutura de redes móveis para estimar a
posição do usuário, através de técnicas que utilizam níveis de sinais de rádio.
Dentre as técnicas mais utilizadas, está a técnica baseada em RF fingerprint. Porém, para obter uma boa acurácia nessa
técnica, se faz necessário que as células do grid possuam uma maior resolução,
o que eleva o custo computacional. Uma alternativa para melhorar a acurácia
mesmo com uma maior resolução, é o uso de técnicas de redução de espaço de busca.Ao mesmo tempo,as
redes GSM possuem o parâmetro TA, que é um valor quantizado da distância entre
o móvel e uma estação rádio base, que podem servir como forma de reduzir o
espaço de busca. Portanto, esse trabalho se propõe a avaliar a utilização do
parâmetro TA como forma de reduzir o espaço de busca e tem como objetivo
analisar a relação entre a acurácia e desempenho computacional dessa
técnica.
Apresentação: dia: 02/07, hora: 9h,
local: Auditório do CIn
Estimativa de pose de objetos em seis graus de liberdade
(6DoF, six Degrees-of-Freedom)
é um problema de grande interesse em realidade aumentada, robótica e áreas que
utilizam visão computacional. A estimação da pose de objetos foi tratada como
um problema de computação clássica. Com a evolução da inteligência artificial e
no poder de processamento dos computadores, foi possível desenvolver novas
técnicas para resolver o problema mencionado. Dentre essas técnicas,
recentemente foi explorado o uso de Redes Neurais Convolucionais
(CNN, Convolutional Neural Network) para estimar a
pose de objetos em 6DoF.
O objetivo deste trabalho é realizar uma
análise de possíveis melhoras na detecção e rastreamento de objetos com 6 graus
de liberdade que utiliza CNN. O estudo será feito a partir do pré-processamento
da imagem que será aplicada a rede. A análise será feita utilizando descritores
de imagens, extratores de características e variação no número de canais da
imagem, buscando melhorias no resultado final da estimação da pose.
Apresentação: dia: 04/07, hora: 11h,
local: Auditório do CIn
Os dados abertos são os alicerces de construção
do conhecimento aberto e possuem diversas aplicações, tais como: ciência,
cultura, finanças, estatística, entre outras. A abertura dos dados pode trazer
uma série de benefícios para diferentes setores da sociedade, principalmente
quando aplicado ao conceito de “Open Government”.
Apesar da importância do tema, a disponibilização de dados abertos e o
desenvolvimento de soluções utilizando esses dados ainda enfrentam diversos
desafios. Neste contexto, este trabalho tem o objetivo de desenvolver uma
ferramenta para facilitar o provisionamento de dados abertos.
Apresentação: dia: 04/07, hora: 13h,
local: Auditório do CIn
O offload de
processamento é uma técnica em que uma parte do processamento é realizado em
outro dispositivo. O uso dessa técnica em dispositivos móveis promete aumentar
a performance dos dispositivos móveis enquanto economiza energia, por conta da
diminuição do processamento local como proposto por (Karthik
Kumar and Yung-Hsiang Lu) . (N. A. Santana,
F. A. A. Lins and E. T. G. Sousa) provaram que o uso
de offload para economia de bateria não é só uma
teoria, porém existem casos em que essa técnica não é vantajosa como descrito
por (Karthik Kumar and Yung-Hsiang Lu). Existe uma
sutil diferença entre a economia e o gasto excessivo na utilização de offload em dispositivos móveis. Neste trabalho serão
realizados experimentos para mostrar em que casos seria vantajoso ou não o uso
de offload para economia de bateria.
Apresentação: dia: 05/07, hora: 10h,
local:
Conectividade Wi-Fi é essencial para
complementar a disponibilidade de acesso à internet em devices
como Smartphones, tablets e dispositivos IoT. Com o conjunto de dispositivos aumentando
consideravelmente a cada ano, é essencial para administradores de rede possuir
o controle da rede, seja ela virtual ou real. Problemas comuns como a segurança
de rede, limitação de banda e liberação de serviços são importantes para
garantir qualidade de serviço adequada aos propósitos da rede. O objetivo desta
monografia é adaptar um controlador de rede baseado nos sistemas open-source Coovachilli e OpenWisp na nuvem para gerenciamento de rede, firewall, captive portal, controle de canais, potência e interfaces
de rede com Access Points do sistema operacional OpenWRT.
Apresentação: dia: 04/07, hora: 15h,
local: Auditório
A prevalência de internações e reinternações em ambientes hospitalares envolvendo
problemas respiratórios pode ser relacionada a carência tecnológica nas
avaliações clínicas dessas alterações, tornando o processo subjetivo e
dependente da formação e experiência do profissional envolvido. Para minimizar
esse problema, o presente estudo se propõe a analisar métodos de verificação de
similaridade e concordância entre padrões respiratórios terapêuticos (PRTs) descritos na literatura e reprodução dos PRTs por voluntários. Os métodos incluem: distâncias de Minkwoski e de Mahalanobis, Dynamic Time Warping (DTW), Edit Distance on
Real sequences (EDR), Time Warp
Edit Distance (TWED) e Minimum Jump Costs
(MJC). A avaliação procurará decidir quais as métricas mais apropriadas para
esse problema, observando não só os resultados estatísticos, mas também seus
tempos de execução, implicando sua viabilidade de aplicação numa rotina real de
análise respiratória.
Apresentação: dia: 02/07, hora: 11h,
local: Auditório do CIn
Recent
advances in reinforcement learning (RL) are responsible for achieving good
results in many game benchmarks, such as Chess, Go, Starcraft
(even at the professional human level). However, applying RL in an environment
with real-world actuators - like robots - comes with a new layer of complexity.
Training in real-world is unfeasible due to equipment
degradation and time of training required by RL algorithms. However, intrinsic
discrepancies between the simulated and real-world environments prevent a
direct transfer of a policy learned in a simulated environment to robots - the
so-called Sim-To-Real problem. This project aims at evaluating the Sim-To-Real
problem in the robot soccer domain. The objective is to transfer the policy
learned with simulated robots to a real robot, aiming to obtain a transferred
policy that is able to take the ball to the enemy's goal, as efficiently and
effectively as possible.
Apresentação: dia: 28/06, hora: 10h,
local: Auditório do CIn
A constante evolução dos sistemas de informação
tem transformado continuamente a forma como as pessoas trabalham. Tal evolução
tem proporcionado grande poder aos sistemas, concedendo-lhes o controle sobre
recursos e dados dentro do ambiente em que estão inseridos. Desta forma, é
necessário que haja uma maior atenção quanto aos aspectos de segurança desses
sistemas. Este trabalho visa realizar um estudo comparativo entre abordagens de
segurança em sistemas de informação cujo objetivo é realizar a recomendação de
abordagens para especificação e avaliação de aspectos de segurança no cenário de
sistemas de informação orientados a processos. A análise comparativa será
realizada através de um estudo de caso utilizando o sistema de processos
eletrônicos do Tribunal de Contas de Pernambuco (e-TCEPE), que é um exemplo de
sistema de informação orientado a processos.
Apresentação: dia: 03/07, hora: 14h,
local: Sala D004
Há um crescente número de aplicações que tem
requerido o uso de resolução de entidades, também conhecida como data matching. No contexto acadêmico, órgãos como a Capes e o
CNPQ podem se beneficiar da utilização de soluções para resolução de entidades,
dado o volume de dados que precisam processar, documentar e integrar. Um dos
problemas clássicos está relacionado à ambiguidade gerada pela falta de
padronização nas representações para o nome dos autores em publicações. Soluções
tradicionais baseadas em similaridade de strings
podem ter os resultados comprometidos com o aumento do número de entidades.
Este trabalho pretende investigar o uso de técnicas de recuperação da
informação para desenvolver métodos e possibilitar a avaliação deles para
resolução de entidades em lista de coautoria de artigos e publicações da
plataforma Lattes.
Apresentação: dia: 03/07, hora: 9h,
local: Auditório do CIn
Para que um conjunto de dados possa ser
utilizado na construção de modelos de predição, é necessário que se faça uma
análise para a descoberta de possíveis problemas nos dados. Isso é importante
pois podem existir, por exemplo, objetos que não condizem com a distribuição do
restante dos dados, isto é, pontos que se destacam quanto a uma ou mais
variáveis. Tendo em vista isso, o objetivo deste projeto é realizar um estudo
comparativo de diferentes técnicas de detecção de outliers.
Para isso, dados de diferentes perfis irão ser utilizados. Este
estudo portanto pretende verificar os pontos fortes e fracos dessas
técnicas e sobre que tipos de dados eles têm um melhor desempenho.
Apresentação: dia: 02/07, hora: 10h,
local: sala E203
De acordo com Nadareishvili
et. al. (2016) a arquitetura de microsserviços tem
emergido como um padrão que desperta interesse entre engenheiros de software
pela capacidade de entregas rápidas e confiáveis. Adotar essa arquitetura
envolve uma transformação engloba vários aspectos: tecnologia, metodologia,
tendências organizacionais e características culturais. Por isso, as empresas
que buscam colher os benefícios da arquitetura de microsserviço
precisam considerar esse amplo escopo.
As questões que emergem dessas práticas são as
seguintes: por que essas organizações estão adotando microsserviços?
Quais são as motivações e desafios? Como os líderes dessas organizações estão
defendendo esse enfoque de desenvolvimento? Quais são as medidas de sucesso?
Essas práticas são relativamente recentes, um
dos primeiros cases de sucesso migração em produção da arquitetura monolítica
para de microsserviço foi da Netflix
em 2013. O case da Amazon já é de 2014. Por isso a
literatura ainda é rara e dispersa, uma vez que seu exame depende marcadamente
do compartilhamento, por parte das empresas, de como foi realizada a transição.
Neste sentido, este trabalho de conclusão de
graduação tem a intenção de contribuir para um maior conhecimento desse novo
enfoque de desenvolvimento de software, a partir do exame do que aqui se pode
chamar de o “caminho das pedras” para a transição das arquiteturas
tradicionais, monolíticas, para a arquitetura de microsserviços.
Apresentação: dia: 03/07, hora: 11h,
local: Auditório do CIn
O trabalho consiste em analisar o ecossistema
recifense a respeito da privacidade e proteção sob uma perspectiva do contexto
pessoal e ambiental do desenvolvedor de software. O trabalho de graduação terá
como base o artigo do Hadar et al. (2018), que
analisou o ecossistema nova iorquino em 2018.
Este trabalho também irá analisar como as
organizações interferem no entendimento e no poder de decisão do desenvolvedor
na hora de planejar seus sistemas, e se as empresas entendem privacidade por
design além de exigir que seus sistemas sejam feitos visando a proteção dos
dados de seus usuários.
Apresentação: dia: 28/06, hora:
15:20h, local: Sala A014
Em IoT,
frequentemente se faz necessário a transmissão de informações e dados, porém em
grande parte das vezes os sistemas estão embarcados e precisam fazer o
racionamento de energia pois devem funcionar durante dias e até anos sem ter
que precisar de uma recarga ou troca de bateria. Por isso, o uso de low-power wide-area network
(LPWAN) se tornou popular nesse meio, pois permite a comunicação sem fio de
longa distancias por um baixo custo energético. O objetivo deste trabalho é
utilizar uma das tecnologias que faz uso da LPWAN e aplicá-la em uma rede de
sensores.
Apresentação: dia: 02/07, hora: 14h,
local: Sala E403/404
Interfaces cérebro-máquina vêm sendo cada vez
mais utilizadas para tratamentos de reabilitação de movimentos perdidos parciais,
e totais, como uma alternativa para a fisioterapia. Algoritmos de aprendizagem
de máquina são utilizados para garantir uma classificação do sinal de uma forma
simples e elegante. Neste trabalho de graduação serão investigados
e implementados diferentes formas de classificadores como árvores de
decisão, utilizando de comitês, stacking e bagging para reconhecimento de sinais
eletroencefalográficos.
Apresentação: dia: 04/07, hora: 16h,
local: Auditório do CIn
A falta de atividade física pode causar
diversas doenças, como diabetes, obesidade, hipertensão, doenças
cardiovasculares, depressão, osteoporoses e diversos de outros problemas
físicos. Para diagnosticar a inatividade e evitar tais problemas é necessário
monitorar as atividades feitas por uma pessoa e classificá-las em atividades do
dia-a-dia, como andar, deitar, ficar em pé e outros. Nesse contexto, sinais de
sensores presentes nos celulares podem ser utilizadas como entrada em modelos
de aprendizagem de máquina para classificar tais atividades. Porém algumas
dessas atividades podem gerar sinais parecidos e resultando em ruído, o que
pode dificultar o processo de treinamento. Assim, o presente trabalho visa
estudar o impacto de dados com ruído em suas classes e definir qual técnica de
aprendizagem é mais robusta a esse tipo de problema.
Apresentação: dia: 17/06, hora:
15:30h, local: Sala E201
A comunicação muitos-para-muitos é um mecanismo
que permite que um dispositivo transmita dados para vários outros ao mesmo
tempo em que ele pode receber dados de diversas outras fontes. O protocolo MAC
Multicanal para Comunicação Muitos-para-Muitos (M2MMAC) e sua variante híbrida
(H-M2MMAC) são protocolos para redes ad hoc, que são redes cuja coordenação é
distribuída entre seus dispositivos móveis, geralmente com restrição do consumo
de energia. Estes protocolos são baseados no modo de economia de energia do
padrão IEEE 802.11 PSM (do inglês Power Saving Mode). Este trabalho visa rever a simulação do M2MMAC, bem
como propor uma nova simulação da sua variante híbrida H-M2MMAC para extrair a
vazão de saturação da rede e em seguida comparar os resultados com o modelo
analítico.
Apresentação: dia: 03/07, hora: 9h , local: Sala D004
A binarização é um técnica comumente utilizada no processamento digital de
imagens e um passo importante na análise de documentos, históricos pois é
utilizada para destacar o texto do papel. Este trabalho implementa o algoritmo
do artigo Historical document
image binarization using background estimation and energy minimization
e apresenta uma comparação entre ele e outros 4 quatro algoritmos, segundo as
medidas utilizadas pela DIBCO (Document Image Binarization COntest), permitindo um melhor entendimento da área de
processamento de imagens de documentos históricos. Tendo como entrada uma
imagem de um documento histórico degradado, o algoritmo utiliza a Stroke Width Transform
(SWT) para determinar o tamanho do elemento estruturante em forma de disco que
é utilizado na operação morfológica que realiza a estimação do fundo da imagem
do documento. Em seguida, é aplicada uma minimização de energia Laplaciana no
resultado dessa primeira etapa, para então ser aplicado o pós
processamento para melhorar o resultado da binarização.
A partir dos resultados obtidos dos experimentos, foi concluído que os
resultados da binarização do algoritmo implementado
estão fortemente ligados ao tamanho do elemento estruturante e que os melhores
resultados obtidos pertencem aos algoritmos de Howe e
ao algoritmo POD.
Apresentação: dia 14/05/2019, hora:
10:00h, local: E121
O uso de superfícies NURBS para modelagem de
objetos já é amplamente difundido em várias ferramentas de CAD. Porém, no caso
de objetos complexos, a compressão dessas superfícies pode ser vantajosa para
fins de armazenamento e transmissão. Por causa disso, esse trabalho se propõe a
investigar o uso da Decomposição em Valores Singulares no contexto de
compressão de superfícies NURBS.
Apresentação: dia: 04/07, hora: 17h,
local: sala E124
A pretensão desse Trabalho de Graduação é fazer
uma análise de vários problemas reais de uma empresa, defeitos de software de
vários ambientes(Internos, Homologação, Produção).De posse destes dados será
feita uma análise para se ter uma ideia da quantidade de problemas que seriam
possíveis de ser evitados caso aquela parte do código
tivesse passado por uma revisão de código, comparando custos de correção de
defeitos com o tempo gasto para corrigir defeitos possivelmente evitáveis e com
isto poder ter uma ideia melhor de quando é que vale a pena aplicar a prática
de revisão de código.
Apresentação: dia: 28/06, hora:
9:30h, local: sala E101
Sistemas
de Informação
Responsável: Profa. Liliane Salgado (liliane@cin.ufpe.br)