Qualidade do Software

Post on 21-Jan-2017

208 views 0 download

Transcript of Qualidade do Software

Qualidade do Software

Wagner Zaparoli

wzaparoli@gmail.com

Qualidade do Software 2

Agenda

• Parte 1 – Conceitos Gerais

•Conceito de Qualidade de Software.

• Visões da Qualidade.

• Variáveis da Qualidade.

• Processo de Software.

• Modelos de Processos.

• Parte 2 – Guia de Avaliação

• Qualidade nas Fases do Processo.

• Qualidade na Gestão.

Qualidade do Software 3

Parte1 – Conceitos Gerais

Qualidade do Software 4

Conjunto de atributos de software que devem ser satisfeitos de modo que o software atenda

às necessidades dos usuários.

O que é Qualidade de Software?

Relacionada aos requisitos

Relacionada à falta de conformidade

Pode ser medida, controlada e gerenciada

Qualidade do Software 5

Diferentes Visões da Qualidade

Usuário

Facilidade de uso, Desempenho, Confiabilidade dos Resultados,

Preço do Software, etc...

Desenvolvedor

Taxa de Defeitos, Facilidade de Manutenção e Conformidade em

relação aos Requisitos dos Usuários, etc...

Organização

Cumprimento de Prazo, Boa Previsão de Custo, Boa

Produtividade

Qualidade do Software 6

Drops da Qualidade

Eficácia

Produtividade

Segurança

Satisfação

Adequação

Acurácia

Interoperabili-dade

Conformidade

Inteligibilida-de

Apreendibili-dade

Operacionali-dade

Atratividade

Maturidade

Tolerância a falhas

Recuperabili-dade

Manutenabili-dade

Testabilidade

EstabilidadeModificabi-lidade

Analisabili-dade

Qualidade do Software 7

Quadro Resumo da Qualidade*

Qualidade em Uso

Funcionalidade

Usabilidade

Confiabilidade

Eficiência

Manutenabilidade

Portabilidade

* ISO 9126

Qualidade do Software 8

O software deve ser capaz de permitir que usuários atinjam com eficácia, produtividade, segurança e

satisfação metas específicas

Qualidade em Uso

Quadro Resumo da Qualidade

Qualidade do Software 9

Confiabilidade

O software deve manter um nível de desempenho quando usado em condições específicas

Quadro Resumo da Qualidade

Qualidade do Software 10

Funcionalidade

O software deve prover funções que atendam necessidades explícitas e implícitas, quando utilizado

sob condições específicas

Quadro Resumo da Qualidade

Qualidade do Software 11

Portabilidade

Quando for o caso, o software deve ser transferível de um ambiente para outro especificado

Quadro Resumo da Qualidade

Qualidade do Software 12

Eficiência

O software deve apresentar desempenho apropriado, relativo à quantidade de recursos usados, sob

condições especificadas

Quadro Resumo da Qualidade

Qualidade do Software 13

Usabilidade

O software deve ser capaz de ser compreendido, apreendido e operado pelo usuário alvo

Quadro Resumo da Qualidade

Qualidade do Software 14

Manutenabilidade

O software deve permitir modificações como correções, melhorias ou adaptações, devido a mudanças no ambiente e nos seus requisitos ou especificações

funcionais

Quadro Resumo da Qualidade

Qualidade do Software 15

SoftwareProcesso

Qualidade de Software

Qualidade do Processo

Software como Resultado

Conjunto de atividades, métodos, práticas e tecnologias que as pessoas utilizam para desenvolver e manter software e produtos

relacionados

Qualidade do Software 16

Processo de Software - Definição

• Ad hoc – Improvisado• Fortemente dependente dos profissionais• Indisciplinado

Qualidade do Software 17

Processo de Software - Imaturo

• Pouca produtividade• Qualidade de difícil previsão• Alto custo de manutenção• Risco na adoção de novas tecnologias

• 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

Qualidade do Software 18

Processo de Software - Maduro

• Papéis e responsabilidades claramente definidos• Acompanhamento da qualidade do produto e da satisfação do cliente• Expectativas para custos, cronograma, funcionalidade e qualidade do produto é usualmente alcançado

Sem Controle• Improvisado

• Não Seguido

• Depende dos profissionais

• Baixa visão do progresso e

da qualidade

• Arriscado do ponto de vista

de uso de novas tecnologias

Qualidade do Software 19

Processo de Software – Dimensão Controle

Com Controle • Coerente; o trabalho é

efetivamente concluído

• Apoio da alta administração.

• Permite a medição do produto

e do processo

