Métricas de Produtos para Software.

Slides:



Advertisements
Apresentações semelhantes
Métricas e Medição de Software
Advertisements

Análise e Projeto de Sistemas III
Gerenciamento de Projetos
Qualidade de Software Aula 4
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Integridade do Software
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Qualidade de Produto de Software
ISO Processos do Ciclo de Vida do Software
GERENCIAMENTO DE INTEGRAÇÃO DO PROJETO
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Tipos de sistemas de Lehman
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Métricas para o Processo e o Projecto de SW
Garantia de Qualidade do software
Estimativas de software
Gerenciamento do escopo do projeto
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Walter de Abreu Cybis Outubro, 2003
Aline Vasconcelos CEFET Campos
Administração de Sistemas de Informação II
Qualidade de Software Aula 2
SISTEMA DE INFORMAÇÕES DESENVOLVIMENTO DE SISTEMAS
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
TI - Sistemática de Métricas
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Plano de Projeto de Software
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Pontifícia Universidade Católica de Campinas
Qualidade de Produto de Software
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Prof.Alfredo Parteli Gomes
Cap 4 – Métricas do Processo e Projeto de Software
Fase de Elaboração: Fluxo de Requisitos
Projeto: Capacitação em GP
Gestão de Projetos Ms. Karine R. de Souza
Qualidade de Produto de Software
Gerenciamento da Integração
Qualidade de Software Aula 2 / 2014/1
Qualidade do Produto de Software
Qualidade do Produto de Software
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção.
Trabalho Final de Fundamentos da Engenharia de Software Métrica de Pontos de Função André Costa de Jesus & Helena Prudente Bartholo.
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
A Norma ISO/IEC 9126 define seis características de qualidade de software que devem ser avaliados: –Funcionalidade (finalidade do produto) –Usabilidade.
Teste de Software Conceitos iniciais.
Qualidade de Software Aula 4
Engenharia de Software
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
EPR16 – Planejamento e Gestão da Qualidade Professora Michelle Luz
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Capítulo 10 – Qualidade de Produtos de Software Escrito por: Renata Araújo Vírginia Chalegre Apresentado por: Cleice.
Gestão de Projetos de Software
Gerência de Projetos: Métricas de Software Engenharia de Software
Gerenciamento de Custos
Integração.
Engenharia de Software
Qualidade de Produtos de Software
Estimando Esforço de Projetos de Software utilizando pontos de Função Carlos Antônio Menezes de Albuquerque Recife, Julho de 2003.
TÉCNICAS DE ESTIMATIVAS
ISO A ISO é uma evolução das série de normas ISO/IEC 9126 e e tem com objetivo principal fornecer uma visão geral do produto de software.
QUALIDADE DE SOFTWARE Prof. Carlos Augusto da Costa Carvalho.
Estimativa, Teste e Inspeção de Software
1 Estimativa, Teste e Inspeção de Software Gerência de Projetos: Estimativa de Software Marcos Camada
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Melo Informática. Copyright© Todos os direitos reservados. 1 1 Interface Homem X Máquina APF - Análise por Pontos de Função É um método padrão para.
Transcrição da apresentação:

Métricas de Produtos para Software

Medidas do Software A medição é o elemento chave de qualquer processo de engenharia de software. Quem faz? Os engenheiros de software para ajudá-los a construir softwares de alta qualidade. O processo é medido para melhorá-lo e o produto é medido para aumentar sua qualidade, quantificar e administrar mais efetivamente.

Medidas do Software O engenheiro de software coleta medidas e desenvolve métricas a fim de obter indicadores para ajustar a gerência de projeto e o processo de desenvolvimento de software. Uma métrica de software é qualquer tipo de medição que se refere a um sistema de software, processo ou documentação relacionada. A métrica pode ser de controle (processo) ou preditiva (produto).

