revisao qualidade de software

21
Qualidade de Software Qualidade de Software pode ser considerado como um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos especificados, prevenindo e eliminando defeitos. Controle de Qualidade: Aprovação de processos que assegurem que o desenvolvimento de software tenha seguido corretamente os procedimentos e padrões de qualidade de projeto.

Upload: greggxp

Post on 26-Jun-2015

295 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Revisao Qualidade de Software

Qualidade de Software

Qualidade de Software pode ser considerado como um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a

conformidade de processos e produtos especificados, prevenindo e eliminando defeitos.

Controle de Qualidade:

Aprovação de processos que assegurem que o desenvolvimento de software tenha

seguido corretamente os procedimentos e padrões de qualidade de projeto.

Page 2: Revisao Qualidade de Software

Fatores, métricas e garantias de qualidade de software

REVISÃO

Manutenibilidade: capacidade de reparação de erros no programa de forma a torná-lo disponível para uso.

• Flexibilidade: esforço para se modificar um programa operacional.

• Testabilidade: tempo necessário para se testar um programa a fim de garantir que ele execute a função pretendida.

OPERACAO

Corretitude: é o atendimento do programa às especificações e objetivos visados pelo cliente.

• Confiabilidade: o quanto um programa executa a função pretendida com a precisão exigida.

• Eficiência: quantidade de recursos de computação e de código necessária para um programa executar a função desejada.

• Integridade: controle de acesso ao software ou a dados de forma controlada.

• Usabilidade: esforço para aprender, operar, preparar a entrada e interpretar a saída de um programa.

TRANSIÇÃO

Portabilidade: demanda de esforço para transferir um programa de um ambiente de hardware e/ou software para outro.

Reusabilidade: propriedade de reutilizar um programa ou partes de um programa em outras aplicações (refere-se ao empacotamento e escopo de funções que o programa

executa).

Interoperabilidade: esforço exigido para se acoplar um sistema a outro.

REVISÕES

As revisões são métodos de validação de qualidade de um processo ou produto amplamente usado pela equipe técnica do projeto. São consideradas como verdadeiros

“filtros” de erros e inconsistências no processo de desenvolvimento de software.

Page 3: Revisao Qualidade de Software

Qualquer revisão é uma maneira de usar a diversidade de um grupo de pessoas para apontar melhorias necessárias ao produto gerado por uma equipe, confirmar partes ou o

todo de um produto que devem ser melhorados (ou não) e realizar um trabalho mais técnico com uma qualidade mais uniforme e previsível, de forma a tornar o trabalho

técnico mais administrável.

Custos da qualidade

Um outro aspecto importante é referente aos custos da qualidade. Vários são os estudos conduzidos por especialistas da área de qualidade intencionados em obter um

referencial para os custos reais da qualidade, a fim de poderem identificar maneiras de reduzir custos da qualidade e fornecer uma base de comparação entre os demais custos

envolvidos no processo de desenvolvimento de software.

Os custos operacionais da função qualidade podem ser classificados em quatro categorias: prevenção, avaliação, falhas internas e falhas externas.

As revisões técnicas formais são consideradas como a principal atividade de um SQA.

Conhecida como walkthroughs, inspeções, reuniões round - robin e outras avaliações técnicas de software, as revisões técnicas formais têm como objetivos:

1. descobrir erros de função, lógica ou implementação do software;

2. verificar se o software em revisão atende aos requisitos;

3. garantir que o software está representado de acordo com padrões predefinidos;

4. obter um software desenvolvido de forma uniforme; e

5. tornar os projetos mais administráveis (SOMMERVILLE, 2007).

QUALIDADE DE SOFTWARE

Pode ser conseguida através de análise, projeto, codificação e teste de componente, mas, com toda certeza, uma efetiva aplicação de revisões técnicas formais para controle de

produtos de trabalho de software e de modificações feitas neles são consideradas técnicas eficientes de obtenção de qualidade de software.

Alguns defeitos são descobertos e rastreados até uma (ou mais) das seguintes causas:

Page 4: Revisao Qualidade de Software

Especificações incompletas ou mal formuladas. Distorção na interpretação da omunicação com o cliente. Desvio voluntário das especificações. Violação dos padrões

de programação.Erro na apresentação dos dados.Inconsistência na interface de componente.Lógica do projeto inconsistente.Teste incompleto ou errôneo.

Documentação imprecisa ou incompleta. Erro na tradução do projeto para a linguagem de programação. Interface entre homem-máquina ambígua ou inconsistente.

Miscelânea.

A árvore de falhas consiste em construir um modelo gráfico das combinações sequenciais e concorrentes de eventos que podem apresentar um evento ou estado de

sistema perigoso. Com a construção de uma árvore de falhas bem desenvolvida, pode-se observar as conseqüências de uma seqüência de falhas inter-relacionadas que ocorram

em diferentes componentes do sistema.

A lógica de tempo real consiste no desenvolvimento de um modelo de eventos e ações correspondentes, que é estudado por meio do uso de operações lógicas para testar as

pressuposições de segurança sobre os componentes do sistema e o tempo de ocorrência.

A ISO 9000

descreve os elementos de garantia em termos genéricos, que podem ser aplicados a qualquer negócio independentemente dos produtos ou serviços oferecidos.

Dessa forma, um sistema de garantia da qualidade que promove a estrutura organizacional, define responsabilidades, cria procedimentos e processos, capacita

recursos para implementar a gestão da qualidade em todo ciclo de vida de um produto, certamente, demanda de uma intervenção normativa para que materiais,

produtos,processos e serviços satisfaçam as expectativas do cliente, de acordo com suas especificações.

O ganho para as organizações com a adoção das normas ISO está na produtividade e credibilidade aumentando a sua competitividade nos mercados nacional e internacional.

Page 5: Revisao Qualidade de Software

Princípios ISO 9000:2000

Foco no cliente.

• Liderança.

• Envolvimento das pessoas.

• Abordagem de processo.

• Abordagem sistêmica para a gestão.

• Melhoria contínua.

• Abordagem para tomada de decisões.

• Benefícios mútuos nas relações com fornecedores.

Page 6: Revisao Qualidade de Software

NBR ISO/IEC 9126 (produto de software) e NBR ISO/IEC 12119 (pacote de software)

A Norma ISO/IEC 12119 é aplicável a pacotes de software, como por exemplo, pacotes de software voltados para funções administrativas, técnicas ou científicas, comunicação

de escritórios e outras finalidades, tal como são produzidos.

As necessidades explícitas (ou externas) dependem do que foi especificado nos requisitos referentes às condições em que o produto deva ser utilizado, seus objetivos, funções e o desempenho esperado. Já as implícitas (ou diretas) são necessidades que embora não estejam especificadas nos requisitos, devem ser levadas em consideração, pois se baseiam em princípios básicos e óbvios, necessários para que o usuário execute

a sua tarefa.

A garantia e controle de qualidade no desenvolvimento de software ao operarem simultaneamente, visam garantir que os artefatos de software sejam desenvolvidos e

entregues com melhor aceitabilidade, menos defeitos e menores custos.

Garantia de Software

Promove a gerência sênior da organização uma melhor visibilidade apropriada sobre o processo de desenvolvimento.

Controle de Qualidade.

Objetiva testar os produtos de software de modo a encontrar, relatar e remover seus defeitos.

A qualidade de Software pode ser avaliada pela medição:

dos atributos internos (tipicamente medidas estáticas de produtos intermediários);

dos atributos externos (tipicamente medidas do comportamento do código quando executado);

dos atributos de qualidade em uso.

Segundo McCall (1977), muitas das métricas só podem ser medidas subjetivamente. Por isso, considera importante, mais uma vez, a utilização de

uma lista de verificação (checklist) para graduar atributos específicos do software.

Qualidade em Uso é a visão de qualidade que o usuário tem do software e é medida em  termos do resultado da utilização do software. É a capacidade que o produto de software tem de atender aos anseios e às necessidades dos usuários

em seu próprio ambiente de trabalho. É, portanto, a capacidade de software

Page 7: Revisao Qualidade de Software

permitir a usuários específicos atingir metas especificadas com efetividade, produtividade, segurança e satisfação em um contexto de uso especificado.

