qualidade de software no século xxi - v2

Post on 25-Jun-2015

1.836 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Nestes slides o conceito de qualidade de software é abordado, e como ele é atacado pela disciplina de Qualidade de software em relação às visões dos atores que participam do processo de criação e distribuição do software.Em seguida, são mostrados defeitos famosos tendo como origem falhas no software, desde a década de 60 até os dias atuais.Ao final, são apresentadas novas plataformas esperadas para emergirem na próxima década, 2010-2020, como a Internet das Coisas, Big Data, automóveis e o próprio corpo humano e os respectivos desafios de qualidade no software subjacente.

TRANSCRIPT

“Qualidade de Software no século XXI”Bruno Elias Penteado

Coordenador de Qualidade de Software MStechMestre em Ciência da Computação – UNESP

Certificações: CBTS, ISTQB CTFL, CTAL-TA e CTAL-TM,

Micosoft Web Apps C#21/09/2011

Qualidade de Software no século XXI Agradecimentos

Qualidade de Software no século XXI Tópicos

O que é qualidade de software? Piores bugs da história Novas plataformas Vale a pena conhecer mais e investir em

qualidade de software?Automóveis

Corpo humano

Internet das coisas

Big Data

O que é Qualidade de Software?

O que é Qualidade de Software? Qualidade

Dependência crescente em sistemas computacionais

O que é um software com qualidade? Conformidade às exigências? De quem?

O que é Qualidade de Software? Atores na qualidade de software

Gerente projeto Programador Testador Usuário Cliente

O que é Qualidade de Software? Ideias sobre qualidade de software

Defeito zero é alta qualidade Grande número de funções é alta qualidade Codificação elegante é alta qualidade Alto desempenho é alta qualidade Baixo custo de desenvolvimento é alta qualidade Desenvolvimento rápido é alta qualidade Facilidade para o usuário é alta qualidade

O que é Qualidade de Software? O que é qualidade?

Qualidade é valor para alguma pessoa

Vale o custo x benefício? Pagarão para ter seus requisitos atendidos?

O que é Qualidade de Software? Qualidade?

Caso: Google Maps SIG com fotos de satélite de alta resolução Determina rotas de trânsito

O que é Qualidade de Software? Qualidade?

Caso: Google Maps Usado também para o mal

Jornal da Cidade: Bauru, 3/5/2011

O que é Qualidade de Software? Qualidade

Não significa ausência de erros! Não garante valor ao software Muitos erros pode significar menor valor Exemplos?

O que é Qualidade de Software? Qualidade

Conformidade com requisitos não é suficiente! Requisito é o meio: fornecer valor para quem? Requisitos identificam as pessoas importantes? Requisitos capturam seus valores?

O que é Qualidade de Software?

“Qualidade é valor para alguma pessoa disposta a pagar por seus benefícios”

Qualidade de Software

Qualidade de Software Cenário

The National Institute of Standards and Technology (NIST) attributed a hefty price tag to the problem claiming software bugs are costing the US economy $US 59.5 billion yearly

NIST, 2002

A disciplina de Qualidade de Software tenta lidar com todos os atores envolvidos, tendo como objetivo final um software com as características de qualidade relevantes a

cada um deles.

Qualidade de Software Processo de Qualidade de Software

Prevenção: garantia por meio de processos;

Detecção: controle por meio de testes;

Qualidade de Software Processo

Sequência de procedimentos + atores + artefatos

Objetivo: previsibilidade de qualidade ao produto final

Modelos de melhoria de processo Produção de software

CMMi – Capability Maturity Model integation MPS.Br – Melhoria do Processo de Software Brasileiro

Qualidade de Software Padrões de qualidade

Gerais ISO 9126 – Qualidade de produto de software ISO 12207 – Qualidade do processo de software ISO 27000 – Segurança da informação IEEE 829 – Documentação de testes IEEE 1028 – Revisão de software IEEE 1044 – Classificação de incidentes BS 7925 – Técnicas de teste (...)

Específicos por indústria DO-178B – software aviônico FDA 21 – software médico (...)

Qualidade de Software Padrão ISO 9126

Requisitos funcionais e não-funcionais

É fácil de modificar?É rápido e enxuto?É fácil de usar?É imune a falhas?Satisfaz as necessidades? Executa em outro