Métricas - Motivos para se medir um sistema Fornecer subsídios para determinar o esforço, os recursos, a duração e os custos de desenvolvimento Avaliar a produtividade do processo de desenvolvimento adotado Formar uma base histórica para embasar estimativas futuras Indicar a qualidade do produto

Tipos de Medidas Diretas Indiretas Exemplo: comprimento de um parafuso; Indiretas Exemplo: a qualidade dos parafusos produzidos, medidos pelo número de parafusos rejeitados.

Quais são as medidas diretas no desenvolvimento de um software. Custo; Linhas de código produzidas (LOC); Velocidade de Execução; Tamanho da memória necessária; Defeitos registrados; Número de usuários simultâneo; ETC...

Medidas indiretas do Software Funcionalidade; Qualidade; Complexidade; Eficiência; Confiabilidade. Manutenibilidade.

Métricas de Qualidade de Software Antes que o software seja entregue Depois que o software seja entregue É possível obter uma base quantitativa para se tomar decisões referentes a projeto e teste. Concentra-se no número de defeitos descobertos e na manutenibilidade do sistema.

Fatores que afetam a Qualidade McCall e seus colegas definiram um conjunto de fatores que afetam a qualidade Operação do Produto (usando-o); Revisão do produto (mudando-o); Transição do produto (migrando-o).

Medidas de Qualidade Correção: Quanto um programa satisfaz sua especificação e preenche os objetivos da missão do cliente. Confiabilidade: Quanto se pode esperar que um programa realize a função pretendida com a precisão exigida. Eficiência: Quantidade de recursos de computação e código necessários para um programa realizar sua função. Integridade: Quanto o acesso ao software ou dados por pessoas não-autorizadas pode ser controlado. Usabilidade: O esforço necessário para aprender, operar, preparar entradas e interpretar saídas de um programa.

Manutenibilidade: O esforço necessário para localizar e consertar um erro em um programa. Flexibilidade: O esforço necessário para modificar um programa operacional. Testabilidade: Esforço necessário para testar um programa, a fim de garantir que ele realize a função esperada. Portabilidade: Esforço necessário para transferir o programa de um ambiente de hardware ou software para outro. Reutilização: Quanto de um programa (ou partes dele) pode ser reusado em outras aplicações – relativo ao empacotamento e escopo das funções que o programa realiza. Interoperabilidade: Esforço necessário para acoplar um sistema a outro.

Fatores de qualidade ISO 9126 A norma ISO 9126 foi desenvolvida em uma tentativa de identificar os atributos de qualidade para software. A norma identifica seis atributos-chave de qualidade CARACTERÍSTICAS DA QUALIDADE DO PRODUTO

Características de Qualidade do Produto Funcionalidade Capacidade de atender as necessidades implícitas e explicitas Descreve o que o software faz Confiabilidade Atributos de Desempenho Usabilidade Facilidade de utilização

Características de Qualidade do Produto Eficiência Relação entre o desempenho e os recursos utilizados Manutenibilidade Facilidade para fazer alterações Portabilidade Facilidade de ser transferido para outro ambiente

Sub-Características de Funcionalidade Adequação Presença das funções especificadas Precisão O produto gera resultados esperados Interoperabilidade Capacidade de interagir com outros sistemas Conformidade Observância de padrões e regras estabelecidas Segurança de acesso: Prevenção do acesso não autorizado

Sub-Características de Confiabilidade Maturidade Baixa freqüência de falhas Tolerância Capacidade de manter o desempenho mesmo com problemas Recuperabilidade Capacidade do produto para re-estabelecer o nível de desempenho desejado e recuperar dados em caso de ocorrência de falha

Sub-Caracteristicas de Usabilidade Inteligibilidade Medida da facilidade do usuário para reconhecer a lógica de funcionamento da aplicação Apreensibilidade Medida da facilidade encontrada pelo usuário para aprender a utilizar o produto Operacionalidade Medida da facilidade para operar o produto