DESCRIÇÂO DO PRODUTO:

Consiste em um documento expondo as propriedades de um pacote de software, com o principal objetivo de auxiliar os potenciais compradores na avaliação da adequação do

produto antes de sua aquisição.

Fornece informações sobre a documentação do usuário, programas e, se existirem, sobre os dados.Inclui as principais propriedades do pacote e é um documento disponível ao usuário independente da aquisição do produto. As declarações sobre funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade devem ser

avaliadas.

DOCUMENTAÇÃO DO USUARIO:

Trata-se de um conjunto completo de documentos disponível na forma impressa ou não, que é fornecido para a utilização de um produto, sendo também uma parte integrante do

Produto.

Deve incluir todos os dados necessários para a instalação, para o uso da aplicação e para a manutenção do software produto. Deve fazer referência a completude, correção,

consistência, intelegibilidade, apresentação e organização.

PROGRAMAS E DADOS:

Os requisitos de qualidade para Programas e Dados utilizam as mesmas definições das características da norma ISO/IEC 9126.

Page 8: Revisao Qualidade de Software

Descreve em detalhes cada uma das funções do software, incluindo declarações sobre funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e

portabilidade.

A ISO 9241-11

também explica como medidas de desempenho e satisfação do usuário podem ser usadas para medir como qualquer componente de um sistema afeta todo o sistema de

trabalho em uso.

Usabilidade: Medida na qual um produto pode ser usado por usuários específicos para alcançar objetivos específicos com eficácia, eficiência e satisfação em um contexto

específico de uso.

Eficácia: Completude com as quais usuários alcançam objetivos específicos.

Eficiência: Recursos gastos em relação à acurácia e abrangência com as quais usuários atingem objetivos.

Satisfação: Ausência do desconforto e presença de atitudes positivas para com o uso de um produto.

A norma ISO/IEC 14598 oferece uma visão geral dos processos de avaliação de produtos de software e fornece guias para a avaliação, baseados na utilização prática da

norma ISO/IEC 9126.

Modelos de melhoria e avaliação de processo de software ISO 9000-3

Por capacidade de processo entende-se a habilidade do processo em ser executado de forma eficiente e eficaz com a presença de algumas

A capacidade de processo determina que uma organização tenha processos executados de forma que sejam gerenciados, definidos, medidos, controlados, efetivos e melhorados

continuamente.

Torna-se importante considerar que o grau de formalização do processo e a complexidade da comunicação em um projeto deve ser equilibrado, ou seja, uma

formalização do processo adequada e uma comunicação correta para a efetividade de processo (capacidade).

a ISO 9000-3 é um guia para a aplicação da ISO 9001 para o desenvolvimento, fornecimento e manutenção de software. As diretrizes propostas na ISO 9000-3 cobrem

questões como:

Entendimento dos requisitos funcionais entre contratante e contratado;

Page 9: Revisao Qualidade de Software

Uso de metodologias consistentes para o desenvolvimento de software;

Gerenciamento de projeto desde a concepção até a manutenção.

Relevante destacar que uma das limitações da ISO 9000-3 é o fato de não tratar de aspectos como a melhoria contínua do processo de software (SPI – Software Process

Improvement). Dessa forma, a ISO 9000-3 considera apenas quais processos a organização deve ter e manter, mas não orienta quanto aos passos que devem ser

seguidos para chegar a desenvolvê-los e nem de como aperfeiçoá-los.

A documentação do processo de avaliação de um produto de software, representado pela ISO/IEC 14598-5, deve englobar um conjunto de métricas que fornecem

informações importantes sobre as propriedades do software e devem ser utilizadas de maneira eficiente de tal forma que possibilite a troca de informações sobre avaliações e

entre avaliadores. Para tanto, requer que haja uma padronização na forma de documentação o que é feito pela aplicação de módulos de avaliação (M.A.).

O sistema de qualidade deve ser documentado na forma de um manual e, assim, implementado.

Modelo de qualidade do processo de ciclo de vida do software NBR ISSO / IEC 12207

Qualidade em uso

