introdução à qualidade de software ricardo de almeida falbo tópicos especiais – qualidade de...

30
Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal do Espírito Santo

Upload: internet

Post on 17-Apr-2015

131 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Introdução à Qualidade de Software

Ricardo de Almeida Falbo

Tópicos Especiais – Qualidade de Software 2007/1

Departamento de InformáticaUniversidade Federal do Espírito Santo

Page 2: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 2

Agenda O que é Qualidade? O que é Qualidade de Software? Qualidade do Produto e do Processo Normas e Organismos Normativos

Page 3: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 3

O que é Qualidade?

O que um determinado produto apresenta para considerarmos que o mesmo tem qualidade? Ex.: Carro

Qualidade é um conceito relativo. Diversos aspectos são levados em conta. No caso de um automóvel, fatores como conforto, segurança, desempenho, beleza e custo têm estreita relação com a qualidade.

Page 4: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 4

O que é Qualidade?

Qualidade está fortemente relacionada à conformidade com os requisitos.

O que é “conformidade em relação a requisitos”? observado x especificado.

Pode haver problemas na observação. Pode haver problemas na especificação.

Page 5: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 5

O que é Qualidade? Qualidade diz respeito à satisfação do cliente.

Requisitos são especificados por pessoas e com o objetivo de satisfazer outras pessoas.

Uma especificação depende das escolhas feitas (clientes alvo).

Pode haver problemas na especificação.

Page 6: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 6

Breve Histórico da Qualidade Relatos Históricos de 4.000 anos atrás no Egito. Marco Importante: Revolução Industrial 1920: Controle Estatístico da Produção 1940: Surgimento de vários organismos ligados à

qualidade ASQC (American Society for Quality Control ABNT (Associação Brasileira de Normas Técnicas) ISO (International Standardization Organization)

Ainda década de 1940: Japão destaca-se. Década de 1970: Qualidade de Software

Page 7: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 7

O que é Qualidade de Software? Conferência da NATO (1968) – Crise de Software Problemas detectados:

Cronogramas não observados. Projetos abandonados. Módulos que não operam corretamente quando

combinados. Programas que não fazem exatamente o que era

esperado. Sistemas tão difíceis de usar que são descartados. Sistemas que simplesmente param de funcionar.

Passados quase 40 anos, o que mudou?

Page 8: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 8

O que é Qualidade de Software? Qualidade em geral:

é um conceito relativo. está fortemente relacionada à conformidade com

requisitos. diz respeito à satisfação do cliente.

Como isso se manifesta em software?

Page 9: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 9

O que é Qualidade de Software? O aspecto não repetitivo do desenvolvimento de

software torna essa atividade difícil e em boa medida imprevisível.

Delimitar o escopo de um sistema não é trivial.

A volatilidade dos requisitos é lugar comum no desenvolvimento de software.

Page 10: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 10

O que é Qualidade de Software? Fatores que afetam o desenvolvimento e que

influenciam no julgamento dos usuários: Tamanho e complexidade do software; Número de pessoas envolvidas no projeto; Métodos, técnicas e ferramentas utilizadas; Custo x benefício do sistema; Custos associados à existência de erros; Custos associados à detecção e remoção de erros; Etc.

Page 11: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 11

O que é Qualidade de Software?

Conjunto de características a serem satisfeitas em um determinado grau, de modo que o software satisfaça às necessidades de seus usuários.

UsuáriosFinais

Desenvolvedores

UsuáriosIndiretos

Page 12: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 12

Qualidade do Produto x Qualidade do Processo de Software

Qualidade do produto de software não se atinge de forma espontânea.

A qualidade do produto depende fortemente da qualidade do processo de desenvolvimento.

Page 13: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 13

Qualidade do Processo de Software

Um bom processo não garante que os produtos produzidos são de boa qualidade, mas é um indicativo de que a organização é capaz de produzir bons produtos.

Page 14: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 14

Qualidade do Processo de Software

Motivação para a busca da Qualidade do Processo de Software:

Aumento da qualidade do produto. Diminuição do retrabalho. Maior produtividade. Redução do tempo para atender o mercado (time to

market). Maior competitividade. Maior precisão nas estimativas.

Page 15: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 15

Qualidade do Processo de Software

A implantação de um Programa de Qualidade começa pela definição e implantação de um processo de software.

O processo de software deve estar documentado, ser compreendido e seguido.

Page 16: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 16

O que é Processo de Software? Processos de Software devem estabelecer:

atividades a serem realizadas durante o processo, sua estrutura e organização (decomposição e precedência), incluindo a definição de um modelo de ciclo de vida quando pertinente (ex.: processo de desenvolvimento);

artefatos requeridos e produzidos por cada uma das atividades do processo;

procedimentos (métodos, técnicas, roteiros e padrões) a serem adotados na realização das atividades;

recursos necessários (humanos, hardware e software) para a realização das atividades.

Page 17: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 17

Estrutura do Processo de Software

Processo de Software Sub-processos (Desenvolvimento, Manutenção, etc)

Atividades Sub-atividades Pré-atividades Artefatos

Insumos Produtos

Recursos Humanos Software Hardware

Procedimentos Métodos Técnicas Roteiros

Page 18: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 18

Exemplo de Processo de Software

Processo de Software Processo de Desenvolvimento

Análise e Especificação de Requisitos Projeto

Projeto Arquitetural Pré-atividade: Análise e Especificação de Requisitos Insumo: Documento de Especificação de Requisitos Produto: Documento de Arquitetura do Sistema Recurso Humano: Projetista de Software Ferramenta de Software: Ferramenta de Modelagem UML Técnica: Modelagem de Objetos

Projeto Detalhado Implementação Testes Implantação

Page 19: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 19

Como definir um processo? Processos têm de ser definidos caso a caso,

levando-se em consideração as características específicas do projeto em questão: equipe, domínio de aplicação, tipo de software, tecnologias a serem adotadas, restrições de negócio (cronograma, custo, qualidade) etc.

Apoio de Normas e Modelos de Qualidade de Processos de Software.

Page 20: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 20

Normas e Organismos Normativos

Normas internacionais de qualidade são criadas no trabalho voluntário de especialistas do mundo todo.

Essas normas tornaram-se a base para especificar produtos, organizar o fornecimento de serviços e até mesmo para a elaboração de legislação em vários países.

Page 21: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 21

Padrões de Facto

Muitas vezes padrões surgem espontaneamente, a partir de uma necessidade ou como uma solução amplamente adotada quando comparada a outras alternativas.

Padrões de facto são padrões aplicados na prática, mas que não foram formalizados como um regulamento.

Podem ser criados involuntariamente ou por razões comerciais.

Page 22: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 22

Padrões de Jure

São criados de maneira formal, regulamentada. São escritos seguindo regulamentos e aprovados

por instituições reconhecidas publicamente como capacitadas para tal (ex., ISO, IEEE etc).

Page 23: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 23

ISO

International Standardization Organization. Criada em 1946, começou a funcionar em 1947. Conta atualmente com mais de 15.000

documentos internacionais de padronização, tendo aproximadamente 150 países participantes e cerca de 50.000 especialistas que contribuem no mundo inteiro para a criação e verificação dos documentos.

Page 24: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 24

A ISO e as Normas Relacionadas a TI

A ISO criou com a IEC (International Eletrotechnical Commission) a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee 1).