• Uso disciplinado da

tecnologia

Benefícios• Linguagem comum

• Processos e procedimentos

desenvolvidos com sugestões da

comunidade de software

• Estrutura para se priorizar as

ações

• Auxilia comparações com

diversas organizações

Qualidade do Software 20

Processo de Software – Modelos de Qualidade

Riscos• Modelos são simplificações

• Modelos podem não ser

abrangentes

• Interpretações e adaptações

• Bom senso e visão

Qualidade do Software 21

Processo de Software – Modelos de Qualidade

Qualidade do Software 22

Processo de Software – Modelos de Qualidade

• Framework que descreve os elementos chaves de um

processo de software eficaz.

• Um caminho de melhoramento evolucionário (5 níveis de

maturidade) para as organizações mudarem de um

processo imaturo para um processo maduro e disciplinado.

Qualidade do Software 23

Processo de Software – Modelos de Qualidade

• Designa um grupo de normas técnicas que estabelecem

um modelo de gestão da qualidade para organizações em

geral.

• ISO/IEC 9126 é uma norma ISO para qualidade de

produto de software baseado em três componentes:

Processo, Produto e Qualidade em Uso.

Qualidade do Software 24

Processo de Software – Modelos de Qualidade

• Modelo brasileiro de referência para melhoria do processo

de software baseado nos padrões ISO.

• Possui 7 níveis de maturidade onde são analisados os

processos fundamentais, os processos organizacionais, e

os processos de apoio.

Qualidade do Software 25

Parte2 – Guia de Avaliação

Qualidade do Software 26

Procedimentos Gerenciais

Procedimentos Operacionais

Processo

ATIVIDADES

RESPONSÁVÉIS

ENTREGÁVEIS

POLÍTICAS

SEGURANÇA

POLÍTICAS

ARQUITETURAIS

POLÍTICAS DE DADOS

DIRETRIZES LEGAIS

PMBOK

CMMI

/

ISO

ITIL

Pós-desenvolvimento

Desenvolvimento

Pré-desenvolvimento

Qualidade do Software 27

Processo Padrão de Desenvolvimento

Estudo Preliminar

ProjetoAnáliseConcepção

ConstruçãoTeste/Docum. Homologação Implantação

Planejamento

Manutenção

GESTÃO

Qualidade do Software 28

Resultado do Processo

Software

Qualidade do Software 29

Qualidade no Pré-desenvolvimento

Estudo Preliminar

• As necessidades funcionais estão identificadas e entendidas por todos os

participantes do processo?

• As necessidades não funcionais (software, hardware, infra-estrutura, etc.)

estão identificadas e entendidas por todos os participantes do processo?

• As necessidades de recursos humanos foram estimadas de acordo com as

necessidades identificadas acima?

• O tempo de esforço foi estimado de acordo com as necessidades

identificadas acima?

• Os potenciais riscos foram claramente identificados, conjuntamente com as

respectivas ações de mitigação e planos contingenciais?

• Os benefícios do projeto foram relacionados?

• O custo foi estimado e está em consonância com os itens anteriores?

• A análise da relação custo/benefício foi realizada?

• O cliente e demais participantes aprovaram o projeto e estão de acordo com

as informações contidas neste estudo?

• Se aprovado o projeto, existem ressalvas que impactam a sua continuidade?

Qualidade do Software 30

Qualidade no Desenvolvimento

Planejamento

• Os membros da equipe estão definidos?

• O papel de cada membro está claramente entendido?

• O cronograma do projeto foi elaborado, contendo as

atividades, tempo de realização e responsável pela

realização?

• O ambiente de desenvolvimento foi definido,

disponibilizado e testado de acordo com as

informações contidas no estudo preliminar aprovado?

Qualidade do Software 31

Qualidade no Desenvolvimento

Concepção

• Os requisitos foram especificados de acordo com os padrões

estabelecidos em metodologia vigente?

• Os requisitos estão sincronizados com as necessidades funcionais

e não funcionais definidas no estudo preliminar?

• O modelo de dados conceitual foi elaborado e está em

conformidade com os requisitos especificados?

• O modelo conceitual da arquitetura foi elaborado e está em

conformidade com os requisitos especificados?

• Os requisitos foram inspecionados por uma equipe de qualidade?

• O usuário aprovou formalmente os requisitos e demais artefatos da

etapa?

Qualidade do Software 32

Qualidade no Desenvolvimento

Análise

• O diagrama de casos de uso foi elaborado de acordo com os padrões estabelecidos

em metodologia vigente?

• Os casos de uso de negócio foram especificados de acordo com os padrões

