• Nenhum resultado encontrado

AulaEngSW03

N/A
N/A
Protected

Academic year: 2021

Share "AulaEngSW03"

Copied!
39
0
0

Texto

(1)

Engenharia de Software I

Administração de Projetos

-Estimativas

Prof. Lucio Kamiji

kamiji@dc.unifil.br

(2)

Administração de Projetos

• É um conjunto de atividades relacionadas

com um objetivo específico.

• Primeira atividade: estimativas (futuro e

incertezas)

• Existem técnicas para estimar o tempo e o

esforço.

(3)

Observações sobre a Realização de

Estimativas

• As estimativas dos recursos, custo e programação

de atividades para um esforço de desenvolvimento

de SW exige:

– Experiência

– Acesso a boas informações históricas

– Coragem para se comprometer com medidas

quantitativas quando dados qualitativos forem tudo o que existir.

(4)

Observações sobre a Realização de

Estimativas

• Fatores que influenciam no processo de

estimativa:

– Complexidade do projeto – Tamanho do projeto

– Estrutura do projeto

– Disponibilidade de informações históricas

– Riscos (são medidos pelo grau de incerteza das

estimativas quantitativas estabelecidas para recursos, custo e prazos).

(5)

Objetivo do Planejamento de Projetos

• É fornecer uma estrutura que possibilite ao gerente

fazer estimativas razoáveis de recursos, custos e

prazos.

• Dilema do Gerente de Projetos:

– Exigências de medida quantitativa logo no início do projeto

– Não existem informações sólidas disponíveis

– Análise detalhada dos requisitos de SW é necessária – Essa análise pode levar dias, semanas e até meses

(6)

Escopo do Software

• É a primeira atividade do planejamento de SW

• Delimitar o escopo do SW:

– Declarar explicitamente os dados quantitativos (número de usuários simultâneos, quantidade de clientes, tempo máximo de resposta permitido)

– Anotar as restrições e/ou as limitações (custo do produto que restringe o tamanho da memória) – Descrever os fatores mitigantes (algoritmos

(7)

Escopo deve Descrever:

• Funcionalidades

• Desempenho

• Restrições

• Interfaces

• Confiabilidade

Página 92 - Exemplo de uma

declaração de escopo

(8)

Recursos

• Estimativa de recursos é a segunda

atividade do planejamento de SW

Pessoas Ferramentas de HW e SW Especificar • Habilidades exigidas • Disponibilidade • Duração das Tarefas • Data de Início Especificar • Descrição • Disponibilidade • Duração do Uso • Data da Entrega

(9)

Recursos Humanos

• Avaliar o escopo e selecionar as habilidades

exigidas para o projeto

• Especificar os postos organizacionais

(gerente, engenheiro de SW, etc.)

• Especificar as especialidades

(telecomunicações, banco de dados,

microprocessador)

(10)

Recursos de Hardware

• HW de desenvolvimento: ambiente de

desenvolvimento do projeto

• HW de produção: ambiente de execução do

produto

• Outros recursos de HW: podem ser

especificados como recursos para o

desenvolvimento de SW

(11)

Recursos de Software

• Antes:

– Bootstrapping: era executada para uma rotina interna do computador para testar a memória e os periféricos.

– Tradutor de linguagem assembly: foi utilizado para desenvolver um Assembler mais sofisticado.

– Bootstrapping de compiladores de alto nível e outras ferramentas.

• Hoje:

– CASE (computer aided software engeneering) engenharia de software auxiliada por computador (ESAC). Ferramentas de engenharia de software que auxiliam na construção de um software.

(12)

C.A.S.E.

Banco de dados CASE Planejamento de S.I. Gerenciamento de Projeto Apoio Análise e projeto Programação Integração e testes Ferramentas de construção de protótipos e simulação Manutenção Framework

(13)

Ferramentas de Planejamento de

Sistemas de Informação

• Proporciona um “meta-modelo” a partir da qual S.I. específicos são derivados.

• Normalmente respondem:

– Onde se originam os dados críticos ao negócio? – Para onde vão tais informações?

– Como elas são usadas?

– Como elas são transformadas à medida que realizam as funções do negócio?

– Quais novas informações são adicionadas?

• A grosso modo a transferência de dados é melhorada e as tomadas de decisão é agilizada.

(14)

Ferramentas de Gerenciamento de

Projetos

• Gerar estimativas do esforço, custo e duração do

projeto

• Definir uma estrutura de divisão de trabalho

• Planejar um programação de atividades do projeto

• Monitorar projetos

• Compilar as métricas que estabelecerão a baseline

(produtividade e qualidade).

(15)

Ferramentas de Apoio

• Ferramentas de:

– Produção de documentos

– Software de sistemas em rede – Banco de Dados

– Correspondência Eletrônica – BBS (bulletin boards)

– Gerenciamento de Configuração: usada para

controlar e gerenciar a informação que é criada á medida que o SW é desenvolvido.

(16)

Ferramentas de Análise e Projeto

• Criar um modelo do sistema a ser

construído

• Auxiliar na avaliação da qualidade

• Realizar a verificação da consistência e da

validade do modelo

• Ajudar a eliminar erros antes que estes se

propaguem no programa

(17)

Ferramentas de Programação

• Utilitários básicos • Editores • Compiladores • Depuradores (debuggers) • Ferramentas de P.O.O.

• Linguagens de 4a. Geração

• Sistemas avançados de pesquisa em banco de dados • Conjunto de ferramentas de computadores pessoais

(18)

Ferramentas de Integração e Testes

• Analisadores de cobertura de caminho (path

coverage analysers)

• Testes de regressão automáticos

(19)

Ferramentas de Construção de Protótipos

e Simulação

• Pode partir de um simples Screen Painters

• Até produtos de simulação para análise da

determinação de tempo e de tamanho em

sistemas embutidos em tempo real

• Basicamente concentram-se na criação de

telas e relatórios

(20)

Ferramentas de Manutenção

• Ajuda a decompor um programa existente e

proporciona esclarecimentos ao engenheiro

• Para concluir o processo de engenharia reversa

o engenheiro deve utilizar a inteligência

humana

• Num futuro próximo ainda não vai ser possível

substituir a inteligência humana pela

(21)

Ferramentas de Framework

• Jbuilder

• Delphi

• Visual Café

• Visual Age

• Visual C++

• demais IDE´s

(22)

Reusabilidade

• Blocos devem ser catalogados para que

possam facilmente serem consultados e

padronizados

• Regras para reúso:

– Se o software existente cumprir os requisitos, adquira-o.

– Se o software existente exigir “alguma modificação” antes que possa ser

adequadamente integrado ao sistema, proceda cautelosamente.

(23)

Estimativas de Projetos de SW

• No começo o custo de HW era maior que o custo de SW

• O custo global de SW não representava muito

• Atualmente, o custo global de SW representa muito em relação ao custo global

• Sendo assim, grandes erros de estimativas de custos podem causar diferenças entre lucro e prejuízo

• As estimavas de custo e esforço de SW jamais serão uma ciência exata, pois existem muitas variáveis: -humanas, técnicas, ambientais e políticas.

(24)

Passos Sistemáticos que Oferecem

Estimativas com Riscos Aceitáveis

1. Atrasarmos as estimativas até um ponto tardio do

desenvolvimento do projeto;

2. Usarmos técnicas de decomposição relativamente

simples para gerar estimativas de custo e de

esforço de projeto;

3. Desenvolvermos um modelo empírico para o

custo e esforço de software; e

4. Adquirirmos uma ou mais ferramentas de

estimativas automatizadas.

(25)

Detalhe dos Passos Sistemáticos

1. A primeira opção é atraente mas não é prática. Pois normalmente as estimativas devem ser dadas logo no início. Mas quanto mais sabemos menos erramos.

2. Técnicas de decomposição: assume uma abordagem “divida e conquiste”. Ao dividirmos em funções mais importantes as estimativas podem ser dada por etapas.

3. Modelos empíricos de estimativas: pode ser usada para

complementar a decomposição, sendo que este modelo baseia-se na experiência (história).

4. Ferramentas de Estimativa Automatizadas: implementam uma ou mais técnica de decomposição ou modelos empíricos.

(26)

Técnicas de Decomposição

• É sub-divisão dos problemas em

partes menores, para que sejam

melhor administráveis.

• Resolvendo-se cada um deles e que

ao resolver todas as partes,

(27)

Estimativas por LOC e por FP

• São usadas de duas maneiras:

– Variáveis de estimativa são usadas para “classificar por tamanhos” cada elemento do software; e

– Métricas de baseline (linha básica) coletadas a partir de dados passados e usadas em conjunto com variáveis de estimativa para desenvolvermos projeções de custo e de esforço.

(28)

Estimativa do Esforço

• É a técnica mais comum para se levantar os

custos de qualquer projeto de

desenvolvimento de engenharia.

• Um número de pessoas-dia, mês o ano é

aplicado à solução de cada tarefa do projeto.

• Um custo é associado a cada unidade de

esforço e um custo estimado.

• Exemplo: página 112 (leiam)

(29)

Modelos Empíricos de Estimativa

• Modelo de Estimativa: usa fórmulas empiricamente

derivadas para prognosticar informações de planejamento do projeto.

• Modelo de Recursos: consistem em uma ou mais equações empiricamente derivadas que prognosticam o esforço,

duração do projeto e outros dados inerentes ao projeto. – Segundo Basili, possui 4 classes:

• Modelos estáticos de variável simples • Modelos estáticos de múltiplas variáveis • Modelos dinâmicos de múltiplas variáveis; e • Modelos teóricos.

(30)

Detalhes das 4 Classes

• Modelo estático de variável simples (COCOMO):

– Recurso = c1 x (características estimadas) ^ c2

onde o recurso pode ser o esforço, a duração do projeto, tamanho do staff ou as linhas da documentação do SW.

• Modelo estático de múltiplas variáveis:

– Recurso = c11e1 + c21e2 + ....

onde ei é a i-ésima característica de software e Ci1, Ci2 são

constantes empiricamente derivadas para a i-ésima característica.

• Modelo dinâmico de múltiplas variáveis: projeta os requisitos de recursos como uma função do tempo.

• Modelo teórico: examina o SW a partir do ponto de vista microscópico (número de operandos e operadores).

(31)

COCOMO

• Barry Boehm, define a seguinte hierarquia:

Modelo 1 - básico é um modelo estático de valor simples que

computa o esforço (e custo) de desenvolvimento de SW como uma função do tamanho de programa expresso em linhas de código

estimadas.

Modelo 2 - intermediário computa o esforço de desenvolvimento de SW como uma função do tamanho do programa e de um conjunto de “direcionadores de custo” que incluem avaliações subjetivas do produto, do hardware, do pessoal e dos atributos do projeto.

Modelo 3 - avançado incorpora todas as características da versão intermediária, com uma avaliação do impacto dos direcionadores de custo sobre cada passo (análise, projeto, etc.) do processo de engenharia de SW.

(32)

3 Classes de Projetos (Boehm)

1) Modo orgânico: projetos de SW simples, relativamente pequenos, nos quais pequenas equipes com boa

