Qualidade de Software - downloadportal.sereduc.com · Relatório do Caos Engenharia de Software...

Post on 19-Nov-2018

220 views 0 download

Transcript of Qualidade de Software - downloadportal.sereduc.com · Relatório do Caos Engenharia de Software...

Profª Rafaella Matos

Qualidade de Software

Introdução a qualidade de

software

Engenharia de Software prof.rafaella.matos@gmail.com

Relatório do Caos

Engenharia de Software prof.rafaella.matos@gmail.com

Em 1995 o relatório do caos revelou dados

alarmantes sobre investimentos feitos em

softwares

Relatório do Caos

Engenharia de Software

31,1% dos projetos seriam cancelados antes de estarem completos/finalizados

52,7% dos projetos custariam 189% de suas estimativas originais

16,2% dos projetos de software não são completados on-time ou on-budget

Nas grandes empresas, apenas 42% dos produtos de software contém as funcionalidades e funções originalmente propostas

Em busca de qualidade

Engenharia de Software prof.rafaella.matos@gmail.com

Como garantir a qualidade do produto gerado?

ISO

Organização não-governamental fundada em 1947,

em Genebra, e hoje presente em cerca de 189 países.

A sua função é a de promover a normatização de

produtos e serviços, para que a qualidade dos

mesmos seja permanentemente melhorada.

Critérios para normatização

Uma organização deve seguir alguns passos e atender

a alguns requisitos para serem certificadas. Dentre

esses podem-se citar:

Padronização de todos os processos-chave da

organização, processos que afetam o produto e

conseqüentemente o cliente;

Monitoramento e medição dos processos de

fabricação para assegurar a qualidade do

produto/serviço, através de indicadores de

performance e desvios;

Critérios para normatização

Uma organização deve seguir alguns passos e atender

a alguns requisitos para serem certificadas. Dentre

esses podem-se citar:

Implementar e manter os registros adequados e

necessários para garantir a rastreabilidade do processo;

Inspeção de qualidade e meios apropriados de ações

corretivas quando necessário; e

Revisão sistemática dos processos e do sistema da

qualidade para garantir sua eficácia.

Quais seriam os produtos?

Engenharia de Software prof.rafaella.matos@gmail.com

Um "produto", no vocabulário da ISO, pode

significar um objeto físico, ou serviço, ou software.

Em busca de qualidade

Engenharia de Software prof.rafaella.matos@gmail.com

Surgimento de modelos reconhecidos

CMM (Capability Maturity Model)

Nova forma de desenvolver software

Papéis bem definidos

Processos e ferramentas de apoio

Grandes investimentos feitos pelo mercado

Amadurecimento na qualidade de software e

abertura do mercado internacional

Modelos de qualidade

Engenharia de Software prof.rafaella.matos@gmail.com

Modelos de qualidade genérico

ISO 9000

Modelos de qualidade de software

ISO 9126

ISO 15504

ISO 12207

CMM

CMMI

MPS.br

Qualidade do produto e do processo

Engenharia de Software prof.rafaella.matos@gmail.com

A qualidade do produto está diretamente

relacionada à qualidade do processo de

desenvolvimento

Modelos aplicados na garantia da qualidade de

software atuam principalmente no processo

Qualidade de software

Engenharia de Software prof.rafaella.matos@gmail.com

Objetivo:

Garantir a qualidade do software através da definição

e normatização de processos de desenvolvimento

O que é garantia de qualidade?

Engenharia de Software prof.rafaella.matos@gmail.com

Garantir a qualidade consiste em utilizar um

conjunto de atividades que assegurem que todos

os esforços sejam feitos para garantir que os

produtos de software tenham a qualidade

desejada.

Portanto garantia de qualidade consiste na

realização de revisões técnicas formais que são

aplicadas durante cada fase da engenharia de

software.

Modelos de qualidade de software

Engenharia de Software prof.rafaella.matos@gmail.com

Objetivo:

Garantir um produto final que satisfaça às

expectativas do cliente, dentro daquilo que foi

acordado inicialmente

CMM

Engenharia de Software prof.rafaella.matos@gmail.com

Capability Maturity Model ou Modelo de

Maturidade em Capacitação

Consiste em:

uma soma de "melhores práticas" para diagnóstico

e avaliação de maturidade do desenvolvimento de

softwares em uma organização

CMM

Engenharia de Software prof.rafaella.matos@gmail.com

Não diz como fazer e sim o que deve ser feito

Portanto:

Não é uma metodologia

CMM

Engenharia de Software prof.rafaella.matos@gmail.com

Descreve os principais elementos de um processo de

desenvolvimento de software.

Ou seja, descreve os estágios de maturidade por que

passam as organizações enquanto evoluem no seu

ciclo de desenvolvimento de software, através de

avaliação contínua, identificação de problemas e

ações corretivas, dentro de uma estratégia de melhoria

dos processos.

CMM

Engenharia de Software prof.rafaella.matos@gmail.com

Este caminho de melhoria é definido por cinco níveis

