Prévia do material em texto
Curso: Análise e Desenvolvimento de Sistemas Disciplina: Engenharia de Software Aula 07: Qualidade de Software Prof. Hemir da C. Santiago hemircsantiago@fac.pe.senac.br Agenda Qualidade Qualidade de software Fatores da qualidade de software Garantia de qualidade de software Normas e modelos de qualidade Validação e Verificação Qualidade O que é Qualidade O QUE É QUALIDADE? O produto desenvolvido deve atender às especificações. (Crosby, 1979) Qualidade É estar em conformidade com os requisitos dos clientes É antecipar e satisfazer os desejos dos clientes É escrever tudo o que se deve fazer e fazer tudo o que foi escrito Grau no qual um conjunto de características inerentes satisfaz a requisitos (NBR ISO 9000:2000) Qualidade Qualidade do Produto Qualidade do Processo Definir Processo Desenvolver o Produto Avaliar a qualidade do produto Aprimorar o processo Padronizar o processo Qualidade Sim Não Qualidade de Software Apesar da Engenharia de Software, os produtos de software continuam com os mesmos problemas: Previsão falha Programas de baixa qualidade Alto custo para manutenção Retrabalho Etc. Qualidade de Software Conformidade com: requisitos funcionais e de desempenho explicitamente declarados processos de desenvolvimento devidamente documentados características implícitas que são esperadas de todo software profissionalmente desenvolvido Os requisitos de software são a base a partir da qual a qualidade é medida. Fatores de Qualidade Revisão do produto Manutenibilidade Posso consertá-lo? Flexibilidade Posso mudá-lo? Capacidade de teste Posso testá-lo? Fatores de Qualidade Transição do produto Portabilidade Serei capaz de usá-lo em outra máquina? Reusabilidade Serei capaz de reutilizar parte do software? Interoperabilidade Serei capaz de compor uma interface com outros sistemas? Fatores de Qualidade Operação do produto Confiabilidade Ele se comporta com precisão o tempo todo? Eficiência Ele rodará em meu hardware tão bem quanto possível? Segurança Ele é seguro? Usabilidade Ele foi projetado para o usuário? Garantia de Qualidade de Software É o processo de definição de como a qualidade de software pode ser atingida e como a organização de desenvolvimento sabe que o software possui o nível de qualidade necessário. Envolve a aplicação dos conceitos de qualidade e como avaliar a qualidade dos produtos e do processo de produção. Garantia de Qualidade de Software Aplicação de métodos técnicos Ajudam o analista a conseguir uma especificação de boa qualidade e o projetista a desenvolver um projeto de qualidade elevada. Realização de revisões técnicas formais É um encontro realizado pelos desenvolvedores com o propósito de descobrir problemas no código e na documentação. Atividades de testes de software Combina uma estratégia de múltiplos passos com uma série de métodos de projeto de casos de testes que ajudam a garantir uma detecção de erros efetiva. Garantia de Qualidade de Software Aplicação de padrões Em muitos casos, os padrões são determinados pelos clientes ou por imposições reguladoras. Em outras situações, os padrões são auto impostos. Controle de mudanças Formaliza pedidos de mudança, avalia a natureza da mudança e controla o impacto da mudança. Medição Rastreia a qualidade de software e avalia o impacto das mudanças metodológicas e procedimentais sobre a qualidade de software. Garantia de Qualidade de Software Manutenção de registros e reportagem Os resultados de revisões, auditorias, controle de mudanças, testes e outras atividades SQA devem tornar-se parte do registro histórico de um projeto. Normas e Modelos de Qualidade Principais Normas ISO: 9126 - Estabelece as características da qualidade de produtos de software Funcionalidade Confiabilidade Eficiência Usabilidade Manutenibilidade Portabilidade 12207 - Estabelece uma estrutura comum para a definição dos processos 12119 - Estabelece as características de qualidade de pacotes de software 15504 - Avaliação de processo de desenvolvimento de software 10001 - Auditoria de Sistemas de Qualidade (processo) Normas e Modelos de Qualidade Modelo da SEI (Software Engineering Institute): CMMI (Modelo Integrado de Maturidade em Capacitação) É um modelo de referência que contém práticas (Genéricas ou Específicas) necessárias à maturidade em disciplinas específicas Modelo do SOFTEX: MPS-BR (Melhoria de Processos do Software Brasileiro) Normas e Modelos de Qualidade CMMI (versão 1.3): CMMI for Development (CMMI-DEV) CMMI for Acquisition (CMMI-ACQ) CMMI for Services (CMMI-SVC) Normas e Modelos de Qualidade O MPS-BR está dividido em 7 níveis de maturidade que atestam o grau de evolução em que uma organização se encontra em um determinado momento: Verificação e Validação Inspeções de software Verificam representações do sistema, exemplos: Documento de requisitos Diagrama de projeto Código-fonte de programa Técnica estática, onde o software não precisa ser executado. Testes de Software Valida uma implementação do sistema Técnica dinâmica, onde o software é executado. Inspeção de Software Processo de verificação e validação estático, no qual o sistema de software é revisto para se encontrar erros, omissões e anomalias. Uma inspeção formal pode detectar de 60 a 90% dos erros. Uma revisão estática de código é mais eficiente e menos dispendiosa. Testes de Software Processo de avaliação do software contra os requisitos coletados dos usuários e as especificações do sistema. Testes de caixa branca: Utilizam o aspecto interno do programa/sistema, o código-fonte, para avaliar seus componentes. Ele também é conhecido como teste orientado à lógica ou estrutural. Testes de caixa preta: Os requisitos funcionais do sistema são avaliados. Não se observa o modo de funcionamento, sua operação, tendo como foco as funções que deverão ser desempenhadas pelo programa. Exercício Concurso: UFG - Analista de TI - Desenvolvimento de Sistemas Questão: O principal objetivo do processo de verificação e validação (V&V) de software é estabelecer confiança de que o sistema de software atende tanto a sua especificação quanto às expectativas de seus usuários finais. Além das atividades de inspeção de software, outras atividades de suma importância no contexto do processo de V&V são aquelas relacionadas: ( ) aos testes de software. ( ) à manutenção de software. ( ) à estimativa de custo de software. ( ) ao gerenciamento de configuração de software. X Exercício Concurso: UFCSPA - RS - Técnico de Tecnologia da Informação - Programação de Sistemas Questão: Usabilidade, que é a medida pela qual um produto pode ser usado por usuários específicos para alcançar objetivos específicos (ISO-9241), é medida por diversos quesitos. Assinale a alternativa que NÃO apresenta um dos quesitos que caracteriza a usabilidade. ( ) Facilidade de desenvolvimento do software, usando ferramentas ágeis. ( ) Efetividade, que permite ao usuário alcançar os objetivos iniciais de interação. ( ) Eficiência, que se refere à quantidade de esforço e de recursos necessários para se chegar a um determinado objetivo. ( ) Satisfação do usuário, que se refere ao nível de conforto e de aceitação do usuário ao tentar alcançar seus objetivos. ( ) Facilidade de aprendizado, ou seja, o usuário rapidamente consegue explorar o sistema e realizar suas tarefas. X Dúvidas? Plano de Aulas DATA AULA 1 15/08/2022 Apresentação da disciplina, professor e alunos 2 22/08/2022 Processo de Software 3 29/08/2022 Exibição de vídeos sobre a Engenharia de Software e o mercado de TI 4 12/09/2022 Engenharia de Requisitos 5 19/09/2022 Modelagem de Software 6 24/09/2022 Sábado Letivo: Atividade via Google Classroom 7 26/09/2022 Implementação 8 03/10/2022 Qualidade de Software 9 10/10/2022 Revisão: 1ª Unidade 10 17/10/2022 Atividade Avaliativa Plano de Aulas DATA AULA 1124/10/2022 1ª Devolutiva 12 31/10/2022 Teste de Software 13 07/11/2022 Metodologia de Desenvolvimento RUP 14 14/11/2022 Metodologias Ágeis: eXtreme Programming e Scrum 15 19/11/2022 Sábado Letivo: Atividade via Google Classroom 16 21/11/2022 Apresentação de Seminários 17 28/11/2022 Apresentação de Seminários 18 05/12/2022 2ª Devolutiva 19 12/12/2022 Recuperação 20 19/12/2022 Devolutiva da Recuperação e fechamento do semestre