Sub-Caracteristicas de Eficiência Comportamento em relação ao tempo Medida do tempo de resposta e de processamento, assim como as taxas de processamento(throughput) Comportamento em relação ao uso de recursos Medida da quantidade de recursos necessários (CPU, memória, disco rígido) e a duração do seu uso ao executar as funções definidas

Sub-Caracteristicas de Manutenibilidade Analisabilidade Esforço necessário para diagnosticar deficiências ou causas de falhas ou localizar as partes a serem modificadas para se corrigir o problema Modificabilidade Esforço necessário para realizar alterações, remover falhas, ou para adequar o produto a mudanças de ambiente operacional Estabilidade Medida do risco de efeitos inesperados provenientes de modificações Testabilidade Esforço necessário para testar o produto

Sub-Caracteristicas de Portabilidade Adaptabilidade Facilidade de se adaptar o produto a outro ambiente operacional Facilidade de Instalação Esforço necessário para se instalar o produto Capacidade para co-existir Conformidade do produto em relação aos padrões de portabilidade Facilidade de Substituir Esforço necessário para a utilização do produto em substituição a um outro

Métricas ISO 9126 Não há métricas para as 6 características A organização deve propor suas métricas e o critério numérico de aceitação Considerar classe de aplicação do produto: Confiabilidade: produtos de missão crítica (controle de transações financeiras) Eficiência: tempo real Usabilidade: aplicações interativas visando o usuário fnal não especializado

Avaliando o Produto 3 passos Definição dos requisitos de qualidade Preparação da Avaliação Avaliação

Definição do Requisitos de Qualidade Definição das características e sub-características de interesse em relação ao uso do sistema ANTES do início do desenvolvimento Módulos do produto podem conter diferentes características e sub-características.

Preparação da Avaliação Selecionar Métricas de Qualidade Relação dos critérios numéricos com os atributos. Definir intervalos de pontuação Escala sugerida pela norma (Satisfatório ou Insatisfatório) Definir critérios de Avaliação Critérios para a transcrição das características para valores numéricos

Escala de Pontuação satisfatória Excelente valor medido Bom Médio não satisfatória Fraco escala para métrica níveis de pontuação

Procedimentos da Avaliação Medida Aplicação da métricas definidas Resultados demonstrados pela escala Pontuação A medida é classificada nas faixas de pontuação (fraco, médio, bom ,excelente) Avaliação Compilação dos resultados Resultado é a declaração da qualidade do produto Resultado+Custo+Prazo  decisão gerencial de aceitação ou não do produto.

O processo de avaliação necessidades 9126 & outros requisitos gerenciais especificação de requisitos da qualidade definição de requisitos Definições de Critérios de Avaliação Seleção de Métricas Definição de Níveis de Pontuação Definição de Requisitos de Qualidade preparação produtos Desenvolvimento De Software valor médio Medida nível pontuado Pontuação Resultado (aceitável ou não) avaliação Avaliação

Princípios de Medição Formulação: a derivação de medidas e métricas de software adequadas para a representação do software considerado Coleta: mecanismo usado para acumular os dados necessários para derivar as métricas formuladas Análise: cálculo de métricas e aplicação das ferramentas matemáticas

Princípios de Medição Interpretação: avaliação das métricas em um esforço para ganhar profundidade na visão da qualidade de representação Realimentação: recomendações derivadas da interpretação das métricas de produto transmitidas à equipe de software

Atributos de Métricas efetivas Simples e computáveis: Deve ser relativamente fácil aprender como derivar métrica e seu cálculo não deve exigir esforço ou tempo exagerado. Empíricas e Intuitivamente Persuasivas: A métrica deve satisfazer às noções intuitivas do engenheiro sobre o atributo do produto que está sendo considerado. Consistentes e objetivas: A métrica deve produzir sempre resultados que não sejam ambíguos.