de maturidade:

Inicial

Gerenciado

Definido

Gerenciado Quantitativamente

Em Otimização

ISO 9000

Engenharia de Software prof.rafaella.matos@gmail.com

ISO 9126

ISO 15504

ISO 12207

ISO 9126

Engenharia de Software prof.rafaella.matos@gmail.com

Conjunto de normas que tratam da qualidade do

software no âmbito da ISO.

Estabelece um modelo de qualidade com os seguintes

componentes:

Processo de desenvolvimento, cuja qualidade afeta a

qualidade do produto de software gerado e é

influenciado pela natureza do produto desenvolvido;

ISO 9126

Engenharia de Software prof.rafaella.matos@gmail.com

Produto, compreendendo os atributos de qualidade

do produto (sistema) de software.

Estes atributos de qualidade podem ser divididos entre

atributos internos e externos.

Se diferenciam pela forma como são aferidos (interna ou

externamente ao produto de software) e em conjunto

compõem a qualidade do produto de software em si;

ISO 9126

Engenharia de Software prof.rafaella.matos@gmail.com

Qualidade em uso que consiste na aferição da

qualidade do software em cada contexto específico de

usuário.

Esta é, também, a qualidade percebida pelo usuário.

A norma ISO 9126: Estrutura

Engenharia de Software prof.rafaella.matos@gmail.com

ISO/IEC 9126-1: Modelo de Qualidade

ISO/IEC 9126-2: Métricas Externas

ISO/IEC 9126-3: Métricas Internas

ISO/IEC 9126-4: Métricas de Qualidade em Uso

ISO/IEC 9126-1: Modelo de Qualidade

Engenharia de Software prof.rafaella.matos@gmail.com

Documento composto basicamente de definições

para as características de qualidade

Modelo de Qualidade Interna e Externa

da Norma ISO 9126-1

A norma 9126 se foca na qualidade do produto de

software, propondo Atributos de Qualidade

Distribuídos em seis características principais, com

cada uma delas divididas em sub-características

Modelo de Qualidade para qualidade

em uso

Visão de qualidade do usuário

Medição do Produto de Software: ISO

9126-2..4

Engenharia de Software prof.rafaella.matos@gmail.com

Definições

Atributo: Uma propriedade mensurável, física ou

abstrata, de uma entidade. Atributos podem ser

internos ou externos.

Medição: O uso de uma métrica para atribuir um valor

(o qual pode ser um número ou uma categoria), obtido

a partir de uma escala, a um atributo de uma entidade.

Métrica: O método e a escala de medição definidos.

Métricas externas

Engenharia de Software prof.rafaella.matos@gmail.com

Define indicadores e métricas externas para

avaliar um produto de software.

Referem-se a medições indiretas de um produto

de software a partir do comportamento do

Sistema Computacional ou do seu efeito no

ambiente, quando da execução de seus

programas

Métricas externas

Engenharia de Software prof.rafaella.matos@gmail.com

Devem ser usadas para:

avaliar o comportamento do software quando usado em

situações específicas;

predizer a qualidade real no uso;

avaliar e indicar se o produto satisfaz as verdadeiras

necessidades durante a operação real pelo usuário.

Exemplo:

Característica: Funcionalidade

Sub-característica: Adequação

quantidade de funções atendidas, que poderão ser subdivididas

em desejáveis e obrigatórias.

Métricas internas

Engenharia de Software prof.rafaella.matos@gmail.com

Define indicadores e métricas internas para avaliar

um produto de software

Métricas internas referem-se a medições de um

produto de software a partir de suas próprias

características internas, sem a necessidade de

execução dos programas.

Exemplos: número de linhas de código, número de

erros encontrados em revisões, etc.

Métricas internas

Engenharia de Software prof.rafaella.matos@gmail.com

As métricas internas oferecem a possibilidade de

medir a qualidade dos artefatos intermediários e de

prever a qualidade do produto final

Isto permite que sejam identificados problemas de

qualidade e se inicie a ação corretiva assim que

possível no ciclo de vida do desenvolvimento.

Métrica de Funcionalidade

Engenharia de Software prof.rafaella.matos@gmail.com

Funcionalidade A capacidade de um software prover funcionalidades que

satisfaçam o usuário em suas necessidades declaradas e

implícitas, dentro de um determinado contexto de uso.

Suas sub-características são:

Adequação, que mede o quanto o conjunto de

funcionalidades é adequado às necessidades do usuário;

Acurácia (ou precisão) representa a capacidade do

software de fornecer resultados precisos ou com a precisão

dentro do que foi acordado/solicitado;

Funcionalidade

Segurança mede a capacidade do sistema de proteger

as informações do usuário e fornecê-las apenas (e

sempre) às pessoas autorizadas

Segurança também pode estar dirigida em, processar

gerar e armazenar as informações.

Conformidade trata da padronização, politicas e

normas de um projeto.

Métricas externas – Ex: Adequação

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: Segurança