estabelecidos em metodologia vigente?

• Os casos de uso de negócio estão relacionados a um ou mais requisitos?

• As integrações foram especificadas de acordo com os padrões estabelecidos em

metodologia vigente?

• O tratamento de erros foi elaborado de acordo com os padrões estabelecidos em

metodologia vigente e atende às funcionalidades mapeadas nos casos de uso?

• O modelo de dados lógico foi elaborado de acordo com os padrões estabelecidos

em metodologia vigente e atende às funcionalidades mapeadas nos casos de uso?

• O diagrama de classes foi elaborado de acordo com os padrões estabelecidos em

metodologia vigente e atende às funcionalidades mapeadas nos casos de uso?

• Os artefatos dessa etapa foram inspecionados por uma equipe de qualidade?

• O usuário aprovou formalmente os artefatos da etapa?

Qualidade do Software 33

Qualidade no Desenvolvimento

Projeto

• As classes foram especificadas de acordo com os padrões estabelecidos em

metodologia vigente?

• Os métodos e atributos foram especificados de acordo com os padrões

estabelecidos em metodologia vigente e estão em conformidade com a especificação

das classes?

• O modelo de dados físico foi elaborado de acordo com os padrões estabelecidos em

metodologia vigente e atende às funcionalidades mapeadas nos casos de uso?

• A arquitetura foi especificada de acordo com os padrões estabelecidos em

metodologia vigente e atende às funcionalidades e demais características mapeadas

nos artefatos já produzidos (em especial os requisitos)?

• A especificação de telas e relatórios foi elaborada de acordo com os padrões

estabelecidos em metodologia vigente e atende às funcionalidades mapeadas nos

casos de uso?

• O testes de construção foram elaborados de acordo com os padrões estabelecidos

em metodologia vigente e atendem às funcionalidades mapeadas nos casos de uso?

• Os artefatos dessa etapa foram inspecionados por uma equipe de qualidade?

• O usuário aprovou formalmente os artefatos da etapa?

Qualidade do Software 34

Qualidade no Desenvolvimento

Construção

• A estrutura física do banco de dados foi criada e testada?

• A carga inicial para testes foi realizada e testada?

• Os componentes de negócio foram construídos e testados

adequadamente?

• O testes de integração/sistema foram elaborados de acordo

com os padrões estabelecidos em metodologia vigente e

atendem às funcionalidades mapeadas nos requisitos?

• Os artefatos dessa etapa foram inspecionados por uma

equipe de qualidade?

Qualidade do Software 35

Qualidade no Desenvolvimento

Testes/Docum.

• Os testes de integração/sistema foram executados

adequadamente?

• Os manuais (documentação) foram elaborados e

disponibilizados aos usuários e demais participantes?

• Os testes de homologação foram elaborados de acordo com

os padrões estabelecidos em metodologia vigente e atendem

às funcionalidades mapeadas nos requisitos e casos de uso?

• Os artefatos dessa etapa foram inspecionados por uma

equipe de qualidade?

Qualidade do Software 36

Qualidade no Desenvolvimento

Homologação

• Os testes de homologação foram executados

adequadamente?

• O teste de aceitação foi realizado adequadamente?

• O plano de implantação foi elaborado de acordo com os

padrões estabelecidos em metodologia vigente?

• O treinamento foi realizado adequadamente?

• A infra-estrutura de produção foi preparada

adequadamente?

• Os artefatos dessa etapa foram inspecionados por uma

equipe de qualidade?

Qualidade do Software 37

Qualidade no Desenvolvimento

Implantação

• As rotinas de produção foram montadas adequadamente?

• As cargas devidas foram realizadas?

• A inspeção das cargas foi realizada por equipe de

qualidade?

• Os testes de produção foram realizados adequadamente?

• O aceite final foi formalizado?

• O formulário de “lições aprendidas” foi preenchido?

• A acompanhamento da produção foi ou está sendo

realizado?

Qualidade do Software 38

Qualidade no Pós-desenvolvimento

Manutenção

• Os requisitos de manutenção foram elicitados?

• As necessidades, riscos e impactos foram definidos

adequadamente?

• O estudo de viabilidade foi realizado?

• A execução manutenção foi planejada?

• A execução da manutenção foi realizada?

• Os testes de manutenção foram realizados?

• Os testes de aceitação foram realizados?

• O produto foi colocar em produção?

• A acompanhamento da produção foi ou está sendo

realizado?

Qualidade do Software 39

Qualidade na Gestão

INICIAÇÃO

EXECUÇÃO

FINALIZAÇÃO

