INF2922 Qualidade de Sistemas de Software Contemporâneos ... › ~kalinowski › INF2922 ›...

146
INF2922 Qualidade de Sistemas de Software Contemporâneos Apresentação da Disciplina Prof. Marcos Kalinowski | LES/DI/PUC-Rio [email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Transcript of INF2922 Qualidade de Sistemas de Software Contemporâneos ... › ~kalinowski › INF2922 ›...

INF2922 Qualidade de Sistemas de Software Contemporâneos

Apresentação da Disciplina

Prof. Marcos Kalinowski | LES/DI/PUC-Rio

[email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Apresentações

2019 2Marcos Kalinowski © LES/DI/PUC-Rio

• Marcos Kalinowski

– Professor da área de Engenharia de Software

– Principais áreas de atuação:

• Engenharia de Software Experimental

• Qualidade de Software

– Mais informações: http://www.inf.puc-rio.br/~kalinowski

• Quem são vocês?

– Experiência, interesses, ...

Objetivo

• Discutir o estado da prática e da arte a respeito de:

– Modelos e normas de qualidade do processo e do produto de

software

– Métodos, técnicas e ferramentas para o planejamento e

controle da qualidade de produtos de software

• No contexto de sistemas de software contemporâneos

3Marcos Kalinowski © LES/DI/PUC-Rio2019

Ementa

• Conceituação de qualidade de software

• Modelos e normas de qualidade do processo

• Modelos e normas de qualidade do produto

• Planejamento da qualidade do produto

– Objetivos e requisitos de qualidade

– Planejamento da verificação e validação

2019 4Marcos Kalinowski © LES/DI/PUC-Rio

Ementa (cont.)

• Controle da qualidade do produto

– Fundamentos do controle da qualidade

– Avaliação e medição da qualidade do produto

– Revisões de software

– Análise estática

– Teste de software

– Análise causal e prevenção de defeitos

– Tópicos em robustez e confiabilidade

2019 5Marcos Kalinowski © LES/DI/PUC-Rio

Ementa (cont.)

• Controle da qualidade de sistemas de software

contemporâneos

– Arquiteturas de microserviços

– Blockchain

– Deep learning

– Sistemas autônomos inteligentes

– Outros

2019 6Marcos Kalinowski © LES/DI/PUC-Rio

Avaliação

• Grau Final = (Avaliação1 + Avaliação2) / 2

– Avaliação1 = Participação em aula e atividades práticas

– Avaliação2 = Apresentação dos tópicos de interesse

• Para ser aprovado o aluno deverá alcançar um Grau Final

igual ou maior do que 6.

2019 7Marcos Kalinowski © LES/DI/PUC-Rio

Bibliografia

• Bibliografia básica:

– WAGNER, S.; "Software Product Quality Control". Springer, 1st Edition,

ISBN 978-3642385704. 2013.

• Bibliografia complementar:

– CMMI Institute, "CMMI Development V2.0".

– DELAMARO, M.E.; MALDONADO, J.C.; JINO, M.; "Introdução ao Teste

de Software". Elsevier Editora, 2a Edição, 2016.

– MYERS, G.; BADGETT, T.; THOMAS, T.; SANDLER, C.; "The Art of

Software Testing". Wiley, 3rd Edition, 2012.

– TIAN, J.; “Software Quality Engineering”, Wiley-Interscience, ISBN:

978-0471713456. 2005.

– SOFTEX; "Guias do MPS.BR (Guia Geral e Guias de Implementação do

Modelo MPS-SW)". Disponíveis gratuitamente online.

– Artigos científicos diversos.

8Marcos Kalinowski © LES/DI/PUC-Rio2019

2019 9Marcos Kalinowski © LES/DI/PUC-Rio

Perguntas?

INF2922 Qualidade de Sistemas de Software Contemporâneos

Motivação

Prof. Marcos Kalinowski | LES/DI/PUC-Rio

[email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Conteúdo enriquecido com material gentilmente cedido pelo Prof.

Aumento da qualidade do produto

Diminuição do retrabalho

Maior produtividade

Redução do tempo para atender o mercado

Maior competitividade

Maior precisão nas estimativas

Qualidade do processo (Expectativa)

Motivação para a Qualidade de Software

112019 Marcos Kalinowski © LES/DI/PUC-Rio

O interesse no processo de software está

baseado em duas premissas:

a qualidade de um produto de software é fortemente

dependente da qualidade do processo pelo qual ele é

construído e mantido

o processo de software pode ser definido, gerenciado, medido

e melhorado

Um processo definido está descrito em

detalhes de forma a poder ser usado de

forma consistente.

Motivação para a Qualidade de Software

122019 Marcos Kalinowski © LES/DI/PUC-Rio

A implantação de um Programa de Qualidade

normalmente começa pela definição e

implantação de um processo de software

O processo de software deve estar

documentado, ser compreendido e seguido.

Motivação para a Qualidade de Software

132019 Marcos Kalinowski © LES/DI/PUC-Rio

Características

ad hoc - improvisado

fortemente dependente dos profissionais

indisciplinado

Consequências (esperadas)

pouca produtividade

qualidade de difícil previsão

alto custo de manutenção

risco na adoção de novas tecnologias

...

Processo Imaturo

142019 Marcos Kalinowski © LES/DI/PUC-Rio

Características

processo conhecido por todos

apoio visível da alta administração

auditagem da fidelidade ao processo

medidas do produto e do processo

adoção disciplinada de tecnologias

Consequências (esperadas)

papéis e responsabilidades claramente definidos

acompanhamento da qualidade do produto e da

satisfação do cliente

expectativas para custos, cronograma,

funcionalidades e qualidade do produto é

usualmente alcançada

...

Processo Maduro

152019 Marcos Kalinowski © LES/DI/PUC-Rio

Pesquisa iMPS

• Pesquisa realizada anualmente para acompanhar e

evidenciar resultados de desempenho nas empresas de

software que adotaram o modelo MPS

• Disponível em http://www.softex.br/mpsbr/

16

Travassos, G.H., Kalinowski, M. “iMPS 2013: Evidências

Sobre o Desempenho das Empresas que Adotaram o

Modelo MPS-SW”. Campinas: SOFTEX, 2014 (ISBN: 978-

85-99334-75-1), 102p.

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Resultados de Desempenho das Empresas que Adotaram o MPS-SW

• Tendência a obter:

– Maior satisfação dos seus clientes

– Maior produtividade

– Maior capacidade para tratar projetos grandes

– Retorno do investimento (ROI)

– Melhoras no custo e na qualidade

172019 Marcos Kalinowski © LES/DI/PUC-Rio

Resultados de Desempenho das Empresas que Adotaram o MPS-SW

• Tendência a obter:

– Maior satisfação dos seus clientes

– Maior produtividade

– Maior capacidade para tratar projetos grandes

– Retorno do investimento (ROI)

– Melhoras no custo e na qualidade

182019 Marcos Kalinowski © LES/DI/PUC-Rio

Possíveis Ganhos na Evolução nos Níveis de Maturidade do MPS-SW

• Tendência a obter:

– Maior número de clientes

– Maior número de projetos

– Maior número de funcionários

– Maior capacidade para tratar projetos grandes

– Maior precisão nas estimativas de prazo

192019 Marcos Kalinowski © LES/DI/PUC-Rio

Possíveis Ganhos na Evolução nos Níveis de Maturidade do MPS-SW

• Tendência a obter:

– Maior número de clientes

– Maior número de projetos

– Maior número de funcionários

– Maior capacidade para tratar projetos grandes

– Maior precisão nas estimativas de prazo

202019 Marcos Kalinowski © LES/DI/PUC-Rio

Momento de Reflexão

• Investir na melhoria do processo garante a

qualidade do produto?

212019 Marcos Kalinowski © LES/DI/PUC-Rio

Momento de Reflexão

• Um estudo informal relacionando defeitos em testes de

aceitação com o nível de maturidade de empresas no CMMI-

Dev indicou tendência de melhora na qualidade do produto

(Wagner, 2013)

• Resultados da pesquisa iMPS indicam tendência similar para

o MPS-SW (Travassos e Kalinowski, 2014)

• mas ...

222019 Marcos Kalinowski © LES/DI/PUC-Rio

Momento de Reflexão

232019 Marcos Kalinowski © LES/DI/PUC-Rio

Foco na Qualidade do Produto

• Diversos fatores influenciam a qualidade do produto e ela

precisa ser avaliada e monitorada também diretamente.

(Wagner, 2013)

– Requisitos de qualidade de produtos devem ser definidos e seu

alcance monitorado ao longo da execução do projeto (Tian,

2005)

• definir precisamente o que é esperado

– Especificar!!!

• Qualidade do produto:

– Conjunto de características que devem ser alcançadas em

determinado grau para que o produto atenda às necessidades

de seus usuários (Rocha et al., 2001)

242019 Marcos Kalinowski © LES/DI/PUC-Rio

Que características?

• Norma ISO 25010 – Software Product Quality Model

– Sobrepõe a antiga série ISO 9126

– Possui 8 características de qualidade principais para produtos

de software e suas sub-características

2019 25Marcos Kalinowski © LES/DI/PUC-Rio

Figura retirada de (Mendoza et al., 2019)

A Norma ISO 25010 em Contexto

• Normas SQuaRE (Software product QUality Requirements

and Evaluation)

2019 26Marcos Kalinowski © LES/DI/PUC-Rio

Requisitos de

Qualidade2503n

Modelo de Qualidade

2501n

Gerenciamento da Qualidade

2500n

Medições2502n

Avaliação

2504n

Foco na Qualidade do Produto

• Como alcançar os requisitos de qualidade definidos?

– Definir precisamente o que é esperado

• Especificar (de forma testável)

– Desenvolver e manter o sistema de modo que contenha muito poucos

defeitos já desde o início

• Investir na prevenção de defeitos e aproximar-se o quanto for possível de

correto por construção

– ideal zero defeitos, por enquanto uma utopia

– Avaliar continuamente, desde a primeira especificação até a

descontinuação, a satisfação de:

• desejos e expectativas dos interessados (usuários)

• requisitos da interface humano computador

• requisitos funcionais

• requisitos não funcionais

• arquitetura e projeto

• corretude dos procedimentos (algoritmos)

272019 Marcos Kalinowski © LES/DI/PUC-Rio

Como Controlar a Qualidade de Software?

• Saber raciocinar sobre artefatos

• Ler e criticar construtivamente os diversos artefatos

– Revisões e inspeções, medição estática

• Testar de forma sistemática

– Formular casos de teste que testem algo relevante

• Automatizar os testes sempre que possível

• Utilizar testes como técnicas de apoio ao desenvolvimento

– Estabelecer uma estratégia de teste

– Ao especificar sempre perguntar: como posso testar isso?

• Utilizar instrumentos como mecanismos de apoio ao

desenvolvimento e de controle continuado da execução

– Técnicas formais leves

• Desenvolver visando manutenibilidade

28Marcos Kalinowski © LES/DI/PUC-Rio2019

Porque Utilizar Métodos de V&V?

• A utilização destes métodos na indústria têm mostrado resultados

positivos considerando tanto produtividade quanto qualidade

• Resultados de estudos experimentais evidenciam benefícios da

utilização destes métodos no desenvolvimento de software

• Diversas evidências relacionadas a V&V foram obtidas ao longo dos

anos de pesquisa em engenharia de software

292019 Marcos Kalinowski © LES/DI/PUC-Rio

Curiosidades

• O desenvolvimento de programas de boa qualidade sob a ótica da

programação modular, provê um dos alicerces para desenvolver

software correto por construção (von Staa, 2000)

• Prevenção de defeitos é usualmente mais eficaz que a remoção de

defeitos (Mays, 1990) (Kalinowski et al., 2012)

• Qualidade do processo tende a melhorar a produtividade

(Travassos e Kalinowski, 2014)

• Inspeções aumentam significativamente a produtividade,

qualidade e estabilidade dos projetos (Fagan, 1976)

• Inspeções e Testes encontram diferentes tipos de defeitos (Hetzel,

1976 & Meyer, 1978)

• Testes podem revelar a presença, mas não a ausência de defeitos

(Dijkstra, 1970)

302019 Marcos Kalinowski © LES/DI/PUC-Rio

Curiosidades

• Um desenvolvedor não é indicado para testar seu próprio software

(Weinberg, 1971)

• Aproximadamente 80% dos defeitos são provenientes de 20% dos

módulos (Pareto, 1897) (Endres, 1975)

• Usabilidade é quantificável (Nielsen, 1994)

• Corrigir um defeito após a entrega do produto é frequentemente

100 vezes mais caro do que corrigi-lo durante as atividades de

requisitos e projeto do sistema (Boehm, Basili, 2001)

312019 Marcos Kalinowski © LES/DI/PUC-Rio

INF2922 Qualidade de Sistemas de Software Contemporâneos

Qualidade de Processos

Prof. Marcos Kalinowski | LES/DI/PUC-Rio

[email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Conteúdo enriquecido com material gentilmente cedido pelo Prof.

Ciclo: Definição, Uso, Medição, Controle e Melhoria do Processo

33

Executar o

Processo

Definir o

Processo

Medir o

Processo

Melhorar o

Processo

Controlar o

Processo

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Definição do Processo

• Razões para a definição de processos de Engenharia de

Software:

– facilitar o entendimento e a comunicação entre pessoas

– apoiar a melhoria dos processos

– apoiar a gerência dos processos

– fornecer apoio automatizado guiando no processo

– fornecer apoio na execução automatizada do processo

342019 Marcos Kalinowski © LES/DI/PUC-Rio

35

Executar o

Processo

Definir o

Processo

Medir o

Processo

Melhorar o

Processo

Controlar o

Processo

Ciclo: Definição, Uso, Medição, Controle e Melhoria do Processo

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Medição do Processo (Abordagens)

• Metodologia para medição do processo (GQM & PSM)

• Paradigmas para medição do processo

– Paradigma analítico

baseia-se em evidência quantitativa para determinar onde as melhorias

são necessárias e se as iniciativas de melhoria foram bem sucedidas

• estudos experimentais

• simulação

• classificação de defeitos (falhas causas)

• controle estatístico do processo

– Benchmarking

envolve medir a maturidade de uma organização ou a capacidade de

seus processos

• Normas e modelos para apoiar a avaliação de processos: ISO 9001,

MPS-SW, CMMI, ISO/IEC 33020, ISO/IEC 12207, ISO/IEC 29110

• Métodos para avaliação de processos : Benchmark appraisals,

sustainment appraisals e evaluation appraisals (substituindo as antigas

avaliações SCAMPI A, B e C) para avaliações baseadas no CMMI-Dev,

MA-MPS para avaliações baseadas no MPS-SW

362019 Marcos Kalinowski © LES/DI/PUC-Rio

37

Executar o

Processo

Definir o

Processo

Medir o

Processo

Melhorar o

Processo

Controlar o

Processo

Ciclo: Definição, Uso, Medição, Controle e Melhoria do Processo

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Controle do Processo

• Manter o processo dentro dos seus limites normais de desempenho

• O processo deve se comportar de forma consistente

• Controlar o processo envolve:– Medir o processo– Detectar variações no processo decorrentes de causas

atribuíveis– Corrigir variações no processo através da remoção de causas

atribuíveis

382019 Marcos Kalinowski © LES/DI/PUC-Rio

39

Executar o

Processo

Definir o

Processo

Medir o

Processo

Melhorar o

Processo

Controlar o

Processo

Ciclo: Definição, Uso, Medição, Controle e Melhoria do Processo

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Melhoria do Processo

• Processos podem e devem ser melhorados continuamente.

• Melhorar o processo envolve:

– Entender as características dos processos existentes e os

fatores que afetam a capacidade do processo

– Planejar e implementar ações que modifiquem o processo

para atender melhor as necessidades de negócio

– Avaliar os impactos e benefícios

40

Análise Causal para

Melhoria ContínuaInovação / Experimentação

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Modelos de Qualidade do Processo

• CMMI-Dev (versão atual 2.0, liberada em Março de 2018)

• MPS-SW (versão atual 2016, liberada em Janeiro de 2016)

412019 Marcos Kalinowski © LES/DI/PUC-Rio

CMMI-Dev: Conceitos Fundamentais

• Organizado em Áreas de Processo (Prática)

• As áreas de processo possuem:

– Propósito

– Objetivos Específicos

– Práticas

• Além disso existem Objetivos Genéricos que podem ser

aplicados a todas as área de processo

422019 Marcos Kalinowski © LES/DI/PUC-Rio

Exemplo: Área de Processo ‘Verificação’

432019 Marcos Kalinowski © LES/DI/PUC-Rio

Representações

• Em estágios (staged)

– Perspectiva de maturidade da organização.

– Enfatiza conjuntos de áreas de processo que definem estágios

de maturidade do processo.

• Contínua (continuous)

– Perspectiva de capacidade das áreas de processo.

– Mede resultados em cada área individualmente.

442019 Marcos Kalinowski © LES/DI/PUC-Rio

Processo Realizado

Práticas Genéricas

Nível 2

Processo GerenciadoProcesso Gerenciado

Práticas Genéricas

Nível 3

Processo DefinidoProcesso Definido

Práticas Genéricas

Nível 4

Processo Gerenciado

Quantitativamente

Processo Gerenciado

Quantitativamente

Práticas Genéricas

Nível 5

Processo em Otimização

Capacid

ade

45

Áreas de Processo agrupadas em Estágios

• Nível de Maturidade 2

– Gerência de Requisitos

– Planejamento do Projeto

– Monitoração e Controle do Projeto

– Gerência de Acordos com Fornecedores

– Medição e Análise

– Garantia da Qualidade do Processo e do Produto

– Gerência de Configuração

462019 Marcos Kalinowski © LES/DI/PUC-Rio

• Nível de Maturidade 3

– Desenvolvimento de Requisitos

– Solução Técnica

– Integração do Produto

– Verificação

– Validação

– Foco no Processo Organizacional

– Definição do Processo Organizacional

– Treinamento Organizacional

– Gerência de Projeto Integrada

– Gerência de Riscos

– Integração da Equipe

– Análise de Decisão e Resolução

– Ambiente Organizacional para Integração

47

Áreas de Processo agrupadas em Estágios

2019 Marcos Kalinowski © LES/DI/PUC-Rio

• Nível de Maturidade 4

– Desempenho do Processo Organizacional

– Gerência Quantitativa do Projeto

• Nível de Maturidade 5

– Inovação e Implantação Organizacional

– Análise e Resolução de Causas

48

Áreas de Processo agrupadas em Estágios

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Níveis de Maturidade em Estágios

49

Gerenciado

Definido

Gerenciado

Quantitativamente

Em Otimização

1Processo imprevisível,

pobremente controlado e

reativo

2Processo caracterizado para

projetos e muitas vezes

reativo

3Processo caracterizado para

a organização e proativo

4Processo medido e

controlado

5Foco na melhoria do

processo

Inicial

2019 Marcos Kalinowski © LES/DI/PUC-Rio

MPS.BR

Realidade das Empresas Brasileiras

ISO /IEC 12207

ISO /IEC 15504

CMMI

SOFTEX

Governo

Universidades

Base Técnica

Programa MPS.BR

502019 Marcos Kalinowski © LES/DI/PUC-Rio

Organização do Programa MPS.BR

51

SOFTEX

Equipe Técnica do

Modelo

(ETM)

Fórum de Credenciamento e Controle(FCC)

Coordenação do Programa MPS.BR(SOFTEX)

Comissão de Ética do

Programa

(CEP)

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Equipe Técnica do Modelo (ETM)

• Equipe responsável pela definição e aprimoramento do:

– MR-MPS-SW, MR-MPS-SV e MA-MPS e guias específicos

– Programa anual de treinamento MPS.BR

– Cursos, provas e workshops

522019 Marcos Kalinowski © LES/DI/PUC-Rio

Estrutura do Modelo MPS

532019 Marcos Kalinowski © LES/DI/PUC-Rio

Adoção e Disseminação do MPS-SW

542019 Marcos Kalinowski © LES/DI/PUC-Rio

Descrição dos modelos

• O modelo é descrito nos guias do MPS.BR

• Os guias gerais possuem os requisitos que devem ser

atendidos durante a implantação dos modelos

• Os guias de implementação são orientativos

• Todos os guias estão disponíveis em

http://www.softex.br/mpsbr

552019 Marcos Kalinowski © LES/DI/PUC-Rio

Guia Geral MPS de Software

56

Referências

Básicas ISO/IEC 12207:2008 e ISO/IEC 15504

Complementar CMMI-DEV

Objetivo

Descrever de forma detalhada o Modelo MPS e detalha MR-MPS-SW.

Também contém algumas definições comuns aos diversos

documentos do MPS.BR

Público alvo

• Instituições interessadas em aplicar o MR-MPS-SW para melhoria

de seus processos de software

• Instituições implementadoras e avaliadoras segundo o MR-MPS-SW

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Guia de Implementação

57

Referências

• Básicas Guia Geral MPS de Software/Serviços

• Complementar diversas

Objetivo

Fornecer orientações para implementar nas organizações os níveis de

maturidade descritos nos Modelos de Referência MR-MPS-SW/MR-MPS-SV,

detalhando os processos contemplados nos respectivos níveis de maturidade

e os resultados esperados com a implementação dos processos

Público-Alvo

• Instituições interessadas em aplicar o MR-MPS-SW/MR-MPS-SV para

melhoria de seus processos de software

• Instituições implementadoras e avaliadoras segundo o MR-MPS-SW/MR-

MPS-SV

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Estrutura do MPS-SW

58

Níveis de maturidade

Capacidade

Resultado

Processo

Propósito Atributo

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Gerenciado Quantitativamente

Parcialmente

Gerenciado

Gerenciado

Parcialmente

Definido

Largamente

Definido

Definido

Em Otimização

Níveis de Maturidade MPS-SW

59

Medição - MED / Gerência de Configuração - GCOAquisição - AQU / Garantia da Qualidade - GQAGerência de Portfólio de Projetos - GPP

Avaliação e Melhoria do Processo Organizacional - AMPDefinição do Processo Organizacional - DFPGerência de Reutilização - GRUGerência de Recursos Humanos - GRHGerência de Projetos - GPR (evolução)

Desenvolvimento de Requisitos - DREProjeto e Construção do Produto - PCPIntegração do Produto - ITPVerificação - VER / Validação - VAL

Gerência de Decisões - GDEDesenvolvimento para Reutilização - DRUGerência de Riscos - GRI

G

F

E

D

C

Gerência de Requisitos - GRE

Gerência de Projetos - GPR

A

BGerência de Projetos - GPR (evolução)

(sem processo específico)

2019 Marcos Kalinowski © LES/DI/PUC-Rio

60

CAPACIDADE

PROCESSOS

Nível Processos Capacidades (AP)

A (sem processos adicionais) 1.1, 2.1, 2.2, 3.1,3.2, 4.1*, 4.2*, 5.1*,5.2*

B Gerência de Projetos (evolução) 1.1, 2.1, 2.2, 3.1,3.2, 4.1*, 4.2*

C Gerência de Riscos, Desenvolvimento paraReutilização, Gerência de Decisões

1.1, 2.1, 2.2, 3.1, 3.2

D Desenvolvimento de Requisitos, Integração doProduto, Projeto e Construção do Produto, Validação,Verificação

1.1, 2.1, 2.2, 3.1, 3.2

E Avaliação e Melhoria do Processo Organizacional,Gerência de Projetos (evolução), Gerência deRecursos Humanos, Gerência de Reutilização,Definição do Processo Organizacional

1.1, 2.1, 2.2, 3.1, 3.2

F Aquisição, Garantia da Qualidade, Gerência deConfiguração, Gerência de Portfólio de Projetos,Medição

1.1, 2.1, 2.2

G Gerência de Projetos, Gerência de Requisitos 1.1, 2.1

* Estes APs capacitam apenas um conjunto de processos selecionado pelaorganização de acordo com seus objetivos de melhoria. Os demais APsprecisam capacitar todos os processos do nível pretendido.

Entendendo os Atributos de Processo (Capacidade)

• AP 1.1 O processo é executado

– Este atributo é uma medida do quanto o processo atinge o seu

propósito.

• AP 2.1 O processo é gerenciado

– Este atributo é uma medida do quanto a execução do processo

é gerenciada.

• AP 2.2 Os produtos de trabalho do processo são

gerenciados

– Este atributo é uma medida do quanto os produtos de trabalho

produzidos pelo processo são gerenciados apropriadamente.

612019 Marcos Kalinowski © LES/DI/PUC-Rio

Entendendo os Atributos de Processo (Capacidade)

• AP 3.1. O processo é definido

– Este atributo é uma medida do quanto um processo padrão é

mantido para apoiar a implementação do processo definido.

• AP 3.2 O processo está implementado

– Este atributo é uma medida do quanto o processo padrão é

efetivamente implementado como um processo definido para

atingir seus resultados.

622019 Marcos Kalinowski © LES/DI/PUC-Rio

Entendendo os Atributos de Processo (Capacidade)

• AP 4.1 O processo é medido

– Este atributo é uma medida do quanto os resultados de

medição são usados para assegurar que o desempenho do

processo apóia o alcance dos objetivos de desempenho

relevantes como apoio aos objetivos de negócio definidos.

• AP 4.2 O processo é controlado

– Este atributo é uma medida do quanto o processo é controlado

estatisticamente para produzir um processo estável, capaz e

previsível dentro de limites estabelecidos.

632019 Marcos Kalinowski © LES/DI/PUC-Rio

Entendendo os Atributos de Processo (Capacidade)

• AP 5.1 O processo é objeto de inovações

– Este atributo é uma medida do quanto as mudanças no

processo são identificadas a partir da análise de causas comuns

de variação do desempenho e da investigação de enfoques

inovadores para a definição e implementação do processo.

• AP 5.2 O processo é otimizado continuamente

– Este atributo é uma medida do quanto as mudanças na

definição, gerência e desempenho do processo têm impacto

efetivo para o alcance dos objetivos relevantes de melhoria do

processo.

642019 Marcos Kalinowski © LES/DI/PUC-Rio

65

CAPACIDADE

PROCESSOS

Nível Processos Capacidades (AP)

A (sem processos adicionais) 1.1, 2.1, 2.2, 3.1,3.2, 4.1*, 4.2*, 5.1*,5.2*

B Gerência de Projetos (evolução) 1.1, 2.1, 2.2, 3.1,3.2, 4.1*, 4.2*

C Gerência de Riscos, Desenvolvimento paraReutilização, Gerência de Decisões

1.1, 2.1, 2.2, 3.1, 3.2

D Desenvolvimento de Requisitos, Integração doProduto, Projeto e Construção do Produto, Validação,Verificação

1.1, 2.1, 2.2, 3.1, 3.2

E Avaliação e Melhoria do Processo Organizacional,Gerência de Projetos (evolução), Gerência deRecursos Humanos, Gerência de Reutilização,Definição do Processo Organizacional

1.1, 2.1, 2.2, 3.1, 3.2

F Aquisição, Garantia da Qualidade, Gerência deConfiguração, Gerência de Portfólio de Projetos,Medição

1.1, 2.1, 2.2

G Gerência de Projetos, Gerência de Requisitos 1.1, 2.1

* Estes APs capacitam apenas um conjunto de processos selecionado pelaorganização de acordo com seus objetivos de melhoria. Os demais APsprecisam capacitar todos os processos do nível pretendido.

Processo de Software

• Abordagens de Melhoria de Processos

– O paradigma benchmarking

– Paradigma analítico (analisar resultados do processo)

66Marcos Kalinowski © LES/DI/PUC-Rio2019

Processo de Software

• Abordagens de Melhoria de Processos

– CMMI Level 5 (Melhoria Contínua)

• Causal Analysis and Resolution (CAR)

– Análise Causal

• Organizational Innovation and Deployment (OID)

– Experimentação

67Marcos Kalinowski © LES/DI/PUC-Rio2019

Processo de Software

• Melhoria de Processos e Experimentação Contínua

68Marcos Kalinowski © LES/DI/PUC-Rio

Fagerholm, F., Guinea, A. S., Mäenpää, H., & Münch, J. (2017). The RIGHT model for continuous

experimentation. Journal of Systems and Software, 123, 292-305.

Análise Causal

Experimentação

2019

Reflexão

69Marcos Kalinowski © LES/DI/PUC-Rio

Ênfase em melhoria e inovação no final?

Benchmarking de práticas não necessariamente

relacionadas com os objetivos da organização e os

resultados concretos do processo?

2019

Processo de Software

• Visões

– Visão 1: Análise causal deve ser aplicada sempre, desde o início de

esforços de melhora (redução da taxa de defeitos: 50%)

• Força motriz da melhoria continua de processos

– Visão 2: Experimentação contínua deve ser aplicada sempre, desde o

início de esforços de melhoria (adoção de tecnologia com base em

resultados de hipóteses localmente testadas)

• Força motriz da inovação de processos

– Visão 3: Benchmarking deveria enfatizar abordagens enxutas (lean)

construídas com base em análise causal e experimentação!

• Foco na melhoria efetiva dos resultados

70Marcos Kalinowski © LES/DI/PUC-Rio

Kalinowski, M., Card, D.N. and Travassos, G.H., 2012. Evidence-based guidelines to defect

causal analysis. IEEE software, 29(4), pp.16-18.

2019

Processo de Software

• Precisamos de novas abordagens e de novos modelos de

referência

– Inovação 1: Lean causal analysis and experimentation

based software process improvement approach

• Estágio atual: concepção e estudos de caso na indústria

– Inovação 2: Lean causal-analysis and experimentation

based software reference model

• Base para a definição de processos enxutos e ágeis, focados em

resultados

71Marcos Kalinowski © LES/DI/PUC-Rio

Análise Causal

Experimentação

2019

Processo de Software

• Como funciona na prática?

– 1: Uma infraestrutura de básica de medição é elaborada

• Objetivo: prover transparência das informações de desempenho do processo

(e.g., qualidade, cronograma, custo e produtividade)

• Plano de medição, planilha de medição, status report

– 2: Inspeções de requisitos e testes são introduzidos

• Objetivo: melhorar a qualidade do produto e prover dados para análise

causal de defeitos e experimentação

– 3: Análise causal e experimentação são introduzidos

• Objetivo: funcionar como força motriz de melhoria contínua e inovação do

processo

• Processo se mantém enxuto e focado em resultados

72Marcos Kalinowski © LES/DI/PUC-Rio

Fitzgerald, B., & Stol, K. J. (2017). Continuous software engineering: A roadmap and agenda. Journal of

Systems and Software, 123, 176-189.2019

Processo de Software

• Como funciona na prática?

73Marcos Kalinowski © LES/DI/PUC-Rio

Definition of Ready após inspeções (e aprovação do cliente)

Análise Causal após a identificação de defeitos e falhas:

2019

Status Report

74Marcos Kalinowski © LES/DI/PUC-Rio2019

Acompanhamento do Gerente

• Variação das métricas chave ao longo dos sprints

• Avaliação das melhorias de processo

• Teste de hipótese após a introdução de inovações no

processo

75Marcos Kalinowski © LES/DI/PUC-Rio2019

“It is not necessary to change. Survival is not

mandatory”

W. Edwards Deming

762019 Marcos Kalinowski © LES/DI/PUC-Rio

Referências

77

• CMMI Institute, “CMMI Development V2.0”. Disponível em www.cmmiinstitute.com

• SOFTEX, "Guias do MPS.BR (Guia Geral e Guias de Implementação do Modelo MPS-SW)". Disponíveis

em www.softex.br/mpsbr

• FITZGERALD, B., STOL, K. J., “Continuous software engineering: A roadmap and

agenda”. Journal of Systems and Software, 123, pp. 176-189, 2017.

• KALINOWSKI, M., WEBER, K.C., SANTOS, G., FRANCO, N., DUARTE, V., TRAVASSOS, G., “Software

Process Improvement Results in Brazil Based on the MPS-SW Model”. Software Quality

Professional Journal, v. 14, no. 4, pp. 15-23, 2015.

• KALINOWSKI, M., WEBER, K.C., FRANCO, N., BARROSO, E., DUARTE, V., ZANETTI, D., SANTOS, G.

“Results of 10 Years of Software Process Improvement in Brazil Based on the MPS-SW

Model”. In: International Conference on the Quality of Information and Communications Technology

(QUATIC), 2014, Guimarães, Portugal.

• KALINOWSKI, M., BIFFL, S., SPÍNOLA, R., REINEHR, S. “From project-oriented to service-oriented

software development: an industrial experience guided by a service reference model”. Journal

of Software Engineering Research and Development, v.2, p. 1-21, 2014.

• TRAVASSOS, G.H., KALINOWSKI, M. “iMPS 2013: Evidências Sobre o Desempenho das Empresas

que Adotaram o Modelo MPS-SW”. Campinas: SOFTEX (ISBN: 978-85-99334-75-1), 102p, 2014.

• Kalinowski, M., Card, D.N. and Travassos, G.H., “Evidence-based guidelines to defect causal

analysis”. IEEE software, v. 29, no. 4, pp.16-18, 2012.

2019 Marcos Kalinowski © LES/DI/PUC-Rio

Leitura Requerida

• WAGNER, S.; "Software Product Quality Control". Springer,

1st Edition, ISBN 978-3642385704. 2013.

– Capítulo 1

– Capítulo 2, até Seção 2.3 (inclusive)

78Marcos Kalinowski © LES/DI/PUC-Rio2019

INF2922 Qualidade de Sistemas de Software Contemporâneos

Qualidade do Produto

Prof. Marcos Kalinowski | LES/DI/PUC-Rio

[email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Conteúdo enriquecido com material gentilmente cedido pelo Prof.

Motivação

• Investir na melhoria do processo garante a qualidade do

produto?

2019 80Marcos Kalinowski © LES/DI/PUC-Rio

Momento de Reflexão

• Um estudo informal relacionando defeitos em testes de

aceitação com o nível de maturidade de empresas no CMMI-

Dev indicou tendência de melhora na qualidade do produto

(Wagner, 2013)

• Resultados da pesquisa iMPS indicam tendência similar para

o MPS-SW (Travassos e Kalinowski, 2014)

• mas ...

812019 Marcos Kalinowski © LES/DI/PUC-Rio

Foco na Qualidade do Produto

• Diversos fatores influenciam a qualidade do produto e ela

precisa ser avaliada e monitorada também diretamente.

(Wagner, 2013)

– Requisitos de qualidade de produtos devem ser definidos e seu

alcance monitorado ao longo da execução do projeto (Tian,

2005)

• definir precisamente o que é esperado

– Especificar!!!

• Qualidade do produto:

– Conjunto de características que devem ser alcançadas em

determinado grau para que o produto atenda às necessidades

de seus usuários (Rocha et al., 2001)

822019 Marcos Kalinowski © LES/DI/PUC-Rio

Que características?

• Norma ISO 25010 – Software Product Quality Model

– Sobrepõe a antiga série ISO 9126

– Possui 8 características de qualidade principais para produtos

de software e suas subcaracterísticas

2019 83Marcos Kalinowski © LES/DI/PUC-Rio

Figura retirada de (Mendoza et al., 2019)

Características da ISO 25010

84Marcos Kalinowski © LES/DI/PUC-Rio2019

ISO/IEC (2011)

Norma ISO 25010

2019 85Marcos Kalinowski © LES/DI/PUC-Rio

Modelo de qualidade do produto da ISO/IEC 25010 (ISO/IEC, 2011)

Norma ISO 25010

2019 86Marcos Kalinowski © LES/DI/PUC-Rio

Modelo de qualidade em uso da ISO/IEC 25010 (ISO/IEC, 2011)

A Norma ISO 25010 em Contexto

• Normas SQuaRE (Software product QUality Requirements

and Evaluation)

2019 87Marcos Kalinowski © LES/DI/PUC-Rio

Requisitos de

Qualidade2503n

Modelo de Qualidade

2501n

Gerenciamento da Qualidade

2500n

Medições2502n

Avaliação

2504n

QPS (Modelo de Referência para Avaliação de Produtos de Software)

• Considera quatro dimensões: Engenharia de Software,

Serviço, Qualidade do Produto e Organizacional

• Apresenta resultados em três níveis de atendimento da

qualidade: Bronze, Prata e Ouro

• Rocha et al. (2018) descrevem resultados iniciais de sua

implementação e avaliação em organizações Brasileiras

88Marcos Kalinowski © LES/DI/PUC-Rio2019

QPS (Modelo de Referência para Avaliação de Produtos de Software)

89Marcos Kalinowski © LES/DI/PUC-Rio2019

Modelo QPS para Avaliação de Produtos de Software e sua relação com

Normas Internacionais (Rocha et al., 2018)

90Marcos Kalinowski © LES/DI/PUC-Rio2019

QPS – Dimensão Organizacional

(Rocha et al., 2018)

91Marcos Kalinowski © LES/DI/PUC-Rio2019

QPS – Dimensão Engenharia de Software

(Rocha et al., 2018)

92Marcos Kalinowski © LES/DI/PUC-Rio2019

QPS – Dimensão de Serviços

(Rocha et al., 2018)

93Marcos Kalinowski © LES/DI/PUC-Rio2019

QPS – Dimensão de Qualidade do Produto

(Rocha et al., 2018)

Garantia e Controle da Qualidade de Produtos

• Garantia da Qualidade

– Tem como propósito assegurar que os produtos de trabalho e a

execução dos processos estejam em conformidade com os

planos, procedimentos e padrões estabelecidos.

• Controle da Qualidade

– Verificação e Validação.

94Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação e Validação

• Verificação

– Tem como propósito confirmar que cada serviço e/ou

produto de trabalho do processo ou do projeto atende

apropriadamente os requisitos especificados.

• Estamos construindo certo o produto? (Boehm, 1981)

• Validação

– Tem como propósito confirmar que um produto ou

componente do produto atenderá a seu uso pretendido

quando colocado no ambiente para o qual foi

desenvolvido.

• Estamos construindo o produto certo? (Boehm, 1981)

95Marcos Kalinowski © LES/DI/PUC-Rio2019

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

96Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

97Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

98Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

99Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

100Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

101Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

102Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

103Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

104Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

Exercício de Fixação: Associe as Colunas

• Análise Estática

• Testes Unidade

• Testes de Integração

• Testes de Sistema

• Testes de Aceitação

• Revisões de Software

105Marcos Kalinowski © LES/DI/PUC-Rio2019

Verificação

Validação

106Marcos Kalinowski © LES/DI/PUC-Rio2019

• Boehm, B.W., Software Engineering Economics. Prentice-hall, 1981.

• ISO/IEC, ISO 25000 Software Product Quality - ISO/IEC 25010.

http://iso25000.com/index.php/en/iso-25000-standards/iso-25010, Official site

(2011).

• Mendoza, I., Kalinowski, M., Souza, U., and Felderer, M., Relating Verification and

Validation Methods to Software Product Quality Characteristics: Results of an

Expert Survey. In Software Quality Days, 11th International Conference, SWQD

2019, Vienna, Austria, January 15-18, 2019.

• Rocha, A.R.C., Travassos, G.H., Santos, G., Reinehr, S., QPS - Modelo para

Avaliação da Qualidade de Produtos de Software: Resultados

Iniciais. Simpósio Brasileiro de Qualidade de Software, 2018.

• Rocha, A.R.C., Maldonado, J.C. and Weber, K.C., Qualidade de software: teoria e

prática. São Paulo: Prentice-hall, 2001.

• Travassos, G.H., Kalinowski, M., iMPS 2013: Evidências Sobre o Desempenho das

Empresas que Adotaram o Modelo MPS-SW. Campinas: SOFTEX, 2014 (ISBN:

978-85-99334-75-1), 102p.

• Wagner, S., Software Product Quality Control. Springer, 2013.

Referências

Leitura Requerida

• WAGNER, S.; "Software Product Quality Control". Springer,

1st Edition, ISBN 978-3642385704. 2013.

– Capítulo 3

– Capítulo 4

107Marcos Kalinowski © LES/DI/PUC-Rio2019

INF2922 Qualidade de Sistemas de Software Contemporâneos

Gerência da Qualidade de Software

Prof. Marcos Kalinowski | LES/DI/PUC-Rio

[email protected] | www.inf.puc-rio.br/~kalinowski | @prof_kalinowski

Gerência da Qualidade de Software

• Gerência da Qualidade (ISO 25001)

– Propósito: Gerência da qualidade de produtos com base em

requisitos de qualidade e avaliação (Wagner, 2013)

– Diretamente alinhada com as definições de Tian (2005) e

Wagner (2013)

• Ênfase na medição das atividades de garantia da qualidade,

verificação e validação

109Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

110Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

• Gerenciamento da qualidade envolve (Tian, 2005):

– Definir objetivos específicos de qualidade

– Planejar uma estratégia de qualidade

• Selecionar métodos apropriados de garantia da qualidade,

verificação e validação (V&V)

• Selecionar medidas apropriadas para permitir a avaliação da

qualidade

– Avaliar e controlar a qualidade

• Esta abordagem é consistente com a apresentada por

Wagner (2013), que envolve as seguintes atividades:

– Identificar objetivos; Selecionar e integrar métodos de V&V;

Acompanhar problemas; Monitorar atividades de V&V; Avaliar e

controlar a qualidade

111Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

SQuaRE (Software product QUalityRequirements and Evaluation)

• Medidas objetivas referentes à garantia e o controle da qualidade formam

a base para uma gerência da qualidade efetiva (Tian, 2005)

2019 112Marcos Kalinowski © LES/DI/PUC-Rio

Requisitos de

Qualidade2503n

Modelo de Qualidade

2501n

Gerenciamento da Qualidade

2500n

Medições2502n

Avaliação

2504n

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

113Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

114Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Garantia da Qualidade

• Avalia a conformidade do processo e do produto

– Visa assegurar que os processos planejados foram

implementados e que os produtos seguem os padrões pré-

estabelecidos

– Quando não-conformidades são identificadas, elas devem ser

tratadas e resolvidas no projeto

– Caso não sejam resolvidas no projeto, devem ser escalonadas

para o nível adequado de gerência

115Marcos Kalinowski © LES/DI/PUC-Rio2019

Garantia da Qualidade

• É fundamental que as avaliações sejam objetivas

– A objetividade é crítica para o sucesso do projeto

– A objetividade é conseguida com:

• O avaliador sendo independente do projeto (externo ao projeto)

• A utilização de um conjunto de critérios de avaliação

116Marcos Kalinowski © LES/DI/PUC-Rio2019

Garantia da Qualidade

• Recorte de um checklist de garantia da qualidade

117Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

118Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Exercício

• Cite três exemplos de medidas que podem ser utilizadas

para monitorar o processo de garantia da qualidade

119Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Garantia da Qualidade

• Exemplos de medidas para gerir o processo de garantia da

qualidade (Rocha et al., 2012):

– Taxa de não conformidades (NCs) em avaliações de qualidade

no documento X (por exemplo, documento de requisitos)

– Taxa de NCs em avaliações de aderência ao processo X (por

exemplo, gerência de requisitos)

– Esforço de retrabalho para corrigir NCs identificadas em

avaliações de qualidade

– Taxa de NCs escalonadas

– Taxa de NCs escalonadas sem resolução

– Número de NCs identificadas na auditoria independente de

qualidade

120Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

121Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Verificação

• Avalia se o produto definido reflete adequadamente os

requisitos especificados (incluindo requisitos do cliente,

produto e componentes do produto):

– Estamos construindo certo o produto?

• Principais métodos: Revisões e Testes

122Marcos Kalinowski © LES/DI/PUC-Rio2019

• Definição: Processo ou atividade para leitura de um

artefato de software visando assegurar que ele cumpre sua

especificação e atende às necessidades de seus usuários

– Validação e verificação estática de artefatos de software

– Proveem um bom meio para o gerente monitorar a qualidade

do projeto

• Tipos de Revisão de Software:

– Revisão aos Pares

– Inspeções de Software

– Walkthroughs

Revisões de Software

123Marcos Kalinowski © LES/DI/PUC-Rio2019

Revisões de Software

• Quando e em que tipos de artefato aplicar revisões de

software?

Adaptado de Ackerman et al. (1989)

• Um relato simples e compreensível da aplicação de

inspeções de requisitos em desenvolvimento incremental

pode ser encontrado em Kalinowski et al. (2007)

124Marcos Kalinowski © LES/DI/PUC-Rio2019

Revisão

Teste de Software

125Marcos Kalinowski © LES/DI/PUC-Rio2019

Unidade

IntegraçãoPerspectiva dos Projetistas e Desenvolvedores

Sistema

Aceitação

Perspectiva dos Clientes e Usuários

Teste de Sistema

• Objetivo:

– Executar o sistema sob ponto de vista de seu usuário final,

varrendo as funcionalidades em busca de falhas

• Testes executados em condições similares àquelas que um

usuário utilizará no seu dia-a-dia

• Um sistema divide-se em características:

– Funcionais

– Não-Funcionais

126Marcos Kalinowski © LES/DI/PUC-Rio2019

Sistema = Funcional + Não-Funcional

Teste de Sistema

• Exemplos de tipos específicos de Teste de Sistema:

– Recuperação

• Força o software a falhar numa variedade de situações e verifica a

capacidade de recuperação do produto

– Segurança

• Verifica se os mecanismos de proteção construídos para o sistema

irão de fato protegê-lo de alguma utilização ou intrusão imprópria.

– Stress

• Executa o sistema de forma a exigir recursos em quantidade,

frequência ou volume anormais

– Desempenho

• Avalia o desempenho do software quando integrado ao sistema.

Normalmente está associado ao teste de stress

127Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

128Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Exercício

• Cite três exemplos de medidas que podem ser utilizadas

para monitorar o processo de verificação

129Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Verificação

• Exemplos de medidas para gerir o processo de verificação

(Rocha et al., 2012):

– Densidade de defeitos identificados em revisões por pares

– Esforço para a realização de revisões por pares

– Densidade de defeitos identificados nos testes de software

– Esforço para a realização de testes

– Esforço de retrabalho para a correção de defeitos

– Taxa de defeitos corrigidos

– Taxa de cobertura de funcionalidades dos testes

– Densidade de defeitos identificados após o software entrar em

produção

– Esforço de retrabalho para a correção de defeitos de produção

– Tempo médio entre falhas

– Tempo médio para a correção de um defeito

130Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

131Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Validação

• Avalia se o produto atende às necessidades de seus

usuários

– Estamos construindo o produto certo?

• Normalmente envolve o usuário final e demais interessados

• Principais métodos: Revisões e Testes

132Marcos Kalinowski © LES/DI/PUC-Rio2019

Validação

• Similaridades e Diferenças com Verificação

– Similaridades:

• Usa abordagens semelhantes (testes, inspeções, demonstrações e

simulações)

– Diferenças:

• Necessidade de avaliar no ambiente de uso (operacional) do

sistema ou em ambiente simulado

• Requer a participação do usuário final e demais interessados

• Na validação, a preocupação é garantir que o produto atende ao

uso esperado, enquanto que na verificação, é garantir que atende

os requisitos especificados

133Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

134Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Exercício

• Cite três exemplos de medidas que podem ser utilizadas

para monitorar o processo de validação

135Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Validação

• Exemplos de medidas para gerir o processo de validação

(Rocha et al., 2012):

– Densidade de defeitos identificados em avaliação de requisitos

– Esforço de retrabalho para correção de defeitos nos requisitos

– Densidade de defeitos identificados nos testes de homologação

– Esforço de retrabalho para a correção de defeitos em testes de

homologação

136Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade de Software

• Qualidade no nível tático e operacional

137Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade

Garantia da Qualidade

Verificação Validação

Lembrando: É fundamental alinhar os métodos de V&V e as medidas com os requisitos de qualidade do produto!

Gerência da Qualidade de Software

138Marcos Kalinowski © LES/DI/PUC-Rio2019

Monitorando Introdução & Detecção

0

0,5

1

1,5

2,0

2,5

3,0

Requirements Design Implementation Integration AcceptanceTesting

Fielded

Estimado

Introdução

Detecção

Real

Introdução

Detecção

Def

eito

s p

or

Un

idad

e d

e T

aman

ho

Gerência da Qualidade e Alta Maturidade

• Nos altos níveis de maturidade a gerência passa a ter um

enfoque quantitativo (SOFTEX, 2012)

– No MPS-SW nível B a gerência quantitativa deve compreender

processos críticos para os alcances dos objetivos

organizacionais

– No CMMI-Dev nível 4 a gerência quantitativa deve se basear

em requisitos de qualidade e desempenho

• Faz uso de ferramentas estatísticas, como gráficos de

controle

• Permite a elaboração de modelos de desempenho para

processos estáveis

139Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade e Alta Maturidade

• Gráficos de Controle

• Modelos de Desempenho

140Marcos Kalinowski © LES/DI/PUC-Rio2019

ProblemasAPNormalizado = 0,0502 + 2,55 ProblemasGQNormalizado

Gráfico e modelo de desempenho extraídos de Montoni et al. (2007)

Observation

In

div

idu

al

Va

lue

161412108642

-2

-3

-4

-5

-6

_X=-3,801

UC L=-1,652

LC L=-5,950

Observation

Mo

vin

g R

an

ge

161412108642

3

2

1

0

__MR=0,808

UC L=2,640

LC L=0

I-MR Chart of ln(ProblemasGQNormalizado)

Gerência da Qualidade e Alta Maturidade

• Gráficos de controle podem ser utilizados como ferramenta

gerencial mesmo que não se tenha ainda processos

estabilizados

• Os gráficos mais indicados para dados de defeitos são os U-

charts (Kalinowski et al., 2012)

– Distribuição de Poisson

• Pontos fora de controle possuem causas atribuíveis e devem

ser alvo de análise causal visando estabilizar o processo

• No MPS-SW nível A e CMMI-Dev nível 5 análise causal de

defeitos deve ser aplicada visando melhoria contínua e não

apenas estabilizar o processo

141Marcos Kalinowski © LES/DI/PUC-Rio2019

Gerência da Qualidade: Quem Faz?

• Em empresas menores comumente a gerência da qualidade

é realizada pelo próprio gerente do projeto

• Para empresas maiores é possível que se tenha um gerente

dedicado exclusivamente à qualidade, com uma equipe que

atende a diversos projetos

– Célula de Testes

– Fábrica de Testes

142Marcos Kalinowski © LES/DI/PUC-Rio2019

Exercício

• Qual a tendência apresentada neste gráfico de controle do

tipo U-chart? Este comportamento é positivo?

143Marcos Kalinowski © LES/DI/PUC-Rio2019

Gráfico extraído de Kalinowski et al. (2014)

Resposta

• Não é possível responder à pergunta somente com a

informação apresentada (falta informação do esforço

investido na detecção de defeitos)

144Marcos Kalinowski © LES/DI/PUC-Rio2019

Gráficos extraído de Kalinowski et al. (2014)

Considerações Finais

• Para uma Gerência da Qualidade efetiva:

– Estabeleça requisitos de qualidade para o produto

– Institucionalize garantia da qualidade

– Institucionalize inspeções de software

– Institucionalize testes

– Realize medições sobre as atividades de garantia e controle da

qualidade considerando os requisitos de qualidade do produto

– Utilize resultados de medições para subsidiar decisões

– O uso de gráficos de controle e análise causal de defeitos não

requer alta maturidade

145Marcos Kalinowski © LES/DI/PUC-Rio2019

Referências

• Mendoza, I., Kalinowski, M., Souza, U., Felderer, M., Relating Verification and Validation

Methods to Software Product Quality Characteristics: Results of an Expert Survey.

In Software Quality Days, 11th International Conference, SWQD 2019, Vienna, Austria,

January 15-18, 2019.

• Kalinowski, M., Mendes, E., Travassos, G.H., An Industry Ready Defect Causal Analysis

Approach Exploring Bayesian Networks. Software Quality Days, 6th International

Conference, Lecture Notes in Business Information Processing, v. 166, p. 12-33, 2014.

• Kalinowski, M., Card, D.N., Travassos, G.H., Evidence-Based Guidelines to Defect

Causal Analysis. IEEE Software, vol. 29, no. 4, pp. 16-18, 2012.

• Kalinowski, M., Spínola, R. O., Dias-Neto, A. C., Bott, A., Travassos, G. H., Inspeções de

Requisitos de Software em Desenvolvimento Incremental: Uma Experiência

Prática. Simpósio Brasileiro de Qualidade de Software, 2007.

• Montoni, M., Kalinowski, M., Lupo, P., Abrantes, J. F., Ferreira, A.I.F., Rocha, A.R.C., Uma

Metodologia para Desenvolvimento de Modelos de Desempenho de Processos para

Gerência Quantitativa de Projetos de Software. Simpósio Brasileiro de Qualidade de

Software, 2007.

• Rocha, A.R.C., Souza, G.S., Barcellos, M.P., Medição e Controle Estatístico de

Processos. MCTi, 2012.

• Tian, J., Software Quality Engineering, IEEE Computer Society Press, 2005.

• Wagner, S., Software Product Quality Control, Springer, 2013.

146Marcos Kalinowski © LES/DI/PUC-Rio2019