O JTC1 é responsável pela criação de normas relacionadas a TI e é dividido em subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho (working groups – WG).

Page 25: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 25

A ISO e as Normas Relacionadas a QS

A subcomissão SC-7 (Engenharia de Software e de Sistemas) trata das normas relacionadas à qualidade de software.

Alguns grupos de trabalho da SC-7: WG-2: Documentação de Sistemas WG-6: Avaliação e Métricas WG-7: Gerência do Ciclo de Vida WG-12: Medição do Tamanho Funcional

Page 26: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 26

Etapas na Criação de uma Norma

Uma norma possui pelo menos um editor e um ou mais co-editores, que são pessoas de conhecimento técnico reconhecido e podem se dedicar ao projeto.

O editor (junto com os co-editores) é responsável pela escrita do primeiro esboço do documento.

Esse esboço é distribuído para análise pelos grupos de trabalho internacionais.

A partir daí, sugestões de modificações são submetidas, avaliadas e introduzidas, em um ciclo que culmina com a versão final.

Page 27: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 27

A Criação de Normas ISO/IEC

Assim que uma nova proposta de item de trabalho (New Work Item proposal - NWI) é aprovada, um grupo de trabalho (WG) e um líder são designados.

Um grupo de especialistas produz um esboço de trabalho (Working Draft – WD) que é refinado até atingir o grau de maturidade de esboço do comitê (Committee Draft – CD), quando é enviado aos grupos de trabalho internacionais (WGs).

Page 28: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 28

A Criação de Normas ISO/IEC

O trabalho segue em ciclos de modificação e uma data é fixada para votação.

Passada a votação, o documento atinge o estágio de esboço de norma internacional (Draft International Standard – DIS), quando passa por um novo ciclo de análise e modificações.

Passada uma nova votação que aprova o documento no estágio de esboço finalizado (Final DIS – FDIS), apenas modificações de caráter editorial podem ser efetuadas.

Finalmente a norma é publicada como Norma Internacional (International Standard – IS) ou como relatório técnico (Technical Report – TR).

Page 29: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 29

Uso de Padrões

Adequação x Certificação. Adequação: deve preceder a certificação e

consiste em colocar em prática, total ou parcialmente, aquilo que é nela proposto.

Certificação: Envolve a participação de um organismo ou empresa externa que possa atestar que a empresa candidata segue efetivamente o padrão.

Page 30: Introdução à Qualidade de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal

Tópicos Especiais - Qualidade de Software 2007/1 30

Certificação

Pré-análise Relatório de não-conformidades. Ajustes Avaliação Relatório de não-conformidades +

Recomendação, que pode ser: Certificar a empresa, sugerindo apenas pequenas

correções a serem realizadas. Certificar a empresa, porém sob a condição de que

certas correções sejam efetuadas. Não certificar a empresa, recomendando uma nova

etapa de adequação à norma antes de uma nova tentativa de certificação.

Acompanhamento durante a validade da certificação.