23
Globalcode – Open4education Trilha - Blockchain Anderson Urbano Engenheiro de Software no CESAR Mestrando em Engenharia de Software pelo CESAR School

Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Trilha - BlockchainAnderson Urbano

Engenheiro de Software no CESARMestrando em Engenharia de Software pelo CESAR School

Page 2: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

UMA ANÁLISE DE MATURIDADE DAS FERRAMENTAS DE DESENVOLVIMENTO DE SOFTWARE PARA PROJETOS ENVOLVENDO

BLOCKCHAIN

Uma pesquisa em andamento no programa de mestrado profissional em engenharia de software do CESAR School

Page 3: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Roteiro• Contexto• Questionamentos• Coleta de Dados

• Elaboração de Survey• Aplicação com desenvolvedores

do github• Resultados

• Perfil• Ferramental• Opiniões

• Próximos Passos

Page 4: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Contexto● Surgimento do Bitcoin em 2009 cria um novo paradigma de aplicações

descentralizadas baseadas em registros comunitários e imutáveis● A criação do conceito de smart-contracts com ethereum promete uma

plataforma geral para desenvolver aplicações descentralizadas utilizando blockchain

● Mais de 2400 criptomoedas públicas listadas hoje no coinmarketcap.com, movimentando milhões de dólares todos os dias

● Novas empresas prometem remover o middle-man nos mais variados contextos utilizando blockchain

Page 5: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Questionamentos● Dado a natureza imutável das plataformas e requisitos de segurança

críticos, o quão complexo é desenvolver aplicações blockchain robustas?

● Que tipo de ferramentas são necessárias para o desenvolvimento blockchain? São diferentes das ferramentas tradicionais?

● Que ferramentas estão sendo utilizadas hoje pela comunidade? Elas estão atendendo às necessidades dos desenvolvedores?

● O que é preciso para o futuro?

Page 6: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Coleta de Dados● Elaboração de questionário aplicado a

desenvolvedores blockchain do github

○ Foram 15 perguntas sendo 13 de múltipla escolha ou checkboxes e 2 descritivas visando:

■ Montar um breve perfil dos desenvolvedores

■ Descobrir o ferramental utilizado por eles

■ Encontrar as limitações existentes e possibilidades de melhoria

Page 7: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Coleta de DadosUtilizando a API pública do Github, foi feito um script python para coletar dados de contato de potenciais participantes da pesquisa.

Buscando pelas palavras-chave: blockchain, dapp, smart-contract, cryptocurrency e altcoin, foram selecionados 856 diferentes repositórios com pelo menos 100 estrelas.

Buscando contribuidores com ao menos 1 contribuição nos últimos 6 meses de cada repositório foram encontrados 1048 desenvolvedores.

Até o momento foram recebidas 188 respostas distintas para análise.

Page 8: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Perfil

Anos de experiência emDesenvolvimento de Software

Anos de experiência emDesenvolvimento Blockchain

● Menos de 1● Entre 1 e 3● Entre 3 e 5● Mais de 5

Page 9: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Perfil

Natureza do trabalho com blockchain

Page 10: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Perfil

Utilização de Design Patterns para Blockchain

● Desconhece● Desenvolveu Padrões Próprios● Estudou em livros, cursos ou

outros meios

Page 11: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Ferramental

Plataforma Blockchain mais utilizada

Dominância do Ethereum!!

Page 12: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Ferramental

Linguagens de programação utilizadas

Page 13: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Ferramental

IDEs e ambientes utilizados

Visual Studio

Eclipse

PyCharm

EthFiddle

Truffle

VsCode

Populus

Ganache

Geth

Chaincoder

Vim

Page 14: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Ferramental

Algumas características providas pelo ambiente

Blockchain Network Simulation

Page 15: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Opiniões

Escalabilidade da plataforma utilizada

● Muito escalável● Boa o bastante● Não muito escalável● Nada escalável

4.9%

Page 16: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Opiniões

Assertivas quanto à documentação fornecida

Page 17: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Opiniões

Consideram a linguagem de programação atualmente adequada ao desenvolvimento blockchain?

● Está adequada● Concorda com

ressalvas● Concorda com muitas

ressalvas● Discorda Totalmente

Page 18: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Opiniões

Tempo de setup do ambiente de desenvolvimento

● Muito Longo● Longo● Adequado● Curto● Muito Curto

3.8%

Page 19: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - Opiniões

Confiança quanto à segurança do software desenvolvido

● Muito confiante● Confiante● Inseguro● Muito Inseguro

4.8%

Page 20: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Resultados - OpiniõesPrincipais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento

● Análise estática de código, verificação formal e ferramentas de depuração

● Simulação de ambientes e redes blockchain

● Funcionalidades de editor, code completion, e assistências de refactoring para as linguagens novas

Page 21: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Próximos Passos● Continuar a coleta de dados. Possível nova

aplicação do questionário com diferentes participantes

● Efetuar uma análise mais aprofundada dos dados

● Propor uma ferramenta com base nas features necessárias aos desenvolvedores

● Finalizar escrita do trabalho

Page 22: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração

Globalcode – Open4education

Obrigado!Anderson Urbano

[email protected]://www.linkedin.com/in/andersonurbano/

Page 23: Trilha - Blockchain · Principais Sugestões e Pedidos de Funcionalidades para o ambiente de desenvolvimento Análise estática de código, verificação formal e ferramentas de depuração