• Nenhum resultado encontrado

Métricas de Software.

N/A
N/A
Protected

Academic year: 2022

Share "Métricas de Software."

Copied!
58
0
0

Texto

(1)

Métricas de Software.

• Medições podem ser aplicadas ao processo de software com a intenção de melhoria contínua. As medições podem ser usadas durante um projeto para ajudar nas estimativas, controle de qualidade, produtividade, e controle de projeto. Finalmente, a medição pode ser usada pelos engenheiros de software para

ajudar a avaliar a qualidade dos artefatos e auxiliar na tomada de

decisões táticas na medida em que o projeto evolui. [PRESSMAN,

2011].

(2)

• As métricas de projeto e processo são medidas quantitativas que permitem o discernimento sobre a eficácia do processo de

software e os projetos que são executados usando o processo como uma estrutura.

• As métricas de software são analisadas e avaliadas por gerentes de

software e normalmente coletadas por engenheiros de software.

(3)

Métricas nos domínios de processo e projeto.

• Métricas de processo são coletadas ao longo prazo no decorrer de vários projetos.

• Métricas de projeto permitem ao gerente de projetos:

• Avaliar o estado de um projeto.

• Rastrear os riscos em potencial.

• Descobrir áreas problemáticas antes que se tornem críticas.

• Ajustar o fluxo de trabalho ou tarefas.

• Avaliar a habilidade da equipe de projeto para controlar a

qualidade dos produtos finais de software. (...)

(4)

Métricas nos domínios de processo e projeto.

• A melhoria de qualquer processo é orientada à medição de seus atributos específicos, ao

desenvolvimento de uma série de métricas

significativas com base nestes atributos e a utilização

das métricas para fornecer indicadores que levarão a

uma estratégia de aperfeiçoamento. (...)

(5)

Métricas nos domínios de processo e projeto.

• As métrica de projeto são diferentes das métricas de processo, pois estas são estratégicas e aquelas são táticas. As métricas de projetos são usadas para adaptar o fluxo de trabalho do projeto e as atividades técnicas. Sua primeira aplicação ocorre justamente nas estimativas de esforços e tempo para o trabalho do software, a medida que evoluem, elas são utilizadas para comparação com

medidas de esforço e tempo coletadas no decorrer do projeto e o

gerente de projeto usa esses dados para monitorar e controlar o

progresso do projeto.

(6)

Medidas de Software.

• Medidas diretas:

• Custos e trabalho aplicado.

• Linhas de código (LOC – line of code).

• Velocidade de execução.

• Tamanho de memória.

• Defeitos relatados durante um determinado período de tempo.

(... )

(7)

Medidas de Software.

• Medidas indiretas:

• Funcionalidade.

• Qualidade.

• Complexidade.

• Eficiência.

• Confiabilidade.

• Manutenibilidade. (...)

(8)

Medidas de Software.

• Métricas orientadas a tamanho:

• São criadas normalizando-se as medidas de qualidade ou produtividade considerando o tamanho do software que foi produzido.

• Seu maior representante é o LOC – Linhas de código fonte, mas

gera problemas, pois está orientado diretamente à linguagem

de programação utilizada.

(9)

Medidas de Software.

• Métricas orientadas a função.

• Utilizam uma medida da funcionalidade fornecida pela aplicação como um valor de normalização, veja que ela é independente de linguagem de programação o que a torna ideal para utilização em linguagens de programação convencionais e não procedurais.

• Seu maior representante é o PF – Ponto de Função, mas gera

problemas, pois está orientado à função desejada na visão do

usuário e que acaba gerando uma avaliação subjetiva.

(10)

Medidas de Software.

• Métricas orientadas a objeto.

• Números de script de cenários: um script de cenário é um sequencia detalhada de passos que descrevem a interação entre o usuário e a aplicação. {iniciador, ação, participante}.

Está relacionado com o tamanho da aplicação e com o número de casos de testes que devem ser desenvolvidos.

