25
Produtividade em Desenvolvimento de Software e Geração Automática de Código Fabíola Guerra Nakamura Vitor Alcântara Batista

Produtividade em Desenvolvimento de Software e Geração Automática de Código

Embed Size (px)

Citation preview

Page 1: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Produtividade em Desenvolvimento de Software e Geração

Automática de Código

Fabíola Guerra NakamuraVitor Alcântara Batista

Page 2: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Agenda

Motivação Aumento de Produtividade no

Desenvolvimento de Software Teoria da Geração de Código Vantagens e Desvantagens Demonstração

Page 3: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Motivação

A Lei de Acumulação Capitalista – Karl Marx Mais Valia (ou lucro): é a diferença

entre o que o trabalhador agrega ao processo produtivo pelo valor que é pago a ele. O lucro só é obtido através da exploração do trabalhador pelos proprietários dos meios de produção.

Page 4: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Motivação A Lei de Acumulação Capitalista –

Karl Marx O acréscimo de capital devido à mais

valia faz crescer na mesma proporção a demanda por força de Trabalho;

Se a força de trabalho não aumenta junto com a demanda, os salários são aumentados, o que causa a redução da mais valia e conseqüentemente a redução da acumulação de capital.

Page 5: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Motivação

A Lei de Acumulação Capitalista – Karl Marx Portanto, a produtividade do trabalho

social se torna a mais relevante alavanca da acumulação capitalista.

Page 6: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Motivação

Economia de Escala

Unidades fabricadas

Custo Unitário

+ Produtividade

Page 7: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Aumento da produtividade no desenvolvimento de SW Alguns meios de aumentar a

produtividade: Processo de Desenvolvimento de

Software Clima Organizacional adequado Sistema de Recompensas Uso de Ferramentas Case Reutilização de Bibliotecas Uso de geração de código

Page 8: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Processo de Desenvolvimento de Software

Page 9: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Clima Organizacional Adequado

Empresas precisam de pessoas capacitadas e motivadas

Recomendações: Manter equipes pequenas (< 10) Líderes das equipes devem ser

admirados pela qualificação técnica As equipes devem conter membros

que tenham skills complementares

Page 10: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Sistema de Recompensa

Recomendações: Utilização de critérios objetivos Recompensas individuais, por equipes

e para toda a organização Recompensar não só a produtividade

em si, mas também a aplicação de novas tecnologias e melhorias na infra-estrutura e no processo

Page 11: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Uso de Ferramentas Case

Facilidade de modelagem Validação semântica dos modelos Automação de testes Documentação automática Geração de parte do código da

aplicação

Page 12: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Técnica de construir códigos utilizando

programas

Vão scripts simples até programas complexos que transformam modelos lógicos em aplicações completas

Saída é um código que seria escrito a mão

Page 13: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Geradores Ativos

Geram códigos que não são modificados ou são modificados em locais especiais que são preservados quando o código é re-criado

São rodados múltiplas vezes no mesmo código de saída conforme o desenho de entrada ou o gerador muda.

Page 14: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código

Geradores Passivos Geram códigos uma vez

Os códigos gerados são modificados pelo desenvolvedor

Provêm um aumento de produtividade inicial

Page 15: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Fluxo Convencional

Editar -> compilar -> testar

Fluxo de geradores ativos: Rodar o gerador -> compilar -> testar Se encontrar problema modificar modelo ou

código de entrada do gerador e gerar novamente

Fluxo de geradores passivos Rodar gerador -> editar -> compilar -> testar Se encontrar problema seguir fluxo convencional

Page 16: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Aplicações mais comuns:

Acesso a banco de dados Interface com usuário

A geração automática reduz erros.

Para estas aplicações um gerador pode prover código para várias plataformas.

Page 17: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Vantagens

Qualidade

Consistência

Produtividade

Abstração

Page 18: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Desvantagens

Documentação

Educação

Manutenção

Complexidade

Page 19: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código Caracterização de geradores

Tipos de Entrada Códigos Modelos abstratos

Tipos de Saída Código de entrada com código adicional Código novo que implementa

parcialmente o desenho e que necessita ser estendido

Código completo

Page 20: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código

Preocupações Experiências anteriores sem sucesso Geradores tentam fazer coisas demais A qualidade do código de saída pode

ser ruim Substituir desenvolvedores Muito complexos Não tem manutenção

Page 21: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código

Verificar condições favoráveis de utilização

Não deve substituir um desenho sólido de orientação a objetos

Page 22: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código

Verificar se é possível utilizar um gerador de código

Definir como automatizar o processo

Procurar o gerador que cumpra os requisitos necessários.

Page 23: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Geração de Código

Page 24: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Demonstração

Vídeo

Page 25: Produtividade em Desenvolvimento de Software e Geração Automática de Código

Perguntas