Escolar Documentos
Profissional Documentos
Cultura Documentos
3° Ano – Laboral
Engenharia de Software
Tema:
Medição de Software
Nomes:
Evander Hassamo Ahmed Alegy
Keven José Manuel Gonçalves
Lingui Joaquim Moiana
Paulo Samuel Ernesto Tinga
Introdução.............................................................................................................................................2
Objetivos...............................................................................................................................................3
Objetivos gerais.................................................................................................................................4
Objetivos específicos.........................................................................................................................4
Medição.................................................................................................................................................4
Métricas de software.............................................................................................................................5
Métricas de produtividade................................................................................................................6
Metrica de qualidade.........................................................................................................................6
Qualidade de uso.................................................................................................................................10
Exemplo de Métricas...........................................................................................................................15
Conclusão............................................................................................................................................19
Bibliografia..........................................................................................................................................19
2
Introdução
No mundo da engenharia medir é algo importante, e é algo fundamental para coleta de dados
e isso não é indiferente nos softwares e por isso devemos estudar as diversas formas de medir
e indicadores de qualidades que nos mostraram como o projeto está caminhando e se irá
agradar ao usuário final.
3
Objetivos
Objetivos gerais
Definir medição e métricas de softwares, e avaliar os diversos pontos sobre o tema
Explicar o porquê e como de fazer medições
Objetivos específicos
Explicar o conceito de medições
Falar acerca de como funciona as métricas nos softwares e dizer os diferentes tipos
Explicar a utilização de um modelo de qualidade
Definir Métricas Orientadas a função e orientadas a tamanho
Dar as razões de medir um software
Exemplificar as Métricas
4
Medição
A medição é uma componente chave de qualquer engenharia, portanto, com o
amadurecimento da engenharia de software ela tem se tornado fundamental na coleta de
dados significativos, na identificação de pontos positivos e falhos da organização, assim
como no ciclo da melhoria de processo.
Dessa forma, a medição pode ser considerada como o ato de determinar uma indicação
quantitativa da extensão, quantidade, dimensão, capacidade ou tamanho de algum atributo de
um produto ou processo. Várias são as razões que podem influenciar o uso da medição no
âmbito organizacional, entre elas:
5
Métricas de software
Ainda que uma métrica não seja uma medida (as métricas são funções, enquanto as
medidas são os números obtidos pela aplicação da métrica), muitas vezes os dois termos são
usados como sinônimos.
Métricas de produtividade
Metrica de qualidade.
Métricas de produtividade
As métricas de produtividade concentram-se na saída do processo de engenharia
de software.
6
Metrica de qualidade
Este modelo de qualidade para qualidade dietas e indiretas, que categoriza a qualidade
de software em 6 características (funcionalidade, confiabilidade, usabilidade, eficiência,
manutenibilidade e portabilidade), que são subdivididas em SUB características. Para cada
característica e sub-característica, a capacidade do software é determinada por um conjunto
de atributos internos que podem ser medidos.
7
Medidas Direta: são o custo e o esforço aplicado ao desenvolvimento e manutenção do
software e do produto, quantidade de linhas de código produzido e o total de defeitos
registrados durante um determinado período de tempo, ou seja, são medidas realizadas em
termos de atributos observados (usualmente determinada pela contagem).
Exemplo:
Custo do software;
Esforço;
Linha de código produzida;
Velocidade de execução em segundos (de software);
Memoria ocupado pelo software;
Número de erros encontrados em um espaço de tempo.
Medidas Indiretas: são medidas obtidas a partir de outras métricas (derivadas), ou seja, são
medidas que possuem qualidades e funcionalidades do software.
Exemplo:
Funcionalidade
Confiabilidade.
Usabilidade do software;
Eficiência;
Manutenibilidade;
Qualidade de software;
Portabilidade;
8
Funcionalidade: capacidade de fornecer funções que correspondam às necessidades
explícitas e implícitas do usuário quando o software é utilizado sob condições especificadas.
Usabilidade: capacidade que o produto tem de ser entendido, aprendido, utilizado e ser
atraente para o usuário.
9
Inteligibilidade: capacidade do produto de fazer o usuário entender se o software é
adequado, e como ele pode ser usado para tarefas particulares.
Aprendibilidade: capacidade que o produto deve ter de fazer o usuário entendê-lo. ·
Operacionalidade: capacidade que o produto deve ter para que o usuário possa
aprendê-lo e controlá-lo.
Atratividade: capacidade do produto em ser atraente para o usuário. · Conformidade:
capacidade de aderir a padrões, convenções, leis e prescrições similares relativas a
usabilidade.
Portabilidade: capacidade que o produto tem de ser transferido de um ambiente para outro. ·
Adaptabilidade: capacidade de ser adaptado em diferentes ambientes sem intervenção. ·
10
Adaptabilidade: capacidade de ser adaptado para diferentes ambientes especificados,
sem necessidade da aplicação de outras ações ou meios além daqueles fornecidos para
essa finalidade pelo software considerado.
Capacidade de Instalação: capacidade de ser instalado em um ambiente específico.
Coexistência: capacidade que o produto tem de coexistir com outro software
independente em um ambiente comum, compartilhando recursos comuns.
Capacidade de Substituição: capacidade de ser usado no lugar de outro produto de
software com o mesmo propósito no mesmo ambiente.
Conformidade: capacidade de aderir a padrões e convenções relativas a portabilidade.
Qualidade de uso
É a visão do usuário da qualidade do produto de software quando é utilizado em
ambiente e contexto de uso estabelecidos. Ela mede o quanto os usuários podem alcançar
seus objetivos em um ambiente particular, em vez de medir as propriedades do software
propriamente dito. O nível de qualidade no ambiente dos usuários pode ser diferente daqueles
obtidos no ambiente dos desenvolvedores, devido as diferenças entre hardware e ambiente de
apoio. O usuário avalia somente aqueles atributos de software que são utilizados em suas
tarefas. Algumas vezes, atributos de software especificados por um usuário final durante a
fase de análise de requisitos, não mais correspondem às necessidades do usuário quando o
produto está em uso, devido a mudanças nos requisitos e a dificuldade de especificar
necessidades implícitas.
11
Produtividade: definida como sendo capacidade do produto de software possui de
possibilitar aos usuários utilizar uma quantidade adequada de recursos em relação à
efetividade alcançada em um contexto de uso especificado.
12
aproximar de 40 por cento. Testar e depurar levou cerca de 30 por cento. Deste modo, alguns
aplicativos foram escritos em duas ou mais linguagens de programação diferentes. Em
meados da década de 1970 foram notados problemas mais sérios com a métrica LOC. É
razoável supor que as linguagens de programação de alto nível melhoraram a produtividade
do desenvolvimento e da qualidade.
Suponha que você tenha duas aplicações idênticas, sendo uma codificada em
Assembly e outra em COBOL. A versão em Assembly possui 10.000 linhas de código, mas a
versão em COBOL possui apenas 3.000 linhas de código. Quando você mede as taxas de
codificação, ambas as línguas foram codificadas a uma taxa de 1.000 linhas de código por
mês, mas uma vez que a versão em COBOL era apenas um terço do tamanho da versão em
Assembly, os ganhos de produtividade não podem ser vistos por meio de métricas LOC.
Se medir todo o projeto com métricas LOC, a versão em Assembly tem uma taxa de
produtividade de 666 linhas de código por mês enquanto a versão em COBOL tem uma
produtividade de 375 linhas de código por mês. Obviamente, os benefícios econômicos de
linguagens de programação de alto nível desaparecem quando a métrica LOC era utilizada.
13
Métricas Orientadas à função (Analise de Pontos de Função)
A Análise de Pontos de Função (APF) é uma medida de dimensionamento de
significância de negócio claro.
Tornou-se pública por Allan Albrecht da IBM em 1979, a técnica APF quantifica as
funções contidas no software em termos que sejam significativos para os usuários do
software. A medida se relaciona diretamente com os requisitos de negócio que o software se
destina a abordar. Pode ser facilmente aplicada através de uma ampla variedade de ambientes
de desenvolvimento e ao longo da vida de um projeto de desenvolvimento. Medidas de outras
empresas, tais como a produtividade do processo de desenvolvimento e os custos por unidade
de suporte de software, também pode ser medida em pontos prontamente derivados.
14
Razões para se medir um software
O uso da medição permite quantificar e por sua vez administrar mais efetivamente a
partir da análise de dados, mas saber escolher as métricas ideais para utilizar no projeto é um
aspecto que deve ser levado em consideração, pois o uso de métricas pode gerar diversas
dúvidas, principalmente quando se tenta medir algo que nunca foi medido no passado, que é
o caso da dos projetos de desenvolvimento de software
Exemplo de Métricas
Métricas de código-fonte foram criadas propostas desde que os primeiros conceitos de
engenharia de software surgiram. As métricas pioneiras foram rapidamente absorvidas pela
indústria, que as usa como frequência. Métricas de complexidade e tamanho são as mais
15
usuais, por exemplo LOC (linhas de Código) e seus derivados por exemplo: erros/LOC,
LOC/tempo.
Os intervalos surgidos pelo LOC de uma classe (java e c++) são: até 70 (bom); entre
70 e 130 (regular); de 130 em diante (ruim).
Essa medida indica se o código esta bem distribuído entre os métodos. Quanto maior,
mais “pesados” são os métodos. É preferível ter muitas operações pequenas e de fácil
entendimento que poucas operações grandes e complexas.
16
NOA (número de atributos)
Calcula o número de atributos de uma classe. Seu valor mínimo é zero e não existe
um limite máximo para seu resultado. Uma classe com muitos atributos pode indicar que ela
tem muitas responsabilidades e apresentar pouca coesão, ou seja, deve estar tratando de
assuntos diferentes.
É usado para medir o tamanho das classes em termos das suas operações
implementadas. Essa métrica é usada para ajudar a identificar o potencial de reuso de uma
classe. Em geral, as classes com um grande número de métodos são mais difíceis de serem
reutilizadas, pois elas são propensas a serem menos coesas. Assim, é recomendado que uma
classe não tenha um número excessivo de métodos.
Os intervalos sugeridos para java e c++ são: ate 1 (bom); entre 1 a 9 (regular); de 9
em diante (ruim).
Os intervalos sugeridos para java e c++ são: até 10 (bom); entre 10 e 40 (regular); de
40 em diante (ruim).
Calcula a media de parâmetro dos métodos de classe. Seu valor mínimo é zero e não
existe um limite máximo para seu resultado, mas um número alto de parâmetros pode indicar
que um método pode ter, mais de uma responsabilidade, ou seja, mas de uma função.
17
DIT (profundidade de arvore de herança)
São consideradas boas matrizes aquelas que facilitam a medição dos parâmetros, há
riscos de se perder na enorme qualidade de métricas propostas pela literatura. O tratamento
de um grande volume de dados pode ser humanamente impossível. Portanto, é preciso definir
e justificar critérios adotados na escolha das métricas. É desejável que as métricas possuam as
seguintes características:
18
A métrica deve medir efetivamente o proposto por la;
Pequenas mudanças no software, por exemplo, não podem causar grandes mudanças
no valor obtido;
O resultado da métrica deve ser independente da linguagem de programação utilizada;
19
Conclusão
Não existe ma etapa especifica que a medição de software possa atuar, não existe
apenas um profissional que fara uso de métricas de software. Então, existe uma gama de
possibilidades para as empresas agregarem valor a cadeia de desenvolvimento.
20
Bibliografia
21