• Número de classes-chave: classes-chave são os componentes independentes que são definidos logo no inicio em análise OO.

Utilizadas como medida de esforço e reutilização. (...)

(11)

Medidas de Software.

• Métricas orientadas a objeto (cont.)

• Número de classes de apoio: são necessárias para implementar o sistema, mas não estão relacionadas com o domínio do problema.

• Número médio de classes de apoio pra cada classe-chave: as classes- chave são conhecidas logo no início do projeto. As classes de apoio são definidas durante o projeto. Neste caso se o número médio de classes de apoio para cada classe-chave fosse conhecido para um dado

domínio de problema, a estimativa seria bem simples.

• Número de subsistemas: um subsistema é uma agregação de classes que apoia uma função visível ao usuário final.

(12)

Medidas de Software.

• Métricas orientadas a casos de uso.

• Assim como um FP, um caso de uso é definido no inicio do processo de software, permitindo que ele seja usado pra estimativas antes de

iniciar atividades de modelagem e construção do software.

• Os UCs descrevem funções e características visíveis aos usuário que são requisitos básicos para o sistema.

• Ele é independente de linguagem de programação.

• Como eles podem ser criados em níveis diferentes de abstração, não há um “tamanho” padrão para um UC, o que torna essa medida um pouco

(13)

Métricas de Software – APF.

• A técnica de Análise de Pontos de Função é utilizada para medir software em contratos, possibilitando dimensionar os projetos da organização oferecendo assim indicadores.

• Traz facilidades na gestão de projetos de software.

• Possibilita a implantação de processos de medição como citado, por

exemplo, no CMMI.

(14)

• Entendemos a métrica de software como uma medida de alguma propriedade de um software ou de suas especificações.

• Tamanho.

• Defeitos.

• Esforço.

• Tempo de duração.

• Custo.

(15)

Pontos de Função (PF) é uma métrica padrão para dimensionar o tamanho funcional de projetos de software.

• A métrica PF quantifica o tamanho de um projeto de software com base na análise dos requisitos funcionais do projeto. Foi criada por Allan Albrecht em 1979 e é mantida pelo International Function

Point Users Group (IFPUG).

(16)

• PF é reconhecida pelo padrão ISO, sendo seu uso recomendado em Acórdãos do Tribunal de Contas da União para contratos de software de órgãos públicos.

Motivos para medirmos software:

• Melhoria dos processos.

• Baseline histórico para estimativas.

• Atingimento das metas de produtividade do processo.

• Atingimento de metas de qualidade do processo.

• Atingimento de metas de qualidade do produto.(...)

(17)

Motivos para medirmos software (cont.):

• Avaliação de benefícios de novas ferramentas e métodos.

• Relacionamento com o cliente.

• Gerência de contratos de software.

• Contratações de TI.

Segundo Tom De Marco: "Não se pode gerenciar o que não se pode medir".

Segundo Pressman: "Se você não sabe onde quer ir, qualquer

caminho pode seguir. Se você não sabe onde está, um mapa não vai

ajudar."

(18)

Objetivos de um processo de medição.

• Fornecer um conjunto de dados, úteis e tangíveis, para apoiar a

gestão de projetos desenvolvidos internamente ou contratados.

(19)

Objetivos de um processo de medição.

• Apoiar nas atividades:

• Comunicar eficientemente dos objetivos e entre organizações contratantes e contratadas.

• Acompanhar objetivos de projetos específicos por meio de status dos processos e dos produtos do projeto de software.

• Identificar e corrigir problemas por meio de uma gerência proativa e identificação de problemas potenciais e priorização de problemas existentes.

• Tomar decisões chaves em relação à gestão e qualidade do projeto (escopo, tempo e custo).

• Apoiar decisões fornecendo base para estimativas e planos com dados de desempenho histórico.

(20)

Objetivos da APF:

• Medir as funcionalidades requisitadas e recebidas pelo usuário.

• Medir projetos de desenvolvimento e de melhoria. (independente de linguagem o projeto terá sempre o mesmo tamanho funcional).

