Baixe o app para aproveitar ainda mais
Prévia do material em texto
* Engenharia de Software Fernando Cesar Miranda versão 1.2 –01/05/2013 Qualidade de Software * Qualidade de Software Definição: Conformidade à requisitos funcionais e de desempenho explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software profissionalmente desenvolvido. Requisitos de software <-> Qualidade. Critérios de desenvolvimento <-> Qualidade. Requisitos subjetivos. * Garantia da Qualidade de Software A garantia da qualidade de software (SQA – Software Quality Assurance) é um padrão sistemático e planejado de ações que são exigidas para garantir a qualidade de software. * SQA (Atividades) Aplicação de métodos, ferramentas e técnicas no desenvolvimento (analistas e projetistas). Realização de revisões técnicas formais (FTR – Formal Technical Review). Atividades de teste de software. O grau em que padrões e procedimentos formais são aplicados (auditorias). Controle de mudança (gerenciamento de configuração de software). Medição: Métricas de software. Anotação e manutenção de registros: procedimentos para a coleta e disseminação de informações. * Revisões de Software “O trabalho técnico precisa de revisão pelo mesmo motivo que os lápis precisam de borrachas. Errar é humano”. Máquina de café x FTR. * Revisões Técnicas Formais Descobrir erros de função, lógica ou implementação. Verificar se atende aos requisitos. Garantir que tenha sido representado de acordo com os padrões. Obter um software que seja desenvolvido uniformemente. Tornar o projeto administrável. * Revisões de Software Impacto de custo de defeito de software (IBM/1981): Ampliação e remoção defeitos. (Pressman 739). * Custos associados à qualidade Prevenção: 5% a 15%. Controláveis (Investimentos). Avaliação: 20% a 25%. Não controláveis (Perdas e prejuízos). Falhas internas e falhas externas: 65% a 70%. Não controláveis (Perdas e prejuízos). * Retorno associado à qualidade CMM/SEI: Aumento da produtividade: 35%. Diminuição dos “bugs”: 39%. Retorno financeiro: 5 x 1 (9 x 1). * Métricas de Qualidade de Software DSQI (Design Structure Quality Index): Índice de qualidade da estrutura do projeto. Valores: S1: número total de módulos na arquitetura de programa. S2: número de módulos cuja função correta dependa de fonte de entrada de dados que que produza dados a serem usados em outro lugar. S3: número de módulos cuja função correta dependa de processamento anterior. S4: número de itens de BD. S5: número de itens únicos de BD. S6: número de segmentos de BD. S7: número de módulos com uma única entrada e saída. * Métricas de Qualidade de Software DSQI: D1: Estrutura do programa. D1 = 1 – método formal OU D1 = 0 – caso contrário. D2: Interdependência modular: D2 = 1 – (S2 / S1). D3: Módulos não dependentes de processamento anterior: D3 = 1 – (S3 / S1). D4: Tamanho do BD: D4 = 1 – (S5 / S4). D5: Compartimentação do BD: D5 = 1 – (S6 / S4). D6: Característica de entrada/saída modular: D6 = 1 – (S7 / S1). * Métricas de Qualidade de Software DSQI: Onde wi é o peso relativo de cada item. DSQI varia de 0 a 1. Deve ser calculado com intuito de se obter um baseline. Mudanças profundas no projeto devem resultar em um novo cálculo de DSQI. * Métricas de Qualidade de Software Índice de Maturidade de Software: IEEE Standard 982.1 – 1988 Mt: número de módulos da versão atual. Fc: número de módulos da versão atual que foram mudados. Fa: número de módulos da versão atual que foram adicionados. Fd: número de módulos da versão anterior que foram suprimidos na versão atual. * Métricas de Qualidade de Software Índice de Maturidade de Software: A medida que SMI se aproxima de 1 o produto começa a se estabilizar. * Métricas de Qualidade de Software Índice de Maturidade de Software (Exemplo): * Abordagens Formais à SQA Garantia estatística de qualidade: Índice de Defeitos (DI – Defect Index) * Abordagens Formais à SQA Garantia estatística de qualidade: Índice de Defeitos (DI – Defect Index) Onde: Di = número total de defeitos descobertos durante o i-ésimo passo do processo de engenharia de software. Si = número de defeitos sérios. Mi = número de defeitos moderados. Ti = número de defeitos menos inportantes. PS = tamanho do produto do i-ésimo passo. Wi = fator de peso para os defeitos. * Abordagens Formais à SQA Processo da Sala Limpa (Cleanroom): A prioridade é realizada usando-se uma verificação matemática humana (prova de corretitude) em lugar da depuração do programa para preparar o software para o teste de programa. 90% dos defeitos foram encontrados antes que os primeiros testes fossem realizados, para projetos de software de 1 KLOC a 50 KLOC. * Confiabilidade de Software Medidas de confiabilidade e disponibilidade: MTBF = MTTF + MTTR Mean Time Between Failure (MTBF). Mean Time To Failure (MTTF). Mean Time To Repeair (MTTR). Disponibilidade = MTTF / (MTTF + MTTR) * Segurança de Software É a atividade de garantia de qualidade de software que se concentra na identificação e avaliação de casualidades em potencial que possam exercer um impacto negativo sobre o software e fazer com que todo o sistema falhe. * Garantindo a qualidade: Certificação oficial. Avaliação “in house”. Avaliação por terceiros.
Compartilhar