Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 01 – Fundamentos sobre Qualidade de Software Nesta Aula • Conceitos de Qualidade – Problemática – Definições • Cenário das Empresas de TI • Qualidade de Projeto • Qualidade de Conformidade • Qualidade de Software • Evolução da Qualidade – Inspeção – Controle de Qualidade – Garantia da Qualidade – Gerenciamento Total da Qualidade • Qualidade e o SWEBOK • Normas e Modelos de Qualidade de Software • Auditorias • Tipos de Auditorias • Custo da Qualidade 13/03/2014 2 Cenário Após ... 1. a especificação de um software, 2. a seleção da empresa externa ou grupo de pessoas da empresa que a implementará, e 3. a realização da codificação propriamente dita, testada e documentada, ... em teoria o “problema” está resolvido, certo ? 13/03/2014 3 Não! Por que? 13/03/2014 4 Problema 1. Como saber se a solução atende realmente à especificação ? 2. Como ter um grau mínimo de certeza de que o software, uma vez posto em execução no ambiente de produção, não vai ter bug e, assim, ocasionar enormes problemas à fábrica ? 3. Como saber se ele foi testado corretamente ? 4. Como saber se ele foi documentado corretamente ? 5. Como saber se, uma vez pago, um pedido de uma próxima modificação / manutenção não vai ser cobrado desproporcionalmente ? 13/03/2014 5 Cenário das empresas de TI 13/03/2014 6 Acúmulo de trabalho Abandono de planos e procedimentos Sucesso depende do esforço heroico das pessoas Pouca repetibilidade Cenário das empresas de TI 13/03/2014 7 Prática e teoria muito distantes Clientes e funcionários insatisfeitos Produto funciona, mas com defeitos; prazo e custo maiores; e menos funcionalidade Como está a situação dessas empresas? 13/03/2014 8 Fonte: The Standish Group International, The Chaos Manifesto, 2013. Gráfico 1: Excesso de tempo e eusto e percentual de recursos entregues entre 2004 e 2012 Como está a situação dessas empresas? Frequentemente os projetos não terminam com sucesso: • ~ 30% dos projetos são cancelados; • ~ 50% dos projetos custam quase o dobro do planejado; • ~ 85% dos projetos não terminam no prazo; • Muitos projetos só trazem ~70% das funcionalidades originalmente planejadas. 13/03/2014 9 Fonte: Standish Group, The Chaos Manifesto, 2013. Consequências Sistemas de software são entregues mesmo sabendo-se que têm defeitos. Motivos: 1. Pressão por menores custos, 2. Entrega dentro do prazo ou com menor atraso, 3. Baixo preparo ou rigor técnico da equipe. 13/03/2014 10 13/03/2014 11 Portanto, como se precaver disso ? Solução Tradicional 1. Analistas e engenheiros experientes conseguem antever um pouco isso; 2. Esses profissionais exigem certos procedimentos das empresas de software ou da equipe de TI. No entanto, 1. Esses profissionais são escassos no mercado e, 2. Quem disse ou garante que esses procedimentos são os mais adequados e aceitos claramente pelas empresas de software e de auditoria ? 13/03/2014 12 13/03/2014 13 Afinal, então como se resolve efetivamente isso ? Solução Adequada 1. Através da utilização dos conceitos e práticas sólidas contidas nos Modelos de Melhoria de Processo de Software; 2. Selo de Qualidade da empresa de software (do engenheiro, do setor de TI da empresa onde atua, ou da contratada); 3. Critério de seleção / decisão da empresa de software. 13/03/2014 14 13/03/2014 15 Mas, o que é Qualidade ? Qualidade 13/03/2014 16 “Qualidade... Sabemos o que ela é, embora não saibamos o que ela é. Mas essa afirmação é contraditória. Mas algumas coisas são melhores que outras; ou seja, eles têm mais qualidade. Mas quando tentamos dizer o que é qualidade, excetuando as coisas que a têm, tudo desaparece como num passe de mágica! Não há nada para dizer a respeito. Mas se não conseguimos dizer o que é Qualidade, como saber o que ela é ou como saber até se ela existe mesmo? ...” Qualidade “... Se ninguém sabe o que ela é, então para fins práticos ela não existiria. Porém, para fins práticos, ela realmente existe. Em que mais se baseia a qualidade? Por que outro motivo as pessoas pagariam fortunas por algumas coisas e jogariam outras na lata de lixo? Obviamente, certas coisas são melhores que outras... Mas o que é o melhor?... E por aí vai (andando em círculos), girando rodas mentais e em nenhum lugar encontrando um ponto de tração. Mas o que é mesmo Qualidade? O que é isso?” 13/03/2014 17 Fonte: Persig, R., Zen and the Art of Motorcycle Maintence, Bantam Books, 1974. O que é Qualidade? “É um conceito complexo e multifacetado” que pode ser descrito através de cinco pontos de vista diferente: 1. Visão transcendental: algo que se reconhece imediatamente, mas não se consegue definir explicitamente. 2. Visão do usuário: percebe-se a qualidade em termos das metas específicas de um usuário final. Se um produto atende a essas metas, ele apresenta qualidade. 3. Visão do fabricante: se o produto atente as especificações, ele apresenta qualidade. 4. Visão do produto: pode ser ligada a características inerentes de um produto, por exemplo, funções e recursos. 5. Visão baseada em valor: tomando como base o quanto um cliente estaria disposto a pagar por um produto. 13/03/2014 18 Fonte: Garvin, D., What does Product Quality Really Mean?, Sloan Management Reviw, Fall, 1984. O que é Qualidade? 13/03/2014 19 Na verdade, qualidade possui todas essas visões e outras mais. Questões abordadas na disciplina 13/03/2014 20 1. Quais são as características genéricas de um software de alta qualidade? 2. Como revisar a qualidade e como são realizadas revisões eficazes? 3. O que é garantida da qualidade de software? 4. Quais métodos são usados para projetar casos de teste eficazes? 5. Existem métodos práticos para garantir que um software está correto? 6. Como gerenciar e controlar mudanças que sempre ocorrem quando um software é criado? 7. Que medidas e métricas podem ser usadas para avaliar a qualidade dos modelos de requisitos e de projeto, código-fonte e casos de teste? Qualidade de Projeto 13/03/2014 21 • Refere-se às características que os projetistas especificam para um produto. • A qualidade dos materiais, as tolerâncias e as especificações de desempenho são fatores que contribuem para a qualidade de um projeto. • No desenvolvimento de software, engloba o grau de atendimento às funções e características especificadas no modelo de requisitos. Qualidade de Conformidade 13/03/2014 22 • Refere-se ao grau em que a implementação segue o projeto e o sistema resultante atende suas necessidades e as metas de desempenho; 13/03/2014 23 Então, os engenheiros de software devem se preocupar unicamente com a qualidade do projeto e a qualidade de conformidade? Não! Por que? 13/03/2014 24 O que os clientes querem? 13/03/2014 25 • Atendimento aos requisitos especificados • Defeito zero • Alto desempenho • Baixo custo • Desenvolvimento rápido • Facilidade de uso • Eficiência nos serviços associados • Inovação Satisfação do usuário = produto compatível + boa qualidade + entrega dentro do orçamento e do prazo previsto. Logo, qualidade é importante, mas se o usuário não estivar satisfeito, nada mais importa. 13/03/2014 26 Fonte: Glass, R., Defining Quality Intuitively, IEEE Software, May, 1998. Mas o que é Qualidade de Software? 13/03/2014 27 Qualidade de Software 13/03/2014 28 “Uma gestão de qualidade efetiva aplicada de modo a criar um produto útil que forneça valor mensurável para aqueles que o produzem” (Pressmam) Qualidade de Software 13/03/2014 29 Produzir software de qualidade é o principal objetivo da Engenharia de Software. Qualidade de Software 13/03/2014 30 Foca em três pontos importantes: 1. Gestão de qualidade efetiva; 2. Produto Útil; 3. Agregar valor ao fabricante e ao usuário; Gestão de qualidade efetiva 13/03/2014 31 • Infraestrutura que dá suporte a qualquer tentativa de construir um produto de software de alta qualidade. • Uso de mecanismos de controle e equilíbriode poderes que ajudem a evitar o caos no projeto. • Práticas de engenharia de software para analisar o problema e elaborar uma solução consistente. • Atividades de apoio como gerenciamento de mudanças e revisões técnicas. Produto Útil 13/03/2014 32 • Fornece o conteúdo, as funções e os recursos que o usuário final deseja. • Fornecer confiabilidade e isenção de erros. • Satisfazer explicitamente as exigências definidas pelos interessados. • Satisfazer requisitos implícitos. – Ex: Facilidade de uso. Agregar valor ao fabricante e ao usuário 13/03/2014 33 • Gerar benefícios para a empresa e para a comunidade de usuários finais. • O fabricante ganha no valor agregado, pois um software de qualidade gera menos manutenção corretiva, menos suporte ao cliente • Os usuários ganham um valor agregado, pois a aplicação fornece a capacidade de agilizar algum processo de negócio. Agregar valor ao fabricante e ao usuário 13/03/2014 34 Resultado 1. Maior receita gerada pelo produto de software; 2. Maior rentabilidade quando uma aplicação suporta um processo de negócio; 3. Maior disponibilidade de informações cruciais para o negócio. Quem realiza a Qualidade? 13/03/2014 35 • Todo mundo. – Engenheiros de software – Gerentes – Interessados • Responsáveis – Gestores da qualidade. Por que é importante? 13/03/2014 36 Qualidade não é mais uma opção para as empresas ou clientes ... É uma exigência! Contextualização • Globalização – Novas exigências, alta competitividade, concorrência internacional. • Qualidade como Arma Competitiva – Equiparação com padrões internacionais, garantia de conformidade do produto, garantia da satisfação do cliente. • No contexto dos Sistemas de Informação – Garantia de conformidade do software com os requisitos especificados (qualidade de software). 13/03/2014 37 Evolução da Qualidade TQM (Total Quality Management) QA (Quality Assurance) QC (Quality Control) Inspeção 1. Era da Inspeção – Foco no Produto 2. Era do Controle Estatístico da Qualidade (QC) – Foco no Processo 3. Era da Garantia da Qualidade (QA) – Foco no Sistema 4. Era da Gestão da Qualidade Total (TQM) – Foco no Negócio 13/03/2014 38 Figura 3: Relação entre os conceitos sobre Qualidade de Software Inspeção • Os atributos de um produto são examinados, medidos ou testados, a fim de assegurar a sua conformidade. • Utilização de referenciais e/ou modelos para comparação – Desenhos, especificações, moldes, etc... • Detecção de Erro • Retificação 13/03/2014 39 Qual a diferença entre Controle da Qualidade X Garantia da Qualidade ? 13/03/2014 40 Controle da Qualidade • Evita que produtos defeituosos sejam entregues aos clientes; • Uso de métodos estatísticos e padrões de qualidade; • Natureza reativa. • Objetiva monitoramento de processo, detecção e correção de defeitos, por exemplo: – Inspeções – Testes. 13/03/2014 41 Garantia da Qualidade • Tenta produzir software com uma baixa taxa de defeitos; • Natureza proativa. • Definição de procedimentos, padrões, treinamentos. • Planejamento da qualidade • Gerência e melhoria de processo • Solução de problemas 13/03/2014 42 Total Quality Management (TQM) • Envolvimento de clientes e fornecedores – Atender as necessidades e expectativas do cliente (a “parte” mais importante da organização). – Consideração ao cliente e fornecedor interno. – Envolver todas as pessoas da organização. – Grupos de trabalho • Estratégia de qualidade – Examinar custos relacionados com a qualidade. – Desenvolver sistemas e procedimentos que suportem qualidade e melhoria. – Desenvolver um processo de melhoria contínua. 13/03/2014 43 Qualidade e o SWEBOK Qualidade de Software Fundamentos de Qualidade de Software Cultura e Ética em Engenharia de Software Valor e Custo da Qualidade Modelos e Características de Qualidade Melhoria da Qualidade de Software Software de Segurança Processos de Gerência de Qualidade de Software Garantia da Qualidade de Software Verificações e Validações Revisões e Auditoria Considerações Práticas Requisitos de Qualidade do Software Caracterização de Defeitos Técnicas de Gerenciamento de Qualidade de Software Medição de Qualidade de Software Ferramentas para Qualidade de Software 13/03/2014 44 Figura 3: Composição dos temas para a Qualidade de Software (SWBOK, 3ª ed. 2014) Normas e Modelos de Qualidade de Software • Processo – ISO 12207 - Processos de ciclo de vida do software. – ISO 90003:2004 - Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, fornecimento e manutenção de software. – ISO 15504 (SPICE) - Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software. – CMMI - Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de processos de software. – MPS.BR - Modelo Brasileiro de qualidade de processo de software, baseado nas normas ISO 12207 e 15504, e no modelo CMMI. • Produto – ISO 9126 - Norma para qualidade de produtos de software – ISO 14598 - Guias para avaliação de produtos de software – ISO 25000 (SQuaRE) - Reformulação da 9126+14598 13/03/2014 45 Certificação da Qualidade • Não basta que a qualidade exista, ela deve ser reconhecida pelo cliente; • Deve existir uma certificação oficial emitida com base em um padrão; • As certificações são dadas por instituições competentes; • Exemplos de certificação: – Selo SIF de qualidade de produtos alimentícios; – Selo ABIC de qualidade do café; – Classificação da rede hoteleira. 13/03/2014 46 Certificação da Qualidade • Por que Normalização Internacional? – Garantir a confiabilidade do produto; – Reduzir custos e evitar desperdícios e retrabalhos; – Implementar e utilizar práticas reconhecidas internacionalmente; – Estabelecer confiança no relacionamento com o cliente; – Cartão de visita para o mercado internacional. 13/03/2014 47 Auditorias “Uma validação independente de produtos de trabalho ou processos para verificar sua conformidade a padrões, procedimentos e especificações com base em critérios objetivos.” (IEEE 1028) • Obtenção de evidências objetivas – Informação com a qual pode ser comprovada uma verdade, baseado em fatos obtidos através de: • Observação, • Medição, • Teste, • Outros meios – Evidências observadas ou documentadas independente de preconceito ou emoção 13/03/2014 48 Tipos de Auditorias As auditorias podem ser classificadas como: • Auditorias de Produto – focadas na conformidade de produtos com os padrões estabelecidos • Auditorias de Processo – concentra-se na garantia da execução efetiva de todos os aspectos do procedimento • Auditorias de Sistemas de Qualidade – avalia a eficácia da implementação desse sistema e determina o grau com o qual os objetivos do sistema estão sendo atingidos 13/03/2014 49 Custos da Qualidade • Custos da Prevenção – Atividades de planejamento e gerenciamento, atividades técnicas (análise, projeto, desenvolvimento e testes) e treinamentos. • Custos de Avaliação/Certificação – Coleta de dados e avaliação de métricas, – Revisões técnicas para produtos de software, – Verificações no processo de produção. • Custos de Falhas e Correção – Custos de refazer atividades devido a erros na execução do processo ou no produto. 13/03/2014 50 Figura 5 – Custos relativo para correção de erros e defeitos Fonte: PRESSMAN, R. S., “Engenharia de Software. Uma Abordagem Profissional”, Editora McGraw-Hill, 7ª edição, 2011. 13/03/2014 51 Próxima Aula • Introdução a modelagem processo 13/03/2014 52 Referências • GARVIN, D., What does Product Quality Really Mean?, Sloan Management Reviw, Fall, 1984. • Glass, R., Defining Quality Intuitively, IEEE Software, May, 1998. • KOSCIANSKI, A.; SOARES, M. S., Qualidade de Software. Editora Novatec, 2ª edição, 2007. • PERSIG, R., Zen and the Art of Motorcycle Maintence, Bantam Books, 1974. • PRESSMAN, R. S., Engenharia de Software. Uma Abordagem Profissional,Editora McGraw-Hill, 7ª edição, 2011. • RABELO, R. J., Qualidade de Processo de Desenvolvimento de Software, Slides do Professor, UFSC, 2014. Disponível em :http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/Qualidade_de_Software.pdf>. Acessado em 03/2014. • SOMMERVILLE, I., Engenharia de Software, Editora Addison-Wesley, 9ª edição, 2011. • THE STANDISH GROUP INTERNATIONAL, The Chaos Manifesto, 2013. • VASCONCELOS, A. M. L., Introdução a Qualidade de Software, Slides do Professor. UFPE, 2012. Disponível em: <http://www.cin.ufpe.br/~processos/TAES3/slides/qualidade.ppt>. Acessado em 03/2014 13/03/2014 53 http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/Qualidade_de_Software.pdf
Compartilhar