Ela deve ser:

• Simples para minimizar o trabalho adicional envolvido no processo de contagem.

• Possuir uma media consistente entre projetos e organizações.

(21)

• A contagem de Pontos de Função deve ser realizada com base na análise de um documento de requisitos funcionais do sistema. E ainda, este

documento deve ser validado e aprovado pelo cliente.

• A contagem de Pontos de Função é baseada no projeto lógico da

aplicação. Nas fases iniciais do ciclo de vida, onde existem apenas

requisitos de negócio, pode-se realizar uma estimativa de Pontos de

Função do projeto (contagem estimada).

(22)

• Existem vários métodos para se estimar o tamanho funcional de projetos em Pontos de Função.

• O Manual de Práticas de Contagem trata apenas o Procedimento

Contagem de Pontos de Função.

(23)

• Benefícios da Análise de Pontos de Função

• O uso da técnica Análise de Pontos de Função (APF) traz diversos benefícios para as organizações, sob ponto de vista gerencial:

gestão de projetos de desenvolvimento e de manutenção de sistemas, gestão do processo de desenvolvimento de sistemas, gestão de contratos de projetos de software.

• Apoiar a análise de qualidade e produtividade.

• Estimar o custo e os recursos de um projeto de software.

• (...)

(24)

• Benefícios da Análise de Pontos de Função

• Fornecer um fator de normalização para a comparação de software.

• Determinar o tamanho de um pacote de software adquirido, por

meio do dimensionamento funcional de todas as funções incluídas no

mesmo.

(25)

• Limitações da APF.

• Não mede requisitos não funcionais (usabilidade, segurança e performance estão fora).

• Mesmo que o tamanho do projeto em PF influencie seu custo e esforço de desenvolvimento, projetos semelhantes poderão ter esforços e custos diferentes. (PFs de linguagens diferentes terão esforços e custos

diferentes).

• Manutenções adaptativas que impliquem em mudanças de requisitos não funcionais são dimensionadas com PF = 0.

• Existe para tanto um roteiro a ser criado dentro dos órgãos para que possam adaptar a APF para sua realidade como o do SISP

www.governoeletronico.gov.br.

(26)

Processo de Contagem de PF.

(27)

Processo de Contagem de PF.

• De acordo com o Function Point Counting Practices Manual.

(28)

Obter a documentação disponível do projeto.

Análise da documentação com foco na elicitação de requisitos funcionais como base da contagem de PF.

Se não houver documentação, recorrer ao especialista de negócio.

A documentação poderá conter:

Requisitos.

Modelos de dados/objetos.

Diagramas de classe.

Diagramas de fluxo de dados.

Casos de uso.

Descrições procedurais.

(29)

Identificar o Propósito da Contagem.

• Responder à questão do negócio a ser resolvida. O propósito da

contagem irá influenciar o estabelecimento da fronteira do software e do escopo da contagem, bem como o tipo da contagem.

• Determina:

• O tipo de contagem de PF e o escopo.

• Influência o posicionamento da fronteira da aplicação sendo medida.

(30)

Identificar o Tipo de Contagem.

• Podem estar associados ao projeto e à aplicação e podem ser:

• Projeto de desenvolvimento: medida de funcionalidade oferecida aos usuários com a primeira instalação do software. Novos sistemas.

• Projeto de melhoria: medida de funcionalidades incluídas, alteradas e excluídas pelo projeto de melhoria na aplicação. Observar que

dentro da Engenharia de software este tipo de projeto é chamado de projeto de melhoria funcional ou projeto de manutenção evolutiva.

• Aplicação (uma aplicação instalada): medida de funcionalidade que uma aplicação oferece ao usuário. É também denominada de

baseline ou tamanho funcional instalado. (...)

(31)

Identificar o Tipo de Contagem.

• A contagem inicial é uma estimativa, a contagem final deverá ser feita

mediante entrega e homologação da solução final ao cliente, isto pois que poderá haver mudanças bem interessantes devido às mudanças de

