Armadilhas no Desenvolvimento de Software

 01/11/2017

Danielle Teixeira Oliveira

Danielle Teixeira

  • Engenheira da Computação
    • Esp. Banco de Dados
    • Esp. Desenvolvimento para Aplicativos Mobile
    • Mest. Engenharia de Sistemas e Produtos
  • Prêmio
    • Proteste Inovação 2015
  • No dia-a-dia
    • Analista de Requisitos
  • Membro
  • https://medium.com/lfdev-blog
  • https://plus.google.com/communities/107447217173649496535
  • https://www.facebook.com/GdgLF
  • Objetivo

  • Introdução

  • Armadilhas

  • Dicas de Prevenção

  • Conclusão

  • Referências

Agenda

Objetivo

 

Substituir velhos hábitos de desenvolvimento Usar boas práticas no processo de desenvolvimento de software para não cair em suas próprias armadilhas.

#Armadilha:Ciclo Desenvolvimento

Porque se cai em armadilhas?

  • Não planejamento do escopo
  • Sem time no projeto
  • Prazos curtos
  • Requisitos não mapeados
  • Ausência de protótipo validado
  • Cliente não é envolvido no desenv. do projeto
  • Homologação do sistema é suprimida
  • Procastinação
  • Ambiente não escalável
  • Uso anti-Pattern

Projetos top caem em armadilhas?

Projetos não falham. Pessoas falham.

Como não cair em armadilhas?

Com boas práticas de software

Técnicas identificadas como as melhores para  realizar uma determinada tarefa.

Benefícios 

  • Redução do Ciclo de Desenvolvimento do Software;
  • Permite uma aplicação mais tolerante a falhas;
  • Melhora manutenibilidade;
  • Entregar o produto mais funcional.

#Prevenção: Levantar requisitos

  • Entrevistas, brainstorms, workshops ... etc
  • Trace o escopo do projeto;
  • Envolva usuário final;
  • Documente;
  • Valide e teste
  • Codifique

#Prevenção: Levantar requisitos

  •  
    • RF01 - validar campo de email;
    • RN02 - Ao clicar no campo de senha, animar coruja;
    • RNF03 - Requisitos de portabilidade. o sistema deverá rodar em qualquer plataforma.

Web?

#Prevenção: Mapear cenários

Mobile?

Embarcado?

#Não uso de requisitos

  • Baixa qualidade;
  • Retrabalho;
  • Escopo indefinido;
  • Problemas de usabilidade;
  • Insatisfação do cliente;
  • Ciclo de manutenção maior;
  • Vulnerável a falhas e invasões.
  • Processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software.

Iterativo

Incremental

#Prevenção: Seja Ágil

Baixa Fidelidade

#Prevenção: Prototipação

Alta Fidelidade

Média Fidelidade

#Prevenção: Modelagem BD

Normalização

  • Evita redundância desnecessária  permitindo fácil acesso às informações;
  • Evita anomalias no banco.

#Prevenção: Modelagem BD

Armadilha

Boa prática

#Prevenção: Querys BD

Armadilha

Boa prática

Com * o SGBD gasta muito tempo percorrendo todos os campos

SELECT * FROM tabelaX
SELECT COLUNA_A, COLUNA_B FROM tabelaX

#Prevenção: Querys BD

UNION

O SGBD não consegue otimizar cláusulas de join ligadas por OR. Neste caso é mais eficiente ligar os conjuntos de resultados por UNION.

SELECT a FROM tab1, tab2 
WHERE tab1.a = tab2.a 
OR tab1.x = tab2.x
SELECT a FROM tab1, tab2 
WHERE tab1.a = tab2.a 
UNION SELECT A FROM tab1, tab2	
WHERE tab1.x = tab2.x

OR

são eliminadas as linhas duplicadas

Armadilha

Boa Prática

#Prevenção: Versionamento

  • Controlar histórico
  • Marcar  e resgatar versões estáveis
  • Ramificar o projeto
  • Segurança
  • Multiplataforma

#Prevenção: Design Pattern

  • Documenta boas soluções para problemas recorrentes
  • Reuso de conhecimento anterior documentados em boas práticas
  • Obtidas através de experiências de sucesso na indústria de software

Gang of Four

#Prevenção: Framework a modinha

#Prevenção: Framework a modinha

Escolha

#Conclusão

  • Mapear Necessidades
  • Planejar o projeto
  • Prototipar e validar
  • Envolva cliente/usuário do início ao final
  • Divida as tarefas em ciclos
  • Olho no orçamento e tempo
  • Desenvolva
  • Escreva testes

Onde aprender mais?

Muito obrigada!!!

dannyserena

dannyserena

danielleteixeira

Armadilhas no Desenvolvimento de Software

By Danielle Teixeira

Armadilhas no Desenvolvimento de Software

III Semana de Ciência, tecnologia e Sustentabilidade - UNIME

  • 1,611