faculdade 7 de setembro – sistemas de informação engenharia de software – prof. ciro coelho...
Post on 17-Apr-2015
106 Views
Preview:
TRANSCRIPT
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
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):– 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 ProcessosIMATURO• 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– 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
top related