requisitos no decorrer do projeto.

(32)

Determinar o Escopo da Contagem.

• Conjunto de funcionalidades (requisitos funcionais) a ser considerado na contagem de PF.

• O escopo da contagem:

• Define o (sub)conjunto do software que está sendo medido.

• É determinado pelo propósito da contagem de pontos de função.

• Identifica quais funcionalidades serão incluídas na contagem de PF.

• Pode incluir mais de uma aplicação. (cada aplicação constitui uma fronteira de contagem).

(33)

Determinar a Fronteira da Aplicação.

• Determinação do limite lógico entre o projeto que está sendo contado e o usuário (usuário, outra aplicação hardware, middleware ou software que interage com o sistema sendo contado).

• Deve ser determinada sob uma perspectiva de negócio.

• (...)

(34)

Determinar a Fronteira da Aplicação.

• A fronteira:

• Define o que é externo e interno.

• Indica o limite entre software e usuário.

• Agrupa os dados lógicos mantidos pela aplicação (ALI).

• Auxilia na identificação dos dados lógicos referenciados mas não mantidos (AIE).

• É independente de técnicas de arquitetura.

(35)

Contar Funções de Dados.

• Representam as funcionalidades fornecidas ao usuário (os requisitos de negócio da aplicação) através de dados internos ou externos. São

identificadas como:

• grupo de dados logicamente Arquivo Lógico Interno (ALI):

relacionados, reconhecido pelo usuário, mantido por meio de um processo elementar da aplicação que está sendo contada. (tabelas estáticas mantidas pela equipe de desenvolvimento não são contadas e as entidades dependentes fazem parte de um mesmo ALI).(...)

(36)

Contar Funções de Dados.

Arquivo de Interface Externa (AIE): grupo de dados logicamente relacionados, reconhecido pelo usuário, mantido por meio de um processo elementar de outra aplicação e referenciado pela aplicação que está sendo contada. Ele não é mantido pelas funcionalidades da aplicação que está sendo contada, ao contrário do ALI.

• OBS.: UM AIE será obrigatoriamente um ALI de outra aplicação.

(37)

Contar Funções Transacionais.

• Representam funcionalidades de processamento providas ao usuário, são processos elementares que fornecem funcionalidades para processar

dados (todos eles são processos elementares).(...)

(38)

Processo elementar é a menor unidade de atividade significativa para o usuário, é uma transação completa.

Entrada Externa (EE): trata dados ou informações de controle que

“entram” pela fronteira da aplicação. Mantem um ou mais arquivos lógicos Internos ou altera o comportamento do sistema.

Saída Externa (SE): envia dados ou informações de controle para fora da fronteira. Apresenta informações para um usuário, por meio de um processamento adicional à recuperação de dados ou informações de controle. Pode também manter arquivos lógicos internos ou alterar o comportamento do sistema.

(39)

Consulta Externa (CE): envia dados ou informações de controle para fora da fronteira da aplicação. Apresenta informações para o usuário por meio da recuperação de dados ou informações de controle de ALIs ou AIEs.

OBS.: toda CE deve ler dados de pelo menos um Arquivo Lógico (ALI ou AIE).

O processo consiste em;

• Identificar os processos elementares.

• Definir se o processo identificado é uma EE, CE ou SE.

(40)

Arquivo Referenciado (AR): considera os ALIs e AIEs atualizados ou lidos durante o processamento de uma EE, SE ou CE.

Tipo de Dado (TD): seu quantitativo é dado pelo número total de atributos identificados pelo usuário que atravessam a fronteira da aplicação durante uma EE, SE ou CE. Não devem ser considerados como TD os campos que são apenas utilizados pela função para processamento interno, bem como número de páginas, data e hora. É contado 1 TD para ação, botões de ação e 1 TD para mensagem, considerando 1 TD para todas as ações e 1 TD para todas as mensagens.

Métricas de Software – APF – Complexidade funcional.

(41)

Entrada Externa (EE).