Engenharia de Software prof.rafaella.matos@gmail.com

Métrica de Confiabilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Confiabilidade

O produto se mantém no nível de desempenho nas

condições estabelecidas.

Suas sub-características são:

Maturidade, entendida como sendo a capacidade do

software em evitar falhas decorrentes de defeitos no

software;

Confiabilidade

Tolerância a Falhas representando a capacidade do

software em manter o funcionamento adequado mesmo

quando ocorrem defeitos nele ou nas suas interfaces

externas;

Recuperabilidade que foca na capacidade de um

software se recuperar após uma falha, restabelecendo

seus níveis de desempenho e recuperando os seus

dados;

Métricas externas – Ex: Maturidade

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: Tolerância a

falhas

Engenharia de Software prof.rafaella.matos@gmail.com

Métrica de Usabilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Usabilidade

A capacidade do produto de software ser

compreendido, seu funcionamento aprendido, ser

operado e ser atraente ao usuário.

Este conceito é bastante abrangente e se aplica mesmo

a programas que não possuem uma interface para o

usuário final

Suas sub-características são:

Usabilidade Inteligibilidade que representa a facilidade com que o

usuário pode compreender as suas funcionalidades e avaliar

se o mesmo pode ser usado para satisfazer as suas

necessidades específicas;

Apreensibilidade identifica a facilidade de aprendizado do

sistema para os seus potenciais usuários;

Operacionalidade é como o produto facilita a sua operação

por parte do usuário, incluindo a maneira como ele tolera

erros de operação;

Atratividade envolve características que possam atrair um

potencial usuário para o sistema, o que pode incluir desde a

adequação das informações prestadas para o usuário até os

requintes visuais utilizados na sua interface gráfica;

Métricas externas – Ex: Inteligibilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: Apreensibilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Métrica de Eficiência

Engenharia de Software prof.rafaella.matos@gmail.com

Eficiência O tempo de execução e os recursos envolvidos são

compatíveis com o nível de desempenho do software.

Suas sub-características são:

Comportamento em Relação ao Tempo que avalia se os tempos de resposta (ou de processamento) estão dentro das especificações;

Utilização de Recursos que mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis;

Métricas externas – Ex: Comportamento em

relação ao uso de recursos

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: utilização dos

recursos

Engenharia de Software prof.rafaella.matos@gmail.com

Métrica de Manutenibilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Manutenibilidade

A capacidade (ou facilidade) do produto de software ser

modificado, incluindo tanto as melhorias ou extensões

de funcionalidade quanto as correções de defeitos,

falhas ou erros.

Suas sub-características são:

Analisabilidade identifica a facilidade em se

diagnosticar eventuais problemas e identificar as

causas das deficiências ou falhas;

Manutenibilidade

Modificabilidade caracteriza a facilidade com que o

comportamento do software pode ser modificado;

Estabilidade avalia a capacidade do software de evitar

efeitos colaterais decorrentes de modificações

introduzidas;

Testabilidade representa a capacidade de se testar o

sistema modificado, tanto quanto as novas

funcionalidades quanto as não afetadas diretamente

pela modificação;

Métricas externas – Ex: Modificabilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: custo de

mudança

Engenharia de Software prof.rafaella.matos@gmail.com

Métrica de Portabilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Portabilidade A capacidade do sistema ser transferido de um

ambiente para outro.

Como "ambiente", devemos considerar todo os fatores de adaptação, tais como diferentes condições de infra-estrutura (sistemas operacionais, versões de bancos de dados, etc.), diferentes tipos e recursos de hardware (tal como aproveitar um número maior de processadores ou memória).

Além destes, fatores como idioma ou a facilidade para se criar ambientes de testes devem ser considerados como características de portabilidade.

Portabilidade Adaptabilidade, representando a capacidade do software

se a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações);

Capacidade para ser Instalado identifica a facilidade com que pode se instalar o sistema em um novo ambiente;

Coexistência mede o quão facilmente um software convive com outros instalados no mesmo ambiente;

Capacidade para Substituir representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado;

Métricas externas – Ex: Capacidade para

ser instalado

Engenharia de Software prof.rafaella.matos@gmail.com

Métricas internas – Ex: adaptabilidade

Engenharia de Software prof.rafaella.matos@gmail.com

Conclusão

Engenharia de Software prof.rafaella.matos@gmail.com

Produzir software de qualidade é uma tarefa

difícil, porém possível.

O processo de avaliação de produtos de software

complementa o processo de desenvolvimento

Conclusão

Engenharia de Software prof.rafaella.matos@gmail.com

São vários os benefícios alcançados decorrentes da

avaliação de produtos de software:

O produtor poderá assegurar a qualidade do produto

final;

Redução nos custos com a manutenção do software;

O usuário ficará mais satisfeito, pois estará adquirindo

um produto de qualidade;

O vendedor poderá usar como argumento de venda a

qualidade assegurada do produto que está vendendo;

Organizações poderão exigir critérios de qualificação

com propósitos específicos.