Upload
dinhcong
View
225
Download
0
Embed Size (px)
Citation preview
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
1
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
2
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
3
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
4
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
5
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
6
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
7
ASSUNTO DO MATERIAL DIDÁTICO
ENGENHARIA DE SOFTWARE 8ª EDIÇÃO/2007
IAN SOMMERVILLE
CAPÍTULO – ESTIMATIVAS DE CUSTO DE SOFTWARE
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
8
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.
Lucro = Receita – Despesa
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:
CONCEITOS DE LUCROS E DESPESAS
RLV = Valor Patrimonial – (Impostos + Contribuições)
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
9
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.
CONCEITOS DE LUCROS E DESPESAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
10
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.
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.
CONCEITOS DE LUCROS E DESPESAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
11
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).
CONCEITOS DE LUCROS E DESPESAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
12
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.
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.
CONCEITOS DE LUCROS E DESPESAS
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)
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
13
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.
CONCEITOS DE LUCROS E DESPESAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
14
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.
CONCEITOS DE LUCROS E DESPESAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
15
PRODUTIVIDADE DE SOFTWARE
CONCEITOS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
16
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
PRODUTIVIDADE DE SOFTWARE – CONCEITOS
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.
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
17
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
PRODUTIVIDADE DE SOFTWARE – CONCEITOS
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.
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
18
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.500 linhas de C.
PRODUTIVIDADE DE SOFTWARE – CONCEITOS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
19
Em geral expressamos a produtividade como um número de
pontos de função implementados por pessoa mês.
Entradas e saídas, externas;
Interações de usuários;
Interfaces externas;
Arquivos usados pelo sistema.
PRODUTIVIDADE DE SOFTWARE – CONCEITOS
Seu cálculo estima as seguintes características de complexidade
do programa:
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
20
A produtividade é expressa através do número de pontos de função
implementados por pessoa mês.
PRODUTIVIDADE DE SOFTWARE – CONCEITOS
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.
Seu cálculo estima as seguintes características de complexidade do
programa:
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
21
TÉCNICAS DE ESTIMATIVAS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
22
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:
TÉCNICAS DE ESTIMATIVAS
Elaboração de uma estimativa inicial com base em definições de requisitos do
usuário;
Ainda não conhecemos todas as pessoas e suas habilidades que estão envolvidas
no projeto;
Talvez seja necessário que o software trabalhe com computadores não populares
que usam algum tipo de tecnologia específica;
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.
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
23
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.
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
24
Abordagem “top-down” ou “botton-up”:
TÉCNICAS DE ESTIMATIVAS
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.
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
25
PRÓXIMA AULA - REQUISITOS
ADS / REDES / ENGENHARIA Prof. Celso Candido
PROCESSO DE DESENVOLVIMENTO
DE SOFTWARE
26
AULAS DE APOIO
Este arquivo está disponibilizado para estudos e consultas noformato PDF.
Alguns estarão disponíveis para impressão, outros, somente paraleitura.
www.aulasprof.6te.net ou www.profcelso.orgfree.com/