Testando sua arquitetura... antes ou depois da implementação?!
-
Upload
antonio-carlos -
Category
Software
-
view
100 -
download
0
Transcript of Testando sua arquitetura... antes ou depois da implementação?!
Testando sua arquitetura… Antes ou depois da implementação?!
Antônio Carlos
Segundo o padrão ISO/IEEE 1471-2000,
“Arquitetura é a organização fundamental de um sistema incorporada em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduzem seu design e evolução.”
O que é arquitetura de software?
● Segurança● Confiabilidade ● Tolerância a falhas● Portabilidade● Desempenho● Manutenibilidade● Usabilidade● Dependências externas
Principais aspectos arquiteturais
Propriedade Métrica
Desempenho Transações por segundoTempo de resposta por requisiçãoTempo de carregamento da tela
Usabilidade Tempo de treinamento necessárioTempo de execução de uma rotina
Confiabilidade Tempo médio para falhasProbabilidade de falhasDisponibilidade
Segurança Número de vulnerabilidades conhecidasNúmero de ameaças conhecidasProbabilidade de ataques
● Verificação○ Estamos construindo “certo” o produto?
● Validação○ Estamos construindo o produto “certo”?
V & V
Antes
● Visa descobrir defeitos o mais cedo possível;● Visa a melhoria da qualidade dos artefatos;● Evitar retrabalho;
Revisões técnicas
Segundo McGraw Hill (1998)● Cada seção de inspeção remove de 60 a 65% dos
defeitos● Quando combinados com práticas de testes esse
número pode subir para 90%
Revisões técnicas
● Reuniões informais para avaliação de artefatos● Não existem restrições quanto à discussão sobre
validação dos defeitos e/ou solução● Apresentação dos artefatos e avaliação prática
Walkthroughs
● Checklist de avaliação preparados por pessoas com conhecimento técnico
● Reuniões são realizadas para identificar os artefatos
Checklists
● Um especialista na área valida o artefato● O processo de desenvolvimento deve considerar a
validação● Especialista interno ou externo
Parecer do especialista
Depois
● Teste de segurança○ SQLInjection○ DDoS○ Teste de penetração
● Ferramentas ○ SQLMap○ Nikto2○ Wapiti○ Brutos
Segurança
● Teste de instalação● Teste operacional
Portabilidade
Desempenho
● Teste de performance
● Ferramentas○ JMeter○ LoadUI
● Complexidade Ciclomática● Coesão e acoplamento● hints
● Ferramentas○ Sonar○ PlatoJS
Manutenibilidade
● Teste de integração
● Ferramentas○ JUnit○ NUnit○ PHPUnit
Dependências externas
Então, antes ou depois?
Custo de manutenção de software
Segundo Martin & McClure (1984):● Manutenção contabiliza quase 67% dos custos totais;● 20% do orçamento de manutenção é para corrigir
defeitos;● 25% é gasto para adaptar a um novo ambiente;● 6% é gasto para corrigir documentação;● 4% é gasto com problemas de performance; e● 42% é gasto com solicitação de usuário.
Custo de manutenção de software
Obrigado!