Engenharia de Software e Qualidade

Documentos relacionados
Apresentação do Curso de Engenharia de Software 2

Custos da Ausência da Engenharia de Software

ENGENHARIA DE SOFTWARE

Análise e Projeto de Software

Princípios da Engenharia de Software aula 03

Modelo de Desenvolvimento Concorrente

MODELAGEM DE SISTEMAS Unidade 1 Conceitos Básicos de Modelagem. Luiz Leão

Teste de Software Básico

Verificação e Validação

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Desenvolvimento de Projetos

Teste de Software. Prof. Wylliams Barbosa Santos Laboratório de Programação

Engenharia de Software II

Ciclo de Vida de Sistemas de Informação

Engenharia de Software 1

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Qualidade de Software

Processos de software

Crise do Software. Crise de tecnologia - hardware caminha mais rápido que o software

Engenharia de Software

PROJETO DE SISTEMAS. Professora Lucélia

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

GARANTIA DA QUALIDADE REVISÕES

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Normas ISO:

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

Engenharia de Software II

Matemática Computacional. Edgard Jamhour

Adoção de metodologia ágil baseada em Scrum - Case da Procergs

História da Engenharia de Software. Evolução Histórica da Computação e Aplicações Profa. Rosana Braga

Engenharia de Software DESENVOLVIMENTO ÁGIL

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Engenharia de Software

Cálculo Numérico. Introdução. Prof. Jorge Cavalcanti twitter.com/jorgecav

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Integração do Desenvolvimento Ágil com a Governança Corporativa de TI Usando Métricas Funcionais

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Ciclo de vida do software

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

Engenharia de Software

Políticas de Qualidade em TI

Engenharia de Software 1

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Introdução à Engenharia de Software. Prof.ª Erika E. Freire Miranda

MODELOS DE PROCESSOS (PARTE 2)

INF1013 MODELAGEM DE SOFTWARE

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

ENGENHARIA DE SOFTWARE

QUALIDADE DE SOFTWARE

Como solicitar, fazer download e instalar uma atualização de mapa

Escolhendo um Modelo de Ciclo de Vida

Engenharia de Software

Organização para Realização de Teste de Software

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Modelos Prescritivos de Processo

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Modelos de Processo de Software. Profª Jocelma Rios

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Engenharia de Software Processo de Desenvolvimento de Software

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

O que é o Cálculo Numérico? 05/06/13. Prof. Dr. Alexandre Passito

Aula 2 Processo de Software

Transcrição:

Engenharia de Software e Qualidade

Softwares que ficaram em loop de boot infinito após atualizações ios - 2016 Sistema de navegação de carros da montadora japonesa Lexus (divisão de carros de Luxo da Toyota) 2016 Windows 7 2009, Windows 10 2015 Playstation 4-2014

O homem que salvou o mundo sem fazer nada Stanislav Petrov era um Tenente-coronel da antiga União Soviética, em plena Guerra Fria, que trabalhava em uma central de monitoramento de mísseis que usava dados de satélite Em 26 de setembro de 1983, ele recebe um alerta na tela de um computador alertando sobre o lançamento de seis mísseis vindo dos EUA O que ele faz? Ignora o alerta De fato houve um erro por parte do software devido à imprecisão de dados de geolocalização E se ele não tivesse ignorado?

Falhas de Software Clássicas Foguete Ariane 5 da Agência Espacial Européia (04/06/1996)

Ariane 5 Explosão após 40 segundos delançamento. Causa: Arithmetic Overflow na conversão de um número em ponto flutuante de64 bit para um número inteiro com sinalde16 bit Uma das falhas de software mais caras da história: $ 370 milhões

Therac-25

Therac-25 Entre 1985 e 1986: seis pacientes morreram por overdose de radiação Equipamento recebeu software usado na geração anterior, sem devida validação Nos casos específicos dos pacientes que morreram, o software exibiu a seguinte mensagem Malfunction 54. Operadores insistiram na operação de toda maneira. Problema: ausência de práticas adequadas de desenvolvimento (por exemplo Validação). Software concorrente, checagens em tempo real (missão crítica) Problema não ocorria nas gerações anteriores por limitações do hardware

General Motors (2016) Recall de 4,3 milhões de veículos com defeitos nos airbags produzidos pelaempresa Takata 1 pessoa morta e 3 pessoas feridas Bug no software impossibilitava a abertura do airbag durante uma colisão

F-35 Lightning II Projeto de substituição de F-16, A-10, F/A-18 e AV-8B Família com três variantes: F35A, F35B e F35C Contrato (US Lockheed Martin): 16/11/1996 America s Most expensive weapons system

F-35 Lightning II 2014: $ 163 bilhões acima do orçamento e 7 anos de atraso com relação ao prazo original; 2016 ($ 400 bilhões) Críticas: projeto infestado de falhas de desenho; Lockheed desenha, testa e produz, tudo ao mesmo tempo, em vez de identificar e corrigir defeitos, antes deproduzir Software: Seis Liberações (Blocos 1A, 1B, 2A, 2B, 3i, 3F) 8,3 Milhões de Linhas de Código Vários bugs Bug Bloco 3F (descoberto em 2015): Problema de renderização do radar deixava o piloto cego até queo radar fosse reiniciado Bloco 3F: finalização dedesenvolvimento e testes em Janeiro/2018

Falhas recentes (2017) Um engenheiro da Amazon quebra a Internet por 4 horas Yahoo! admite a invasão de 32 milhões de contas entre 2015 e 2016 Agência governamental do Canadá é hackeada Falha de software deixa 60.000 pessoas sem energia na Austrália Falha de software leva a problemas de aceleração de trem do Aeroporto de Denver, ferindo 26 pessoas Marcapassos da Saint Jude Medical, fáceis de serem hackeados, são atualizados

Falhas (Bugs) Podem trazer danos financeiros, humanos e para a reputação da empresa desenvolvedora/contratante Qualidade de software precisa ser considerada em todos os estágios do desenvolvimento de software Mas o que é qualidade de software? Conformidade com requisitos Satisfação do cliente

Engenharia de Software Começou em 1968 com o reconhecimento da crise do software O que é? Processos, métodos (prática) e ferramentas que permitem aos profissionais construírem software de alta qualidade, dentro do prazo e custo previstos pelo projeto Envolve quais pessoas? Engenheiros de Software software utilizado por muitas pessoas que constroem o Por que é importante? Software afeta cada aspecto da nossa vida e se tornou ubíquo no comércio, culturae nas atividades cotidianas

Processos tradicionais Também conhecidos como Processos Dirigidos por Planos Caracterizados por extensa documentação e planejamento Modelos de processos mais comuns: Cascata, Evolucionário, Espiral (Incremental) Exemplo de processo

Métodos Ágeis Foram pensados a partir de um movimento de insatisfação de profissionais de desenvolvimento de software com os processos tradicionais (controverso Relatório do Caos, Standish Group) Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar: Indivíduos e interações mais que processos e ferramentas; Software em funcionamento mais que documentação abrangente; Colaboração com o cliente mais que negociação de contratos; Responder a mudanças mais que seguir um plano; Ou seja, mesmo havendo valor nos itens à direita, valorizamosmaisos itens à esquerda (Manifesto Ágil, 2001).

Métodos Ágeis

Arsenal da Engenharia de Software para a Garantia da Qualidade Técnicas de Verificação e Validação Inspeções Testes Unidade Integração Sistema (Funcional, Desempenho, Segurança) Aceitação Alfa, Beta Exploratório Verificação Formal (por exemplo Model-Checking)

Referências https://www.tricentis.com http://agilemanifesto.org R. S. Pressman (2010). Software Engineering: A Practitioner s Approach, 7th edition, Mc-Graw-Hill.