Engenharia de Software II



Documentos relacionados
Engenharia de Software II

GARANTIA DA QUALIDADE DE SOFTWARE

Fundamentos de Teste de Software

Qualidade de Software

Garantia da Qualidade de Software

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

Engenharia de Software II

Engenharia de Software

MÉTRICAS DE SOFTWARE

CHECK - LIST - ISO 9001:2000

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Qualidade de Software. Profa. Cátia dos Reis Machado

Projeto de Sistemas I

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Engenharia de Software II

CHECK LIST DE AVALIAÇÃO DE FORNECEDORES Divisão:

Engenharia de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

ISO/IEC 12207: Gerência de Configuração

Fundamentos de Teste de Software

Teste de Software. Profa. Cátia dos Reis Machado

Sistemas de Informação I

Engenharia de Software

ENGENHARIA DE SOFTWARE

Análise de Pontos por Função

Engenharia de Software II

Engenharia de Software III

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Atividade da gerência da qualidade

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Feature-Driven Development

Gerenciamento de Problemas

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

ANÁLISE DOS REQUISITOS NORMATIVOS PARA A GESTÃO DE MEDIÇÃO EM ORGANIZAÇÕES

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009

SISTEMA COMPUTADORIZADO PARA GERENCIAMENTO DE PURGADORES DE VAPOR

Requisitos. Sistemas de Informações

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Documento de Requisitos

CobiT 4.1 Plan and Organize Manage Projects PO10

Sistemas de Gerenciamento de Banco de Dados

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL PEDROHOLI@GMAIL.COM CMM E CMMI

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Gerenciamento de Riscos do Projeto Eventos Adversos

ENGENHARIA DE SOFTWARE I

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Engenharia de Software II

O processo de melhoria de processo

Planejamento de Projetos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

Levantamento, Análise e Gestão Requisitos. Aula 12

Análise Estruturada de Sistemas

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Certificação ISO. Dificuldades, vantagens e desvantagens. Marcelo Henrique Wood Faulhaber, Med. Pat. Clin., MBA

Introdução à Engenharia de Software

Engenharia de Software II

Módulo 3 Procedimento e processo de gerenciamento de riscos, PDCA e MASP

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

Palestra Informativa Sistema da Qualidade NBR ISO 9001:2000

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Abordagem de Processo: conceitos e diretrizes para sua implementação

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Tópicos da Aula. Que é são requisitos? Tipos de Requisitos. Requisitos Funcionais. Classificação de Requisitos. Requisitos de Software.

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Universidade Paulista

Introdução à Computação

SISTEMAS INTEGRADOS DE GESTÃO PAS 99:2006. Especificação de requisitos comuns de sistemas de gestão como estrutura para a integração

Gerenciamento de Projeto

FMEA. FMEA - Failure Mode and Effects Analysis (Análise dos Modos e Efeitos de Falha)

Gerenciamento de Projetos

Exame de Fundamentos da ITIL

GERENCIAMENTO DE MODIFICAÇÕES

Introdução à ES - Continuação

Decidir como medir cada característica. Definir as características de qualidade. Estabelecer padrões de qualidade

A Importância do Controle da Qualidade na Melhoria de Processos de Software. Ana Liddy Cenni de Castro Magalhães

Tópico: Plano e Estratégia. Controle interno e risco de auditoria

Qual a diferença entre certificação e acreditação? O que precisamos fazer para obter e manter a certificação ou acreditação?

ESTUDO COMPARATIVO NBR ISO 13485:2004 RDC 59:2000 PORTARIA 686:1998 ITENS DE VERIFICAÇÃO PARA AUDITORIA

Processo de Implementação de um Sistema de Gestão da Qualidade

Exame de Fundamentos da ITIL

Introdução à Qualidade de Software. Profº Aldo Rocha

Auditando processos de feedback de clientes

CÓPIA NÃO CONTROLADA. DOCUMENTO CONTROLADO APENAS EM FORMATO ELETRÔNICO. PSQ PROCEDIMENTO DO SISTEMA DA QUALIDADE

Transcrição:

Engenharia de Software II Aula 25 http://www.ic.uff.br/~bianca/engsoft2/ Aula 25-19/07/2006 1

Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap. 22 Seções 22.1 e 22.2) Estimativas (Cap. 23 Seções 23.1 a 23.7) Cronogramação (Cap. 24) Gestão de risco (Cap. 25) Gestão de qualidade (Cap. 26 Seções 26.1 a 26.7) Gestão de modificações Reengenharia e engenharia reversa Aula 25-19/07/2006 2

Gestão de Qualidade Todos concordam que produzir software de alta qualidade é importante. Mas o que é qualidade de software? Como fazemos para atingí-la? Gestão de qualidade = Garantia de qualidade de software = Software Quality Assurance (SQA) É uma atividade guarda-chuva. Especifica atividades e métricas para aperfeiçoar o processo de software. Aula 25-19/07/2006 3

Conceitos de Qualidade Controle de variação é fundamental para controlar a qualidade. Na produção industrial, controla-se a variação nas características de um produto produzido em série. Na engenharia de software, controla-se a variação no processo genérico que aplicamos. Minimizar a diferença entre os recursos previstos e os recursos usados (pessoal, equipamento e tempo). Minimizar a variância no número de erros de uma versão pra outra. Minimizar as diferenças na velocidade e na precisão de respostas aos problemas de clientes. Aula 25-19/07/2006 4

Conceitos de Qualidade Qualidade = Característica ou Atributo Para um objeto físico, qualidade se refere a características físicas. Comprimento, cor, propriedades elétricas, maleabilidade, etc. O software é informação (não é físico), mas tem propriedades que podemos medir. Complexidade ciclomática, coesão, pontos por função, linhas de código, etc. Aula 25-19/07/2006 5

Conceitos de Qualidade Qualidade de projeto Características que os projetistas especificam para um certo item. Na engenharia de software, abrange os requisitos, as especificações e o projeto. Qualidade de conformidade É o grau com que as especificações de projeto são seguidas durante a fabricação. Aula 25-19/07/2006 6

Conceitos de Qualidade Controle de qualidade Envolve uma série de inspeções, revisões e testes usada ao longo do projeto de software. Garante que cada produto de trabalha satisfaça os requisitos estabelecidos para ele. Inclui um ciclo de realimentação no processo que gerou o produto. Permite ajustar o processo. Todos os produtos de trabalho devem ter especificações mensuráveis para permitir a comparação. Aula 25-19/07/2006 7

Conceitos de Qualidade Garantia de qualidade Conjunto de funções de auditoria e relatório que avaliam a efetividade das atividades de controle de qualidade. Fornece à gerência dados sobre a qualidade do produto. Se os dados identificam problemas, é responsabilidade da gerência aplicar os recursos necessários. Aula 25-19/07/2006 8

Conceitos de Qualidade Custos da qualidade Custos de prevenção Planejamento da qualidade, revisões técnicas formais, equipamento de teste e treinamento. Custos de avaliação Inspeção intra e interprocessos, calibração e manutenção de equipamento e teste. Custos de falha São os que desapareciam se nenhum defeito fosse encontrado. Custos de falha interna Ocorrem antes da entrega e envolvem refazer, reparar e analisar o modo como a falha ocorreu. Custos de falha externa Ocorrem depois da entrega e envolvem solução de queixas e substituição do produto. Aula 25-19/07/2006 9

Garantia da Qualidade de Software Definição de qualidade de software: Conformidade com requisitos funcionais e de desempenho, normas de desenvolvimento explicitamente documentadas e outras características implícitas. A definição enfatiza três pontos importantes: Requisitos: base pela qual a qualidade é medida. Normas: conjunto de critérios que guia o modo pelo qual é submetido. Requisitos implícitos: a qualidade do software é baixa se ele não satisfaz características como facilidade de uso e boa manutenibilidade. Aula 25-19/07/2006 10

Garantia da Qualidade de Software Atividades de SQA Associadas a duas partes diferentes: Engenheiros de software Fazem o trabalho técnico. Aplicam métodos e medidas técnicas sólidas, conduzem revisões técnicas formais e efetuam testes. Grupo SQA Planejamento, supervisão, registro, análise e relato da garantia de qualidade. Deve olhar o software do ponto de vista do cliente. Garante que a qualidade de software é mantida. Aula 25-19/07/2006 11