Atributos de Métricas efetivas Consistentes no uso de unidades e dimensões: O cálculo matemático da métrica deve usar medidas que não levam a combinações de unidades bizarras. Independentes da linguagem de programação: Métricas devem ser baseadas no modelo de análise, modelo de projeto ou na estrutura do programa propriamente dita. Mecanismo efetivo para realimentação de alta qualidade: A métrica deve levar a um produto final da mais alta qualidade.

Taxonomia de Métricas Métricas para o modelo de análise Métricas para o modelo de projetos Métricas para código-fonte Métricas de teste

Medidas de tamanho de software LOC - linhas de código Medir software contando as linhas de código (LOC) é uma das medidas mais antigas para determinar o tamanho, esforço e produtividade no desenvolvimento de software. É muito fácil de usar e aplicar; basta contar a quantidade do número de linhas de código de um programa. A medida de LOC é considerada uma medida física do tamanho de software por medir o volume de código-fonte de um programa.

Desvantagens da métrica LOC Depende da linguagem de programação usada (o número de linhas de um programa Cobol é totalmente diferente de um em Java) Ausência de padrões de contagem. (Cada linguagem possui suas características de sintaxe e semântica) Não pode ser aplicada nas fases iniciais de desenvolvimento (No início o programa ainda não esta escrito).

Métricas Orientadas ao Tamanho Projeto Esforço $ KLOC Págs. Docum. Erros Pessoas Aaa-01 24 168 12.1 365 29 3 Ccc-04 62 440 27.2 1224 86 5 Fff-03 . 43 314 20.2 1050 64 6

A tabela orientada a tamanho possibilita a medir vários itens: Projeto Esforço $ KLOC Págs. Docum. Erros Pessoas Aaa-01 24 168 12.1 365 29 3 Ccc-04 62 440 27.2 1224 86 5 Fff-03 . 43 314 20.2 1050 64 6 Custo aaa1 Custo aaa1 = $/KLOC Custo aaa1 = 168 /12.1 Custo aaa1 = 13.88 Qualidade aaa1 Qualidade aaa1 = Defeitos/KLOC Qualidade aaa1= 29/12.1 Qualidade aaa1 = 2.39 Produtividade = KLOC /Pessoa Produtividade aaa1 = 12.1/3 Produtividade aa1 = 4.03 Esforço = Número de pessoas * tempo

Tipos de medidas de tamanho de software APF - Análise de Pontos por função Podemos dizer que atualmente á a técnica mais usada para medir o tamanho de projetos de software. Foi criada por Alan Albrecht na IBM na década de 70 e consiste em determinar o tamanho funcional (o que é entregue) do sistema através da visão do usuário. Ela possui as seguintes vantagens: Independe da tecnologia utilizada É simples de usar e ser entendida pelo usuário e desenvolvedores É consistente e intercambiável Pode ser utilizada desde o início do sistema.

APF - Análise de Pontos por função A APF (Análise de Pontos por Função) pode ser vista como um técnica que permite dimensionar o tamanho de um software a ser desenvolvido , melhorado ou adquirido; e também um técnica para realizar estimativas de custo e recursos para o desenvolvimento e manutenção de software.

O esquema do processo de contagem de pontos por função é dado na figura abaixo:

Tabela do tamanho aproximado de algumas aplicações.

Como funciona a APF? As funções são identificadas e classificadas como: Arquivo Lógico Interno -ALI mantidos pela aplicação Arquivo de Interface Externa - AIE arquivo de outra aplicação Entrada Externa -EE Transações de outras aplicações (p.ex. tela, txt) Saída Externa - SE Relatórios em que há cálculos ou totais. Consulta Externa - CE Envia dados para fora do sistema, sem cálculos.

Exemplo: Desenvolvimento de um sistema cadastro de clientes Funções solicitadas: Listagem por ordem alfabética Exportar o cadastro para outro sistema via arquivo texto

