Este é o podcast Fronteiras da
engenharia de software um podcast para
refletir sobre o presente e o futuro da
nossa área publicamos mensalmente entre
os dias 15 e 20 de cada mês episódios em
que entrevistamos pesquisadores
pesquisadores da engenharia de software
também realizamos palestras que são
publicados em nosso canal no YouTube
nosso objetivo elevar o conhecimento
científico para profissionais da área
para outros cientistas escute nossos
episódios na sua plataforma de áudio
favorita Spotify Apple podcast
ou ainda no YouTube nosso site é
fronteiras
Estamos também no Twitter e no Instagram
como
@ronte
[Música]
três recados antes de começar um
professor Márcio Ribeiro não é mais
coordenador da séries a comissão
especial de engenharia de software da
Sociedade Brasileira de Computação a
coordenadora da Sesi agora é a
professora Elisa nakagawa tausp o
segundo recado é que a assembleia da ces
está online assim como diversas outras
atividades do Décimo Terceiro Congresso
Brasileiro de software do cbsoft que
aconteceu de 3 a 7 de outubro de 2022
vocês podem ir ao canal da sua cidade
Brasileira de Computação no YouTube e
assistir algumas das palestras e
atividades do cbsoft recomendo
principalmente o painel com Joana Santos
entrevistamos no Episódio 22 Márcio
Ribeiro e Gustavo Pinto qual fundador do
fronteiras em nosso corrusty nos
Episódios de 1 a 12
vamos deixar na descrição do episódio o
link para playlist e o terceiro recado é
que nós estamos interessados em conhecer
mais você que nos escuta e queremos
fornecer um serviço adicional Isto é
enviaremos um e-mail avisando quando
cada novo episódio for publicado e o que
vai acontecer se for uma palestra uma
live etc no fronteiras
acesse na descrição do episódio o link
para o formulário onde nós coletamos
estas informações as informações
pessoais são opcionais Mas você vai
precisar deixar o seu e-mail caso queira
ser informado dos novos episódios
Vamos então ao episódio com o professor
Márcio Ribeiro Olá eu sou Adolfo Neto
professor da UFPR Curitiba hoje temos
aqui como correu-se do fronteiras de
engenharia de software a professora
Maria Claudia emmer que também é lá da
UTFPR Curitiba como eu tudo bem Maria
Cláudia tudo bem Adolfo também Diego Oi
aos ouvintes Ah legal E hoje a gente vai
conversar com Márcio Ribeiro que é
professor lá da Universidade Federal de
Alagoas onde eu fiz minha graduação o
tema do episódio será sistemas altamente
configuráveis tudo bem Márcio muito
obrigado por ter aceito nosso convite
tudo bem
dizer que eu tô muito feliz de estar
aqui com vocês dizer também que eu sou
um ouvinte tá do podcast e que é uma
honra contribuir com vocês né então eu
sou Márcio Ribeiro sou professor
associado da Universidade Federal de
Alagoas ao fau aqui em Maceió Alagoas Eu
fiz meu doutorado na Universidade
Federal do Pernambuco é sobre a
orientação dos professores Paulo Borba
lá da UFPE e Klaus braband da Haiti
University
atualmente o ministro disciplinas Na
graduação e na pós-graduação de
computação Mais especificamente
estruturas de dados né que é uma
disciplina que eu dou mais de uma década
e disciplinas de engenharia de software
como a disciplina de teste de software
dizer também que eu tive a honra de
ser um dos coordenadores gerais do
Congresso Brasileiro de software da sdc
em 2014 que a gente organizou aqui em
Maceió e também atualmente Eu Sou
coordenador da comissão especial do
gerador de software da Sociedade
Brasileira de Computação o que também é
uma honra para mim representar
comunidade de software lá na sociedade
muito bem então vamos começar com
algumas perguntas Márcio primeiro você
pode começar então explicando para Gente
o que são sistemas altamente
configuráveis É sim é basicamente
sistemas altamente configuráveis são
sistemas que possuem opções de
configurações né essas opções são
conhecidas como features e com essas
opções eu consigo adaptar a propriedades
funcionais e não funcionais é para
atender necessidades de determinados
usuários então em outras palavras você
possui um sistema com um conjunto de
funcionalidades núcleo e também várias
opções de forma que eu possa habilitar
ou desabilitar fitness para atender
necessidades específicas de alguns
usuários Então vamos supor que a gente
tem um usuário que quer um sistema x
qualquer mas ele quer que esse sistema x
tenha habil
Então a gente vai conseguir gerar um
sistema com aquela feetware presente no
mesmo já um outro usuário por exemplo
ele tem ele tem a necessidade de ter
esse mesmo sistema só que com as fitas A
B C e D habilitadas então eu consigo
também gerar uma versão desse sistema
com essas quatro fichas habilitadas E
por que que isso é importante por
exemplo eu posso fazer
determinadas coisas interessantes do
ponto de vista de olha quanto mais
sítios você habilitar quanto mais vídeos
você quer naquele software você precisa
pagar mais por isso por exemplo né no
contexto lá de venda de sistemas a gente
também tem vários outros níveis de
variabilidades né Por exemplo no
contexto de hardware né então a gente
aqui no Brasil costuma-se muito é ter
aquele sistema por exemplo de postos de
gasolina onde esse sistema são iguais em
vários postos de gasolina mas as
impressoras dependendo do etc isso tem
uma grande variação então o sistema
funciona
padrão Mas tem uma variabilidade para
funcionar com determinadas impressoras
um outro nível de variação que você pode
ter por exemplo é na plataforma e no
sistema operacional Então como você faz
para que um sistema funcione numa
plataforma 32 bits contra na plataforma
de 64 bits né na primeira o tamanho da
palavra que o processador consegue ler
tem que ter quatro bites já na outra
oito bites Então essas variações você
pode lidar e você pode chamar essas
variações de features de forma que você
consiga gerar sistemas que consigam né
executar nas mais diversas plataformas
nos mais diversos tipos de hardware e
obviamente atendendo a vários e vários
clientes né várias pessoas têm
necessidades diferentes o software tem
uma cara igual ele tem um núcleo igual
mas para aquele cliente ele precisa de
algo a mais ele precisa de uma
a mais já para o outro cliente a Fit B
por exemplo é suficiente então isso
seria basicamente uma definição
da do que do que são sistemas altamente
configurados
E aí também nesse contexto é importante
você salientar que é preciso ter um
suporte ferramental mas você precisa ter
agora agora você não tá mais trabalhando
com apenas um sistema para um cliente né
Você tá trabalhando com muitos e muitos
sistemas para vários clientes Então tem
um suporte ferramenta aí nesse contexto
é de suma importância
isso deve ter um bom grau de
complexidade aí nesse
no todo então a próxima pergunta é como
é que são implementados esses sistemas
Porque deve ser bem complexo é sem
dúvida Adolfo é bom para implementar
sistemas altamente configuráveis você
pode fazer uso de diversas técnicas né
então por exemplo você pode usar
técnicas comuns de orientação objetos
como herança e polimorfismo de subtipo
paramétrico né então você pode usar
padrões de projetos então aquele padrão
de projeto famoso estratege né onde você
tem uma interface e ele subclasses né
Cada sub classe dessa poderia ser uma
funcionalidade uma feature né onde você
iria implementar
você também pode utilizar arquivos de
configuração Então vamos supor que você
tem uma fake de internacionalização né
você quer vender um software com
diversas línguas né então você pode
colocar por exemplo
a língua né de português em inglês etc
em diferentes arquivos de configuração
Você pode ler bibliotecas de forma
dinâmica né E também você pode usar os
pré-processadores né que em ser você
pode chamar isso de compilação
condicional é que são aquelas diretivas
de fdf né que são é bem famosas na
linguagem C na linguagem c++
Então nesse contexto Adolfo a
implementação desse sistema altamente
configuráveis ela é realizada muito
comumente utilizando a outra uma técnica
mencionada que a técnica de para
processadores
então por exemplo você consegue ver essa
técnica sendo utilizada em diversos
sistemas então por exemplo se você
baixar o código fonte do Linux do Linux
por exemplo você vai ver lá várias etfs
se você baixar o código fonte de um
servidor web por exemplo o Apache né
httpd você vai ver também vários fts lá
editores de texto né aquele editor de
texto super famoso é do Unix né o viaemi
você também vai ver muitos lá para lidar
com diversas features diversas
funcionalidades fazendo um paralelo aqui
né um parêntese se você me permite é por
exemplo o via M ele funciona o Viagra
ele funciona não somente no Linux nas
mais diversas distribuições como também
no Mac né então Opa então aqui eu já
tenho uma variabilidade uma Fitness né
Opa tem uns features que fazem com que
esse software funcione em diferentes
plataformas em diferentes sistemas
operacionais né então esses
pré-processadores são interessantes
porque eles executam antes do sistema
compilar então por exemplo você coloca
vamos supor que para eu ter um software
e eu vou fazer esse software funcionar
tanto para Windows quanto para o Linux
vamos supor Então vamos supor que uma
variável x qualquer para Windows ela tem
que receber 0 já para o Linux ela tem
que receber um então x = 0 para o
Windows e x = 1 para o Linux então eu
poderia colocar um ifdf lá dizendo Olha
se você for compilar esse seu software
para funcionar no Windows então compile
a linha entre x = 0 caso contrário se
você for compilar para o Linux está o
ionix da vida você vai compilar a linha
entre x = 1 tá então é um pré
processador antes de compilar ele vai
pré processar o teu código vai
lidar com essas variações com essas
features né e depois vai fazer a
compilação do código Então nesse sentido
é como vocês podem perceber é uma
técnica simples tá porque porque por
exemplo quando a gente aprende a
programar né após a gente aprender
variáveis é impressão de dados na tela
leitura de dados etc um dos Comandos que
a gente inicia o aprendizado é um IFF né
é o se o si e o sinal o IFF welsen Então
nesse sentido o IFF ele também tem essa
característica condicional ele é algo
condicional no entanto o if ele é em
tempo de execução o sistema já está
executando e o fdf não ele é um pré
processador que executa é antes da
compilação então respondendo de forma
geral a sua pergunta existem muitas e
muitas técnicas e o fdf o preprocessador
né a compilação condicional é uma das
técnicas mais utilizadas né para
implementar sistemas altamente
configurados como você falou assim né
representa uma técnica muito simples
para fazer a implementar de
sistemas
mas a desvantagens se sim você poderia
comentar um pouco sobre isso
certamente é bom se você utilizar os
ifdfs de forma isolada de uma certa
forma controlada Na minha opinião eu não
vejo muitos problemas nesse sentido até
porque é uma técnica usada décadas que
funciona muito bem né Por exemplo uma
grande vantagem é a portabilidade né
você fazer um software um código só que
você consegue compilar ele para
diferentes portabilidades então usando
de forma isolada de forma cautelosa não
vejo problema nenhum
no entanto
há alguns programadores Alguns
desenvolvedores que terminam abusando um
pouco do fdf então por exemplo você pega
uma função lá em ciência e mais e você
encontra vários e vários effs várias
configurações várias teachers dentro de
uma só função e pior Às vezes você
encontra aí fidefs que estão alinhados
um dentro do outro
abrindo parece tem até um paper do
esvenarpo eu não vou lembrar agora a
conferência exatamente mas foi
descoberto que
havia um alinhamento de 24 níveis então
dá para imaginar isso 23 24 e fidefs um
dentro do outro então assim entender
essas funcionalidades entender Essas
fichas e as suas combinações fica um
negócio cada vez mais desafiador e aí
esses usos alinhados é muito muitos e
muitos e pdfs fazem com que o
programador
tenha problemas de legibilidade e
entendimento do código isso é muito
perigoso porque se eu não consigo ler o
código direito e aí eu não consigo
entender o que eu tô fazendo lá não
consegui entender como entender como dar
manutenção naquele código eu posso
certamente introduzir um bug né então
por exemplo
um código do viam novamente o nosso
editor de texto
ele tem um caso
de extrema dificuldade de leitura então
tem alguns pontos do código que é muito
difícil a gente ler entender então por
exemplo tem um imagina um if tá um if e
esse if tem pode ter várias condições e
enfim A e B ou C e D ou não é i f sei lá
várias condições lá várias expressões
nesse if digamos assim e aí um dos
códigos do Via M ele tem
três quatro cinco seis e fdfs só para
definir essas condições de um if
Então imagina você tem um único parentes
abrindo um parentes fechando e dentro
desses parênteses você tem seis e fidefs
lá para
gerar essas combinações essas diferentes
opções né de configurações remetendo lá
a primeira pergunta do conceito de
sistemas configuráveis você vai ter M
combinações aí né é para você gerar
diferentes códigos para esse if né então
de fato torna-se algo bem desafiador né
para você tentar entender para você
tentar manter esse tipo de código
se você acessar o site dele ele próprio
na definição dele diz que ele é um
sistema altamente configurável um editor
de texto altamente configurado né E aí
nesse contexto
Maria Cláudia Nesse contexto realmente a
desvantagem está respondendo Mais
especificamente sua pergunta a des
quando os desenvolvedores abusam do uso
do fdf colocando-os alinhados com muitos
e muitos usos de fdf realmente a gente
pode ter problemas de legibilidade e
entendimento e aí obviamente nesse
sentido a manutenção fica bem mais
difícil né
E aí eu queria complementar a minha fala
e a minha resposta a sua pergunta é
porque há uma forma de piorar certo se
alinhamento era alguma coisa ruim as
pessoas utilizam o ifdf de uma forma que
fica mais difícil ainda de entender que
é o que a gente chama de anotações não
disciplinadas né então o que que é isso
vamos tentar definir agora o que que é
uma anotação disciplinada então se eu
tenho MTX igual a zero ponto e vírgula É
como se eu tivesse uma atribuição
completa tá em que x = 0 ponto e vírgula
pronto se eu colocar esse código dentro
de um F A chama isso de uma anotação
disciplinada porque que eu tenho uma
atribuição completa dentro de um ifdf só
que as pessoas às vezes fazem o seguinte
o x igual
aí o que acontece
se for Windows 0
senão um
ou seja o que tá dentro do ifdf é só um
número ele não é um comando completo tá
então isso é uma forma que a gente chama
de não disciplinada aí você quebrar um
comando né dentro de várias fdfs uma
expressão um comando que quer que seja a
gente chama isso na notação não
disciplinada e aí naturalmente a gente
volta a ter
aqueles problemas de legibilidade e
compreensão de corda o que eu havia
falado então isso uma a gente tem o fdf
a gente algumas pesquisas né Chama o
ifdf de céu e inferno ao mesmo tempo por
que que ele é um céu ele é uma técnica
simples
de usar cara se você conhece o que que é
um if entendeu o que que é que você vai
entender rapidamente
ele não tem overde tá é uma técnica que
não tem over Head e resolve muito bem
como eu falei a pouco problemas de
portabilidade né Você pode ter um código
lá em Safe mas mais etc cheio de PDF aí
você consegue fazer aquele seu sistema
rodar no Windows no Linux no Mac etc tá
então ele tem essa parte do céu essa
simplicidade essa resolução de problemas
não tem over regra etc mas ele também
tem um inferno associado a ele que é o
que
suceptilidade a erros né Você pode
facilmente errar você pode ter problemas
de entendimento e legibilidade e
consequentemente você pode cometer esses
erros que eu acabei de falar e pelo
menos de manutenção
aí como curiosidade nesse sentido é
levando em consideração uma savei que
nós fizemos com vários desenvolvedores
Open sócio É
nesse contexto de fdf nós perguntamos
esses envolvedores no artigo que nós
publicamos em 2015 sobre entendimento
manutenção e sucedibilidade a bugs né e
a gente perguntou Olha se você usar esse
DF você acha que o entendimento
você tem um impacto muito negativo ou
muito positivo no contexto entendimento
e as pessoas disseram olha para uso de
fdf O Impacto é muito negativo no
contexto de entendimento é muito
negativo para manutenção e é muito
negativo para sustentabilidade Então
realmente é algo que também as pessoas
têm essa impressão interessante pelo
menos eles sabem que isso acontece né
mas as pessoas que responderam essas
Subway mas aí a pergunta é a indústria e
o mundo opensou em geral estão cientes
do que são anotações Não disciplinadas
essa pergunta ela é muito interessante
Adolfo é porque muitas vezes a gente faz
é muitas pesquisas na academia né e a
gente precisa transferir esse nosso
conhecimento né para indústria e para o
pessoal mundo Open sócio para outras
pessoas utilizarem o conhecimento que a
gente é
o conhecimento que a gente adquiriu né
nas nossas pesquisas e aí nesse contexto
é quando a gente foi analisar o manual
de boas práticas do kerna do Linux a
gente achou uma coisa super interessante
tinha lá uma uma espécie de uma dica uma
um guia né para as pessoas que forem
desenvolvedor que foram desenvolver para
o Kernel né Essas pessoas dizia o manual
dizia o seguinte olha prefira
inteiras prefira compilar expressões
inteiras em vez de compilar pedaços de
expressões pedaços de funções né Então
veja
o Linux o manual do Linux o que ele tá
dizendo na verdade é olha usetações
disciplinadas não use anotações não
disciplinadas é a nossa impressão é que
esse termo disciplinado na disciplinado
é um termo acadêmico né ele surgiu em um
artigo
naturalmente esse termo pode não ser de
conhecimento das pessoas do Open sócio
Adolfo Maria Cláudia mas o nome não é do
conhecimento mas evitar ou não
disciplinado ou seja evitar você
compilar com os que deves pedaços de
código é uma coisa que eles sugerem de
fazer então é uma coisa super
interessante que embora o nome não seja
não disciplinado ou disciplinado que
surgiu na academia de fato é uma coisa
que eles
tentam evitar E aí nesse sentido outra
coisa interessante é uma biblioteca de
imagens png que é um código do de uma
biblioteca Júlio png né a gente tava
contando os desenvolvedores dessa
biblioteca e o pessoal falou olha a
gente concorda com essas tuas ideias de
evitar
anotações não disciplinadas inclusive
isso tá no nosso tudo list certo a gente
quer refaturar o código para tirar essas
anotações não disciplinadas e torná-las
disciplinadas tá então assim isso num
contexto do mundo ou pessoas né na
academia Adolfo é houve um artigo de ao
SD 2011 de autoria de orleabilidade
que são na época eram pesquisadores da
Alemanha né hoje o christiancar nos
Estados Unidos é e Eles estudaram 40
sistemas altamente configura
e verificaram que boa parte das
anotações são disciplinadas tá é um
pequeno pedaço aqui é nosso final 16%
das anotações
E aí você pode me perguntar então quer
dizer que foram esses caras que deram
essa ideia de anotação disciplinada na
disciplinada aparentemente não tá que
quando a gente volta um pouco para trás
um artigo do Azi né automatech
um artigo de Alejandra Garrido e Half
Johnson é aquele famoso autor daquele
livro da Gangue dos quatro né de padrões
de projeto Eles já falavam em 2003 sobre
a notações completas e anotações
incompletas né então assim
esses termos são bem parecidos né não
inspirado incompleto disciplinado e
completo então nunca sejam parecidos são
me corrigindo aqui são temas que são que
a gente olha e tem uma certa analogia né
ah quando você olha o código lá no
artigo da você olha o código no artigo
do yoglia Big vocês terminam vendo que
eles estão falando rigorosamente na
mesma coisa Tá
e por fim Nesse contexto ainda da
academia
Adolfo nós iniciamos um estudo em
relação aos últimos 10 anos porque esse
artigo do York é big quando ele primeiro
falou dessa coisa de disciplinado não
disciplinada é ele
fez isso em 2011 né então a gente já tem
11 anos né então 2021 Completou 10 anos
desse artigo e nós pegamos os sistemas
que eles analisaram e nós fomos ver pera
aí ao longo desses 10 anos foram
propostos refaturações para dar de um
lado esquerdo não disciplinado eu vou
entregar um lado direito disciplinado
mas espera aí será que as pessoas leram
o que tá na academia o que academia
entregou os artigos que a academia
entregou dizendo Olha o evita anotação
não disciplinada etc será que isso foi
ouvido por eles né então isso é uma
hipótese que nós levantamos nós já
estamos com um estudo em andamento ao
longo desses 10 anos e a gente viu o
caso Super Interessante por exemplo o
dia que é um sistema para desenho de
diagramas é que é altamente configurável
para desenho de diagramas né houve um
aumento de quase 12% no número de
anotações disciplinadas então ao longo
desses 10 anos é as pessoas passaram a
usar menos anotações na disciplinadas no
dia no libre SSH que é uma biblioteca
para o SSH é Houve um momento de 5% né
então assim a gente fez uma média geral
é claro que são resultados preliminares
mas a gente observou que
há uma tendência das pessoas usarem cada
vez menos anotações na disciplinadas a
pergunta que a gente tá se fazendo é
Será que essa diminuição nas anotações
na disciplinadas foi uma contribuição da
academia será que eles escutaram a gente
ou será que a gente não não foi a gente
não conseguiu passar para eles as
informações dos nossos estudos eles
descobriram eles fizeram os seus as suas
transformações de código por eles
próprios né então são hipóteses aí que a
gente tá levantando nesse próximo estudo
aí que a gente deve concluir Talvez esse
ano ainda é que é uma pergunta bem
interessante né bom saber o quanto a
academia influencia na indústria
e a gente muitas vezes não tem certeza
disso realmente mas você falou a
respeito da complexidade né desses
sistemas e também de algumas
dificuldades é claro que dependendo de
como ele for implementado né então você
podia falar para gente um pouco também a
respeito da Man em Sistemas
configuráveis como ela é feita bom é
primeiramente acho que o ponto mais
importante que a gente tem que falar no
contexto de manutenção é que ela se
torna mais complicada né porque assim
agora eu não estou mais dando manutenção
em apenas um sistema que é utilizado
apenas por um cliente ou por um conjunto
de clientes que tem as mesmas
necessidades né eu tô agora dando a
manutenção em um conjunto que pode ser
enorme desses temas tá E esses vários
sistemas podem ser usados por vários
outros clientes com várias necessidades
diferentes tá então eu tenho um conjunto
eu tenho 100 clientes que pedem as
features A B e C no sistema eu posso ter
dois mil clientes que pedem as fitas A B
C e D então
assim se eu tiver quatro filhos A B C e
D
o número máximo de combinações que eu
posso ter dois elevado a n 2 elevado a 4
seriam 16 diferentes sistemas tá
se a gente pegar 33 fichas 33 não é um
número alto tá 33 é um número até muito
baixo Para esse sistema 33 sítios então
se eu tiver lá no meu código IFA e fdfb
e FC até 33 letrinhas eu vou ter
basicamente
quase quase não aproximadamente 8
bilhões de produtos diferentes de
software Então nesse sentido é como se a
gente tivesse um produto de software
para cada pessoa da perna a terra tá
hoje com 8 bilhões de habitantes alguma
coisa assim né Então imagina cada pessoa
vai receber um sistema diferente com 33
filhos e aí assim já é um negócio
inimaginável você da manutenção em 8
bilhões de configurações diferentes
Agora imagina o Linux tá que tem 12 mil
15 mil fitness como é que a gente vai
fazer dois elevado a 15 mil né um
negócio impossível né não tem como a
gente dar manutenção nisso é claro que a
gente tem que descontar várias
combinações que são proibitivas né o por
exemplo eu posso ter a b c e d mas a
nunca pode estar com a b junta né Elas
são alternativas né eu tenho uma contra
B ou eu boto a aula padrão eu não posso
colocar as duas juntas tá então óbvio
que a gente tem essas reduções digamos
assim Ah mas vai lá a gente reduziu de 8
bilhões para um bilhão e meio E aí vai
conseguir dar manutenção em um bilhão e
meio de potenciais combinações é claro
que não é mas assim tem um outro ponto
importante é claro que esses números
assustam obviamente mas a gente tem que
deixar claro um outro ponto também né
que
as empresas esse sistemas esses mundos
Open sócios aí eles focam também em
combinações que são de fato utilizadas
né então por exemplo eu posso ter sei lá
mil combinações possíveis no meu sistema
Mas eu só vou dar manutenção em sete
porque eu tenho sete conjuntos de
clientes que querem aquelas sete
combinações a oitava nona e a milésima
não me interessa então eu vou dar um
foco obviamente nas combinações de
features que são utilizadas pelos meus
clientes tá agora é claro que é
importante a gente também citar alguns
casos né Por exemplo no caso do nos
estudos que nós fizemos com as pessoas
que nós conversamos
a gente perguntou né olha a
desenvolvedor do Kernel O que que você
faz quando você mexe numa função que tem
sei lá quatro e fdf se deve a b c e d
que que você faz aí ele olha eu checo E
testo as combinações que eu posso
confio na comunidade e simplesmente
cruza os meus dedos que vai dar certo tá
então isso são é uma frase de um
desenvolvedor do kerna do Linux tá onde
ele fala Exatamente isso é Cross my
fingers eu cruzo meus dedos e torço para
que dê certo né que as combinações que
eu testei sejam realmente as combinações
importantes nas combinações que importam
e que eu testei e deu certo então é uma
coisa interessante
no caso do SSH que é uma biblioteca que
a gente também estudou a gente por
exemplo quando a gente fez algumas
análise de encontrar bugs nesse sistema
altamente configuráveis Nós também Vimos
que algumas configurações são proibidas
né aquilo que eu comentei anteriormente
então ele tem lá o uso de biblioteca de
criptografia criptografia fotografia b e
a gente tentou compilar o sistema com
nenhuma das duas E aí na compilação eles
Olha tem que ter pelo menos uma e a
gente achava que eu poderia ter uma
combinação Sem essas duas
Sem essas duas bibliotecas mas não pode
tem que ter pelo menos uma Então a gente
vai aprendendo né esse tipo de
essas combinações a gente vai aprendendo
né E a gente vai verificando que nem
todas as combinações são importantes é
naturalmente
esses sistemas são
as pessoas dão manutenção desse sistema
focando em combinações que realmente
importam combinações que realmente serão
compiladas executadas e instaladas lá
para o cliente final Então mas parece
que essas anotações não disciplinadas
que você comentou tem relação com
coachmels para quem não sabe né a gente
às vezes traduz geralmente a gente usa
mesmo mas alguns traduzem por maus
cheiros de código
Mas enfim o que que você acha sobre isso
já foram sugeridas refaturações para
remoção desses coldsmels é Adolfo essa
pergunta é bem interessante Porque de
fato a gente considera essas anotações
não disciplinadas como goldmells porque
o que é que são cores mesmo né são
pedaços de código que não estão com bons
design não estão bem escritos né E que
potencialmente podem levar problemas
futuros né após uma manutenção uma
pessoa pode ir lá introduz um bug porque
esse code Mel fez com que a pessoa não
tivesse uma boa legibilidade um bom
entendimento daquele código E isso se
você for observar bem com a fala
anterior você observa que isso se
encaixa perfeitamente com anotações não
disciplinadas né um texto de código mal
escrito
quebrando um monte de expressão um monte
de F lá dentro e aí naturalmente aquilo
não tá cheirando bem e quando a pessoa
vai dar uma manutenção naquele de trecho
de código não entende direito não lê
direito e termina introduzir um problema
que pode
ter consequências futuras então de fato
para minimizar
coachmels né as pessoas utilizam
refaturações né E isso não foi diferente
no caso de anotações não disciplinadas
já foram propostos alguns refaturamentos
para isso né a gente já propôs um
catálogo de refaturamentos para remover
anotações não disciplinadas então dado
um lado esquerdo com anotações não
disciplinadas se o seu código fizer um
casamento de padrão com esse lado
esquerdo eu te dou uns infectrim para
transformar esse teu código num lado
direito que vai transformar a tua
anotação não disciplinada em uma
anotação
disciplinada
E aí esse conjunto né de fatorações elas
focam um dos mais diversos comandos da
linguagem de programação né Por exemplo
né o cara vai dar um retorno lá e aí tem
uma expressão A e B aí vamos supor que
para o cliente
x você só precisa dar um a mas para o
cliente Y você tem que dar um retorne a
e b né E aí às vezes o cara coloca
quebra S A e B coloca não disciplinado
né um pedaço Britânia a
e coloca com o DF lá né E o restante
coloca em um outro e se deve E aí nesse
sentido a gente propôs a fatorações para
remover esses casos também no contexto
chamados de funções
com monte de repetição como uai pode
também ter anotações na disciplinadas a
gente tem refaturações para isso é
comandos if né Tem vários casos é que o
cara pode colocar as expressões dentro
de um if com uma anotações não
disciplinadas a gente também propõe para
isso a rei a Reis é num etc Então são
casos aí onde a gente poderia né
usa faturamentos para remover essas
anotações de não disciplinadas e
transformá-la né em anotações
disciplinadas
mas e Como avaliar essas refaturações né
como saber se elas realmente trouxeram
ou Podem trazer ganhos na implementação
desse desse código né desses sistemas
bom o que a gente tem feito Maria
Cláudia para avaliar essas refaturações
é utilizar
métodos multi variados né uma pesquisa
mista né com várias técnicas para a
gente tentar entender né O que é que tá
acontecendo se realmente tá trazendo
ganho ou não então basicamente a gente
tem
executado vários estudos controlados é
estudos digamos assim do contexto de
cerveja né que comentários submissões de
contribuições etc Então vou tentar
detalhar um pouquinho
esses esses estudos então por exemplo no
contexto show do controlado né você A
ideia é que você reduza um pouco a sua
ameaça interna né porque você tá
controlando muito bem Aquele estudo e aí
a gente coloca algumas pessoas
em salas e a gente entrega para elas
códigos disciplinados não disciplinados
entrega tarefas olha
tenta corrigir um bando aqui
tenta implementar essa nova feature aqui
e a gente por exemplo pode medir o tempo
né E pode medir também o número de erros
que o participante dessa desse estudo
controlado vai cometer tá então
basicamente a gente pode fazer o
seguinte Olha eu tenho um código
disciplinar não disciplinado e eu vou
passar a tarefas Se as pessoas começarem
as tarefas mais rapidamente nos códigos
disciplinados a gente tem alguma
evidência né que provavelmente o código
disciplinado tá tendo algum efeito
naquele sentido né eu tenho tomo muito
cuidado para falar né eu falo o
provavelmente né porque estudos
controlados são bem difíceis né de se
realizar e é importante a gente sempre
colocar esses porém
no contexto de
ferver com desenvolvedores a gente tem
por exemplo a gente pode colocar num
questionário né um lado esquerdo e um
lado direito com uma anotação
disciplinada uma natação não
disciplinada e a gente perguntar para as
pessoas o que Que Elas preferem se
prefere o lado esquerdo e o lado direito
uma coisa que a gente faz também nesses
estudos é sempre embaralhar a gente
nunca coloca a notação disciplinada
sempre do lado direito
porque pode a pessoa pode ter uma
tendência né a tentar sempre votar
naquele lado direito porque tem uma
setinha da esquerda para direita e aí
nesse sentido essa setinha faz com que a
pessoa tenha algum pensamento de que
Eita eu acho que talvez esse lado
direito seja sempre melhor e a pessoa
pode terminar tentando voltar sempre
naquele lado direito tem uma coisa que a
gente tem que evitar a gente sempre
tenta embaralhar os lados
é um outra uma outra forma que a gente
tem feito de estudo nesse sentido Maria
Cláudia Adolfo e demais é uma coisa
super interessante que a utilização de I
track né que é aquela câmera que ela
filma para onde o seu olho tá olhando na
tela tá E aí a gente tem alguns mapas de
calor né então por exemplo o ouvinte que
conhece que que assiste muito futebol né
Geralmente as TVs elas colocam lá um
campo de futebol Olha o time tal ficou
no ataque aí tem lá um mapa de calor né
uma parte bem vermelha lá no ataque e
tal então a gente tentou fazer a mesma
coisa sendo que para código né então o
lado esquerdo o lado direito diz nada
não nada etc a gente viu que o lado
disciplinado o mapa de calor é mais
fraquinho isso quer dizer que o olho da
pessoa olhou menos para aquele local né
ele teve um impacto menor já um código
não disciplinado o mapa de calor ficou
muito muito vermelho naquele ponto então
há uma tendência de que a pessoa tá
passando mais tempo né ela tá tentando
entender o que que tá ali naquele ponto
do código né E aí nesse sentido o mapa
de calor ficou um pouco mais vermelho no
código não disciplinado Isso é uma outra
forma que a gente tem feito também para
fazer as avaliações é
faturamento de código do nosso primário
da disciplinado e também é a utilização
de contribuições em Sistemas ou pessoas
então a gente acha uma anotação não
disciplinada lá no github no repositório
lá qualquer do software e a gente
basicamente
disciplina e submete um pug Quest Então
a nossa hipótese aqui olha se tem muita
gente aceitando né esse esse lado
direito esse lado disciplinado talvez há
uma tendência de que as pessoas
realmente gostam mais da proposta
disciplinada em vez da proposta não
disciplinada e aí nesse sentido é super
legal porque as pessoas é muita gente
faz somente um tanques né Obrigado pela
sua contribuição mas tem pessoas que
colocam os comentários a mais tá que são
comentários interessantes né Então essa
mudança realmente é uma melhoria Olha eu
não vou aceitar isso porque a gente não
aceita mudanças de estilo de programação
né
Eu prefiro menos linhas de código porque
geralmente a notação não disciplinada
ela tem menos linhas de código do que a
disciplinada o cara quer manter menos
linhas né Às vezes o cara diz olha não
tive vantagem nenhuma nisso aí mas às
vezes a pessoa diz olha caramba melhorou
muito a legibilidade a o entendimento
desse código né então
são coisas assim que a gente
observa nos estudos assim então em geral
nessa nessas avaliações multifacetadas
né como estudos controlados
questionários uso de track
e por fim contribuições em geral a gente
tem notado que os desenvolvedores
preferem o lado disciplinado tá então
isso é um resultado digamos assim desses
estudos que a gente fez ao longo desses
anos e quais são os pontos positivos e
negativos em trabalhar com sistemas
altamente configuráveis o que você
sugere que precisa ser mais investigado
na área
um ponto positivo certamente que você
tem uma grande variedade de produtos de
software que você vai oferecer então se
você tem uma grande variedade de um
software você consegue dar para o
cliente várias opções de configuração
isso é fantástico Então se a gente fizer
um paralelo com carros por exemplo o
cara vai vender um carro ele te oferece
um carro com ar condicionado com vidro
elétrico sem vidro elétrico sem ar
condicionado automático manual motor 1.0
motor 1.6 Então você dá uma gama de
opções para pessoa e isso aí certamente
pode melhorar as suas vendas né É do
cargo do software também né Se você
pegar por exemplo o pacote do Office
você tem várias
configurações do Office fica um pacote
barato tem um pacote mais caro onde você
tem várias várias outras funcionalidades
então um grande ponto positivo é esse é
você
fingir né vários clientes vários
usuários outra coisa também é atingir no
ponto de vista de sistemas operacionais
né outros ambientes né então você tem um
software que funciona em vários temas
operacionais você amplia né a sua Gama
de clientes
já na minha humilde opinião o que
precisaria ser mais investigado na área
eu acho que seria
importantíssimo a comunidade
acadêmica e da indústria investir mais
no suporte ferramental porque realmente
é muito difícil da manutenção nesses
temas seria importante ter ferramentas
né capazes de melhorar né o trabalho de
uma pessoa que está desenvolvimento que
está desenvolvendo um sistema totalmente
configurado
aí nesse contexto existe um ambiente
Integrado de desenvolvimento né uma
ideia chamada e essa esse ambiente ele e
possui inclusive contribuições nossas
aqui da UFAL
e é um ambiente onde você tem várias
ferramentas para
implementar e dar manutenção esses
sistemas configuráveis mas assim é
importante difundir mais essas
ferramentas
Criar e avaliar novas ferramentas Eu
acho que isso realmente é um ponto que
precisaria ser mais atacado digamos
assim na área certo e com relação a
estudos experimentais né em suas
pesquisas Quais são as dificuldades que
você enfrenta ao conduzir esse tipo de
estudo e como você resolve essas
dificuldades essa pergunta é bem
interessante porque eu acho que ela
serve né Maria Cláudia não somente para
seleção né do fronteiras mas talvez em
várias outras né É mas assim
eu acho que uma grande dificuldade é
recrutar primeiramente as pessoas
corretas para o estudo né assim é uma
coisa bem difícil em tempos de pandemia
ainda mais difícil né
por exemplo eu tive um projeto aceito no
contexto de sistemas altamente
configurados eu precisei adiar esse
projeto que eu não consegui realizar o
experimento vou contar pandemia eu
precisava de gente
mas assim eu acho que um outro ponto que
na verdade quando a gente tem conversado
com as pessoas que vão realizar o estudo
um outro ponto que é também bastante
desafiador é criar as tarefas corretas
recrutar não somente as pessoas mas é
checar código Qual é o código que eu vou
usar e porque que esse código aqui é
interessante para o Meu experimento né
Isso é me lembra muito né um Quinote
dado pelo Professor Fernando Castor da
UFPE ele deu um Quinote no workshop vem
do CB soft
o congresso fazendo de software né e eu
lembro que naquele workshop ele
mencionou
importantes pontos
no sentido de entendimento de programas
né É para a para você pegar a tarefas
para avaliar entendimento de programas
então por exemplo Qual é a melhor tarefa
para eu avaliar isso Qual é a melhor
tarefa para o disciplinado e o
disciplinado Qual é a melhor tarefa para
eu focar entendimento de código
disciplinado e não disciplinado é por
exemplo dizer a saída de um determinado
código ou algoritmo é adicionar uma
linha que tá faltando em um código é
dizer que valor será impresso em
determinada variável ou seja qual é a
melhor tarefa porque né Então essa fala
do cachorro foi muito importante assim é
para mim é porque nos
estudos que a gente vem realizando a
posterior a gente tem levado muito em
conta esse
da fala dele naquele é workshop então
assim
Nesse contexto me parece ser um desafio
grande né a gente escolher de fato as
tarefas corretas né para executar esses
estudos a gente teve um episódio aqui
com o Fernando Castor sobre compreensão
de código falou bastante sobre sistemas
e eu lembrei que já que a gente falou de
cor dos pés a gente teve também Episódio
com o Marcelo Maia sobre colds mels mas
agora passando a um outro tema é que
você e seus autores né tiveram o artigo
publicado na empresa é Trans actions
software né uma das principais revistas
da engenheiro de software já nesse ano
em 2022 chamando eu vou traduzir aqui o
título refaturando maus cheiros de teste
com jeiuni5 porque desenvolvedores devem
se manter atualizados Você pode falar um
pouco para gente sobre esse artigo
interessante que você falou
no contexto de anotações não análise e
tal é mas assim nesse nesse artigo
especificamente a gente precisa falar de
testes Mel né que algo que não tá
cheirando bem no seu teste né então por
exemplo um exemplo de Mel em teste é
quando você coloca um Infiel E aí no IF
você coloca um código lá e não é se você
coloca o seu acerto mas pera aí o acerto
deveria também tá no IFF Porque se o
código cair executar o IFF não vai ter
acesso o seu teste vai dizer que passou
mas na verdade você não testou nada você
não fez nenhuma acessão né então isso é
uma coisa que é preciso que seja
refaturado é preciso que seja alterada
né Para que o devedor não tenha falsa
sensação de que o teste passou quando na
verdade ele não passou ele não foi e
sequer executado no caso porque a sessão
tava no Elsa
E aí
o que que a gente notou a gente notou
que
está havendo muitas pesquisas no
contexto de testes atualmente
em vários pesquisadores é tem tentado
remover esses smells utilizando
refaturações clássicas é fatorações já
propostas na literatura que é natural né
você vai usar o que a literatura está
lhe entregando por exemplo Suponha que
você tem um teste com código duplicado o
que é que a gente viu que os pensadores
tem tentado fazer tem tentado aplicar o
extrato método que é um faturamento para
você extrair um pedaço de core né para
colocar ele fora e aí você tem essa
função né Esse novo método sendo chamado
por vários outros pontos então um código
que é instalador aplicado Em vários
pontos ficou agora num metro separado
entretanto quando a gente foi analisar
um pouco mais a fundo é as
possibilidades as técnicas que estão
sendo usadas nos Freios de teste a gente
viu que o dia 25 ele possui um conjunto
de anotations lá de Java que são
anotações super interessantes e que a
gente notou que é possível remover
esmels utilizando essas anotações Então
em vez de a gente aplicar um
reffaturamento tipo um extrato a gente
utiliza uma notícia simples uma arroba
lá @ alguma coisa lá da anotação e a
gente consegue simplesmente remover o
o smell então a gente viu lá a anotação
de teste parametrizado habilitar um
teste se uma condição for verdadeira
repetir um teste ou seja o teu código
que antes estava duplicado você pode
colocar ele uma vez só e mandar esse
teste ser executado n vezes então se a
gente viu é possibilidades de remover
esmels utilizando essas anotações do dia
25 e aí
a gente Nesse artigo propusemos
refaturações dado um lado esquerdo com
testes mel eu vou te entregar um lado
direito com anotações do direito sim
quando você consegue remover esses
esmeros e a gente avaliou utilizando a
as técnicas de estudos que a gente
comentou anteriormente aqui na pergunta
lá da Maria Clara a gente avaliou
utilizando questionários a gente
entregava para as pessoas do lado
esquerdo botão direito é com testes
maiores sem testes Mel as pessoas
preferiram mais o lado lá com as
anotações do G1 de sem os smells Nós
avaliamos também é com contribuições né
aquela questão lá da submissão dos
curricras a gente
encontrava códigos nos repositórios que
tinha os Smiles a gente ia lá refaturava
com o nosso reffaturamento e submeter um
pouco Quest e nesse sentido a gente viu
também que as pessoas estavam tendo
grande aceitação né no nosso lado
direito então foi um artigo Super
Interessante Adolfo porque como eu falei
hoje a gente utilizar
as refaturações né já propostas na
literatura a gente simplesmente viu que
anotações simples do dia ontem
conseguiram remover esses testes meus É
bom que se diga obviamente que a gente
não consegue remover todos os meus por
pouco todos os né de códigos
relacionados a um smell então obviamente
que os nossos refinaturamentos têm é
muitas limitações mas para alguns casos
a gente de fato consegue remover os
esmeros Ok E aí falando a respeito de um
outro artigo né que você fez em
colaboração inclusive aí com o nosso
colega do fronteiras o Léo Fernandes no
simpósio brasileiro de engenharia de
software 2022
ponha suas mãos no ar reduzindo esforço
manual nos testes de mutação Você pode
falar um pouco para nós a respeito desse
artigo
Com certeza o Léo Fernandes que é um
contribuidor aí do fronteiras né ele foi
meu aluno doutorado e ele concluiu
doutorado dele no contexto de teste de
votação e a gente publicou recentemente
né esse artigo agora no SBS que vai ser
apresentado agora nas peças 2022 é onde
a ideia é reduzir o esforço manual para
identificar mudança equivalentes né
então Mutantes equivalência na verdade
você não consegue escrever um programa
que dado dois outros programas esse
programa diga que os dois são
equivalentes são problema é indecisível
né E aí há uma tarefa manual muito
grande porque eu tenho um mutante aqui
mutante será que esse mutante é
equivalente ao programa original
Isso realmente é uma tarefa manual
grande né porque a pessoa tem que
analisar com muito cuidado o código para
checar se realmente é equivalente ou não
E aí nesse sentido a gente tentou
utilizar a ideia de geração automática
de testes
para reduzir esse custo quer veja quando
a pessoa vai fazer manualmente
ela pode errar facilmente ela pode errar
dizendo que aquele mutante é equivalente
ao mutante original ela pode errar
facilmente e ela pode levar um grande
tempo para chegar uma conclusão né então
o que que a gente fez a gente pegou
ferramentas de geração automática de
testes e a gente gerou um monte de
testes por exemplo para esse programa
original aqui esse programa original P
esse forma original P eu tenho lá sei lá
no testes e todos esses testes Passos
eles são testes verdes né É aí a gente
gera um Mutantes
E rodamos esses mil testes Contra esse
problema
se não teste falhar é sinal de que houve
uma mudança de comportamento se houver
mudança de comportamentos não é um
mutante equivalente né E aí eu entrego
de graça um teste que pode matar aquele
mutante né agora se nenhum falhar eu
aumento a confiança novamente Não eu não
tô provando nada a gente aumenta a
confiança que aquele mutante pode ser
equivalente né a gente teve uma grande
acurácia né nos nossos estudos né A
gente pegou é um conjunto de mutantes
que foi manualmente anotado né acho que
era se não me engano mais de mil
Mutantes as pessoas anotaram manualmente
dizendo esse equivalente esse não é esse
equivalente esse não é a gente usou isso
como nosso bem slime e a gente executou
a nossa técnica né a gente teve uma
grande acurácia em relação essa
abordagem automática ela levou
do tempo para indicar equivalência e foi
25 vezes mais rápida para indicar a não
equivalência Então realmente foram foi
um grande ganho aí né então por isso que
o título do artigo é até um pouco
engraçado né põe essas mãos pro ar né
você vai reduzir o seu esforço manual né
então põe as suas mãos pro ar então o
artigo vai ser aí apresentado agora no
SBS 2022
É bem interessante só uma curiosidade em
relação a isso quer dizer o Léo fez o
doutorado lá no
sim mas com você como orientador Então
você tá habilitado orientado doutorandos
lá
ele na verdade ele fez com a orientação
porque ele fez na UFPE né E aí nesse
contexto eu sou orientador dele na
verdade eu fui 40 mil dele né mas o Léo
morou o tempo todo aqui em Maceió e a
orientação foi todo aquele Maceió ele
pagou só as disciplina lá na UFPE e
depois é que ele fez o trabalho do outro
lado de fato aqui em Maceió comigo
Ah mas é interessante você ter essa
colaboração com sim a pessoa pode fazer
o doutorado lá e ter pelo menos a sua
orientação
e você atualmente coordenador da
comissão especial de engenharia de
software
da Sociedade Brasileira de Computação
Quais são os seus desafios atuais como
coordenador da Sesi bom Adolfo é então
eu assumi a coordenação da comissão
especial de direito software da SBC
assim que acabou o CD software 2021 né
então é um ano de gestão aí à frente da
coordenação da série bom quando eu
assumi a coordenação o que eu percebi
foi que havia uma falta de documentação
dos processos né da comissão basicamente
estava tudo nos e-mails nas memórias das
pessoas Então se o comitê gestor não
tiver pessoas que lembrem bem né das
regras a gente podia ter problemas né
ainda bem que o comitê gestor atual tem
pessoas que lembram bastante das regras
né E isso foi bem interessante por
exemplo a Taiana conte da UFAM né e o
Rafael pique lá de Nick da PUC do Rio
Grande do Sul são eles coordenadores da
série né E eles lembram de muita coisa
então facilitou muito é o meu trabalho
Inicial nesse sentido mas assim a gente
não pode Sempre contar com a Taiana e
como Rafael né então qual foi o desafio
dessa gestão que vai se encerrar agora
no comecinho de Outubro a minha ideia
foi documentar ou tentar documentar boa
parte dos processos da comissão então
por exemplo nós estamos criando um
regimento da comissão especial nesse
Regimento tem várias regras né como é
que a escolha como é que é a votação A
pessoa que foi escolhida para ser
provavelmente do SBS ela vai ser
programa
mais eventos porque Quais são os sites e
artefatos que o coordenador tem que
estar
ciente tem que estar sempre atualizando
Quais são as atribuições do Coordenador
Quais são as atribuições do comitê
gestor da Sesi assim por diante então o
Regimento tá bem Redondo nesse sentido e
vai a votação inclusive na próxima
semana é para ser aprovado e acesse é
que acesso possa se beneficiar disso é
no futuro
outra coisa é que a gente também tá
entregando alguns manuais de organização
de eventos então por exemplo
vamos supor que o Adolfo e a Maria
Cláudia quer organizar o CB soft
2024 já tá o convite feito aqui tá vamos
supor que eles vão organizar o CD
software 2024 nesse sentido a gente já
vai entregar um manual né Olha você como
organizador você vai ter que fazer é
isso aqui pegar Patrocínio não sei onde
mandar e-mail para não sei quem então é
esses manuais são bem importantes e
também a gente vai tentar entregar
manuais da organização dos simpósios né
o sbks já é um evento que já tem o seu
manual feito inicialmente pelo professor
o da Federal de Campina Grande
é um grande parceiro meu de pesquisa
inclusive
também o insightfly dias né também tá
finalizando o manual é tu é ferramentas
né o manual foi feito acho que por hoje
e pela Ingrid A do SBS o do SBS na
verdade a Elisa tá fazendo a Elisa lá da
USP e eu vou ficar encarregado de
revisar então assim a gente quer
entregar
manuais né Para que as pessoas possam
organizar o seu pessoal como todo e os
simpósios dentro dele
e uma outra coisa Adolfo que a gente
também fez foi organizar a casa do ponto
de vista de arquivos dos processos etc a
gente pegou um e-mail que já existia da
séries pegamos um drive colocamos tudo
lá tá tudo organizado Então em vez de o
coordenador anterior da Sesi ele
compartilhar um arquivo do drive dele
não ele entra no Drive da série e lá ele
compartilha Então nesse sentido fica
muito mais organizado para lidar com
tudo um outro ponto que a gente já
avançou nisso é que a gente observou que
o sbts
E aí cabe uma agradecimento aqui a
público ao Rodrigo Santos da Unirio né e
ele acho que o da Viviana também da UFMA
trabalharam fortemente aí para colocar o
SB toda a história do sbts né que é o
simpósio brasileiro qualidade de
softwares trabalharam para colocar toda
a história no ar online né então viu que
o Sasuke já tá também o de testes e o
SBK também já tá
no dblp e 3 é ACM etc mas o SBS não
Nosso principal evento não tem sua
história online a gente viu que do SBS
2009 para 2021 Sim mas de 2008 até se eu
não me engano 1987 não são 22 anos onde
a gente não tem o histórico do SPS e a
gente começou a mudar isso né a gente
começou a indexar o S10 2006 2007/2008
eu e o Rodrigo Santos a gente achou o
CDs né de 2007 a luta foi achar uma
máquina aqui na ufalque tinha um leitor
de CD né para eu pegar os PDF dos
artigos e mandar para SBC para
publicação na sol né e depois disso a
gente vai tentar indexar no dlp então a
gente tá fazendo isso para 2006 2007
2008 mas eu acho que o principal legado
Adolfo não é somente
colocar mais três anos do SBS é online
acho que o maior legado é o algoritmo de
como fazer isso porque o próximo
coordenador vai lá e pode colocar no ar
os outros anos restantes
também fizemos os dados dos eventos né
de quality de engenharia de software
para quarente um trabalho gigantesco né
onde eu criei um GT com algumas pessoas
né é
Igor tem marcha Igor visse Rose eu não
Ivan Machado Rodrigo Bonifácio foram
pessoas que trabalharam comigo nesse GT
para colocar os quais lá para cá um
trabalho voluntário mas de suma
importância para nossa comunidade para
nossa pós-graduação
também
conseguimos a organização presencial do
cbsoft 2023 versão organizado pelo
Audrey fontão e pelo Bruno Café lá na
Federal do Mato Grosso do Sul
e também criamos um documento para que
as pessoas consigam para que os
organizadores da escola latino-americana
de Gere de software possam conseguir né
o patrocínio da ACM seguir soft para a
realização da escola então assim são
algumas das realizações que nós fizemos
esse ano na comissão especial de Gere de
software que cuja minha gestão vai
acabar agora no comecinho de outubro
essa como eu falei foram as principais
contribuições eu diria muito bom em nome
de toda a comunidade
nós agradecemos
e agora eu vou fazer aquela pergunta que
a pergunta que define o podcast e que a
gente sempre Deixa claro que não é
necessariamente o que vai acontecer mas
o que você acha que vai acontecer o que
você gostaria que acontecesse para você
qual é a próxima fronteira da engenharia
de software
essa pergunta é super interessante como
eu sou ouvinte do podcast eu vejo as
mais diversas respostas aí dos colegas
aí do Brasil em relação a isso é mas
assim eu acho que hoje a gente tem
várias aplicações vários sistemas
contemporâneos né esses sistemas estão
cada vez mais complexos é porque eles
usam ideias da indústria 4.0 como
Inteligência Artificial
a euti né E aí esse sistemas estão cada
vez mais
lidando com as nossas vidas né você tem
é um carro autônomo você tem médicos
fazendo cirurgia à distância então assim
eu acho que a próxima fronteira da
engenharia de software seria de fato dar
um suporte especial a essas aplicações
contemporâneas criar técnicas
modelos
serão cada vez formal né para que a
gente não erre e a gente não ponha em
risco as vidas humanas acho que seria
uma importante fronteira que a gente
teria que digamos assim que a gente
teria que passar né então acho que essa
é a minha resposta para essa sua
pergunta então nós estamos terminando
aqui o episódio Eu agradeço muito a sua
presença aqui mas o Ribeiro passa a
palavra para você
deixar alguma palavra final para os
nossos e nossas ouvintes a primeira vez
eu queria agradecer a você e a Maria
Cláudia pela condição da do episódio
queria dizer que eu sou fã do Fronteira
estrangeira de software eu acho que são
episódios Super interessantes com
pessoas que contribuem bastante com a
nossa comunidade do país
queria muito muito agradecer a confiança
agradecer a oportunidade tá aqui falando
com vocês um pouquinho das pesquisas que
eu já realizei agradecer principalmente
aos alunos e aos colaboradores né que
essa pesquisa não ser feita somente por
mim mas os alunos e os meus outros
colaboradores têm grande importância nas
pesquisas né e de fato agradecer a todos
aí ouvintes que ficaram aí uma horinha
com a gente para ouvir as nossas
palavras muito obrigado a todos muito
obrigado Maria Clara Eu também quero
agradecer mas que você tenha aceitado o
convite né E espero que os ouvintes
gostem bastante dessa conversa porque da
nossa parte foi muito interessante
Obrigada e tchau aos ouvintes tchau a
todos que nos escutaram até o próximo
episódio
[Música]
Este é o podcast fronteiras do
engenheiro de software episódios mensais
com pesquisadores e pesquisadores da
área de engenharia de software no Brasil
e no mundo nossa equipe é Fábio petrillo
Danilo Monteiro Leonardo Fernandes
Adolfo Neto eu Maria Cláudia Emer Miriam
Rodrigues da Silva e thanos Santos e
Diego Andrade estamos no Twitter e no
Instagram como
@ fronteiras e s
[Música]