A NBR ISO/IEC 12207 – Processos de Ciclo de Vida de Software  tem como objetivo o estabelecimento de uma estrutura comum para os processos de ciclo de vida de

software como forma de ajudar as organizações a compreenderem todos os componentes presentes na aquisição e fornecimento de software e, assim, conseguirem

firmar contratos e executarem projetos de forma eficaz.

modelos de melhoria e processo que permeiam três variáveis:

PROCESSOS

PESSOAS

TECNOLOGIAS

Considera-se que o processo de criação de um produto pode ser concebido como um ciclo de vida composto por procedimentos. Da mesma maneira, pode-se considerar que o processo de desenvolvimento de software constitui-se ser o ciclo de vida do software.

Page 10: Revisao Qualidade de Software

Vantagens do gerenciamento por processos:

Alinha estrategicamente a organização.

Foca a organização no cliente.

Obriga a organização a prestar contas pelo desempenho dos seus processos.

Alinha a força de trabalho com os processos.

Evidencia a necessidade de alocação de recursos.

Melhora a eficiência.

Propósito/Resultado:  reconhecimento do objetivo, da necessidade de execução do processo (propósito) e o que ele deve produzir como saída (resultado).

Atividade ou tarefa: descrição das atividades e suas inter-relações, bem como a sequência de execução de cada atividade ou tarefa. São descritos os procedimentos,

métodos, ferramentas para que possam ser realizadas as atividades de forma adequada.

Os processos da ISO/IEC 12207 são fortemente coesos, ou seja, todas as partes de um processo são fortemente relacionadas. Porém, os processos são fracamente acoplados

quanto à quantidade de interfaces entre os processos.

Regras para identificação, escopo e estruturação dos processos:

Um processo deve ser modular, ou seja, deve executar uma e somente uma função dentro do ciclo de vida com a menor incidência de interfaces entre dois processos.

Se um processo A é invocado por um processo B e somente por ele, então A pertence a B.

Page 11: Revisao Qualidade de Software

Se uma função é invocada por mais de um processo, então essa função torna-se um processo.

Deve ser possível verificar qualquer função dentro do modelo de ciclo de vida.

A estrutura interna deve ser suficientemente definida para que possa ser executável.

A NBR ISO/IEC 12207 estabelece uma arquitetura de ciclo de vida de software construída a partir de uma estrutura de processos e seus inter-relacionamentos descritos

tanto em nível de propósito/saída como em termos de processos, atividades, tarefas, propósito e resultados que servem para ser aplicados:

durante a aquisição de software, de um produto de software independente ou de um serviço de software.

durante o fornecimento, desenvolvimento, operação e manutenção de produtos de software.

Modelos de Qualidade de Processo de Software ISO/IEC 15504 - (Spice - Avaliação), CMMI e MPS.BR

A ISO/IEC 15504, conhecida também como SPICE (Software Process Improvement and Capability Determination), consiste em uma norma para definição de processos de desenvolvimento de software. Os requisitos da norma são uma evolução da norma ISO/IEC 12207, porém apresenta níveis de capacidade para cada processo. Por muito

tempo, a norma manteve-se em estudo e, somente em 1993, a ISO tornou pública a norma ISO/IEC 15504 (SPICE) para avaliação de processos de software.

Trata-se de um modelo bidimensional com objetivo de realizar avaliações dos mesmos com foco na sua otimização no que tange aos pontos fortes e oportunidades de melhoria, e a determinação da capacidade dos processos por meio da avaliação de um fornecedor

em potencial.

O modelo de avaliação de processo é organizado em uma arquitetura com dois níveis, sendo o primeiro composto por três categorias de processo: FUNDAMENTAIS,

ORGANIZACIONAIS E DE APOIO

O processo é composto  por: planejamento da melhoria, implementação,confirmação,manutenção, acompanhamento da melhoria

Dimensão de Capacidade de Processo

Em uma organização, vários processos podem ter níveis de capacidade diferentes. A ISO/IEC  15504 define 6 níveis de capacidade sequenciais e cumulativos. Os  níveis

podem ser usados para avaliar como uma organização está realizando um determinado processo  e como um  guia para a melhoria de processo. Cada nível de capacidade é

