Engenharia de Software II Técnicas de Métricas de Software

Documentos relacionados
Medidas de Esforço de Desenvolvimento de Software

Informática I. Aula Aula 18-29/10/2007 1

Programação Estruturada

AULA 01 ESTRUTURA DE DADOS

Informática I. Aula 9. Aula 9-17/05/2006 1

Gerência de Projetos e Manutenção de Software Aula 4 Planejamento de Projetos (Estimativas) Andréa Magalhães Magdaleno 2017.

COBOL DB2- CICS. Prof. Maromo [Aula 6]

SNAP Resultados de 60 projetos

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Introdução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C

Métricas de Software

Medidas de Esforço de Desenvolvimento de Software

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

Engenharia de Software II

Sistemas de Computação e de Informação

Informática I. Aula 9. Aula 9-27/09/2006 1

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

COBOL DB2- CICS. Prof. Maromo [Aula 4]

Planejamento de Projeto de Software: Estimativas de Esforço e Custo

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

PLANEJAMENTO DO PROJETO

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Linguagem de Programação. Thiago Leite Francisco Barretto

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Primeiros programas.

Introdução à Lógica de Programação

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: LINGUAGENS PARA APLICAÇÃO COMERCIAL

GPS - Gestão de Projeto de Software

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA FASE DE PROJETO

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Projeto e Desenvolvimento de Software

Métricas. Métricas. [Engenharia de Software II] Adriano J. Holanda 11/9/2017

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Métricas de processo e projeto de software

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

DESENVOLVIMENTO DE UM PROCESSO BASEADO EM MÉTRICA PARA ESTIMAR ESFORÇO EM UM PROJETO DE IMPLANTAÇÃO DE SOFTWARE

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

FACULDADE DE CIÊNCIA DE ENGENHARIA DE SOFTWARE MATRIZ CURRICULAR DO CURSO DE ENGENHARIA DE SOFTWARE PRIMEIRO PERÍODO SEGUNDO PERÍODO

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Engenharia de Software

Programação Estruturada

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

The Cyclops Project. Introdução: C++

Análise de Ponto de Função APF. Aula 01

Engenharia de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO IFSP CAMPUS PRESIDENTE EPITÁCIO

Programação Básica. Introdução à programação de computadores

Estimativas de Software

Grade Curricular do Curso de Graduação em Engenharia de Computação

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Capacitação em Linguagem C Parte 1

Básico: estrutura de programa, sintaxe Interface com linha de comando

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS CENTRO DE TECNOLOGIA DA INFORMAÇÃO

Programação Básica. Introdução à programação de computadores

Estimativa de Esforço. Estimativas de Software. Subjetividade da Estimativa. Incerteza de Estimativa. Técnicas de Estimativas

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Sistemas de Informação Campus de Três Lagoas

Revisão: Estimando o tamanho do projeto

TE091 Programação Orientada a Objetos Engenharia Elétrica

Agenda. Estimativas. Cronograma Custos e Orçamento Exercícios. Planning Poker. Paramétrica. COCOMO Análise de Pontos de Função GPMS 2017.

Fundamentos de Programação 1

Comando-Geral de Tecnologia Aeroespacial

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

Verificação de Códigos Lua Utilizando BMCLua

Programação Orientada a Objetos

Algoritmos e Programação

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

MCTA001 Algoritmos e Estruturas de Dados I Apresentação e exercícios básicos

"A estimativa de tamanho de software é o coração do processo de estimativas de um projeto de software". (PUTMAN,1992)

Linguagens de Programação

Planejamento de Projeto de Software: Estimativas de Esforço e Custo

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos

Informática I. Aula 2. Aula 2-04/09/2006 1

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

CENTRO UNIVERSITÁRIO DO NORTE - UNINORTE / GRADE CURRICULAR

COBOL DB2- CICS. Prof. Maromo [Aula 2]

Algoritmos e Programação

Introdução a Programação de Jogos

Ferramentas de Suporte

IHC Interação Homem- Computador. Profa.Denise Neves

Introdução à linguagem C

Plano de Projeto. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Introdução à Programação I

Ciclo de vida: fases x atividades

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java

Estimativa por Pontos de Caso de Uso

Programação de Computadores:

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

Transcrição:

Engenharia de Software II Técnicas de Métricas de Software 1. SLOC SLOC - Source lines of code (linhas de codigo fonte) é uma métrica de software usada para medir o tamanho físico de um software aplicando o principio de contagem das linhas de codigo (LOC) no texto do programa fonte. Exemplo: O Trecho do codigo abaixo, escrito em C, contém 2 LOC logico ou 3 LOC físico for (i=0; i<100; ++i) { printf("hello"); } Uma derivação desta técnica é obtida empregando-se estimativas otimistas, esperadas e pessimitas SLOC = (KlocOtimista + 4 * KlocEsperado + KlocPessimista)/6 onde kloc Milhares de linha de codigo A TECNIC A DE SLOC varia com a linguagem que está sendo empregada para mesma finalidade, em ambientes distintos temos quantidade de codigo distinta. A abela abaixo apresenta um programa escrito em C e em Cobol para mesma finalidade Em C temos Em Cobol temos: #include <stdio.h> int main(void) { } printf("hello World"); return 0; 000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. HELLOWORLD. 000300 000400* 000500 ENVIRONMENT DIVISION. 000600 CONFIGURATION SECTION. 000700 SOURCE-COMPUTER. RM-COBOL. 000800 OBJECT-COMPUTER. RM-COBOL. 000900 001000 DATA DIVISION. 001100 FILE SECTION.