SUPORTE

ADMINISTRAÇÃO

Desenvolvimento doProjeto

Apoio ao Desenvolvimento

Qualidade do Software 40

Atividades de Controle do Progresso

• O que deve ser feito (objetivos do projeto);

• Como deve ser feito (ferramentas, atividades, padrões, etc.);

• Quem deve fazer (responsável pela execução das atividades);

• Quando deve ser feito (posicionamento na sequência do projeto);

• Que resultados são esperados (produtos a serem gerados);

• Quais indicadores e medições a serem verificados e realizados;

• Quais os pontos de controle/inspeção;

• Quais critérios de entrada para cada atividade;

• Quais critérios de saída para cada atividade;

• Qual o relacionamento entre as atividades (para frente e para trás).

Qualidade do Software 41

Atividades de Controle de Testes/Homologação

• Testes• Planejar os testes;

• Elaborar os casos de testes;

• Executar os casos de testes;

• Registrar os testes;

• Homologação• Planejar a homologação (datas, recursos, responsáveis envolvidos, etc.);

• Comunicar aos envolvidos sobre o início do processo com antecedência;

• Monitorar o andamento do processo e comunicar possíveis desvios e respectivo

término;

Qualidade do Software 42

Atividades de Controle de Entrega

• Entrega dos artefatos para inspeção;

• Entrega dos artefatos para validação do cliente;

• Entrega do produto para homologação;

• Entrega do produto para aceitação (cliente);

• Entrega do produto para produção.

Qualidade do Software 43

Atividades de Controle do Escopo

• Escopo do Produto: trata das funcionalidades que

caracterizam os produtos ou serviços oferecidos pela

implementação de um projeto;

• Escopo do Projeto: trata do trabalho e dos artefatos criados

para contemplar as funcionalidades dos produtos/serviços.

Qualidade do Software 44

Atividades de Controle de Riscos

• Identificação e Análise: tem como objetivo conhecer os riscos e tratá-los de acordo com as

necessidades do projeto;

• Processo:

• Definição da probabilidade da ocorrência do risco e respectivos impactos;

• Definição da estratégia de mitigação do risco;

• Definição do plano de contingência do risco;

• Reavaliação dos Riscos: tem como objetivo identificar novos riscos e revisar o escopo dos

riscos já identificados no transcorrer do projeto;

• Monitoramento dos Riscos: tem por objetivo antever a ocorrência de um risco ou identificar a

sua ocorrência tão logo aconteça.

Qualidade do Software 45

Atividades de Controle de Recursos/Custos

• Recurso: qualquer necessidade de um projeto relacionada à infra-estrutura, software, hardware, recursos humanos e documentais.

• Custo: todo investimento ou despesa que a companhia terá durante o ciclo de vida de um projeto.

• Monitoramento

Motivos • Mudanças de escopo ocorridas durante o desenvolvimento.• Estimativas superdimensionadas ou sub-dimensionadas.• Perda do escopo (alta rotatividade da equipe, terceiro não cumpriu o prazo, má gestão, infra-estrutura não disponível, etc.).

Atividades• Identificar o mais cedo possível prováveis causas.• Analisar impactos na ocorrência de um ou mais motivos.• Pensar nas soluções e comunicar os responsáveis e parceiros.• Na necessidade, elaborar e submeter à aprovação um Paper complementar.

Qualidade do Software 46

Sugestões Bibliográficas

Paulk, M. et All; The Capapability Maturity Model: Guidelines for Improving the Software Process;

Software Engineering Institute/CMU; Addison-Wesley, 1995.

• Sanders, J.; Curran, E.; Software Quality; Addison-Wesley, 1994.

• Paulk M. et All; Techinical Report/CMU/SEI-93-TR-025; Key Pratices of the Capability Maturity

Model for Software, Version 1.1; Software Engineering Institute/CMU, 1993.

• Santos, A. D.; CMM – Capability Maturity Model; Apostila: Faculdade de Engenharia

Elétrica/UNICAMP, 2000.

• Paula Filho, W. P.; Engenharia de Software: Fundamentos, Métodos e Padrões; LTC Editora,

2001.

• Sommerville, I.; Software Engineering, 6th Edition, Adison-Wesley, 2001.

• Couto, A. B.; CMMI – Integração dos Modelos de Capacitação e Maturidade de Sistemas; Editora

Ciência Moderna, 2007.

• IEEE Computer Society; Swebok – Guide to the Software Engineering Body of Knowledge; USA,

2004.

Wagner Zaparoli

wzaparoli@gmail.com

Qualidade do Software