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.