001200 100000 PROCEDURE DIVISION. 100100 100200 MAIN-LOGIC SECTION. 100300 BEGIN. 100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 100500 DISPLAY "Hello world!" LINE 15 POSITION 10. 100600 STOP RUN. 100700 MAIN-LOGIC-EXIT. 100800 EXIT. 2. Halstead O método de MURICE Halsead, tem o objetivo de determinar a complexidade de um software por meio do comprimento e volume do software. O princípio deste método está na análise e quantificação dos operandos e operadores que compõem o sistema. Sendo: n 1 = número de operadores distintos de um programa n 2 = número de operandos distintos de um programa N 1 = total de ocorrências de operadores em um programa N 2 = total de ocorrências de operandos em um programa Defini-se: Quantidade de vocabulo com n = n 1 + n 2 Comprimento do algoritmo com N = N 1 + N 2 A dimensão de um programa é definida pelo comprimento e pelo volume do programa de forma que Comprimento Volume n 1 x log 2 n 1 + n 2 x log 2 n 2

N x log 2 n 3. NESMA A NESMA, Netherlands Metric Association, determina um padrão simplificado para o calculo de ponto de função. Ponto de função é uma medida para para estimar o tamanho de um sistema de informação baseando-se na funcionalidade que é percebida pelo usuário do sistema. Segundo esta associação o ponto de função e pode ser determinada em relação a quantidade de tabelas que o software ira manipular e a quantidade de interfaces necessárias para manipular dados de banco de dados de outras aplicações. O Ponto de Função PF é dado por: PF = (QTT*35+(QI*15)) Onde: QTT=Quantidade de tabelas QI= Quantidade de interfaces 4. Caper Jones A estimativa descrita por Caper Jones é também uma calculo de ponto de função. Nesta técnica o Ponto de função de um software é determinado em funçcão pela natureza da aplicação esta natureza aborda seu escopo, da classe e do tipo de software a ser produzido. O Ponto de Função PF é dado por: Onde x escopo y classe z tipo PF = (x + y + z) 2,35 cada um desses elementos e associado a um indice segunda as tabelas Tabela de Escopo de um sistema Índice Escopo Índice Escopo 1 Subrotina 6 Programa Isolado 2 Módulo 7 Componente de Sistema

3 Módulo Reutilizável 8 Versão de Sistema 4 Protótipo Descartável 9 Novo Sistema 5 Protótipo Evolutivo 10 Sistema Composto Tabela de Classes de um sistema Índice Classe Índice Classe 1 Software Individual 9 Internet 2 Shareware 10 Software Alugado 3 Software Acadêmico 11 Software Bundled 4 1 Site - Interno 12 Software Comercial (*) 5 Multi-Site - Interno 13 Contrato de Outsourcing 6 Projeto Contratado - Civil 14 Contrato Governamental 7 Time Sharing 15 Contrato Militar 8 Serviço Militar Tabela de Tipo de um sistema Índice Tipo Índice 1 Não Procedural 11 Comunicações 2 Web Applet 12 Controle de Processo 3 Batch 13 Sistema Confiável (Trusted)

4 Interativa 14 Sistema Embedded 5 GUI Interativa 15 Processamento de Imagem 6 Batch DB 16 Multimídia 7 DB Interativa 17 Robótica 8 Cliente/Servidor 18 Inteligência Artificial 9 Matemática 19 Rede Neural 10 Sistema (Operacional) 20 Híbrido: Misto Estimativas de Pazos, equipes e esforço, O prazo T de um projeto pode ser dado por: T = (PF) t Onde o expoente t varia de 0.32 a 0.45 dependendo do ambiente. Caper Jones define os seguintes valores para t: Ambiente de desenvolvimento Expoente t Sistema Comum 0,32-0,35 Sistema Orientado a Objeto 0,36 Sistema Cliente/Servidor 0,37

Sistema Terceirizado 0,38 Sistema de Informações Gerenciais 0,39 Programa Produto Comercial 0,40 Programa de Sistema Operacional 0,41 Software Militar 0,43-0,45 O tamanho sugerido para a equipe de desenvolvimento Te tem como base que cada profissional deve ser responsável por 150 PF. Logo: Te = PF /150 pessoas O esforço resultante para produção do software, medido em homem-mês é dado por: E = 2,4 x v 1,05 homens-mês Onde: E homem-mês v milhares de linhas de codigos, comandos do programa A quantidade de linhas de codigo varia de acordo com a limhagem de programação. Uma aplicação em java cada ponto de função corresponde a 54 loc. A tabela ES_tab_linguagem_PontoFuncao.pdf disponibiliza a relação PF e loc para algumas Linguagens de programação. O tempo para desenvolvimento do projeto dado em função do esforço homens-mês é dado por: T = 2.5 x E 0,32