descrito basicamente por um nome, definição e atributos.

Page 12: Revisao Qualidade de Software

0 - Incompleto: processo não existe ou geralmente falha.

1 - executado: processo atinge os objetivos, porém sem padrão de qualidade e sem controle de prazos e custos.

2 - Gerenciado: processo planejado e acompanhado, e satisfaz requisitos definidos de qualidade, prazo e custos, e seus produtos de trabalho são gerenciados.

3 - Estabelecido: processo executado e gerenciado com uma adaptação de um processo padrão definido, eficaz e eficiente.

4 - Previsível: processo executado dentro de limites de controle definidos e com medições detalhadas e analisadas.

5 - Otimizando: processo melhorado continuamente de forma disciplinada.

Todo processo de avaliação deve ser bem documentado e conter, no mínimo, as atividades de planejamento, coleta de dados, validação dos dados, pontuação dos

atributos de processo e representação dos resultados.

A ISO/IEC 15504 não pressupõe modelos de ciclo de vida de software, tecnologias de software ou metodologias de desenvolvimento. Também não define um método explícito de avaliação, mas define os requisitos para o Método de Avaliação de

Processos. Na prática, uma avaliação de processos de software é conduzida utilizando o Modelo de Avaliação de Processos e não o Modelo de Referência de Processos.

CMMI (Capability Maturity Model Integration)

É intenso o desenvolvimento de softwares produzidos sem a orientação padronizada de uma norma. Isso acontece por conta de os fabricantes se preocuparem em atender às

necessidades iniciais do cliente, negligenciando aspectos de manutenção e durabilidade. O resultado dessa visão é a produção de softwares de baixa qualidade.

Inicialmente, o SEI (Software Engineering Institute) divulgou o CMM como o documento padrão de normas a serem seguidas e, logo após, outros tantos foram

definidos, tais como:

Engenharia de Sistemas (SE-CMM), Aquisição de Software (SA-CMM) e Gestão de Recursos Humanos de Empresas de Softwares (P-CMM).

Definição, Características e Objetivos do CMMI

Tomado como modelo de referência, o CMMI é capaz de fornecer uma orientação para o desenvolvimento de processos de softwares.

Page 13: Revisao Qualidade de Software

O objetivo do modelo é:

Eliminar as inconsistências.

Aumentar a clareza e entendimento.

Fornecer uma terminologia comum e um estilo consistente.

Afirma-se que o alcance do nível de maturidade de processos organizacionais se faz quando os processos alcançam uma determinada capacidade, ou seja, tem mecanismos

que garantem a repetição sucessiva de bons resultados futuros relacionados principalmente à qualidade, custos e prazos.

Representações do CMMI

CONTÍNUA:

Permite que uma organização selecione uma área (ou um grupo de áreas) de processo e melhore os processos relacionados. Ela usa níveis de capacidade para

caracterizarmelhorias relativas a uma área de processo individual.

O enfoque ou componentes principais são as áreas de processo. Existem metas e práticas de dois tipos: específicas a uma determinada área de processo e genéricas aplicáveis indistintamente a todas as áreas de processo. A partir da avaliação e do

atendimento dessas práticas e metas, é possível classificar o nível de capacidade de cada área de processo em níveis de zero a cinco

ESTAGIADA:

