1
2
3
4
5
6
ASSUNTO DO MATERIAL DIDÁTICO ENGENHARIA DE SOFTWARE 8ª EDIÇÃO/2007 IAN SOMMERVILLE CAPÍTULO ESTIMATIVAS DE CUSTO DE SOFTWARE 7
CONCEITOS DE LUCROS E DESPESAS Lucro = Receita Despesa Procura estabelecer se o projeto gerará lucro, e se a receita gerada será o suficiente para cobrir os custos, acompanhando todas as demais etapas do desenvolvimento. Conceito para Receita Valor das vendas ou serviços prestados por uma empresa. Receita Líquida de Venda (RLV) É o valor final da empresa, descontados Impostos e Contribuições. Fórmula de cálculo: RLV = Valor Patrimonial (Impostos + Contribuições) 8
CONCEITOS DE LUCROS E DESPESAS Despesas (Conceito) Estão ligadas direta e indiretamente à fabricação ou desenvolvimento de um produto da empresa. Como exemplos das principais despesas temos: Financeiras; Com vendas; Administrativas; Com o desenvolvimento funcional do software; Com profissionais, etc. 9
CONCEITOS DE LUCROS E DESPESAS Custos (Definição) Valor dos bens ou serviços consumidos ou aplicados em um espaço de tempo definido para produzir outros bens ou serviços num determinado período. Os gastos estão subdivididos genericamente em custos, despesas variáveis e despesas fixas. Despesa Total = Custos Fixos + Custos Variáveis Custos Fixos Uma constantes na empresa, esteja parada ou produzindo. Exemplos mais comuns: Aluguel; Serviços públicos; Seguros; Serviços de contabilidade, etc. 10
CONCEITOS DE LUCROS E DESPESAS Custos Variáveis Aumentam ou diminuem proporcionalmente ao nível de atividade da empresa. Exemplos mais comuns: Matérias primas e materiais (na indústria); Custo das mercadorias adquiridas (empresas comerciais); Impostos sobre faturamento (empresas de prestação de serviços). 11
CONCEITOS DE LUCROS E DESPESAS Estimativas de Custo e Prazo de um Projeto Normalmente são realizados em conjunto. Os custos de desenvolvimento são inicialmente os custos de esforço envolvido usando-se um cronograma. Cronograma - Representação gráfica da previsão da execução de um trabalho, na qual se indicam os prazos em que se deverão executar as suas diversas fases. (Fonte: Dicionário Aurélio) Essas estimativas iniciais podem ser usadas para estabelecer um orçamento para o projeto ou para estabelecer o preço do software para um cliente. 12
CONCEITOS DE LUCROS E DESPESAS Existem três parâmetros envolvidos no cálculo do custo total de um projeto em desenvolvimento: Custos de hardware e software, incluindo a manutenção; Custos de viagens e treinamentos; Custos de esforço Geralmente vinculado aos custos de pagamento dos engenheiros de software. 13
CONCEITOS DE LUCROS E DESPESAS Não podemos considerar como custos de esforço apenas salários dos engenheiros de software envolvidos no projeto, mas através de vários fatores baseados em custos indiretos, como:. Custos de subsistência, aquecimento e iluminação no espaço de escritório; Custos de pessoal de apoio Contadores, administradores, gerentes de sistema, faxineiras e técnicos; Custos de operações de rede de comunicações; Custos de instalações centrais, como uma biblioteca ou de recreação; Custos de Seguridade Social e benefícios de empregado, como pensões e seguro-saúde. 14
PRODUTIVIDADE DE SOFTWARE CONCEITOS 15
PRODUTIVIDADE DE SOFTWARE CONCEITOS A produtividade pode ser medida como em um sistema de manufatura pela Contagem do Número (CN) de unidades produzidas e pela divisão do Resultado da Contagem (RC) através do número de Pessoas Hora (PH) necessárias para produzi-os, onde: CN = RC / PH. Para qualquer problema de software, existem muitas soluções diferentes, com atributos diferentes. Uma solução pode ser executada mais eficientemente enquanto outra pode ser mais legível e mais fácil para ser mantida Estimativas de Produtividade são necessárias para ajudar a definir o custo de projeto ou o prazo, para informar decisões de investimento, avaliar as melhorias de processo ou de tecnologia se foram eficazes. 16
PRODUTIVIDADE DE SOFTWARE CONCEITOS Usualmente as estimativas de produtividade são baseadas em medição de atributos de software e na divisão desses atributos pelo esforço total necessário para o seu desenvolvimento, são eles: 1. Métricas relacionadas a tamanho: Métrica relacionada ao número de linhas do código fonte entregues; Número de instruções de código entregues; Número de páginas de documentação de sistema 2. Métricas relacionadas a junções: Pontos de função; Pontos de objeto. Agora para assimilarmos melhor, vamos assumir um pouco o cargo de Gerente de Projeto e vamos imaginar estar diante do problema de estimativas de produtividades dos engenheiros de software. 17
PRODUTIVIDADE DE SOFTWARE CONCEITOS Ao comparamos a produtividade por meio de linguagens de programação podemos ter impressões erradas da produtividade do programador. Porque? Quanto, mais expressiva for a linguagem de programação, menor será a produtividade aparente. Essa anomalia surge porque todas as atividades de desenvolvimento são consideradas quando se calcula o tempo de desenvolvimento. Exemplo: Vamos considerar um sistema em tempo real embutido que poderia ser codificado em 5.000 linhas de Assembly ou 1.500linhas de C. 18
PRODUTIVIDADE DE SOFTWARE CONCEITOS Em geral expressamos a produtividade como um número de pontos de função implementados por pessoa mês. Seu cálculo estima as seguintes características de complexidade do programa: Entradas e saídas, externas; Interações de usuários; Interfaces externas; Arquivos usados pelo sistema. 19
PRODUTIVIDADE DE SOFTWARE CONCEITOS A produtividade é expressa através do número de pontos de função implementados por pessoa mês. Seu cálculo estima as seguintes características de complexidade do programa: Um gerente de processos não deve usar as medições de produtividade para fazer julgamentos apressados sobre as, capacidades dos engenheiros da sua equipe. Ao se fizer isso, os engenheiros poderão comprometer a qualidade, isto é, com uma produção mais equilibrada teremos um código mais confiável, mais fácil de compreender e mais barato de manter. 20
TÉCNICAS DE ESTIMATIVAS 21
TÉCNICAS DE ESTIMATIVAS Não existem formas simples de fazermos uma estimativa precisa para desenvolver um sistema de software, pois só temos informações sobre como poderá ser o inicio do desenvolvimento, como: Elaboração de uma estimativa inicial com base em definições de requisitos do usuário; Talvez seja necessário que o software trabalhe com computadores não populares que usam algum tipo de tecnologia específica; Ainda não conhecemos todas as pessoas e suas habilidades que estão envolvidas no projeto; Como serão as abordagens das técnicas de estimativa de custos para o desenvolvimento do projeto. Estimativas de custos geralmente são autossuficientes e são usadas para definir o orçamento, ajustando o produto para que o orçamento possa ser cumprido. 22
TÉCNICAS DE ESTIMATIVAS Mas para que tudo isso possa se desenvolver, as organizações precisam estimar (calcular) o esforço e custo de software, através das Técnicas de Estimativas de Custos, conforme exemplos de uma tabela de estimativa de custos. 23
TÉCNICAS DE ESTIMATIVAS Abordagem top-down ou botton-up : Top-down Sua abordagem começa no nível sistema (mais alto), analisando a funcionalidade geral do produto e como é fornecida por meios de interações entre suas subfunções, levando em conta os custos das atividades no nível sistema, como Interação, Gerenciamento de configurações e Documentação. Button-up Se desenvolve no nível componente (mais baixo), onde o sistema é decomposto em vários componentes e estimamos o esforço necessário para desenvolver cada um desses componentes. 24
PRÓXIMA AULA - REQUISITOS 25
AULAS DE APOIO Este arquivo está disponibilizado para estudos e consultas no formato PDF. Alguns estarão disponíveis para impressão, outros, somente para leitura. www.aulasprof.6te.net ou www.profcelso.orgfree.com/ 26