Baixa: 3 PF.

Média: 4 PF.

Alta: 6 PF.

1 a 4 tipos de dados

5 a 15 tipos de dados

16 ou mais tipos de dados

0 ou 1 arquivo referenciado

Baixa Baixa Média

2 arquivos referenciados

Baixa Média Alta

3 ou mais arquivos referenciados

Média Alta Alta

(42)

Saída Externa (SE)

Baixa: 4 PF.

Média 5 PF.

Alta: 7 PF.

1 a 5 tipos de dados

6 a 19 tipos de dados

20 ou mais tipos de dados

0 a 1 arquivo referenciado

Baixa Baixa Média

2 a 3 arquivos referenciados

Baixa Média Alta

(43)

Consulta Externa (CE)

Baixa: 3 PF.

Média: 4 PF.

Alta: 6 PF.

1 a 5 tipos de dados referenciados

6 a 19 tipos de dados referenciado

20 ou mais tipos de dados referenciado

0 a 1 arquivo referenciado

Baixa Baixa Média

2 a 3 arquivos referenciados

Baixa Média Alta

4 ou mais arquivos referenciados

Média Alta Alta

(44)

Registro Lógico: faz parte do ALI ou AIE e é identificado como um subgrupo de dados, reconhecido pelo usuário.

(45)

Funções de Dados.

ALI

Baixa: 7 PF.

Média: 10 PF.

Alta: 15 PF.

AIE

Baixa: 5 PF.

Média: 7 PF.

Alta: 10 PF.

1 a 19 tipos de dados

20 a 50 tipos de dados

51 ou mais tipos de dados

1 Registro Lógico Baixa Baixa Média

2 a 5 Registros Lógicos

Baixa Média Alta

6 ou mais Registros Lógicos

Média Alta Alta

(46)

Determinar valor do fator de reajuste (4.1.1).

• Na época do lançamento da técnica de Pontos de Função, lançada por Allan Albrecht, não havia as 14 CGS – Características Gerais do Sistema e o fator de ajuste era determinado de forma totalmente subjetiva.

• O valor do fator de ajuste (VAF – Value Adjustment Factor) é baseado em 14 características gerais de sistemas (CGS), listadas em seguida.

(47)

Determinar valor do fator de reajuste (4.1.1). (cont.)

• Comunicação de Dados.

• Processamento Distribuído.

• Performance.

• Configuração Altamente Utilizada.

• Taxa de Transações.

• Entrada de Dados On-Line.

• Eficiência do Usuário Final.(...)

(48)

Determinar valor do fator de reajuste (4.1.1). (cont.)

• Atualização On-line.

• Processamento Complexo.

• Reutilização.

• Facilidade de Instalação.

• Facilidade de Operação.

• Múltiplos Locais.

• Modificações Facilitadas.

(49)

Determinar valor do fator de reajuste (4.1.1). (cont.)

• Estas características refletem funções que afetam a aplicação de

maneira geral e cada uma delas possui um nível de influência sobre a aplicação que pode variar em um intervalo discreto de 0 a 5.

• 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.

(50)

Determinar valor do fator de reajuste (4.1.1). (cont.)

• Após determinados os níveis de influência, o fator de reajuste é calculado com a fórmula:

• VAF = (TDI X 0,01) + 0,65, onde TDI é Total Degree of Influence.

(51)

Calcular o Tamanho Funcional / Cálculo dos Pontos de função ajustados [4.1.1]

Cada tipo funcional (ALI, AIE, EE, SE e CE) possui uma complexidade (Baixa, Média ou Alta).

Cada funcionalidade possui uma contribuição funcional para a contagem de PFs de acordo com a complexidade definida.

Tipo Funcional Complexidade

Baixa Média Alta

Arquivo Lógico Interno (ALI) 7 10 15

Arquivo de Interface Externa (AIE) 5 7 10

Entrada Externa (EE) 3 4 6

Saída Externa (SE) 4 5 7

Consulta Externa (CE) 3 4 6