Garantia da Qualidade de Software Atividades do grupo SQA Prepara um plano SQA para o projeto. Participa no desenvolvimento da descrição do processo de software do projeto. Revê as atividades de engenharia de software para verificar a satisfação do processo de software definido. Audita os produtos de trabalho de software para verificar a satisfação do que foi definido como parte do processo de software. Garante que os desvios do trabalho de software e dos produtos do trabalho sejam documentados e manipulados de acordo com um procedimento documentado. Registra qualquer eventual não-satisfação e a relata à gerência superior. Aula 25-19/07/2006 12

Revisões de Software As revisões são um filtro para o processo de software. São aplicadas em vários pontos do processo. Servem para descobrir erros e defeitos que podem depois ser removidos. Diferentes tipos de revisões podem ser conduzidos. Conversas informais sobre problemas técnicos. Apresentação formal do projeto para uma audiência de clientes e gerência. A revisão técnica formal é o filtro mais efetivo para garantia de qualidade. Tem como objetivo encontrar erros antes que eles sejam passados para outra atividade ou entregues ao usuário final. Aula 25-19/07/2006 13

Revisões de Software Impacto no custo de defeitos de software Estudos da indústria indicam que as atividades de projeto introduzem entre 50% e 65% de todos os erros durante o processo de software. Revisões técnicas formais são 75% efetivas na descoberta de erros de processo. Reduz substancialmente o custo dos passos subseqüentes. Estudos demonstram que se um erro descoberto na fase de projeto custa 1 unidade para ser corrigido, este mesmo erro custa 15 unidades depois do teste e entre 60 e 100 unidades depois da entrega. Aula 25-19/07/2006 14

Revisões de Software Amplificação e remoção de defeitos. Um modelo de amplificação de defeitos pode ser usado para ilustrar a geração e a detecção de erros durante os passos do processo. Uma caixa representa cada passo do processo. Erros advindos do passo anterior Defeitos Erros que atravessaram Erros amplificados 1:x Erros recém gerados Detecção Porcentagem de eficiência na detecção de erros Erros passados para o próximo passo Aula 25-19/07/2006 15

Revisões Técnicas Formais A revisão técnica formal (FTR) é uma atividade de SQA realizada por engenheiros de software. Objetivos: Descoberta de erros na função, lógica, ou implementação. Verificar se o software atende aos requisitos. Garantir que o software tenha sido representado conforme padrões pré-definidos. Obter softwares que sejam desenvolvidos uniformemente. Tornar os projetos mais gerenciáveis. A FTR também serve como espaço de treinamento e para promover continuidade. Cada FTR é conduzida como uma reunião. Inclui walkthroughs, inspeções, revisões em rodízio e outras avaliações técnicas. Aula 25-19/07/2006 16

Reunião de revisão Restrições à reunião: Entre 3 e 5 pessoas, uma preparação antecipada e duração da reunião inferior a 2 horas O foco da reunião FTR é um produto um componente de software. Maior probabilidade de encontrar erros. Ao final da reunião, os participantes da reunião FRT devem decidir: Aceitam o produto. Rejeitam o produto (após correção dos erros, outra revisão deve ser realizada). Aceitam o produto provisoriamente (nenhuma revisão adicional é exigida) Aula 25-19/07/2006 17

Reunião de revisão Antes da reunião 2 horas de estudo e revisão individual Cópia Revisor Produtor Produto pronto Líder do projeto Líder da revisão Cópia Cópia Revisor Revisor Durante a reunião Um dos revisores assume o papel de registrador. O produtor faz um walkthrough (percorre) do produto de trabalho e explica o material, enquanto os revisores levantam questões baseadas na preparação. Aula 25-19/07/2006 18

Registros da revisão Durante a FTR, o registrador registra todos os tópicos que foram levantados. Ao final da reunião, eles são resumidos em dois documentos: Relatório de revisão resumido: 1. O que foi revisado? 2. Quem fez a revisão? 3. Quais foram as descobertas e conclusões? Lista de questões de revisão: 1. Identifica áreas problemáticas do produto. 2. Serve como uma checklist que orienta o produtor à medida que as correções forem feitas. O líder da revisão deve fazer um acompanhamento para garantir que os itens na lista de questões sejam corrigidos. Aula 25-19/07/2006 19

