Qualidade de Software

Documentos relacionados
Qualidade de Software

QUALIDADE DE SOFTWARE

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

QUALIDADE DE PRODUTO DE SOFTWARE

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

Propostas ISO. Benefícios com a certificação. ISO/IEC 9126 Qualidade de produtos de software

Engenharia de Software

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

AVALIAÇÃO DA QUALIDADE DE UM SISTEMA ACADÊMICO: ESTUDO DE CASO NO Q- ACADÊMICO

Qualidade de Produto. Maria Cláudia F. P. Emer

QUALIDADE DE SOFTWARE DEFINIÇÕES / RESUMO. Apostilas de NORMAS, disponíveis no site do professor. Prof. Celso Candido ADS / REDES / ENGENHARIA

Introdução. Qualidade de Produto. Introdução. Introdução ISO/IEC Normas

CRITÉRIOS DA USABILIDADE Um auxílio à qualidade do software

SSC-546 Avaliação de Sistemas Computacionais

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Normas Relacionadas ao Teste de Software

Engenharia de Software II

QUALIDADE DE SOFTWARE. Prof. Emiliano Monteiro

Visão Geral da Norma ISO/IEC 12207

Introdução à Qualidade de Software

Componentes de SIs. Pessoas Organiz. Tecnologia

QUALIDADE DE SOFTWARE

Capítulo 3: Qualidade de Produto e a ISO 9126

Políticas de Qualidade em TI

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

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Norma ISO/IEC Qualidade dos Produtos de Software. Qualidade dos Produtos de Software

Verificação e Validação

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Qualidade de Software

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

Apresentação do Curso de Engenharia de Software 2

GARANTIA DA QUALIDADE REVISÕES