(52)

Calcular o Tamanho Funcional / Cálculo dos Pontos de função ajustados [4.1.1] (cont.)

Dependendo do tipo de contagem definida, o cálculo do PF poderá ser apresentado de formas diferentes de acordo com as funcionalidades associadas à conversão de dados e que não devem ser associadas às cargas iniciais de dados que são

executadas apenas uma vez na implantação do sistema, pois esta não entra na contagem:

PF-Desenvolvimento = PF-Incluído + PF-Conversão.

PF-Incluído: associados às funcionalidades incluídas na aplicação por meio do projeto de desenvolvimento.

PF-Conversão: associados às funcionalidades de conversão de dados dos projetos.

(53)

Calcular o Tamanho Funcional / Cálculo dos Pontos de função ajustados [4.1.1] (cont.)

• PF-Melhoria = PF-Incluído + PF-Alterado + PF-Excluído + PF-Conversão.

• PF-Incluído: associados às funcionalidades incluídas na aplicação por meio do projeto de melhoria.

• PF-Alterado: associados às funcionalidades alteradas no projeto de melhoria.

• PF-Excluído: associados às funcionalidades existentes na aplicação que serão excluídas no projeto de melhoria.

• PF-Conversão: contagem de PF associada às funcionalidades de conversão de dados dos projetos.

(54)

Calcular o Tamanho Funcional / Cálculo dos Pontos de função ajustados [4.1.1]

(cont.)

PF-Melhoria = [(PF-Incluído + PF-Alterado + PF-Conversão) * VAFA] + [PF-Excluído

* VAFB]. [4.1.1]

VAFA: Valor do fator de ajuste da aplicação depois do projeto de melhoria.

VAFB: Valor do fator de ajuste de aplicação antes do projeto de melhoria.

PF-Aplicação = PF-Incluído.

PF-Incluído: associados às funcionalidades incluída na aplicação por meio do projeto de desenvolvimento.

PF-Aplicação = PF-Incluído * VAF. [4.1.1]

(55)

Documentar e Reportar a Contagem.

• Dever ser clara o suficiente para que um revisor ou auditor possa compreender a contagem apresentada e chegar aos mesmos

resultados, ele deverá ser rastreável para os requisitos funcionais analisados.

(56)

• Estimativas feitas com especialistas são inexatas e difíceis de serem realizadas quando temos projetos grandes.

• A utilização de APF nos traz melhor qualidade na especificação dos

requisitos, visto que esta se apresenta como base para o processo de PF e como tal deverão estar claras e em nível de detalhamento adequado.

Estimativas

(57)

• Deverá ser realizada na etapa de planejamento do projeto.

• As premissas e estimativas deverão ser documentadas e utilizadas no decorrer do acompanhamento do projeto.

• Estimativa: obtida por meio de uma atividade técnica. Não deve sofrer interferências.

• Meta: objetivo a ser alcançado de acordo com necessidades de negócio.

• Compromisso: acordo fechado entre a gerência e as equipe técnicas para alcance das metas.

(58)

Referências

Documentos relacionados

Qual a percepção do usuário em relação à qualidade dos serviços de testes de software, quando adotada fábrica de testes no ciclo de desenvolvimento1. Para tanto, foi delineado

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

a) Realizar entrevistas com duas empresas importadoras, sendo uma de equipamentos médico-hospitalares, para identificação de requisitos para desenvolvimento de um protótipo de

Nas leituras de falhas efetuadas, foram obtidos códigos de anomalia por meio de dois diferentes protocolos de comunicação: o ISO 14230 KWP (2000) e o ISO 15765-4 CAN. A seguir, no

O encontro presencial foi um momento para conhecer os alunos pessoalmente, de reflexão sobre a experiência no CEPI e sobre como os alunos estavam se sentindo, já estando no

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

 Forte parceria com todas as incorporadoras listadas e mais de 600 incorporadores não listados gera grandes oportunidades para a Brasil Brokers para a venda de Remanescentes;

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam