Bruno Hott COCOMO II

Documentos relacionados
Lista de Exercícios 02: Revisão

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

Capítulo 23. Planejamento de Projeto Pearson PrenticeHall. Todos os direitos reservados. slide 1

Revisão: Estimando o tamanho do projeto

Gerando Estimativas Confiáveis com COCOMO II e o Banco de Dados do ISBSG

Estimação de Esforço. Engenharia de Sofware: Conceitos e Práticas Prof. Raul Sidnei Wazlawick UFSC-CTC-INE Elsevier, 2013

Estimativas de software

Métricas de Software

3. Linguagem de Programação C

Fundamentos de Programação 1

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

Linguagens de Programação. Introdução. Carlos Bazilio

Capítulo 23 Planejamento de Projeto. Aula 1 Cronograma do Projeto

ANDRÉ FRANCISCO DE MOURA

COCOMO II - Um modelo para estimativa de custos de Gerência de Projetos

Algoritmos e Programação

Algoritmos e Programação

Algoritmos e Programação

Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG

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

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Paradigmas de Programação

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

Histórico de Linguagens de Programação

Capítulo 1. Aspectos Preliminares

Ciclo de vida: fases x atividades

Linguagens de Programação

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

Nomes, vinculações e escopos

Estimativa por Use Case Point (UCP)

Paradigmas de Programação

PLANEJAMENTO DO PROJETO

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Introdução à Computação

FPGA & VHDL. Tutorial

LINGUAGENS DE PROGRAMAÇÃO PROGRAMA E BIBLIOGRAFIA

Nomes, vinculações e escopos

Projeto de Linguagem. Linguagens de Programação

Aula 1 Java Prof. Dr. Sylvio Barbon Junior

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Introdução à Análise e Projeto de Sistemas

Ambiente de Desenvolvimento Integrado (IDE)

Revisão: linguagens de programação

Conceitos de Linguagens de Programação

Introdução à Computação

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Arquitetura e Organização de computadores

Medidas de Esforço de Desenvolvimento de Software

Noções de compilação

Algoritmos e Programação

ENGENHARIA DE SOFTWARE

Linguagens de Programação. Introdução. Carlos Bazilio

Fundamentos de Sistemas Operacionais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

OPORTUNIDADES HBSIS:

Linguagens de Programação

Transcrição:

Bruno Hott COCOMO II

COCOMO II COCOMO II foi construído em cima do COCOMO '81 para levar em consideração: Novos processos de desenvolvimento (ex. espiral) Aumentar a flexibilidade em desenvolvimento de software (ex. reuso, geração de código automático) Necessidade de tomada de decisão com informações incompletas Novos dados de projetos (161 projects vs 61) Bruno Hott 2

Modelos COCOMO II incorpora um conjunto de submodelos que produzem estimativas ainda mais detalhadas de software. Os submodelos do COCOMO II são: Application Composition Model Para prototipação Early Design Model Usado quando os requisitos estão disponíveis mas a arquitetura ainda não começou. Post-architecture model Usando uma vez que a arquitetura do sistema foi concebida e mais informações acerca do sistema está disponível. Mais do que isso: Reuse model Usado para calcular o esforço da integração de componentes reusáveis. Bruno Hott 3

Equações n MM =2.94 (SIZE) E i=1 5 E=0.91+0.01 j=1 TDEV =3.67 (MM ) F SF j 5 F=0.28+0.2 0.01 SF j j=1 F=0.28+0.2 (E 0.91) EM i Todas as contantes (precisam) ser ajustadas com valores da organização. A diferença entre ED e PA é o número de parâmetros. O expoente depende de fatores de ajuste (ao invés de ser somente uma constante como no COCOMO '81 Bruno Hott 4

Exemplo 1 Como exemplo, vamos estimar quanto esforço e tempo de desenvolvimento um projeto médio com 100 KSLOC consumirá. Para um projeto médio, todos os multiplicadores de esforço são iguais a 1.0. E será definido como 1.15 para refletir um projeto grande qualquer. Bruno Hott 5

Exemplo 1 Como exemplo, vamos estimar quanto esforço e tempo de desenvolvimento um projeto médio com 100 KSLOC consumirá. Para um projeto médio, todos os multiplicadores de esforço são iguais a 1.0. E será definido como 1.15 para refletir um projeto grande qualquer. MM = 2.94 * (100) 1.15 = 585.61 pessoa-mes TDEV = 3.67 * (586.6) (0.28+0.2*(1.15-0.91)) TDEV = 3.67 * (586.6) 0.328 = 29.7 meses Equipe = 586.6 / 29.7 = 19.75 ~ 20 pessoas. Bruno Hott 6

Relacionando FPs à SLOC Linguagem SLOC / FP Linguagem SLOC / FP Access 38 Jovial 107 Ada 83 71 Lisp 64 Ada 95 49 Machine Code 640 Al Shell 49 Modula 2 80 APL 32 Pascal 91 Assembly - Basic 320 PERL 27 Assembly - Macro 213 PowerBuilder 16 Basic - ANSI 64 Prolog 64 Basic - Compiled 91 Query - Default 13 Basic - Visual 32 Report Generator 80 C 128 Second Generation Language 107 C++ 55 Simulation - Default 46 Cobol (ANSI 85) 91 Spreadsheet 6 Database - Default 40 Third Generation Language 80 Fifth Generation Language 4 Unix Shell Scripts 107 First Generation Language 320 USR_1 1 Forth 64 USR_2 1 Fortran 77 107 USR_3 1 Fortran 95 71 USR_4 1 Fourth Generation Language 20 USR_5 1 High Level Language 64 Visual Basic 5.0 29 Bruno Hott 7 HTML 3.0 15 Visual C++ 34 Java 53

Scale Factors O expoente E é calculado a partir de cinco fatores de escala (SF) que representam as economias relativas (ou dispêndio) de escala encontradas para projetos de diferentes tamanhos de software. Se E < 1.0, então o projeto apresenta economias de escala. Algumas economias de projeto podem ser alcançadas via ferramentas específicas do projeto (ex. simulações, testbeds). Se E = 1.0 a economia está em seu ponto de equilíbrio. Este modelo linear é comumente utilizado para estimar custos de pequenos projetos. Se E > 1.0, o projeto apresenta dispêndios de escala. O que ocorre geralmente por causa de dois fatores principais: Aumento do overhead de comunicação. Crescimento do overhead de integração. Bruno Hott 8

Exemplo 2 Os fatores de escala com classificação Extra High são classificados com o peso 0. Então, em um projeto com 100 KSLOC com Extra High para todos os fatores de escala terá sum(sf j ) = 0 Por outro lado, se um projeto possui todos os fatores de escala classificados como Very Low, teremos sum(sf j ) = 31.6, Bruno Hott 9

Exemplo 2 Os fatores de escala com classificação Extra High são classificados com o peso 0. Então, em um projeto com 100 KSLOC com Extra High para todos os fatores de escala terá sum(sf j ) = 0 E = 0.91 + 0.1 * 0.0 = 0.91 MM = 2.94 * (100) 0.91 = 194 p/m. Por outro lado, se um projeto possui todos os fatores de escala classificados como Very Low, teremos sum(sf j ) = 31.6, E = 0.91 + 0.1 * 31.6 = 1.226 MM = 2.94 * (100) 1.226 = 832 p/m. Bruno Hott 10

Scale Factors: comportamento exponencial Bruno Hott 11

Scale Factors Precedentedness: quão novo o projeto é para a organização Flexibility: flexibilidade de desenvolvimento (ex. rigidez dos requerimentos) Design/Risk: profundidade do projeto e resolução de riscos Team Cohesion: coesão do grupo Process Maturity: maturidade que vem do questionário CMMI Scale Factors Very Low Low Nominal High Very High Extra High Precedentedness PREC 6.20 4.96 3.72 2.48 1.24 0.00 Flexibility FLEX 5.07 4.05 3.04 2.03 1.01 0.00 Design/Risk RESL 7.07 5.65 4.24 2.83 1.41 0.00 Team Cohesion TEAM 5.48 4.38 3.29 2.19 1.10 0.00 Process Maturity (CMMI) PMAT 7.80 6.24 4.68 3.12 1.56 0.00 Bruno Hott 12

Multiplicadores de Esforço De 7 (Early Design) ou 17 (Post Architecture) de acordo com o nível de detalhes necessário Effort Adjustment Factors Early Design cost drivers Post-Architecture cost drivers Product reliability and complexity RCPX RELY, DATA, CPLX, DOCU Required reuse RUSE RUSE Platform difficulty PDIF TIME, STOR, PVOL Personnel capability PERS ACAP, PCAP, PCON Personnel experience PREX AEXP, PEXP, LTEX Facilities FCIL TOOL, SITE Required Development Schedule SCED SCED Bruno Hott 13

Multiplicadores de Esforço: Post-Architecture Effort Adjustment Factors - PA Very Low Low Nominal High Very High Extra High Product Factors Required Software Reliability RELY 0.82 0.92 1.00 1.10 1.26 Data Base Size DATA 0.90 1.00 1.14 1.28 Product Complexity CPLX 0.73 0.87 1.00 1.17 1.34 1.74 Developed for Reusability RUSE 0.95 1.00 1.07 1.15 1.24 Documentation Match to Life-Cicle Needs DOCU 0.81 0.91 1.00 1.11 1.23 Platform Factors Execution Time Constraint TIME 1.00 1.11 1.29 1.63 Main Storage Contraint STOR 1.00 1.05 1.17 1.46 Platform Volatility PVOL 0.87 1.00 1.15 1.30 Personnel Factors Analyst Capability ACAP 1.42 1.19 1.00 0.85 0.71 Programmer Capability PCAP 1.34 1.15 1.00 0.88 0.76 Personnel Continuity PCON 1.29 1.12 1.00 0.90 0.81 Applicatins Experience APEX 1.22 1.10 1.00 0.88 0.81 Platform Experience PLEX 1.19 1.09 1.00 0.91 0.85 Language and Toll Experience LTEX 1.20 1.09 1.00 0.91 0.84 Project Factors Use of Software Tools TOOL 1.17 1.09 1.00 0.90 0.78 Multisite Development SITE 1.22 1.09 1.00 0.93 0.86 0.80 Bruno Hott 14 Required Development Schedule SCED 1.43 1.14 1.00

Multiplicadores de Esforço: Early Design Effort Adjustment Factors - ED Extra Low Very Low Low Nominal High Very High Extra High ACAP, PCAP, PCON 3, 4 5, 6 7, 8 9 10, 11 12, 13 14, 15 Personnel Capability (PERS) 2.12 1.62 1.26 1.00 0.83 0.63 0.50 RELY, DATA, CPLX, DOCU 5, 6 7, 8 9-11 12 13-15 16-18 19-21 Product Reliability and Complexity (RCPX) 0.49 0.60 0.83 1.00 1.33 1.91 2.72 TIME, STOR, PVOL 8 9 10-12 13-15 16, 17 Platform Difficulty (PDIF) 0.87 1.00 1.29 1.81 2.61 APEX, PLEX, LTEX 3, 4 5, 6 7, 8 9 10, 11 12, 13 14, 15 Personnel Experience (PREX) 1.59 1.33 1.22 1.00 0.87 0.74 0.62 TOOL, SITE 2 3 4, 5 6 7, 8 9, 10 11 Facilities (FCIL) 1.43 1.30 1.10 1.00 0.87 0.73 0.62 Developed for Reusability (RUSE) 0.95 1.00 1.07 1.15 1.24 Required Development Schedule (SCED) 1.43 1.14 1.00 Bruno Hott 15

Exemplo 3 Projeto A é um software com 32,000 DSI. Está numa área de missão crítica (RELY = 1.26, TIME = 1.29, CPLX = 1.34). Por outro lado, o time de programadores possuem experiência com a linguagem de programação (LTEX = 0.91) e alta capacidade de programação (PCAP = 0.88). Além da equipe ser altamente coesa (TEAM = 1.10). Pode-se estimar: Bruno Hott 16

Exemplo 3 Projeto A é um software com 32,000 DSI. Está numa área de missão crítica (RELY = 1.26, TIME = 1.29, CPLX = 1.34). Por outro lado, o time de programadores possuem experiência com a linguagem de programação (LTEX = 0.91) e alta capacidade de programação (PCAP = 0.88). Além da equipe ser altamente coesa (TEAM = 1.10). Pode-se estimar: E = 0.91 + 0.01 * sum(sf) = 1.08 Esforço: 2.94 * (32) 1.08 * prod(em) MM = 2.94 * 42.2 * 1.74 = 216 p/m F = 0.28 + 0.2 * (1.08 0.91) = 0.314 Prazo: 3.67 * (216) 0.314 = 19.8 ~20 meses Número médio de pessoas: 216 / 20 = 10.8 ~11 pessoas Bruno Hott 17