Qualidade de Software. MC626 Adaptado de notas de aula da Prof. Eliane Martins (

CONTPATRI Plano de Garantia de Qualidade. Versão 1.1

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

Engenharia de Software.

exatasfepi.com.br GQS Normas André Luís Duarte O que adquire entendimento ama a sua alma; o que cultiva a inteligência achará o bem.

ISO/IEC Processo de ciclo de vida

Análise de sistemas. Engenharia de Requisitos

Engenharia de Confiança. Helena Macedo Reis Luis Fernando de Souza Moro

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Engenharia de Requisitos

Processos de software

FATORES E MÉTRICAS DE QUALIDADE

Qualidade de Software. Prof. Edjandir Corrêa Costa

Ciência da Computação ENGENHARIA DE SOFTWARE. Métricas e Estimativas do Projeto

Engenharia de Software II

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

DESENHO DE CARGOS E TAREFAS

Projeto de Desenvolvimento de Software

Engenharia de Software Processo de Desenvolvimento de Software

ENGENHARIA DE REQUISITOS. SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa

Padrões de Qualidade de Software

Paradigmas de Linguagens

Processos de Validação e Verificação do MPS-Br

Normas ISO:

3. Engenharia dos requisitos de software

ISO Aécio Costa

Levantamento, Análise e Gestão Requisitos. Aula 05

Elementos Fundamentais para a Melhoria da Qualidade de Software nas Organizações de TI

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Escopo: PROCESSOS FUNDAMENTAIS

Introdução à Análise e Projeto de Sistemas

Qualidade de Software

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

2. QUESTÕES DE GERENCIAMENTO DE PROJETO DE SOFTWARE

Relatório de Avaliação do Software do TSE realizada pela Fundação COPPETEC

Estratégias de Testes Parte I

Documentação de Software. Simone Vasconcelos

ISO 9000, ISO e ISO Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

Medidas de Esforço de Desenvolvimento de Software

ISO/IEC 12207: Manutenção

Requisitos de Interfaces para Sistemas Críticos

Avaliação de Processos de Software Utilizando a Norma ISO/IEC Autor : Anisio Iahn Orientador : Everaldo Artur Grahl

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Princípios da Engenharia de Software aula 03

CASOS DE TESTE PALESTRANTE: MARCIA SILVA

Transcrição:

Qualidade de Software Visão Geral e Qualidade de Produto Profa Rosana Braga 1/2017 Material elaborado por docentes do grupo de Engenharia de Software do ICMC/USP -Atualizado pela Profa. Simone Souza em 2016

Qualidade de Software O que é qualidade de software?

Necessidade de Qualidade Na década de 80, o fator qualidade emergiu como uma necessidade básica na luta pelo mercado cada vez mais competitivo. Não basta vender barato, as novas regras de mercado são orientadas à produção de bens e serviços com qualidade, prazo de entrega determinado, atendimento correto, além de um baixo custo (Werneck 1994). 3

Definição de Qualidade Visão Popular Algo abstrato Perfeição Luxo e questão de gosto Visão Profissional Conformidade aos requisitos Adequação ao uso 4

Visão de Qualidade de Software Defeito zero Grande número de funções Codificação elegante Alto desempenho Baixo custo de desenvolvimento Desenvolvimento rápido Facilidade para o usuário (voltaremos a isso já...)

Bugs históricos Piores bugs da história do software: http://www.wired.com/software/coolapps/news/2005/11/6935 5?currentPage=all

Bugs históricos Mariner I 1962 Missão observar planeta Vênus Fórmula matemática foi equivocadamente transcrita para o computador Desviou do curso e foi destruído 4 min 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 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 reiniciar 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 Levou uma década de desenvolvimento e custou 7 bilhões de dólares. 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

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

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

Bugs Recentes Malas retidas - ano bissexto 2016 Aeroporto de Düsseldorf Alemanha Sistema de transporte de bagagem (2015) custou 70 milhões de euros não reconheceu o 29 de fevereiro. Esteiras pararam despacho manual de bagagens transportadas entre 25 mil e 50 mil malas por dia!. 1.200 malas acabaram não sendo despachadas A empresa responsável pelo software fez a reprogramação necessária, incluindo o dia 29 de fevereiro de 2016 no sistema. Daqui a quatro anos, este procedimento será novamente necessário, afirmou o porta-voz

Bugs históricos Por que essas falhas ocorrem? Poderiam ser evitadas? De quem é a culpa?

Atividades do Processo de Desenvolvimento Uma Visão Genérica: 3 Fases 1. Definição - o que Engenharia do Sistema Planejamento do Projeto Engenharia de Requisitos 2. Desenvolvimento - como Projeto Geração do Código Teste 3. Manutenção Atividades Guarda-Chuva Controle de Projeto Revisões Técnicas Formais Garantia de Qualidade Gerenciamento de Configuração Gestão de Reutilização Medição Gestão de Risco

Engenharia de Software A Engenharia de Software é uma disciplina que aplica os princípios de engenharia com o objetivo de produzir software de alta qualidade a baixo custo. O que é um software de alta qualidade?

Qualidade de Software

A Qualidade depende do Tipo de Aplicação Sistema de Missão Crítica EXEMPLO Qualidade Importante Fazer aquilo que eu quero Comportar-se com precisão Ser fácil de usar Rodar bem no hardware Fácil de alterar Software Embarcado

A Qualidade depende do Tipo de Aplicação Software para Folha de Pagamento EXEMPLO Qualidade Importante Fazer aquilo que eu quero Se comportar com precisão Ser fácil de usar Rodar bem no hardware Fácil de alterar Software Interativo com o usuário

Qualidade de Software Qualidade é um termo que pode ter diferentes interpretações.

Qualidade de Software A qualidade de um projeto engloba o grau de atendimento às funções e características especificadas no modelo de requisitos [Pressman,2011] satisfação do usuário = produto compatível + boa qualidade + entrega no prazo + entrega dentro do orçamento

Aspectos Importantes da Definição de Qualidade 1- Os requisitos de software são a base a partir da qual a qualidade é medida. A falta de conformidade aos requisitos significa falta de qualidade.

Aspectos Importantes da Definição de Qualidade 2- Padrões especificados definem um conjunto de critérios de desenvolvimento que orientam a maneira segundo a qual o software passa pelo trabalho de engenharia. Se os critérios não forem seguidos, o resultado seguramente será a falta de qualidade.

Aspectos Importantes da Definição de Qualidade 3- Existe um conjunto de requisitos implícitos que freqüentemente não são mencionados na especificação. Por exemplo, o desejo de uma boa manutenibilidade. Se o software atende aos requisitos explícitos, mas falha nos requisitos implícitos, a qualidade é suspeita.

Aspectos Importantes da Definição de Qualidade Existe, ainda, uma visão de qualidade de software do ponto de vista gerencial. O software é considerado de qualidade desde que possa ser desenvolvido dentro do prazo e do orçamento especificados.

A Qualidade depende do Ponto de Vista usuário desenvolvedor gerente O interesse fica concentrado principalmente no uso do software: facilidade de uso, requisitos atendidos. A qualidade fica mais voltada às características internas do software: legibilidade, testabilidade, eficiência. A qualidade do produto não pode ser desvinculada dos interesses da organização: custos e prazos.

Requisitos de Software Base da Qualidade Usuário PROCESSO DE SOFTWARE Desenvolvedor Requisitos Processo de Desenvolvimento Padrões Organização Requisitos atendidos SOFTWARE PRODUTO Padrões atendidos SOFTWARE COM QUALIDADE

Incorporação da Qualidade Raramente a qualidade pode ser incorporada ao produto final após o término do processo de desenvolvimento. Não pode ser imposta depois que o produto estiver finalizado.

Incorporação da Qualidade Requisitos do Usuário Produtos Intermediários Produto Final Entrega do Produto Final

Qualidade de Software DEFINIÇÃO CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO A qualidade não pode ser incorporada ao produto depois de pronto. Para que a qualidade possa ser efetivamente incorporada ao produto, ela deve ser um objetivo constante do processo de desenvolvimento.

Garantia de Qualidade In Out A Garantia da Qualidade de Software (SQA) promove visibilidade sobre o desempenho do processo utilizado pelo projeto assim como sobre a qualidade dos produtos gerados.

Qualidade de Software Qualidade de Processo de Software Norma Internacional ISO/IEC 12207 Processos de ciclo de vida de software (atividades/tarefas) CMMI MPS-BR Avaliar maturidade organizacional ou capacidade de áreas de processo e estabelecer prioridades para melhoria Norma Internacional ISO/IEC 15504 Avaliar processo com 2 objetivos: Melhoria do Processo Determinação da Capacidade Qualidade de Produto de Software Modelo de Qualidade de Produto Avaliação de Qualidade de Produto Modelo de McCALL Modelo da HEWLETT-PACKARD Norma ISO/IEC 9126-1 Estabelece atributos de qualidade, critérios e métricas para produtos de software Norma ISO/NBR 12119 Específica para pacotes de software Norma ISO/IEC 14598-1 Define um processo de avaliação de produtos de software Norma ISO/IEC 14598-5 Específica para avaliação de pacotes de software

Garantia de Qualidade In Out Como avaliar a qualidade dos produtos???

Qualidade de Produto de Software Modelo de Qualidade de Produto Avaliação de Qualidade de Produto Modelo de McCALL Modelo da HEWLETT-PACKARD Norma ISO/IEC 9126-1 Norma ISO/NBR 12119 Norma ISO/IEC 14598-1 Norma ISO/IEC 14598-5 Estabelece atributos de qualidade, critérios e métricas para produtos de software Específica para pacotes de software Define um processo de avaliação de produtos de software Específica para avaliação de pacotes de software

Garantia de Qualidade Algumas Normas 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

Norma ISO/IEC 9126 É uma referência mundial para qualidade de software ISO: The International Standardization Organization, fundada em 1947, coordena o trabalho de 127 países membros para promover a padronização de normas técnicas em âmbito mundial IEC: The International Electrotechnical Commission, fundada em 1906, conta com mais de 50 países e publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas

Norma ISO/IEC 9126 Baseada em três níveis: Características, Sub-características e Métricas. Cada característica é refinada em um conjunto de sub-características e cada subcaracterística é avaliada por um conjunto de métricas. NOTA IMPORTANTE: a ISO/IEC 9126 foi substituída em 2011 pela ISO/IEC 25010

Norma ISO/IEC 9126 característica subcaracterísticas

Norma ISO/IEC 9126 FUNCIONALIDADE - Satisfaz as necessidades implícitas e explícitas do usuário? SUBCARACTERÍSTICA PERGUNTA-CHAVE Adequação É adequado as necessidades do usuário? Acurácia Faz o que foi proposto de forma correta? Interoperabilidade É capaz de interagir com os sistemas especificados? Conformidade Segurança de Acesso Está de acordo com as normas, leis, etc. relacionadas à funcionalidade? Evita acesso não autorizado a programas e dados?

Norma ISO/IEC 9126 CONFIABILIDADE - o software, durante um período de tempo, funciona de acordo com as condições pré-estabelecidas? SUBCARACTERÍSTICA PERGUNTA-CHAVE Maturidade Com que freqüência apresenta falhas? Tolerância a Falhas Ocorrendo falhas, como ele reage? Recuperabilidade É capaz de recuperar dados após uma falha? Conformidade Está de acordo com as padrões, normas, etc. relacionadas à confiabilidade?

Norma ISO/IEC 9126 SUBCARACTERÍSTICA USABILIDADE O software é fácil de usar? PERGUNTA-CHAVE Intelegibilidade É fácil entender os conceitos utilizados? Apreensibilidade É fácil aprender a usar? Operacionalidade É fácil operar e controlar? Atratividade É atrativo ao usuário? Conformidade Está de acordo com as padrões, normas, etc. relacionadas à usabilidade?

Norma ISO/IEC 9126 EFICIÊNCIA O software não desperdiça recursos? SUBCARACTERÍSTICA PERGUNTA-CHAVE Comportamento em Qual é o tempo de resposta e de processamento? Relação ao Tempo Comportamento em Quanto recurso usa? Durante quanto Relação aos Recursos tempo? Conformidade Está de acordo com as normas, leis, etc. relacionadas à eficiência?

Norma ISO/IEC 9126 MANUTENIBILIDADE O software é fácil de alterar? SUBCARACTERÍSTICA PERGUNTA-CHAVE Analisabilidade É fácil encontrar uma falha, quando ocorre? Modificabilidade É fácil modificar e remover defeitos? Estabilidade Existe risco de efeitos inesperados quando se faz alterações? Testabilidade É fácil testar o software modificado? Conformidade Está de acordo com as normas, leis, etc.? relacionadas à manutenibilidade?

Norma ISO/IEC 9126 PORTABILIDADE - É fácil de usar em outro ambiente? SUBCARACTERÍSTICA PERGUNTA-CHAVE Adaptabilidade É fácil adaptar a ambientes diferentes? Capacidade para É fácil instalar? ser instalado Capacidade para É fácil usar para substituir outro? substituir Conformidade Está de acordo com as normas, leis, etc. relacionadas à portabilidade? Co-existência Pode coexistir com outros produtos independentes compartilhando recursos?

Métricas de Qualidade Como medir a qualidade de um software? Métricas dinâmicas Durante teste ou uso do sistema Métricas estáticas Tamanho do código, tamanho de identificadores

Métricas de Qualidade Exemplos de métricas Fan-in/fan-out Comprimento de código Complexidade ciclomática Comprimento de identificadores Profundidade de aninhamento condicional Indice Fog

Outras normas de qualidade ISO/IEC 12119, estabelece os requisitos de qualidade para pacotes de software e instruções para teste, considerando esses requisitos ISO/IEC 14598-5, define um processo de avaliação da qualidade de produto de software

Exercício: Escolha um produto de software que você usa e faça uma análise de sua qualidade, considerando cada características da ISO/IEC 9126. Identifique quais requisitos de qualidade que você consideraria caso fosse especificar a aquisição/construção desse produto.