Diretrizes para a revisão Revise o produto, não o produtor. Fixe e mantenha uma agenda. Limite o debate e a réplica. Enuncie as áreas problemáticas, mas não tente resolver cada problema anotado. Tome nota por escrito em um quadro de parede. Limite o número de participantes e insista numa preparação antecipada. Desenvolva uma checklist para cada produto que será revisado. Atribua recursos e uma programação de tempo para as FTRs. Realize um treinamento para todos os revisores. Reveja suas primeiras revisões. Aula 25-19/07/2006 20

Revisões guiadas por amostras Se o tempo disponível para revisões é curto, uma estratégia razoável é fazer revisões guiadas por amostras. Os seguintes passos são sugeridos: Inspecione uma fração a i de cada produto de trabalho i. Registre o número de falhas f i. Estime o número total de falhas multiplicando f i por 1/a i. Ordene os produtos de trabalho em ordem decrescente da estimativa do número de falhas. Enfoque os recursos de revisão disponíveis naqueles produtos que tem o maior número estimado de falhas. A fração dos produtos amostrada deve ser representativa e significativa. Aula 25-19/07/2006 21

Abordagens Formais para SQA LINGUAGEM DE PROGRAMAÇÃO = Sintaxe e Semântica rigorosas ESPECIFICAÇÃO DOS REQUISITOS DE SOFTWARE Desenvolvimento de algo similar PROVAS MATEMÁTICAS PARA DEMONSTRAR A CORRETUDE Aula 25-19/07/2006 22

Garantias Estatísticas da Qualidade de Software Tendência crescente da indústria de tornar-se mais quantitativa em relação à qualidade. Implica nos seguintes passos: Coletar e categorizar informações a respeito dos defeitos. Ex: falta de conformidade com as especificações, violação dos padrões, comunicação com o usuário deficiente, etc. Tentar encontrar a causa de cada defeito Utilizar o princípio de Pareto, isolando os 20%. 80% dos defeitos podem ser mapeados em 20% de todas as causas possíveis. Corrigir os problemas que tenham causado os defeitos. Aula 25-19/07/2006 23

Garantias Estatísticas da Qualidade de Software Conceito relativamente simples. Representa um importante passo na direção da criação de um processo de engenharia de software adaptativo. Mudanças são feitas para melhorar os elementos do processo que introduzem erros. Em resumo: Gaste seu tempo melhorando as coisas que realmente importam, mas tenha certeza que você sabe o que realmente importa. Aula 25-19/07/2006 24

Exemplo Uma organização coleta informação sobre defeitos durante um período de um ano. Os defeitos são rastreados até uma das seguintes causas: Especificação incorreta (IES) Interpretação errônea da comunicação com o usuário (MCC) Desvio intencional das especificações (IDS) Violação dos padrões (VPS) Erro na representação dos dados (EDR) Interface de componente inconsistente (ICI) Erro na lógica do projeto (EDL) Teste incompleto ou errôneo (IET) Documentação imprecisa ou incompleta (IID) Erro na tradução do projeto para a linguagem de programação (PLT) Interface ambígua ou inconsistente (HCI) Miscelânia (MIS) Aula 25-19/07/2006 25

Exemplo: Dados coletados para SQA Estatística Aula 25-19/07/2006 26

Exemplo A tabela indica que IES, MCC e EDR são as causas vitais, que contabilizam 53% de todos os erros. Ou, IES, EDR, PLT e EDL se considerarmos apenas os erros graves. Uma vez que as causas vitais foram descobertas, ações corretivas podem ser tomadas. Por exemplo, para corrigir EDR, pode ser adquirida uma ferramenta CASE para a modelagem dos dados além de executar revisões mais rigorosas no projeto dos dados. Aula 25-19/07/2006 27

Seis Sigma para Engenharia de Software Seis Sigma é a estratégia mais amplamente usada para garantia de qualidade estatística na indústria. Popularizada pela Motorola na década de 1980. Seis sigma = 6σ = 6 desvios-padrão 3.4 defeitos por milhão de ocorrências. Norma de qualidade extremamente alta. Aula 25-19/07/2006 28

Seis Sigma para Engenharia de Software A metodologia Seis Sigma define três passos centrais: Defina os requisitos, os artefatos para entrega e os objetivos através de métodos de comunicação o cliente. Meça o processo e sua saída para determinar o atual dsempenho de qualidade. Analise métricas de defeito e determine as poucas causas vitais. Se é necessário aperfeiçoamento são adicionados mais dois passos: Aperfeiçoe o processo pela eliminação das causas básicas dos defeitos. Controle o processo para garantir que o trabalho futuro não reintroduza as causas dos defeitos. Conhecido como método DMAIC. Aula 25-19/07/2006 29