experiência em aplicações trabalham num conjunto de requisitos tão rígidos;

2) Modo semidestacado: um projeto de SW intermediário (em tamanho e em complexidade) no qual equipes com níveis de experiência mistos devem atingir uma combinação de requisitos rígidos e não tão rígidos;

3) Modo embutido: um projeto de SW que deve ser

desenvolvido dentro de um conjunto rígido de restrições operacionais, de HW e SW.

(33)

Equações COCOMO Básico

E = ab(KLOC) exp (bb)

D = cb(E exp(db)

onde E é o esforço aplicado em pessoa-mês, D é o tempo de desenvolvimento em meses e KLOC é o número estimado

de linhas de código do projeto expresso em milhares.

Coeficientes ab e cb e os expoentes bb e db:

Projeto de SW ab bb cb db

Orgânico 2,4 1,05 2,5 0,38

Semidestacado 3,0 1,12 2,5 0,35

(34)

4 Categorias para Modelo Básico

(Boehm)

1. Atributos do produto

a. Confiabilidade exigida do SW

b. Tamanho do banco de dados da aplicação c. Complexidade do produto

2. Atributos do HW

a. Restrições ao desempenho de run-time b. Restrições de memória

c. Volatilidade do ambiente de máquina virtual

(35)

4 Categorias para Modelo Básico

(Boehm) - continuação

3. Atributos do Pessoal a. Capacidade de análise b. Capacidade em engenharia de SW c. Experiência em aplicações

d. Experiência em máquina virtual

e. Experiência em linguagens de programação

4. Atributos de projeto

a. Uso de ferramentas de SW

b. Aplicação de métodos de engenharia de SW

(36)

COCOMO Intermediário

E = ai(LOC) exp(bi) x EAF

onde E é o esforço aplicado em pessoas-m~es e LOC é o número estimado de linhas de código para o projeto.

Coeficientes ai e os expoentes bi:

Projeto de SW ai bi

Orgânico 3,2 1,05

Semidestacado 3,0 1,12

(37)

Modelo de Estimativa de Putnam

• É um modelo dinâmico de múltiplas variáveis que

pressupõe uma distribuição de esforço específica

ao longo da existência de um projeto de

desenvolvimento de SW.

• O modelo foi construído para grandes projetos (30

pessoas anos).

• Pode ser utilizados para pequenos projetos

também.

(38)

Modelo de Pontos-por-Função

• Existem poucas informações detalhadas

sobre este modelo;

• Existem modelos patenteados de

estimativas orientas a FP tem sido

desenvolvidos e usados por muitos

desenvolvedores de SW; e

• Existem ofertas no mercado de ferramentas

de estimativas automatizadas (página 121).

(39)

Bibliografia

PRESSMAN, Roger S. ENGENHARIA DE

SOFTWARE. São Paulo: Makron Books,

1995. (Capítulo 3 - páginas 88 a 128).

Referências

Documentos relacionados

O TBC surge como uma das muitas alternativas pensadas para as populações locais, se constituindo como uma atividade econômica solidária que concatena a comunidade com os

Como pontos fortes, destacam-se a existência de iniciativas já em- preendidas em torno da aprovação de um Código de classificação e uma Ta- bela de temporalidade e destinação

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

O fortalecimento da escola pública requer a criação de uma cultura de participação para todos os seus segmentos, e a melhoria das condições efetivas para

[r]

Gottardo e Cestari Junior (2008) efetuaram análise de viabilidade econômica na implantação de silo de armazenagem de grãos utilizando os seguintes modelos VPL,