ambiente?

Qualidade de Software Padrão ISO 9126

A importância depende do tipo de software

Qualidade de Software Testes

Abordagem para os testes Mostrar que o sistema:

Faz o que não deve fazer; Não faz o que deve fazer;

Qualidade de Software Quem testa o software?

Testers podem ser desenvolvedores menos qualificados Google: Software Engineer in Test Microsoft: Software Development Engineer in Test

Qualidade de Software Qualidade custa caro?

Definição econômica de qualidade: “É sempre mais barato fazer certo na primeira vez!”

Qualidade de Software Qualidade leva muito tempo?

Nunca se tem tempo para fazer da forma correta Sempre existe tempo para refazer A cada R$ 1,00 em desenvolvimento, de R$ 2,00 a R$

3,00 são gastos com retrabalho

Qualidade de Software Vale a pena investir?

Custo com qualidade: Prevenção + detecção + falhas internas Treinamentos, testes, bugs corrigidos antes de

release

Custo com falhas (externas): Custo da falha em produção, com o usuário Pode ser vidas.

Custo com qualidade < custos das falhas

Qualidade de Software Testes

Até quando testar? Variação conforme indústria

Bugs históricos

Bugs históricos O que é um bug?

Primeiro bug: computador Mark II, na Universidade de Harvard (1945)

Bugs históricos

Mariner I – 1962 Missão observar para o planeta Vênus Fórmula matemática foi

equivocadamente transcrita para o computador

Desviou de seu curso e foi destruído 4 minutos após lançamento

Prejuízo: US$ 18,5 mi

Bugs históricos

Therac-25 – 1985/1987 Dispositivo de terapia por

radiação sobre células cancerosas falha e libera doses letais de radiação em vários consultórios médicos

Condição de disputa no SO 5 mortes, várias pessoas

feridas

Bugs históricos

Míssil Patriot – 1991 Míssil de defesa Dhahran, Arábia Saudita Erro de software no relógio do

míssil: a cada 100 horas o relógio interno do sistema desviava um terço de segundo

Recomendação era rebootar o sistema de tempos em tempos

Resultado: 600 metros de erro na distância em uma interceptação

28 soldados americanos mortos

Bugs históricos

Divisão de pontos flutuantes nos processadores Pentium da Intel – 1993 Erro em divisões dentro de uma

faixa de números (erro ~0,006% no arrendondamento)

3 a 5 milhões de peças com defeito

Recall para todos que quiseram trocar

Custou à Intel US$ 475 milhões

Bugs históricos

Ariane 5 vôo 501 – 1996 Foguete com código reutilizado do

Ariane 4 (outro hardware); Overflow de inteiro: conversão de

float de 64-bits para inteiro 16-bits com sinal;

O processador primário do foguete sobrecarrega os motores que se desintegraram em 40 segundos;

Não tripulado (sem vítimas); prejuízo de US$ 370 milhões

Bugs históricos

Bug do milênio (Y2K) – 2000 Datas com apenas 2 dígitos para o

ano Uma das maiores histerias da história Ao virar o ano 2000, a preocupação

era que contasse como 1900 Entre US$ 300 e US$ 500 bi no

mundo todo Bug de 2038

time_t em C número de segundos a partir de 1/1/1970. Quando usado 4 bytes = 19/1/2038

Bugs históricos

Toyota Prius – 2010 Problema no software do

sistema ABS de freios – acelerador fica preso, dificultando desaceleração

Recall de 400.000 veículos ~ US$ 2 bilhões de prejuízo,

desvalorização de 15% nas ações

Fonte: BBC, Computer World UK

Bugs históricos

Play Station Network - 2011 Invasão do sistema Dados privados e de cartão de

crédito de ~70 mi de pessoas foram roubados

Problemas atuais?

Próximos bugs? Qualidade de software nos dias de hoje

Redes Sociais Identidade on-line Privacidade Protegidos pelas políticas definidas nos Termos de

Serviço dos sites Integração no smartphone. E se roubarem? Geolocalização

Próximos bugs? Qualidade de software nos dias de hoje

Google Street View Gov. da Alemanha proibiu Fere privacidade

Próximos bugs? Apps Móveis

Malwares disponibilizados como aplicações