Confiabilidade de Software Em termos estatísticos confiabilidade significa: a probabilidade de operação livre de falhas de um programa, em um ambiente específico, durante um tempo específico. Falha = não-conformidade com os requisitos. Podem ser catastróficas ou apenas inoportunas. Podem ser corrigidas em segundos ou em semanas. Não há dúvida que confiabilidade de um programa é um elemento importante na sua qualidade geral. Confiabilidade, ao contrário de outros fatores de qualidade, pode ser medida diretamente e estimada utilizando dados históricos e de desenvolvimento. Aula 25-19/07/2006 30

Confiabilidade do software Exemplo: Estima-se que o programa X tenha confiabilidade de 0.96, transcorridas 8 horas de processamento. Isso significa, que se o programa for executado 100 vezes, requerendo 8 horas de execução, irá funcionar corretamente (sem falhas) 96 vezes. Aula 25-19/07/2006 31

Medidas de Confiabilidade e Disponibilidade Trabalhos iniciais em confiabilidade de software tentaram extrapolar a matemática das teorias de confiabilidade de hardware. A maioria dos modelos relacionados à confiabilidade do hardware são dedicados a falhas devido ao uso, ao invés de falhas devido a defeitos de projeto Para hardware: falhas devidas a desgaste físico são mais prováveis do que as relacionadas a projeto. Efeitos de temperatura, corrosão e choque. Para software, não existe desgaste. Falhas são sempre de projeto. Aula 25-19/07/2006 32

Medidas de Confiabilidade e Disponibilidade Uma medida simples de confiabilidade para sistemas baseados em computador é mean-time-between-failure (MTBF) MTBF = MTTF + MTTR onde MTTF = mean-time-to-failure MTTF = mean-time-to-repair Aula 25-19/07/2006 33

Medidas de Confiabilidade e Disponibilidade Muitos pesquisadores defendem que MTBF é uma medida mais útil do que defeitos por KLOC ou por FP. Exemplo: Considere um programa em operação por 14 meses. Muitos erros permaneceram por décadas sem serem descobertos. O MTBF desses erros obscuros é de 50 ou 100 anos. O impacto da remoção desses erros na confiabilidade do software é insignificante. Aula 25-19/07/2006 34

Medidas de Confiabilidade e Disponibilidade Somado a medida da confiabilidade, podemos desenvolver uma medida de disponibilidade. É a probabilidade de um programa estar operando de acordo com os requisitos em um dado momento. Disponibilidade = [MTTF / (MTTF +MTTR)] 100% É mais sensível a MTTR que a MTBF. Aula 25-19/07/2006 35

Segurança de Software É uma atividade de garantia de qualidade, que focaliza a identificação e a avaliação de riscos potenciais, que podem afetar o software negativamente e causar uma falha de todo o sistema. Exemplo em um sistema de controle de navegação de um automóvel: Aceleração descontrolada, que não pode ser parada. Aula 25-19/07/2006 36

Segurança de Software Inicialmente, riscos são identificados e categorizados por criticalidade. Técnicas de análise são utilizadas para determinar a severidade e probabilidade de ocorrência dos riscos. O software deve ser analisado no contexto do sistema como um todo. Técnicas de análise como análise de falha em árvore, lógica de tempo real ou redes de Petri podem ser usadas para prever a cadeia de eventos que podem causar riscos e a probabilidade de cada evento ocorrer. Aula 25-19/07/2006 37

Segurança de Software Uma vez identificados e analisados os riscos requisitos relacionados à segurança podem ser especificados para o software. Embora confiabilidade e segurança sejam intimamente relacionadas, é importante notar a diferença sutil entre elas. A confiabilidade utiliza análise estatística para determinar a probabilidade de ocorrência de uma falha. Entretanto, essa falha não necessariamente implicará em uma risco ou infortúnio. A segurança examina os meios pelos quais falhas podem resultar em acidentes. Falhas são analisadas no contexto de todo o sistema. Aula 25-19/07/2006 38