Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Universidade Federal do Espírito Santo
Centro Tecnológico
Departamento de Informática
Programa de Pós-Graduação em Informática
Prof.: Monalessa Perini Barcellos
Disciplina: INF 6054 – Qualidade de Software
Conteúdo
1. Introdução à Qualidade de Software
2. Qualidade do Processo de Software
3. Qualidade do Produto de Software
4. Medição de Software
5. Verificação e Validação
6. Qualidade de Software e as Metodologias Ágeis
Qualidade de Software Monalessa Perini Barcellos
2
Conteúdo
1. Introdução à Qualidade de Software
1.1 O que é Qualidade de Software
1.2 Qualidade de Produto de Software e Qualidade de Processo de Software
1.3 Normas e Organismos Normativos
1.4 Qualidade x Produtividade
2. Qualidade do Processo de Software
3. Qualidade do Produto de Software
4. Medição de Software
5. Verificação e Validação
6. Qualidade de Software e as Metodologias Ágeis
Qualidade de Software Monalessa Perini Barcellos
1.1 O que é Qualidade de Software
• Em termos de área de conhecimento, a Qualidade de Software é
uma subárea da Engenharia de Software.
Ops... E o que é a Engenharia de Software?
Qualidade de Software Monalessa Perini Barcellos
3
1.1 O que é Qualidade de Software
Qualidade de Software Monalessa Perini Barcellos
• A Engenharia de Software surgiu com o objetivo de melhorar a qualidade dos
produtos de software e aumentar a produtividade no processo de desenvolvimento.
• Trata de aspectos relacionados ao estabelecimento de processos, métodos, técnicas,
ferramentas e ambientes de suporte ao desenvolvimento de software.
• Propõe a divisão do problema em problemas menores, cujas soluções devem ser
integradas por uma arquitetura. As soluções devem ser obtidas utilizando-se
procedimentos (métodos, técnicas, roteiros etc), bem como ferramentas que
automatizam o trabalho (ou parte dele). Tipicamente, são exigidas várias pessoas, cujo
esforço deve ser planejado, coordenado e acompanhado. Também é requerido que a
qualidade do que se está produzindo seja sistematicamente avaliada.
1.1 O que é Qualidade de Software
Então....
Qualidade de Software pode ser definida como a subárea da
Engenharia de Software que trata de aspectos relacionados a
processos, métodos, técnicas, ferramentas e ambientes que apoiam a
obtenção e avaliação da qualidade do produto e do processo de
software.
Qualidade de Software Monalessa Perini Barcellos
4
1.1 O que é Qualidade de Software
Mas... O que é qualidade?
Por exemplo, o que é um carro de qualidade?
Para responder a essa questão, devem ser considerados diversos
fatores, como: segurança, desempenho, beleza, conforto, tamanho e
custo, dentre outros.
Qualidade de Software Monalessa Perini Barcellos
1.1 O que é Qualidade de Software
Então, qualidade é um conceito relativo.
Está diretamente relacionada à:
Conformidade com requisitos: requisitos são especificados e
espera-se que sejam atendidos.
Satisfação do cliente: requisitos são especificados por pessoas
para satisfazer outras pessoas.
Uma especificação depende das escolhas feitas (clientes alvo).
Pode haver problemas na especificação.
Qualidade de Software Monalessa Perini Barcellos
5
1.1 O que é Qualidade de Software
Breve Histórico
• 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
1946 - ASQC (American Society for Quality Control)
1947 - ISO (International Standardization Organization)
1940 - ABNT (Associação Brasileira de Normas Técnicas)
• Ainda década de 1940: Japão destaca-se.
• Década de 1970: Qualidade de Software.
Qualidade de Software Monalessa Perini Barcellos
1.1 O que é Qualidade de Software
Qualidade de Software Monalessa Perini Barcellos
Qualidade de Software
• A Crise do Software - NATO Conference on Software Engineering (1968)
• Problemas detectados:
Cronogramas não atendidos.
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.
Para pensar: passados mais de 40 anos, o que mudou?
6
1.1 O que é Qualidade de Software
Qualidade de Software Monalessa Perini Barcellos
Retomando...
Qualidade é um conceito relativo que está diretamente relacionado à
conformidade com requisitos e à satisfação do cliente.
Como isso se manifesta em software?
Qualidade de software é um 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ários finais Desenvolvedores Usuários indiretos
E o que é um software de qualidade?
Qualidade de Software Monalessa Perini Barcellos
Desenvolvedor (perspectiva interna): “É um software fácil de manter.”
Usuário (perspectiva externa de observação pelo uso do produto): “É um software
que satisfaz minhas necessidades, é fácil de usar, eficiente e
confiável.”
Cliente (perspectiva externa de observação da qualidade em uso): “É um software
que agrega valor a meu negócio .”
1.2 Qualidade de Produto x Qualidade de Processo
7
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Então:
Qualidade de software é um conceito com múltiplas facetas (perspectivas de
usuário, desenvolvedor e cliente) e que envolve diferentes características (por
exemplo, usabilidade, confiabilidade, eficiência, manutenibilidade, portabilidade, segurança,
produtividade) que devem ser alcançadas em níveis diferentes, dependendo do
propósito do software.
Note que esse conceito foca produto.
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Então:
Qualidade de software é um conceito com múltiplas facetas (perspectivas de
usuário, desenvolvedor e cliente) e que envolve diferentes características (por
exemplo, usabilidade, confiabilidade, eficiência, manutenibilidade, portabilidade, segurança,
produtividade) que devem ser alcançadas em níveis diferentes, dependendo do
propósito do software.
Note que esse conceito foca produto.
Como garantir que o produto de software tenha qualidade?
8
Qualidade do Produto de Software
relaciona-se diretamente com a
Qualidade do Processo de Software
Melhorando a qualidade do processo de software, é possível melhorar a
qualidade dos produtos resultantes.
• A premissa por detrás dessa afirmativa é a de que processos bem estabelecidos, que
incorporam mecanismos sistemáticos para acompanhar o desenvolvimento e
avaliar a qualidade, no geral, conduzem a produtos de qualidade.
• 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.
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
De modo geral, o que é um PROCESSO?
Uma receita de bolo é um processo?
A abertura de uma conta em um banco é um processo?
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
9
• Um processo de software pode ser visto como o conjunto de atividades,
métodos, práticas e transformações que guiam pessoas na produção de software.
• Um processo eficaz deve, claramente, considerar as relações entre as atividades,
os artefatos produzidos no desenvolvimento, as ferramentas e os procedimentos
necessários e a habilidade, o treinamento e a motivação do pessoal envolvido.
De modo geral, o que é um PROCESSO?
Uma receita de bolo é um processo?
A abertura de uma conta em um banco é um processo?
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Elementos que compõem um processo de software:
Exemplo:
Atv1. Realizar levantamento de requisitos.
Pré-Atividade: Atv0
Insumo: Documento Planejamento de Entrevista
Produto: Documento Registro de Entrevista.
Recurso Humano: Analista de Sistemas
Procedimento: Técnica para Realização de Entrevistas
Atv2. Documentar requisitos.
Pré-Atividade: Atv1
Insumo: Documento Registro de Entrevista.
Produto: Especificação Textual de Requisitos.
Recurso Humano: Analista de Sistemas
Procedimento: Roteiro para Elaboração da Especificação Textual de
Requisitos.
Processo de Software
Processos
Atividades
Pré-atividades
Subatividades
Artefatos
Insumos
Produtos
Recursos
Recursos Humanos
Ferramentas de Software
Hardware
Procedimentos
Métodos
Técnicas
Roteiros
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
10
Um processo de software, em uma abordagem de Engenharia de Software, envolve
diversas atividades que podem ser classificadas quanto ao seu propósito em:
i. Atividades de Desenvolvimento (ou Técnicas ou de Construção): são as atividades
diretamente relacionadas ao processo de desenvolvimento do software, ou seja,
que contribuem diretamente para o desenvolvimento do produto de software a
ser entregue ao cliente. Ex.: especificação e análise de requisitos, projeto e
implementação.
ii. Atividades de Gerência de Projeto: são aquelas relacionadas ao planejamento e
acompanhamento gerencial do projeto, tais como realização de estimativas,
elaboração de cronogramas, análise dos riscos do projeto etc.
iii. Atividades de Garantia da Qualidade: são aquelas relacionadas com a garantia da
qualidade do produto em desenvolvimento e do processo de software utilizado,
tais como revisões e inspeções de produtos (intermediários ou finais) do
desenvolvimento.
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Atividades do processo de software:
Atividades de Desenvolvimento
Atividades de Gerência
Atividades de Garantia da Qualidade
Produto de
Software
As Atividades de Gerência e as
Atividades de Garantia da
Qualidade são chamadas de
―atividades guarda-chuva‖, pois
―cobrem‖ todo o processo de
desenvolvimento.
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
11
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.
Mas... Como definir um processo de software?
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Há várias maneiras diferentes de fazer um bolo de chocolate.
Pessoas alérgicas a leite precisam de receitas que não incluam leite.
Pessoas diabéticas precisam de receitas que não incluam açúcar.
Há várias formas diferentes de abrir uma conta bancária.
Algumas pessoas podem abrir contas apenas para receberem seus salários.
Algumas pessoas podem abrir contas com vantagens especiais, como limite de
crédito.
Processos de software podem ter diversas definições distintas.
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
12
O que deve ser considerado para definir um processo de software?
• Características da aplicação (domínio do problema, tamanho, complexidade etc)
• Tecnologia a ser adotada na sua construção (paradigma de desenvolvimento,
linguagem de programação, mecanismo de persistência etc)
• Organização onde o produto será desenvolvido
• Características da equipe
• Estabilidade dos requisitos
• Outros
Qualidade de Software Monalessa Perini Barcellos
1.2 Qualidade de Produto x Qualidade de Processo
Existem Normas e Modelos de Qualidade que apoiam a definição de processos de software.
• 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.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
13
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.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
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).
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
14
ISO - International Standardization Organization
• Criada em 1946, começou a funcionar em 1947.
• Conta atualmente com mais de 18.500 documentos internacionais de
padronização*, tendo mais de 160 países participantes e mais de 50.000
especialistas que contribuem no mundo inteiro para a criação e
verificação dos documentos.
• Cada país participante possui um órgão membro da ISO.
• No Brasil esse órgão é a ABNT.
* Cerca de 1100 novos documentos são publicados por ano.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
A ISO e as Normas Relacionadas à 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 à TI e é dividido em
subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho
(working groups – WG).
• 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*Existente desde 1906.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
15
Identificação de uma Norma ISO
ISO: significa que é uma norma ISO.
IEC: significa que foi estabelecida em conjunto com a IEC.
NBR: significa que é uma norma brasileira.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
Exemplos:
ISO 9001 - Quality Management Systems – Requirements
ISO/IEC 15504 - Information Technology — Process Assessment
NBR ISO 9001 - Sistemas de Gestão da Qualidade – Requisitos
NBR ISO/IEC 12207 - Engenharia de Sistemas e Software - Processos de Ciclo de Vida de Software
- Algumas normas trazem o ano para identificar sua versão.
- Algumas normas são divididas em partes.
- FDIS : significa que a norma está em estágio final de edição. A norma propriamente
dita poderá conter modificações editoriais em relação a esta versão.
- TR: significa que o documento é um relatório técnico.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
ISO 9001:2000 - Quality Management Systems – Requirements
ISO 9001:2008 - Quality Management Systems – Requirements
ISO/IEC 15504-1 - Information Technology - Process Assessment - Part 1: Concepts and Vocabulary
ISO/IEC 15504-2 - Information Technology - Process Assessment - Part 2: Performing an Assessment
ISO/IEC FDIS 15504-1.6 - Information Technology - Process Assessment - Part 1: Concepts and Vocabulary
ISO/IEC 90003:2004 - Software Engineering - Guidelines for the Application of ISO 9001:2000 to Computer
Software
16
Etapas de criação de uma Norma
• Uma norma possui pelo menos um editor e um ou mais
coeditores, que são pessoas de conhecimento técnico reconhecido
e podem se dedicar ao projeto.
• O editor (junto com os coeditores) é 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.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
Criação das 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).
• O trabalho segue em ciclos de modificação e uma data é fixadapara votação.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
17
Criação das Normas ISO/IEC
• Passada a votação, o documento atinge o estágio de esboço denorma internacional (Draft International Standard – DIS), quandopassa por um novo ciclo de análise e modificações.
• Passada uma nova votação que aprova o documento no estágio deesboço finalizado (Final DIS – FDIS), apenas modificações decaráter editorial podem ser efetuadas.
• Finalmente a norma é publicada como Norma Internacional(International Standard – IS) ou como relatório técnico (TechnicalReport – TR).
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
Uso das Normas pelas Organizações
• Duas etapas gerais: 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.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
18
Processo de Certificação
1. A empresa estabelece o seu sistema da qualidade.
2. A empresa faz uma solicitação formal a um órgão certificador.
3. O órgão certificador faz uma primeira visita à empresa para colher mais dados e explicar o
processo de certificação.
4. Pré-análise: o órgão certificador verifica se a documentação do sistema da qualidade está de
acordo com a norma e gera um relatório de não conformidades.
5. A empresa realiza ajustes em seu sistema de qualidade.
6. Avaliação: o órgão certificador envia uma equipe à empresa com fins de auditoria. A equipe
gera um novo relatório de não conformidades e decide:
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.
7. Durante a validade da certificação, o órgão certificador realiza visitas periódicas à empresa para assegurar que o sistema continua sendo efetivo.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
IEEE - Institute of Electrical and Electronics Engineers
• Possui mais de 395.000 membros em 160 países.
• Possui um comitê para estabelecimento de padrões em Engenharia de
Software de Software e Sistemas (Software & Systems Engineering
Standards Committee – S2ESC)
• Exemplos de padrões estabelecidos pelo S2ESC:
IEEE Std 1061-1998- IEEE Standard for a Software Quality Metrics Methology
IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Specifications
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
19
Outros Organismos
• SEI – Software Engineering Institute – Carnegie Melon University – responsável pelo
CMMI.
• Softex (Sociedade Brasileira para Promoção da Exportação de Software) –
responsável pelo MR MPS.BR.
• Prodfor (Programa Integrado de Desenvolvimento da Qualificação de
Fornecedores) - responsável pela certificação SGQF (Sistema de Gestão da
Qualidade em Fornecimento), exigida por alguns órgãos capixabas.
Qualidade de Software Monalessa Perini Barcellos
1.3 Normas e Organismos Normativos
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Qualidade Produtividade
=
20
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Qualidade Produtividade
=
!
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
• O objetivo da Engenharia de Software é melhorar a qualidade dos produtos de
software e aumentar a produtividade no processo de desenvolvimento. Então:
Qualidade Produtividade
=
21
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Alguns resultados de pesquisa realizada com empresas que implementaram
práticas do MPS.BR entre 2008 e 2009
Fonte: http://www.softex.br/mpsbr
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Situação das empresas após os primeiros passos da implantação das práticas
de melhoria (MPS.BR Nível G)
22
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Situação das empresas após os primeiros passos da implantação das práticas
de melhoria (MPS.BR Nível F)
Qualidade de Software Monalessa Perini Barcellos
1.4 Qualidade x Produtividade
Situação das empresas após a manutenção/evolução das práticas de melhoria
(revalidação/evolução de nível)
23
Universidade Federal do Espírito Santo
Centro Tecnológico
Departamento de Informática
Programa de Pós-Graduação em Informática
Prof.: Monalessa Perini Barcellos
Disciplina: INF 6054 – Qualidade de Software