+50.000 usuários afetados Apple Store, Market

Próximos bugs? Qualidade de software nos dias de hoje

Urna eletrônica Fabricante diz não ser segura Não tem auditoria independente

Próximos bugs? “Pentágono diz que responderá a cyber

ataques com força militar”

O que nos espera

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Futuro – novas plataformas Internet of Things

RFID, sensores wireless Monitoramento contínuo Integração inteligente

Futuro – novas plataformas Internet of Things

Mais “coisas” conectadas do que pessoas PCs, tablets, smartphones

Futuro – novas plataformas Internet of Things

~2020: ~50 bilhões de “coisas” na Internet (nosso corpo, carro, relógio, gado)

Futuro – novas plataformas Desafios de qualidade?

Confiabilidade: disponibilidade das informações; Segurança: privacidade, interceptação de informação; Interoperabilidade: padronização;

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Futuro – novas plataformas Big Data

Dados gerados em grande escala (terabytes, petabytes);

Percepção de padrões; Novas formas de trabalhar;

Processamento paralelo; Bases de dados não convencionais;

Futuro – novas plataformas Big Data

Capacidade de criação excede de longe a de armazenamento;

Redes sociais, registros médicos, vídeos, dados astronômicos, sensores...

*: Giga < Tera < Peta < Exa < Zetta

Futuro – novas plataformas Big Data

Fontes: rastreamento das deslocamentos, atualidades sociais, dados médicos, hábitos e preferências

Personalização de conteúdo

Futuro – novas plataformas Big Data

Apple, Google, Twitter processados por usar dados indevidamente;

Futuro – novas plataformas Big Data

Desafios de qualidade? Acurácia: precisão dos dados; Interoperabilidade: formatos e estruturas de dados; Eficiência: tempo de execução e espaço consumido; Segurança: privacidade, vazamento de informação; Usabilidade: visualização dos dados;

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Futuro – novas plataformas Automóveis

Carros E se seu carro se conectar à Internet? Diferenciação por tecnologia

Futuro – novas plataformas Automóveis

Carros Sistemas multimídia embutidos de fábrica Windows Embedded Automotive Padrão AUTOSAR (AUTomotive Open System

ARchitecture)

Futuro – novas plataformas Automóveis

Carros E se seu carro se dirigir sozinho, auto-estacionar?

Futuro – novas plataformas Automóveis

Carros E se hackers desabilitarem seu freio?

Futuro – novas plataformas Automóveis

Recalls frequentes

Futuro – novas plataformas Automóveis

Desafios de qualidade? Confiabilidade: recuperação em caso de erros; Segurança: ataques ao software; Eficiência: consumo de energia; Usabilidade: muitos dados para o motorista;

Futuro Novas plataformas e seus desafios de

qualidade

AutomóveisCorpo

humanoInternet das

coisasBig Data

Futuro – novas plataformas Corpo humano

Dispositivos médicos Wearable computing Biometria

Futuro – novas plataformas Corpo humano

Monitoramento de saúde: batimento cardíaco, temperatura...;

Integração com smartphones;

Futuro – novas plataformas Corpo humano

Monitoramento de desempenho de atletas;

Futuro – novas plataformas Corpo humano

Dispositivos médicos Implantes sofisticados mini computadores

Futuro – novas plataformas Corpo humano

Dispositivos médicos Como se proteger de ataques?

Futuro – novas plataformas Corpo humano

Desafios de qualidade? Segurança: privacidade, ataques; Confiabilidade: tolerância a falhas; Eficiência: consumo de energia;

Recapitulando... O que é qualidade de software? Piores bugs da história Novas plataformas para o século XXI

Próximos bugs? Então... software não é confiável?

Limitação humana Pessoas não conhecem/dominam tudo; Pessoas tem habilidades, mas não são perfeitas; Pessoas cometem erros

Pressões por tempo, custo Especificações incompletas

Manutenção em código

“Grandes poderes trazem grandes responsabilidades”

Recapitulando...

Vale a pena conhecer mais e investir em qualidade de software?

Obrigado!

“Qualidade de Software no século XXI”Bruno Elias Penteado

bruno.penteado@mstech.com.brTwitter: @brunopenteado

Estamos contratando!curriculum@mstech.com.br

Twitter: @_MStech

top related