Usa conjuntos pré-definidos de áreas de processo (KPA's) para definir um caminho para uma organização, caracterizado por níveis de maturidade. A representação em estágios

oferece uma abordagem estruturada e sistemática para a melhoria de um estágio por vez. Atingir um estágio significa que uma estrutura de processo adequada foi estabelecida

como base para o próximo estágio. 

As áreas de processo são organizadas por níveis de maturidade (1 a 5) que definem o caminho de melhoria que uma organização deve seguir do nível inicial ao nível otimizado. Dentro de cada nível, existem áreas de processo que contêm metas,

características comuns e práticas. 

Na representação em níveis, as práticas são caracterizadas pelos atributos: compromISO para execução (práticas que garantem que o processo seja estabelecido e apoiado); habilidade para execução (práticas que criam condições para que o processo seja

estabelecido completamente) e atividade para execução (práticas que implementam diretamente o processo); controle e verificação de implementação. A transição entre os

níveis resulta em melhorias incrementais e duradouras.

Page 14: Revisao Qualidade de Software

MPS.BR

O objetivo do MPS.BR sintetiza a descrição de Melhoria de Processo do Software Brasileiro. Participam da criação as universidades, os grupos de pesquisas e as empresas

sob coordenação da SOFTEX.

Para isso, o MPS.BR desenvolve uma série de atividades cobrindo a elaboração de modelos de referência (MRMPS), elaboração de métodos de avaliação (MA-MPS),

elaboração de guia de negócios (MN-MPS) para aquisição, desenvolvimento e aplicação de diversos cursos para capacitação, credenciamento de pessoas e instituições como

implementadoras e avaliadoras, ações de disseminação para incentivo a utilização pelas empresas, e outras. A Figura 6.1 demonstra os modelos MPS.BR.

O MPS. BR baseia-se nas melhores práticas de engenharia de software, sendo compatível com o CMMI e em conformidade com as normas ISO/IEC 12207 e ISO/IEC

15504.

A versão 1.0 do modelo MR-MPS define 23 processos baseados em processos selecionados da ISO/IEC 12207 e ISO/IEC 15504-5 e nas áreas de processo do CMMI-SE/SW. Na estrutura do modelo são definidos sete níveis de capacidade ou maturidade de processo, expressos em termos de processos e de cinco atributos de processo (AP).

Cada nível introduz alguns processos, mantendo todos os processos dos níveis inferiores e, eventualmente, acrescenta novos atributos de processo a todos os processos.

As vantagens na prática do modelo se justificam pela compatibilidade com o CMMI e com as demais normas, além de considerar uma implantação mais gradual e adequada a

pequenas e médias empresas, uma possiblidade de obtenção do certificado, uma avaliação bienal das empresas e uma integração universidade-empresa.  

Por outro lado,  apesar do foco do MPS.BR ser um meio das médias e pequenas empresas alcançarem a qualidade nos processos e nos produtos desenvolvidos, servindo

Page 15: Revisao Qualidade de Software

como uma alternativa para o CMMI, a certificação não é competitiva o suficiente para tornar a empresa competitiva internacionalmente.

A gerência de riscos na qualidade de software

Um risco é qualquer evento ou condição em potencial que, se concretizando, pode afetar positivamente ou negativamente um objetivo do projeto, por exemplo, o software que

está sendo desenvolvido ou a organização.

Classificação de riscos de software

Riscos de projeto – pode comprometer o cronograma ou recursos do projeto.

Riscos de produto – afetam a qualidade ou desempenho do software desenvolvido.

Riscos de negócio – afetam a organização que desenvolve ou adquire o software.

Quanto à probabilidade e ao impacto:

Conhecidos

Previsíveis

Imprevisiveis

A probabilidade é a chance de ocorrer e o impacto é o efeito sobre o objetivo do projeto, caso o evento ou condição de risco venha se

manifestar.

O gerenciamento dos riscos do projeto tem por objetivo:

Maximizar os resultados.

Minimizar as consequências dos eventos negativos.

Identificação de riscos: descoberta dos riscos potenciais para o projeto, produto e negócios.

Análise de riscos: capacidade de compreender, analisar, estimar e avaliar as dimensões de cada fator de risco individual e o seu peso para o conjunto

Planejamento de risco: elaboração de planos para cuidar dos riscos evitando-os ou minimizando seus efeitos no projeto.

Monitoração de riscos: observação da efetividade dos planos de ação na execução do desenvolvimento do projeto de software.

Page 16: Revisao Qualidade de Software

Fatores de Risco:

Os efeitos do risco podem ser avaliados como catastróficos, sérios, toleráveis ou insignificantes, veja exemplos na tabela abaixo:

As estratégias podem ser categorizadas em:

De prevenção: a ocorrência de riscos é reduzida.

De minimização: o impacto do risco será reduzido.

De contingência: o efeito do risco é forte, mas existe uma alternativa para lidar com o problema.