Cálculo PF Primeiro passos identificar e contar, usando o manual de contagem da APF. Teríamos: ALI - 01 ( o arquivo de clientes ) AIE - 0 EE -  01 ( inclusão de cliente ) SE -  01 ( listagem por ordem alfabética ) CE -  01 ( exportar arquivo texto)

Cálculos Se considerarmos todos os tipos de função como de complexidade Baixa teremos: Pontos de função Brutos não ajustados : PFB = ALI x 7 + AIE x 5 + EE x 3 + SE x 4 + CE x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17

Tabela para cálculo de PF não ajustados ALI AIE EE SE CE BAIXA 7 5 3 4 MEDIA 10 ALTA 15 6

Cálculo do ajuste de PF Avaliação das 14 características Somar NI individuais Calcular fator de ajuste Calcular PF ajustados PF ajustados

Cálculo do ajuste de PF São analisadas 14 características sendo atribuído um peso de 0 a 5 para cada uma delas. Este peso representa o impacto de cada características sobre o desenvolvimento da aplicação. Calcular o nível de influência (NI) somando os pesos de cada uma. Calcular o fator de ajuste a partir da equação: Fator de ajuste = (NI * 0,001) + 0.65 0,65 <= FA <= 1,35

14 características para o fator de ajuste O cálculo do fator de ajuste é calculado a partir de 14 características gerais dos sistemas, que permitem uma avaliação geral da funcionalidade da aplicação. As características gerais de um sistema são:

O sistema requer backup e recuperação confiável? São exigidas comunicação de Dados? Há funções de processamento distribuídas? O desenho é crítico? O sistema funcionará num ambiente operacional existente, intensivamente utilizado? O sistema requer entrada de dados on-line? A entrada de dados on-line exige que a transação de entrada seja elaborada em múltiplas telas ou operações? Os arquivos mestres são atualizados on-line?

9 – A entrada, saída, arquivos ou consultas são complexo? 10 – O processamento interno é complexo? 11 – O código é projetado de forma a ser reusável? 12 – A conversão e a instalação estão incluídas no projeto? 13 – O sistema é projetado para múltiplas instalações em diferentes organizações? 14 – A aplicação é projetada de forma a facilitar mudanças e o uso pelo usuário?

Nível de Influência Atribui-se um peso de 0 a 5 para cada característica, de acordo com o seu nível de influência na aplicação.   0 - Nenhuma influência; 1 - Influência mínima; 2 - Influência moderada; 3 - Influência média; 4 - influência significativa; 5 - Grande influência

Cálculo do fator de ajuste Contando os fatores de ajustes  para o nosso exemplo* teremos um total igual a 45. Valor de fator de ajuste : VFA =  0,65  + (0,001 x 45 ) = 1.1 Valor dos pontos de função Ajustados: PFA = VFA  x  PFB =  1,1 x  17  = 18,7 OK! Usando APF chegamos ao tamanho do sistema que e´ 18,7 pontos por função. * Estamos supondo 45, aqui não detalharemos a pontuação considerada

Cálculo do Custo Agora podemos estimar esforço , prazo e custo. Para isto iremos usar as seguintes considerações: 1- Considerando que uma produtividade média de 10 hs / PF. 2- Considerando que a média de jornada de trabalho é de 6 horas. 3- Considerando que o valor de uma hora de trabalho é de R$ 25,00. Concluímos que : Esforço =  10hs / PF  =   10 x 18,7 =  187 horas Prazo =   187 h / ( 4 x 6 ) =  7,8 dias Custo =  187 h x R$ 25,00 = R$ 4.675,00

Fator de Ponderação Parâmetros de Medidas Contagem Simples Médio Complexo Núm. de entradas do Usuário X 3 4 6 = Núm. de Saídas do Usuário 5 7 Núm. de Consultas do Usuário Núm. de Arquivos 10 15 Núm. de interfaces externas Total Contagem