Engenharia de Software Qualidade de Software Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
O que é qualidade? Capacidade de um produto ou serviço: Realizar as funções esperadas Atender às expectativas do cliente Depende do cliente e da aplicação Conceito estendido: envolve outros atributos considerados importantes Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Qualidade, segundo os gurus “Quality is free” (Philip Crosby) benefícios superam os custos custo da não qualidade Ishikawa “Remova a causa principal e não os sintomas” “Não confunda os meios com os objetivos” “Objetivos devem levar em consideração os clientes” Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Joseph Juran Duas visões da qualidade (custo e benefício): Três eixos: centrada no cliente: mais qualidade representa mais custo centrada na empresa: redução de custos e defeitos mais qualidade representa menos custo Três eixos: planejamento, controle e melhoria Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Armand Feigenbaum Total Quality Control Três passos Liderança: gerenciamento contínuo e ênfase em excelência (não em reduzir falhas) Tecnologia moderna: todos devem se envolver, depto de qualidade sozinho não resolve Compromisso organizacional: comprometimento e relacionamento com o planejamento estratégico Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Edwards Deming – os 14 pontos Constância de propósitos Mudança filosófica Não depender de inspeção somente Fornecedores = parceiros Melhorar continuamente Treinar sempre e em todos os níveis Incentivar liderança Enfrentar e superar receios (bloqueios) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Edwards Deming – os 14 pontos Quebrar barreiras entre áreas Eliminar slogans e exortações Eliminar cotas numéricas de trabalho, gerenciamento por objetivos Tratar e eliminar as razões de insatisfação dos trabalhadores (baixa produtividade) Instituir programa de melhoria pessoal Engajar todos na organização no programa de transformação Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
A cadeia de Deming Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
PDCA - Ciclo de Deming/Shewhart Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Aspectos humanos da qualidade Qualidade ligada à cultura organizacional Todos os grandes nomes da qualidade abordam questões culturais e pessoais Resistência a mudanças alta administração gerentes de nível intermediário base Processo de mudança deve se iniciar de cima pontos importantes de apoio nos vários níveis implantação piloto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Crise do software Abordagem tradicional com teste final DoD americano verificou: grande percentual de sistemas encomendados e não usados; desperdício motivos: ou com problemas de confiabilidade ou não atendiam mais às necessidades do cliente Falta de foco no cliente: distância do especificado Foco no processo não basta esperar o produto final bons processos -> bons produtos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Promessas e realidade “There is no silver bullet” (Fred Brooks) Ferramentas CASE Metodologias de desenvolvimento Ciclos de vida Técnicas A realidade: a melhoria é custosa e gradativa Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Qualidade de Software No início: função estava no hardware qualidade de software: funcionalidade ao substituir o HW Com a disseminação do software: confiabilidade Foco no produto: outros atributos de qualidade Foco no cliente TQM e processos Capabilidade e maturidade de processos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Qualidade de Software Histórico semelhante ao de manufatura Grande resistência, dizia-se: “software é diferente” “arte e criatividade” “atividades não repetitivas” Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Criatividade e procesos projeto de desenvolvimento: entradas -> produto específico usa uma sequência de processos processo: uma coleção de entradas -> um tipo de saída rotinas repetitivas (especificar, inspecionar, projetar, codificar, testar, compilar, etc) produção baseada em processos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Criatividade e procesos Como é possível usar as mesmas abordagens da manufatura? Melhorar/otimizar processos repetitivos que compõem a criação Liberar a capacidade criadora Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Funcionalidade Conjunto de atributos que evidenciam a existência de um conjunto de funções e suas propriedades especificadas Sub-características: adequação acurácia interoperabilidade conformidade segurança de acesso Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Confiabilidade conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido Sub-características: maturidade tolerância a falhas recuperabilidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Usabilidade conjunto de atributos que evidenciam o esforço necessário para se poder utilizar o software, bem como o julgamento individual deste uso, por um conjunto explícito ou implícito de usuários Sub-características: inteligibilidade apreensibilidade operacionalidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Eficiência conjunto de atributos que evidenciam o relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, sob condições estabelecidas Sub-características: comportamento em relação ao tempo comportamento em relação aos recursos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Manutenibilidade conjunto de atributos que evidenciam o esforço necessário para fazer modificações especificadas no software Sub-características: analisabilidade modificabilidade estabilidade testabilidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Produto – ISO 9126 Portabilidade conjunto de atributos que evidenciam a capacidade do software ser transferido de um ambiente para outro Sub-características: adaptabilidade capacidade para ser instalado conformidade capacidade para substituir Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Qualidade é... Função Confiabilidade Durabilidade Desempenho Consumo Tamanho Flexibilidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Mas é também... Preço Prazo Serviços pós-venda Aspectos humanos: exploração do trabalho respeito ao meio ambiente posição quanto à comunidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Características de Qualidade do Projeto Prazo O melhor produto do mundo entregue com atraso pode não servir pra nada Custo Se o custo for maior do que o previsto, alguém vai ter que arcar com os prejuízos, o cliente ou a empresa desenvolvedora Qualidade dos serviços Atendimento ao cliente, pós-venda etc. Satisfação do cliente Envolve os aspectos anteriores e a qualidade do produto, além de outros fatores Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Gestão da qualidade Ferramenta de administração para atingir os objetivos do negócio Evolução da qualidade deve ser gerenciada como se fosse um projeto Articulação com os planos corporativos, principalmente o estratégico Planos são traçados a partir das expectativas dos clientes Foco no cliente não basta -> stakeholders Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Gestão da qualidade Stakeholders: partes interessadas Clientes são os mais importantes, mas: acionistas empregados: qualidade no ambiente de trabalho e no futuro profissional fornecedores e parceiros comunidade e meio ambiente Frequentemente os objetivos dos stakeholders são antagônicos Objetivo: atingir o equilíbrio, satisfazer a todos (win x win) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Controle da Qualidade Verificar se o artefato produzido tem qualidade Exemplos de atividades Testes Revisões Encontro formal onde um ou mais artefatos são apresentados ao cliente, usuário ou outra parte interessada no produto para que seja(m) comentado e aprovado(s) Inspeções Encontro formal onde um ou mais artefatos são analisados pro uma pessoa ou grupo de pessoas para detectar erros, violações de padrões e outros problemas Foco na qualidade do produto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Garantia da Qualidade Estabelecer procedimentos e padrões que conduzam a um software de qualidade Padrões (ou normas) são a chave para a garantia da qualidade Padrões podem ser internacionais, nacionais ou organizacionais. Organizações de padronização: ISO, IEEE, ANSI, SEI etc Foco na qualidade do processo (contempla tanto produto quanto projeto) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Técnicas para garantir qualidade Inspeção: exame (visual) de características dos produtos Teste: execução e comparação com os resultados esperados Auditoria: avaliação independente de produtos e processos Aplicação em produtos: inspeção, teste e auditoria Aplicação em processos: auditoria Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Modelos/Padrões de Qualidade Repositório das melhores práticas Referência para estabelecimento de processos Define métrica para avaliação e roteiro seqüencial para a melhoria, baseado na capacidade de processo Define “o quê“ deve ser feito, não o “como” Independente da tecnologia a ser utilizada Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Modelos/Padrões de Qualidade CMM/CMMI ISO/IEC 15504 (SPICE) CobiT ITIL Six Sigma MPS – Br ... Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Maturidade de Processos Processo IMATURO Ad hoc - improvisado Fortemente dependente dos profissionais Pouca produtividade geral Prazos e nível de qualidade difíceis de cumprir Mais riscos na adoção de novas tecnologias Precisa “apagar incêndios” freqüentemente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Maturidade de Processos Processo IMATURO A maioria das organizações de software nessa situação são como “bombeiros” O fogo está sob controle Constantemente reativas – sem tempo para as melhorias Os bombeiros se queimam Seu único controle é: prevenção do incêndio Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Maturidade de Processos Processo MADURO: É bem conhecido por todos os envolvidos Permite auditoria da fidelidade ao processo Propicia adoção disciplinada de tecnologias Os papéis e responsabilidades são claramente definidos Permite acompanhamento da qualidade do produto Permite acompanhamento da satisfação do cliente O cronograma, custo e qualidade são alcançados Há melhoria contínua do processo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Maturidade de Processos Processo MADURO: A organização possui uma infra-estrutura que efetiva e consistentemente aplica o processo Gerência deve “alimentar” a cultura de gestão – “se ninguém se importa, todo mundo esquece” Um processo institucionalizado resiste mesmo sem as pessoas que o definiram originalmente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Maturidade de Processos IMATURO Processo improvisado pelas pessoas Processo não é seguido ou cumprido Grande dependência dos atuais desenvolvedores Baixa visibilidade do processo para seu progresso e qualidade Funcionalidade e qualidade do produto comprometidas para atender prazo Custos excessivos de manutenção Tecnologia Processo MADURO Processo é definido, documentado e melhorado continuamente Processo é entendido, utilizado e “vivo” Processo suportado pela gerência Processo verificado e cumprido Grande visibilidade do processo alinhado ao negócio da organização Papéis e responsabilidades claramente definidas Processo Tecnologia Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMM - Histórico Desenvolvido pelo SEI – Software Engineering Institute da Carnegie Mellon University no final dos anos 80 a pedido do Departamento de Defesa dos EUA (DoD) Watts Humphey foi o principal mentor do CMM Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Capability Maturity Model Integrated Desenvolvido pelo Software Engineering Institute (SEI) Evolução do CMM Objetivo: servir de base para a melhoria de processos da organização É um modelo, não é um processo!!! Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Modelo de gestão da qualidade aplicável ao processo de desenvolvimento de software Descreve elementos chave para um processo eficaz e o caminho evolutivo para um processo maduro e disciplinado Busca da melhoria contínua, aprimorando a habilidade da organização para atender aos objetivos de custo, prazo, funcionalidade e qualidade do produto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Capability Maturity Model Integrated = Engenharia de Software (SW) + Engenharia de Sistemas (SE) Desenvolvimento Integrado de Produtos e Processos (IPPD) Gerência de Fornecimento (SS) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Em relação ao CMM, o CMMI é: Mais compatível com as práticas atuais de desenvolvimento de software Mais flexível Mais compreensível Mais complexo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI - Visões Depende do tipo de negócio da empresa. Pode ser: SW SW + SE SW + SE + IPPD SW + SE + IPPD + SS Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI - Representações Estágios Contínua Melhoria de processos por níveis Cada nível contempla algumas áreas de processo Níveis de maturidade (1 a 5) Contínua Melhoria de processos por grupos de processo Níveis de capacidade (0 a 5) Mais flexível e mais confuso Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI - Estrutura Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Níveis de Maturidade Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI Nível 1 - Inicial - organizações imaturas Não há metodologia implementada Nível 2 - Repetível - disciplina e estabilidade Empresa consegue produzir no prazo com custo previsível Nível 3 - Definido - padronização e consistência Garante o nível de qualidade no produto e no processo Nível 4 - Gerenciado - medição e controle O processo é definido, quantificado e acompanhado Nível 5 - Otimizado - melhoria contínua Mudanças no processo não prejudicam o desenvolvimento Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 1 Nível 1 - Inicial Processo disforme e de baixa visibilidade Resultados são imprevisíveis Formas de controle muito pobres Enormes dificuldade para previsões de cronogramas orçamentos funcionalidades qualidade do produto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 2 Nível 2 - Repetível Disciplinado e estável Procedimentos de gerenciamento de projetos Aproveitamento sistemático de históricos Padrões para projetos de software Acompanhamento de custos, cronogramas e funcionalidades Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 2 Nível 2 - Repetível Processos disciplinados garantem a reprodução de processo já utilizados em projetos bem sucedidos em aplicações semelhantes... Entretanto... A Gerência ainda é reativa!!!! Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 2 Meta Genérica: institucionalizar um processo gerenciado Práticas Genéricas Estabelecer uma política organizacional Planejar o processo Prover recursos Atribuir responsabilidade Treinar pessoal Gerenciar configurações Identificar e envolver stakeholders relevantes Monitorar e controlar o processo Avaliar aderência objetivamente Revisar status com gerência sênior Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 2 Áreas de Processo (PAs) Gerenciamento de Requisitos Planejamento do Projeto Acompanhamento do Projeto Gerenciamento de Fornecimento e Subcontratação Medição e Análise Garantia da Qualidade Gerenciamento de Configuração Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 3 Nível 3 - Definido As saídas de uma atividade fluem naturalmente para as entradas da atividade seguinte Os processos de software são Integrados no processo padrão da empresa Documentados Padronizados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 3 Nível 3 - Definido Todos os projetos usam uma versão aprovada e individualmente adaptada do processo padrão da organização A Gerência é Pro-Ativa!!! Há um grupo para o estabelecimento dos padrões e multiplicação do conhecimento – SEPG (Software Engineering and Process Group) Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 3 Meta Genérica: institucionalizar um processo definido Práticas Genéricas Estabelecer um processo definido Coletar informações para melhoria Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 3 Áreas de Processo (PAs) Desenvolvimento de Requisitos Solução técnica Integração de Produtos Verificação Validação Foco no Processo Organizacional Definição do Processo Organizacional Treinamento Organizacional Gerenciamento Integrado de Projetos Gerenciamento de Riscos Alocação Integrada de Pessoas Gerenciamento Integrado de Fornecimento Análise de Decisão Ambiente Organizacional para Intgração Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 4 Nível 4 - Gerenciado Faz controle estatístico de processo Aponta causas da variação do processo Capacitação predizível Bases objetivas para tomada de decisão Gerência quantitativa de produto e processo Os processo de software e a qualidade do produto são medidos e controlados quantitativamente Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 4 Meta Genérica: institucionalizar um processo quantitativamente gerenciado Práticas Genéricas Estabelecer objetivos quantitativos para o processo Estabilizar performance dos subprocessos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 4 Áreas de Processo (PAs) Performance do Processo Organizacional Gerenciamento Quantitativo do Projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 5 Nível 5 - Otimizado Foco na melhoria contínua do processo Melhoria contínua proporcionada por Realimentação quantitativa do processo Condução de novas idéias e tecnologias A organização tem capacidade gerencial para estimar e acompanhar quantitativamente o impacto e a eficácia das mudanças Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 5 Meta Genérica: institucionalizar um processo em otimização Práticas Genéricas Garantir melhoria contínua do processo Corrigir causas (root causes) de problemas Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
CMMI – Nível 5 Áreas de Processo (PAs) Inovação Organizacional Análise Causal Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Exemplo – Gerenciamento de Requisitos Gerenciar requisitos (objetivo específico) Obter entendimento dos requisitos (prática específica) Obter comprometimento quanto aos requisitos Gerenciar mudanças em requisitos Capturar mudanças em requisitos (subprática) Manter histórico de mudanças Avaliar impacto das mudanças Disponibilizar mudanças Manter rastreabilidade bidirecional de requisitos Identificar inconsistências entre requisitos e produtos de trabalho Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho